using RPGCore.BackpackEquipment.Events; using RPGCore.BackpackEquipment.ObjectModules.Content.Events; using RPGCore.BackpackEquipment.Objects; using RPGCore.ObjectModules.ActionObjectModule; namespace RPGCore.BackpackEquipment.Actions { public class UseUsableAction : BaseActionParallel { private readonly UsableObject _usable; public UseUsableAction(UsableObject usable) { _usable = usable; } public override void CanDoIt() { } protected override void OnDoIt() { var useEvent = new UseUsableEvent { unit = unit, usable = _usable, }; unit.events.InvokeBefore(useEvent); _usable.events.InvokeBefore(useEvent); Check(!useEvent.isPrevented, ActionWasPreventedMessage); BeforePerform(); AfterPerform(); unit.events.InvokeAfter(useEvent); _usable.events.InvokeAfter(useEvent); EndIt(); } protected override void OnEndIt() { } protected override void OnCancelIt() { } } }