using Content.Shared.Damage.Components; using Content.Shared.Mobs.Systems; using Robust.Shared.GameStates; namespace Content.Shared.Mobs.Components { /// /// When attached to an , /// this component will handle critical and death behaviors for mobs. /// Additionally, it handles sending effects to clients /// (such as blur effect for unconsciousness) and managing the health HUD. /// [RegisterComponent] [NetworkedComponent] [AutoGenerateComponentState] [Access(typeof(MobStateSystem), typeof(MobThresholdSystem))] public sealed partial class MobStateComponent : Component { //default mobstate is always the lowest state level [AutoNetworkedField, ViewVariables] public MobState CurrentState { get; set; } = MobState.Alive; [DataField] [AutoNetworkedField] public HashSet AllowedStates = new() { MobState.Alive, MobState.Critical, MobState.Dead }; } }