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); } } } }
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); } }