using Godot; using GodotUtilities; namespace SupaLidlGame.Characters; public abstract partial class Boss : Enemy { [Export] public State.NPC.NPCStateMachine BossStateMachine { get; set; } [Export] public string BossName { get; set; } [Export] public AudioStream Music { get; set; } public abstract int Intensity { get; } private bool _isActive; [Export] public virtual bool IsActive { get => _isActive; set { _isActive = value; // register or deregister ourselves when we are active/inactive this.GetAncestor() .RegisterBoss(_isActive ? this : null); } } public override void _Ready() { base._Ready(); } }