Example #1
0
 private void UpdateSimulationState()
 {
     foreach (ADLSequence seq in this.simulationState.currentState.seqs)
     {
         int       currentSequenceIndex = this.simulationState.sequenceIndexes[seq.name];
         ADLAction action = seq.actions[currentSequenceIndex];
         if (action is SpannableAction)
         {
             if (((SpannableAction)action).IsEnd())
             {
                 this.simulationState.IncreaseSequenceIndex(seq);
                 if (action is ADLMoveAction)
                 {
                     this.velocity = new Vector2(0, 0);
                 }
             }
         }
         else if (action is ADLToStateAction)
         {
             action.PerformAction(this);
             break;
         }
         else if (action is ADLConditionAction)
         {
             ADLConditionAction condition = (ADLConditionAction)action;
             if (condition.PerformAction(this))
             {
                 this.simulationState.IncreaseSequenceIndex(seq);
             }
             else
             {
                 this.simulationState.IncreaseSequenceIndex(seq, condition.totalActions + 1);
             }
         }
         else
         {
             this.simulationState.IncreaseSequenceIndex(seq);
         }
     }
 }