public void Retract() { GameActionExecutionResult result = CanRetract(); if (result.Success == false) { Debug.LogError(result.FailureReason); return; } OnRetract(); mRetractLog = ProduceRetractLogString(); mHasRetracted = true; GameLog.Get.Add(this); }
public virtual GameActionExecutionResult CanRetract() { GameActionExecutionResult result = new GameActionExecutionResult() { Success = true }; if (mHasExecuted == false) { result.Success = false; result.FailureReason = "GameActions can only be Retracted once they have been Executed!"; return(result); } if (mHasRetracted) { result.Success = false; result.FailureReason = "GameActions can only be Retracted once!"; return(result); } return(result); }
public override GameActionExecutionResult CanExecute() { GameActionExecutionResult result = base.CanExecute(); if (result.Success == false) { return(result); } if (mAgent == null) { result.FailureReason = "MeleeAttack requires an Agent"; result.Success = false; } if (Target == null) { result.FailureReason = "MeleeAttack requires a Target"; result.Success = false; } return(result); }