using Content.Shared.Damage.Prototypes; using Content.Shared.Mobs; using Content.Shared.StatusIcon; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Damage.Components; /// /// Manages the damage of a with a 'simple damage' model /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class InjurableComponent : Component { /// /// This specifies what damage types are supported by this component. /// If null, all damage types will be supported. /// [DataField, AutoNetworkedField] // ReSharper disable once InconsistentNaming - This is wrong but fixing it is potentially annoying for downstreams. public ProtoId? DamageContainer; /// /// Group types that affect the pain overlay. /// /// TODO: Add support for adding damage types specifically rather than whole damage groups [DataField] // ReSharper disable once UseCollectionExpression - Cannot refactor this as it's a potential sandbox volation. public List> PainDamageGroups = new() { "Brute", "Burn" }; [DataField] public Dictionary> HealthIcons = new() { { MobState.Alive, "HealthIconFine" }, { MobState.Critical, "HealthIconCritical" }, { MobState.Dead, "HealthIconDead" }, }; [DataField] public ProtoId RottingIcon = "HealthIconRotting"; }