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