cirnogodot/Scripts/Interactables/AlarmBox.cs

49 lines
1.2 KiB
C#
Raw Normal View History

2025-02-04 13:22:05 +01:00
using Godot;
namespace Cirno.Scripts.Interactables;
public partial class AlarmBox : Interactable
{
private GameManager _gameManager;
private AnimatedSprite2D _sprite;
public override void _Ready()
{
base._Ready();
_gameManager = GetNode<GameManager>("/root/GameScene");
_sprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
_gameManager.AlarmManager.AlarmEnabled += AlarmManagerOnAlarmEnabled;
_gameManager.AlarmManager.AlarmDisabled += AlarmManagerOnAlarmDisabled;
}
private void AlarmManagerOnAlarmDisabled()
{
GD.Print("Playing disabled alarm");
_sprite.Play("default");
}
private void AlarmManagerOnAlarmEnabled(Vector2 location)
{
GD.Print("Playing enabled alarm");
_sprite.Play("alarmed");
}
public override bool Activate()
{
if (MeetsRequirements() && _gameManager.AlarmManager.IsAlarmOn)
{
_gameManager.AlarmManager.DisableAlarm();
// disable alarm
GD.Print("Alarm disabled");
return true;
}
return false;
}
}