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