Overhaul game state logic to support gameplay loop
This commit is contained in:
@@ -17,6 +17,11 @@ public partial class DeathMenu : Control, IDeathMenu
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
[Signal]
|
||||
public delegate void NewGameEventHandler();
|
||||
[Signal]
|
||||
public delegate void QuitGameEventHandler();
|
||||
|
||||
[Dependency] Game Game => this.DependOn<Game>();
|
||||
|
||||
[Node] public IAnimationPlayer AnimationPlayer { get; set; } = default!;
|
||||
@@ -42,13 +47,13 @@ public partial class DeathMenu : Control, IDeathMenu
|
||||
|
||||
private void Exit_Pressed()
|
||||
{
|
||||
GetTree().Quit();
|
||||
EmitSignal(SignalName.QuitGame);
|
||||
}
|
||||
|
||||
private void Continue_Pressed()
|
||||
{
|
||||
FadeOut();
|
||||
Game.GameLogic.Input(new GameLogic.Input.GoToOverworld());
|
||||
EmitSignal(SignalName.NewGame);
|
||||
}
|
||||
|
||||
public void FadeIn() => AnimationPlayer.Play("fade_in");
|
||||
|
||||
@@ -17,6 +17,18 @@ tracks/0/keys = {
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.001),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2nvr"]
|
||||
resource_name = "fade_in"
|
||||
@@ -33,6 +45,18 @@ tracks/0/keys = {
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_6ji3u"]
|
||||
resource_name = "fade_out"
|
||||
@@ -49,6 +73,18 @@ tracks/0/keys = {
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ek7oy"]
|
||||
_data = {
|
||||
|
||||
@@ -9,6 +9,8 @@ namespace Zennysoft.Game.Ma;
|
||||
public interface IPlayerInfoUI : IControl
|
||||
{
|
||||
public void DisplayMessage(string message);
|
||||
|
||||
public void Activate();
|
||||
}
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
@@ -33,6 +35,10 @@ public partial class PlayerInfoUI : Control, IPlayerInfoUI
|
||||
public void OnResolved()
|
||||
{
|
||||
_labelSettings = GD.Load<LabelSettings>("res://src/ui/label_settings/InventoryFullAlertLabelSetting.tres");
|
||||
}
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
Player.Stats.CurrentHP.Sync += CurrentHP_Sync;
|
||||
Player.Stats.MaximumHP.Sync += MaximumHP_Sync;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user