using Content.Server.Hands.Systems; using Content.Server.Popups; using Content.Shared._White.Chaplain; using Content.Shared.Ghost; using Content.Shared.Inventory; namespace Content.Server._White.Chaplain; public sealed class ArmamentsBeaconSystem : EntitySystem { [Dependency] private readonly InventorySystem _inventorySystem = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnArmorSelected); } private void OnArmorSelected(Entity ent, ref ArmorSelectedEvent args) { var entity = args.Actor; var index = args.SelectedIndex; if (index < 0 || index >= ent.Comp.Armor.Count) return; _inventorySystem.TryUnequip(entity, "outerClothing", true); _inventorySystem.SpawnItemInSlot(entity, "outerClothing", ent.Comp.Armor[index], silent: true); if (index < ent.Comp.Helmets.Count && ent.Comp.Helmets[index] != null) { _inventorySystem.TryUnequip(entity, "head", true); _inventorySystem.SpawnItemInSlot(entity, "head", ent.Comp.Helmets[index]!.Value, silent: true); } Del(ent); } }