using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Xenoarchaeology.Artifact.XAT.Components; /// /// This is used for an artifact that is activated after a certain amount of damage is dealt. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(XATDamageThresholdReachedSystem))] public sealed partial class XATDamageThresholdReachedComponent : Component { /// /// Damage, accumulated by artifact so far. Is cleared on node activation. /// [DataField, AutoNetworkedField] public DamageSpecifier AccumulatedDamage = new(); /// /// Damage that is required to activate trigger, grouped by damage type. /// Only one damage type is required, amount of damage must exceed set limit. /// is not required to activate trigger if this /// requirement is satisfied. /// [DataField, AutoNetworkedField] public Dictionary, FixedPoint2> TypesNeeded = new(); /// /// Damage that is required to activate trigger, grouped by damage group. /// Only one damage type is required, amount of damage must exceed set limit. /// is not required to activate trigger if this /// requirement is satisfied. /// [DataField, AutoNetworkedField] public Dictionary, FixedPoint2> GroupsNeeded = new(); }