private static void PushEventsFromAIDecision(Entity p_entity, EventQueue p_eventQueue, ref AIDecisionTreeChoice p_aiDecision) { for (int i = 0; i < p_aiDecision.DecisionNodesChoiceOrdered.Length; i++) { ADecisionNode l_decisionNode = p_aiDecision.DecisionNodesChoiceOrdered[i]; switch (l_decisionNode) { // Push to the event queue the will of moving along a path case MoveToNavigationNodeNode l_moveToNavigationNode: { EventBuilder.moveToNavigationNode(p_entity, p_eventQueue, l_moveToNavigationNode.NavigationPath); } break; case AttackNode l_attackNode: { for (int j = 0; j < l_attackNode.NumberOfAttacks; j++) { EventBuilder.attackEvent(p_entity, p_eventQueue, l_attackNode.SourceEntity, l_attackNode.TargetEntity, l_attackNode.Attack); } } break; } } }