SupaLidlGame/Characters/Boss.cs

35 lines
702 B
C#
Raw Normal View History

2023-07-22 20:23:48 -07:00
using Godot;
2023-07-23 11:05:01 -07:00
using GodotUtilities;
2023-07-22 20:23:48 -07:00
namespace SupaLidlGame.Characters;
public abstract partial class Boss : Enemy
{
[Export]
public State.NPC.NPCStateMachine BossStateMachine { get; set; }
2023-07-23 11:05:01 -07:00
[Export]
public string BossName { get; set; }
2023-07-23 23:39:20 -07:00
[Export]
public AudioStream Music { get; set; }
2023-07-22 20:23:48 -07:00
public abstract int Intensity { get; }
2023-07-23 11:05:01 -07:00
private bool _isActive;
2023-07-22 20:23:48 -07:00
[Export]
2023-07-23 11:05:01 -07:00
public bool IsActive
{
get => _isActive;
set
{
_isActive = value;
// register or deregister ourselves when we are active/inactive
this.GetAncestor<Utils.World>()
.RegisterBoss(_isActive ? this : null);
}
}
2023-07-22 20:23:48 -07:00
}