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";
}