using RPGCore.BackpackEquipment.ObjectModules.Content; using RPGCore.BackpackEquipment.ObjectModules.UnitEquipment.Events; using RPGCore.BackpackEquipment.ObjectModules.UnitEquipment.Objects; using RPGCore.ObjectModules.ActionObjectModule; namespace RPGCore.BackpackEquipment.ObjectModules.UnitEquipment.Actions { public class UnEquipAction : BaseAction { private readonly WearableObject _wearable; private readonly int _index; public UnEquipAction(WearableObject wearable) { _wearable = wearable; } public override void CanDoIt() { } protected override void OnDoIt() { var takeEvent = new ActionUnEquipEvent { unit = unit, wearable = _wearable }; unit.events.InvokeBefore(takeEvent); Check(!takeEvent.isPrevented, string.Format(ActionWasPreventedMessage, nameof(UnEquipAction))); unit.events.InvokeAfter(takeEvent); unit.GetComponent().TransferFrom(_wearable); } protected override void OnEndIt() { } protected override void OnCancelIt() { } } }