#nullable enable using System; using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components.Damage; using Robust.Shared.Interfaces.Serialization; using Robust.Shared.Serialization; namespace Content.Server.GameObjects.Components.Destructible.Thresholds.Triggers { /// /// A trigger that will activate when the amount of total damage received /// is above the specified threshold. /// [Serializable] public class TotalDamageTrigger : IThresholdTrigger { /// /// The amount of total damage at which this threshold will trigger. /// public int Damage { get; private set; } void IExposeData.ExposeData(ObjectSerializer serializer) { serializer.DataField(this, x => x.Damage, "damage", 0); } public bool Reached(IDamageableComponent damageable, DestructibleSystem system) { return damageable.TotalDamage >= Damage; } } }