using Content.Shared.Damage.Components; using Content.Shared.FixedPoint; using Content.Shared.Damage.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Destructible.Thresholds.Triggers; /// /// A trigger that will activate when the amount of damage received /// of the specified class is above the specified threshold. /// [Serializable, NetSerializable] [DataDefinition] public sealed partial class DamageGroupTrigger : IThresholdTrigger { /// /// The damage group to check for. /// [DataField(required: true)] public ProtoId DamageGroup = default!; /// /// The amount of damage at which this threshold will trigger. /// [DataField(required: true)] public FixedPoint2 Damage = default!; public bool Reached(Entity damageable, SharedDestructibleSystem system) { return damageable.Comp.DamagePerGroup[DamageGroup] >= Damage; } }