using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared._Offbrand.Wounds; [RegisterComponent, NetworkedComponent] [Access(typeof(UniqueWoundOnDamageSystem))] public sealed partial class UniqueWoundOnDamageComponent : Component { [DataField(required: true)] public List Wounds; } [DataDefinition, Serializable, NetSerializable] public sealed partial class UniqueWoundSpecifier { /// /// The damage type this unique wound happens to /// [DataField(required: true)] public HashSet> DamageTypes; /// /// The minimum damage required to apply this wound from the delta alone /// [DataField(required: true)] public FixedPoint2 MinimumDamage; /// /// The minimum overall damage of the DamageTypes required to apply this wound even if the delta is not high enough /// [DataField(required: true)] public FixedPoint2 MinimumTotalDamage; /// /// The wound to inflict /// [DataField(required: true)] public EntProtoId WoundPrototype; /// /// The damages to inflict it with /// [DataField(required: true)] public Damages WoundDamages; /// /// The probability coefficient of the amount of incoming damage /// [DataField(required: true)] public double DamageProbabilityCoefficient; /// /// The probability constant of the amount of incoming damage /// [DataField(required: true)] public double DamageProbabilityConstant; }