Alarm detection

This commit is contained in:
Marco 2025-02-04 13:47:29 +01:00
commit b25207f2cc
4 changed files with 16 additions and 18 deletions

View file

@ -14,7 +14,7 @@ size = Vector2(8, 12)
[node name="Camera" type="CharacterBody2D" node_paths=PackedStringArray("_playerDetection")] [node name="Camera" type="CharacterBody2D" node_paths=PackedStringArray("_playerDetection")]
collision_layer = 16 collision_layer = 16
collision_mask = 8 collision_mask = 73
script = ExtResource("1_2qb38") script = ExtResource("1_2qb38")
Health = 1.0 Health = 1.0
WalkSpeed = 0.0 WalkSpeed = 0.0

View file

@ -7,7 +7,7 @@ public partial class Camera : Enemy
private AnimatedSprite2D _sprite; private AnimatedSprite2D _sprite;
private GameManager _gameManager; private AlarmManager _alarmManager;
///private AlarmManager _alarmManager; ///private AlarmManager _alarmManager;
@ -15,20 +15,18 @@ public partial class Camera : Enemy
{ {
base._Ready(); base._Ready();
_gameManager = GetNode<GameManager>("/root/GameScene"); _alarmManager = GetNode<AlarmManager>("/root/GameScene/AlarmManager");
//_alarmManager = _gameManager.AlarmManager; //_alarmManager = _gameManager.AlarmManager;
_sprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D"); _sprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
_sprite.Play("full_scan"); _sprite.Play("full_scan");
} }
protected override void Shoot() protected override void Shoot()
{ {
_gameManager.AlarmManager.SoundAlarm(this.GlobalPosition); _alarmManager.SoundAlarm(this.GlobalPosition);
} }
} }

View file

@ -18,11 +18,11 @@ public partial class GameManager : Node2D
private InventoryManager _inventoryManager { get; set; } private InventoryManager _inventoryManager { get; set; }
private AlarmManager _alarmManager { get; set; } //private AlarmManager _alarmManager { get; set; }
public InventoryManager Inventory => _inventoryManager; //public InventoryManager Inventory => _inventoryManager;
public AlarmManager AlarmManager => _alarmManager; //public AlarmManager AlarmManager => _alarmManager;
private Node2D _bulletsContainer; private Node2D _bulletsContainer;
public Node2D BulletsContainer => _bulletsContainer; public Node2D BulletsContainer => _bulletsContainer;
@ -35,7 +35,7 @@ public partial class GameManager : Node2D
_inventoryManager = GetNode<InventoryManager>("InventoryManager"); _inventoryManager = GetNode<InventoryManager>("InventoryManager");
_alarmManager = GetNode<AlarmManager>("AlarmManager"); //_alarmManager = GetNode<AlarmManager>("AlarmManager");
SpawnBulletsContainer(); SpawnBulletsContainer();
@ -48,8 +48,8 @@ public partial class GameManager : Node2D
_player.InteractableAreaEntered += (interactable) => _hud.UpdateInteractable(interactable); _player.InteractableAreaEntered += (interactable) => _hud.UpdateInteractable(interactable);
Inventory.ItemAdded += (item) => _hud.AddInventoryItem(item); _inventoryManager.ItemAdded += (item) => _hud.AddInventoryItem(item);
Inventory.ItemRemoved += (item) => _hud.RemoveInventoryItem(item); _inventoryManager.ItemRemoved += (item) => _hud.RemoveInventoryItem(item);
//_player.Connect(nameof(_player.HealthChanged), _hud, nameof(_hud.UpdateHealth)); //_player.Connect(nameof(_player.HealthChanged), _hud, nameof(_hud.UpdateHealth));

View file

@ -5,19 +5,19 @@ namespace Cirno.Scripts.Interactables;
public partial class AlarmBox : Interactable public partial class AlarmBox : Interactable
{ {
private GameManager _gameManager; private AlarmManager _alarmManager;
private AnimatedSprite2D _sprite; private AnimatedSprite2D _sprite;
public override void _Ready() public override void _Ready()
{ {
base._Ready(); base._Ready();
_gameManager = GetNode<GameManager>("/root/GameScene"); _alarmManager = GetNode<AlarmManager>("/root/GameScene/AlarmManager");
_sprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D"); _sprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
_gameManager.AlarmManager.AlarmEnabled += AlarmManagerOnAlarmEnabled; _alarmManager.AlarmEnabled += AlarmManagerOnAlarmEnabled;
_gameManager.AlarmManager.AlarmDisabled += AlarmManagerOnAlarmDisabled; _alarmManager.AlarmDisabled += AlarmManagerOnAlarmDisabled;
} }
@ -35,9 +35,9 @@ public partial class AlarmBox : Interactable
public override bool Activate() public override bool Activate()
{ {
if (MeetsRequirements() && _gameManager.AlarmManager.IsAlarmOn) if (MeetsRequirements() && _alarmManager.IsAlarmOn)
{ {
_gameManager.AlarmManager.DisableAlarm(); _alarmManager.DisableAlarm();
// disable alarm // disable alarm
GD.Print("Alarm disabled"); GD.Print("Alarm disabled");