using Content.Shared.Chemistry;
using Content.Shared.Chemistry.Reaction;
using Content.Shared.Chemistry.Reagent;
using Content.Shared.FixedPoint;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Xenoarchaeology.Artifact.XAT.Components;
///
/// This is used for a xenoarch trigger that activates when a reaction occurs on the artifact.
///
[RegisterComponent, NetworkedComponent, Access(typeof(XATReactiveSystem)), AutoGenerateComponentState]
public sealed partial class XATReactiveComponent : Component
{
[DataField, AutoNetworkedField]
public List ReactionMethods = new() { ReactionMethod.Touch };
///
/// Reagents that are required in quantity to activate trigger.
/// If any of them are present in required amount - activation will be triggered.
///
[DataField, AutoNetworkedField]
public HashSet> Reagents = new();
///
/// ReagentGroups that are required in quantity to activate trigger.
/// If any of them are present in required amount - activation will be triggered.
///
[DataField, AutoNetworkedField]
public HashSet> ReactiveGroups = new();
///
/// Min amount of reagent to trigger.
///
[DataField, AutoNetworkedField]
public FixedPoint2 MinQuantity = 5f;
}