Files
Nockin_On_Hells_Door/script/DoorView.cs
2024-10-22 22:11:03 +02:00

134 lines
2.5 KiB
C#

using Godot;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection.Emit;
public partial class DoorView : Control
{
[Export] Sprite2D mob;
[Export] AnimationPlayer anim;
[Export] Control menu;
[Export] CanvasLayer layer;
Texture2D mobTex {get; set;}
string text_char{get; set;}
string answerA{get; set;}
string answerB{get; set;}
bool answerA_good {get; set;}
bool shot {get; set;}= true;
bool caniche {get; set;}= false;
CharacterBody2D player;
[Export] Godot.Label text_mob;
[Export] Button butA;
[Export] Button butB;
bool trick_bool = false;
List<string> txt = new List<string>();
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
txt.Add("Black spell of destruction");
txt.Add("Necromancy");
txt.Add("Freezing Moon");
txt.Add("Journey to the stars");
txt.Add("The power of souls");
txt.Add("Mutilations internes");
txt.Add("Manual Breathing");
txt.Add("Spectral visions of mental warfare");
player = (CharacterBody2D)GetParent().GetParent();
}
public void start()
{
trick_bool = false;
layer.Visible = true;
Input.MouseMode = Input.MouseModeEnum.Visible;
GetTree().Paused = true;
Visible = true;
mob.Texture = mobTex;
if(shot)
{
anim.Play("shot");
player.Call("OverShotgun");
}
else if (caniche)
{
anim.Play("cani");
player.Call("OverCanicheAsync");
}
else
{
anim.Play("enter");
}
}
public void stop()
{
layer.Visible = false;
Input.MouseMode = Input.MouseModeEnum.Hidden;
GetParent<Camera2D>().PositionSmoothingEnabled = false;
GetTree().Paused = false;
Visible = false;
anim.Play("RESET");
}
public void TreatPressed()
{
anim.Play("question");
text_mob.Text = text_char;
butA.Text = answerA;
butB.Text = answerB;
}
public void APressed()
{
if(trick_bool)
{
anim.Play("close");
}
else if(answerA_good)
{
player.Set("sugar", (int)player.Get("sugar") + GD.RandRange(20, 40));
}
stop();
}
public void BPressed()
{
if(trick_bool)
{
anim.Play("close");
}
else if(!answerA_good)
{
player.Set("sugar", (int)player.Get("sugar") + GD.RandRange(20, 40));
}
stop();
}
public void TrickPressed()
{
trick_bool = true;
int s = (int)menu.Get("spell");
menu.Set("spell", ++s);
text_mob.Text = "-You have casted : " + txt[s-1] + "\n- It : ...?";
butA.Text = "##############";
butB.Text = "##############";
anim.Play("question");
}
}