Exemplo n.º 1
0
    void UpdateEnemy(EnemyQuirk quirk, List <Unit> players)
    {
        Unit enemyUnit = quirk.unit;

        Unit.ManagerState.AiData aiData = enemyUnit.manState.aiData;

        switch (aiData.state)
        {
        case Unit.AiState.Idle:
            Unit closestPlayer = unitMan.GetClosestUnit(enemyUnit, players);
            aiData.closestTarget = closestPlayer;

            if (closestPlayer == null)
            {
                break;
            }

            if (unitMan.DistanceBetweenUnits(enemyUnit, closestPlayer) <= quirk.detectRange)
            {
                aiData.state         = Unit.AiState.Chasing;
                aiData.chasingTarget = closestPlayer;
            }
            break;

        case Unit.AiState.Chasing:
            if (unitMan.DistanceBetweenUnits(enemyUnit, aiData.chasingTarget) > quirk.chaseRange)
            {
                aiData.state = Unit.AiState.Idle;
            }
            break;
        }
    }
Exemplo n.º 2
0
 void UpdateEnemies(List <EnemyQuirk> enemies, List <Unit> players)
 {
     for (int i = 0; i < enemies.Count; i++)
     {
         EnemyQuirk quirk = enemies[i];
         UpdateEnemy(quirk, players);
     }
 }