using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.EntitySystems.ActionBlocker; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Serialization; namespace Content.Shared.GameObjects.Components.Mobs.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 : IExposeData, IActionBlocker { 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); } }