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();
}