return Math.sqrt(t2)*this.strategy.target;
  public double getThreatUtility(double threat, int arc) {    double t1 = threat;    double t2 = threat;    //relative bonus for weak side    if (armor_percent[arc] < .75) {      t1 *= 1.1;    } else if (armor_percent[arc] < .5) {      t1 *= 1.3;    } else if (armor_percent[arc] < .25) {      t1 *= 1.5;    }    //absolute bonus for damage that is likely to do critical    if (t2 + this.expected_damage[arc] > this.armor_health[arc]){      //damage saturation check, only if we have more mechs       if ((t2 + this.expected_damage[0] + this.expected_damage[1] + this.expected_damage[2] + this.expected_damage[3] > 3*(this.avg_armor + this.avg_iarmor)       || (this.entity.isProne() && this.base_psr_odds < .1 && !this.entity.isImmobile())) && !(this.tb.NumFriends > this.tb.NumEnemies)      ) {        if (this.tb.NumEnemies == 1) {          return t2 *= 2;        }        return Math.sqrt(t2)*this.strategy.target;      }      t2 *= 1.5;    } else if (this.expected_damage[arc] > 0) {      t2 *= 1.3; //for clustering damage    } else if (this.hasTakenDamage) {      t2 *= 1.1; //for coordinating fire    }    return Math.max(t1,t2)*this.strategy.target;  }