namespace Content.Shared.Inventory.Events; public abstract class UnequipAttemptEventBase : CancellableEntityEventArgs { /// /// The entity performing the action. NOT necessarily the same as the entity whose equipment is being removed.. /// public readonly EntityUid Unequipee; /// /// The entity being unequipped from. /// public readonly EntityUid UnEquipTarget; /// /// The entity to be unequipped. /// public readonly EntityUid Equipment; /// /// The slotFlags of the slot this item is being removed from. /// public readonly SlotFlags SlotFlags; /// /// The slot the entity is being unequipped from. /// 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 UnequipAttemptEventBase(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment, SlotDefinition slotDefinition) { UnEquipTarget = unEquipTarget; Equipment = equipment; Unequipee = unequipee; SlotFlags = slotDefinition.SlotFlags; Slot = slotDefinition.Name; } } public sealed class BeingUnequippedAttemptEvent : UnequipAttemptEventBase { public BeingUnequippedAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment, SlotDefinition slotDefinition) : base(unequipee, unEquipTarget, equipment, slotDefinition) { } } public sealed class IsUnequippingAttemptEvent : UnequipAttemptEventBase { public IsUnequippingAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment, SlotDefinition slotDefinition) : base(unequipee, unEquipTarget, equipment, slotDefinition) { } }