public class MerchantGlobalState : State { public override void Enter() { Owner.Excutor.OnDamaged -= OnDamaged; Owner.Excutor.OnDamaged += OnDamaged; } public override void Exit() { Owner.Excutor.OnDamaged -= OnDamaged; } void OnDamaged(Character _, Damage damge) { if (Owner.Excutor.CurrentHp <= 0) Owner.ChangeState(); } }