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("/root/GameScene"); _sprite = GetNode("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; } }