using Content.Shared.ActionBlocker; using Robust.Shared.GameObjects; namespace Content.Shared.MobState.State { /// /// Defines the blocking effects of an associated /// (i.e. Normal, Critical, Dead) and what effects to apply upon entering or /// exiting the state. /// public interface IMobState { bool IsAlive(); bool IsCritical(); bool IsDead(); /// /// Checks if the mob is in a critical or dead state. /// See and . /// /// true if it is, false otherwise. bool IsIncapacitated(); /// /// Called when this state is entered. /// void EnterState(IEntity entity); /// /// Called when this state is left for a different state. /// void ExitState(IEntity entity); /// /// Called when this state is updated. /// void UpdateState(IEntity entity, int threshold); } }