namespace Content.Shared.Inventory.Events;
-public abstract class EquipAttemptBase : CancellableEntityEventArgs
+public abstract class EquipAttemptBase(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : CancellableEntityEventArgs
{
/// <summary>
/// The entity performing the action. NOT necessarily the one actually "receiving" the equipment.
/// </summary>
- public readonly EntityUid Equipee;
+ public readonly EntityUid Equipee = equipee;
/// <summary>
/// The entity being equipped to.
/// </summary>
- public readonly EntityUid EquipTarget;
+ public readonly EntityUid EquipTarget = equipTarget;
/// <summary>
/// The entity to be equipped.
/// </summary>
- public readonly EntityUid Equipment;
+ public readonly EntityUid Equipment = equipment;
/// <summary>
/// The slotFlags of the slot to equip the entity into.
/// </summary>
- public readonly SlotFlags SlotFlags;
+ public readonly SlotFlags SlotFlags = slotDefinition.SlotFlags;
/// <summary>
/// The slot the entity is being equipped to.
/// </summary>
- public readonly string Slot;
+ public readonly string Slot = slotDefinition.Name;
/// <summary>
/// If cancelling and wanting to provide a custom reason, use this field. Not that this expects a loc-id.
/// </summary>
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)
- {
- }
-}
+/// <summary>
+/// Raised on the item that is being equipped.
+/// </summary>
+public sealed class BeingEquippedAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : EquipAttemptBase(equipee, equipTarget, equipment, slotDefinition);
+
+/// <summary>
+/// Raised on the entity that is equipping an item.
+/// </summary>
+public sealed class IsEquippingAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : EquipAttemptBase(equipee, equipTarget, equipment, slotDefinition);
+
+/// <summary>
+/// Raised on the entity on who item is being equipped.
+/// </summary>
+public sealed class IsEquippingTargetAttemptEvent(EntityUid equipee, EntityUid equipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : EquipAttemptBase(equipee, equipTarget, equipment, slotDefinition);
namespace Content.Shared.Inventory.Events;
-public abstract class UnequipAttemptEventBase : CancellableEntityEventArgs
+public abstract class UnequipAttemptEventBase(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : CancellableEntityEventArgs
{
/// <summary>
/// The entity performing the action. NOT necessarily the same as the entity whose equipment is being removed..
/// </summary>
- public readonly EntityUid Unequipee;
+ public readonly EntityUid Unequipee = unequipee;
/// <summary>
/// The entity being unequipped from.
/// </summary>
- public readonly EntityUid UnEquipTarget;
+ public readonly EntityUid UnEquipTarget = unEquipTarget;
/// <summary>
/// The entity to be unequipped.
/// </summary>
- public readonly EntityUid Equipment;
+ public readonly EntityUid Equipment = equipment;
/// <summary>
/// The slotFlags of the slot this item is being removed from.
/// </summary>
- public readonly SlotFlags SlotFlags;
+ public readonly SlotFlags SlotFlags = slotDefinition.SlotFlags;
/// <summary>
/// The slot the entity is being unequipped from.
/// </summary>
- public readonly string Slot;
+ public readonly string Slot = slotDefinition.Name;
/// <summary>
/// If cancelling and wanting to provide a custom reason, use this field. Not that this expects a loc-id.
/// </summary>
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)
- {
- }
-}
+/// <summary>
+/// Raised on the item that is being unequipped.
+/// </summary>
+public sealed class BeingUnequippedAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : UnequipAttemptEventBase(unequipee, unEquipTarget, equipment, slotDefinition);
+
+/// <summary>
+/// Raised on the entity that is unequipping an item.
+/// </summary>
+public sealed class IsUnequippingAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : UnequipAttemptEventBase(unequipee, unEquipTarget, equipment, slotDefinition);
+
+/// <summary>
+/// Raised on the entity from who item is being unequipped.
+/// </summary>
+public sealed class IsUnequippingTargetAttemptEvent(EntityUid unequipee, EntityUid unEquipTarget, EntityUid equipment,
+ SlotDefinition slotDefinition) : UnequipAttemptEventBase(unequipee, unEquipTarget, equipment, slotDefinition);
}
var attemptEvent = new IsEquippingAttemptEvent(actor, target, itemUid, slotDefinition);
- RaiseLocalEvent(target, attemptEvent, true);
+ RaiseLocalEvent(actor, attemptEvent, true);
+
if (attemptEvent.Cancelled)
{
reason = attemptEvent.Reason ?? reason;
return false;
}
- if (actor != target)
+ var targetAttemptEvent = new IsEquippingTargetAttemptEvent(actor, target, itemUid, slotDefinition);
+ RaiseLocalEvent(target, targetAttemptEvent, true);
+
+ if (targetAttemptEvent.Cancelled)
{
- //reuse the event. this is gucci, right?
- attemptEvent.Reason = null;
- RaiseLocalEvent(actor, attemptEvent, true);
- if (attemptEvent.Cancelled)
- {
- reason = attemptEvent.Reason ?? reason;
- return false;
- }
+ reason = targetAttemptEvent.Reason ?? reason;
+ return false;
}
var itemAttemptEvent = new BeingEquippedAttemptEvent(actor, target, itemUid, slotDefinition);
}
var attemptEvent = new IsUnequippingAttemptEvent(actor, target, itemUid, slotDefinition);
- RaiseLocalEvent(target, attemptEvent, true);
+ RaiseLocalEvent(actor, attemptEvent, true);
+
if (attemptEvent.Cancelled)
{
reason = attemptEvent.Reason ?? reason;
return false;
}
- if (actor != target)
+ var targetAttemptEvent = new IsUnequippingTargetAttemptEvent(actor, target, itemUid, slotDefinition);
+ RaiseLocalEvent(target, targetAttemptEvent, true);
+
+ if (targetAttemptEvent.Cancelled)
{
- //reuse the event. this is gucci, right?
- attemptEvent.Reason = null;
- RaiseLocalEvent(actor, attemptEvent, true);
- if (attemptEvent.Cancelled)
- {
- reason = attemptEvent.Reason ?? reason;
- return false;
- }
+ reason = targetAttemptEvent.Reason ?? reason;
+ return false;
}
var itemAttemptEvent = new BeingUnequippedAttemptEvent(actor, target, itemUid, slotDefinition);