protected void timeBasedActionAddActionToManager(ITimeBasedAction actionToAdd) { if (timeBasedActionsManager == null) throw new NullReferenceException("timeBasedActionsManager"); timeBasedActionsManager.AddAction(actionToAdd); }
public void TimeBasedActionSetExecuted(ITimeBasedAction actionToExecute) { // Only one action can be executed at any time TimeBasedActionCancelExecuted(); executedTimeBasedAction = actionToExecute; // Add action to manager (manager takes care of duplicated adds) timeBasedActionAddActionToManager(actionToExecute); }
public void TimeBasedActionRemoveAffecting(ITimeBasedAction actionToRemove) { bool actionRemoved = affectingTimeBasedActions.Remove(actionToRemove); // Additional handling for attack action if (actionRemoved && (actionToRemove is AttackTimeBasedAction)) attackersCount--; // Failsafe if (attackersCount < 0) throw new InvalidOperationException( "Attacker count less than 0 for " + Name + "(" + EntityID + ")"); }
public void TimeBasedActionRemoveExecuted() { executedTimeBasedAction = null; }
public void TimeBasedActionAddAffecting(ITimeBasedAction actionToAdd) { affectingTimeBasedActions.Add(actionToAdd); // Additional handling for attack action if (actionToAdd is AttackTimeBasedAction) attackersCount++; }