bool CBuilderCAI::TargetInterceptable(const CUnit* unit, float targetSpeed) { // if the target is moving away at a higher speed than we can manage, there is little point in chasing it const float maxSpeed = owner->moveType->GetMaxSpeed(); if (targetSpeed <= maxSpeed) return true; const float3 unitToPos = unit->pos - owner->pos; return (unitToPos.dot2D(unit->speed) <= unitToPos.Length2D() * maxSpeed); }