using Robust.Shared.GameObjects;
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 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;
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)
{
}
}