/// <summary> /// Returns true if the from's units can reach the to tower /// </summary> public static bool DistanceCheck(TowerBehavior from, TowerBehavior to) { float timeAlive = Game.TowerInfo.DefaultUnitKillTime; Vector3 destinationFinalPos; if (to.GetComponent <OrbitMotion>() != null) { destinationFinalPos = to.Orbit.CalculatePositionWithMoreUpTime(timeAlive); } else { destinationFinalPos = to.transform.position; } float distance = (to.transform.position - from.transform.position).magnitude; float maxDistanceTravel = timeAlive * FactionController.GetSpeedForFaction(from.Faction); if (maxDistanceTravel < distance) { return(false); } return(true); }