42 lines
963 B
C#
42 lines
963 B
C#
using Godot;
|
|
using ParasiticGod.Scripts.Core;
|
|
using ParasiticGod.Scripts.Singletons;
|
|
|
|
namespace ParasiticGod.Scenes.Main;
|
|
|
|
public partial class MiracleButton : Button
|
|
{
|
|
private MiracleDefinition _miracle;
|
|
|
|
public override void _Ready()
|
|
{
|
|
if (_miracle == null)
|
|
{
|
|
GD.PrintErr($"MiracleButton '{Name}' has no MiracleDefinition assigned.");
|
|
SetProcess(false);
|
|
return;
|
|
}
|
|
|
|
Text = $"{_miracle.Name}\nCost: {_miracle.FaithCost} Faith";
|
|
|
|
Pressed += OnPressed;
|
|
}
|
|
|
|
public override void _ExitTree()
|
|
{
|
|
Pressed -= OnPressed;
|
|
}
|
|
|
|
private void OnPressed()
|
|
{
|
|
GameBus.Instance.PerformMiracle(_miracle);
|
|
}
|
|
|
|
public void SetMiracle(MiracleDefinition miracle)
|
|
{
|
|
_miracle = miracle;
|
|
Text = $"{_miracle.Name}\nCost: {_miracle.FaithCost} Faith";
|
|
}
|
|
|
|
public MiracleDefinition GetMiracle() { return _miracle; }
|
|
} |