Ejemplo n.º 1
0
 private void SetUnitCombatStates(ABATower tower)
 {
     foreach (Unit unit in tower.units)
     {
         if (unit.IsChasingState())
         {
             float distance = Vector2.Distance(unit.transform.position, unit.unitFoe.transform.position);
             if (distance < combatDistanceThreshold)
             {
                 unit.SetCombatState();
                 unit.unitFoe.SetCombatState();
                 DoCombatRound(unit, unit.unitFoe, 1);
             }
         }
     }
 }
Ejemplo n.º 2
0
        private void ProcessAbaUnit(Unit unit, ABATower tower)
        {
            if (unit.IsRoamingState())
            {
                // Find the closest enemy who is not engaged
                var enemy = tower.FindClosestRoamingEnemy(unit, out bool isFound);

                if (!isFound)
                {
                    return;
                }

                unit.SetChasingState(enemy);
                enemy.SetChasingState(unit);
            }
        }