namespace Content.Shared.Inventory.Events; public abstract class EquipAttemptBase : CancellableEntityEventArgs { /// /// The entity performing the action. NOT necessarily the one actually "receiving" the equipment. /// public readonly EntityUid Equipee; /// /// The entity being equipped to. /// public readonly EntityUid EquipTarget; /// /// The entity to be equipped. /// public readonly EntityUid Equipment; /// /// The slotFlags of the slot to equip the entity into. /// public readonly SlotFlags SlotFlags; /// /// The slot the entity is being equipped to. /// public readonly string Slot; /// /// If cancelling and wanting to provide a custom reason, use this field. Not that this expects a loc-id. /// public string? Reason; public EquipAttemptBase(EntityUid equipee, EntityUid equipTarget, EntityUid equipment, SlotDefinition slotDefinition) { EquipTarget = equipTarget; Equipment = equipment; Equipee = equipee; SlotFlags = slotDefinition.SlotFlags; Slot = slotDefinition.Name; } } public sealed class BeingEquippedAttemptEvent : EquipAttemptBase { public BeingEquippedAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment, SlotDefinition slotDefinition) : base(equipee, equipTarget, equipment, slotDefinition) { } } public sealed class IsEquippingAttemptEvent : EquipAttemptBase { public IsEquippingAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment, SlotDefinition slotDefinition) : base(equipee, equipTarget, equipment, slotDefinition) { } }