using Content.Shared.Trigger.Components.Effects; namespace Content.Shared.Trigger.Systems; public sealed partial class AddComponentsOnTriggerSystem : XOnTriggerSystem { protected override void OnTrigger(Entity ent, EntityUid target, ref TriggerEvent args) { if (ent.Comp.TriggerOnce && ent.Comp.Triggered) return; EntityManager.AddComponents(target, ent.Comp.Components, ent.Comp.RemoveExisting); ent.Comp.Triggered = true; Dirty(ent); args.Handled = true; } } public sealed partial class RemoveComponentsOnTriggerSystem : XOnTriggerSystem { protected override void OnTrigger(Entity ent, EntityUid target, ref TriggerEvent args) { if (ent.Comp.TriggerOnce && ent.Comp.Triggered) return; EntityManager.RemoveComponents(target, ent.Comp.Components); ent.Comp.Triggered = true; Dirty(ent); args.Handled = true; } } public sealed partial class ToggleComponentsOnTriggerSystem : XOnTriggerSystem { protected override void OnTrigger(Entity ent, EntityUid target, ref TriggerEvent args) { if (!ent.Comp.ComponentsAdded) EntityManager.AddComponents(target, ent.Comp.Components, ent.Comp.RemoveExisting); else EntityManager.RemoveComponents(target, ent.Comp.Components); ent.Comp.ComponentsAdded = !ent.Comp.ComponentsAdded; Dirty(ent); args.Handled = true; } }