コード例 #1
0
        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;
                }
            }
        }