String getDebugDescription(boolean detailed) { if (size() == 0) { return "Empty FiringPlan!"; } StringBuilder description = new StringBuilder("Firing Plan for ").append(get(0).getShooter().getChassis()) .append(" at ") .append(getTarget().getDisplayName()) .append("; ").append(Integer.toString(size())) .append(" weapons fired "); if (detailed) { for (WeaponFireInfo weaponFireInfo : this) { description.append("\n\t\t").append(weaponFireInfo.getDebugDescription()); } } DecimalFormat decimalFormat = new DecimalFormat("0.00000"); description.append("\n\tTotal Expected Damage=").append(decimalFormat.format(getExpectedDamage())); description.append("\n\tTotal Expected Criticals=").append(decimalFormat.format(getExpectedCriticals())); description.append("\n\tKill Probability=").append(decimalFormat.format(getKillProbability())); description.append("\n\tUtility=").append(decimalFormat.format(getUtility())); return description.toString(); }
modifier += calcCommandUtility(firingPlan.getTarget()); modifier += calcStrategicBuildingTargetUtility(firingPlan.getTarget()); modifier += calcPriorityUnitTargetUtility(firingPlan.getTarget()); utility += KILL_UTILITY * firingPlan.getKillProbability(); utility *= calcTargetPotentialDamageMultiplier(firingPlan.getTarget()); utility += TARGET_HP_FRACTION_DEALT_UTILITY * calcDamageAllocationUtility(firingPlan.getTarget(), expectedDamage); utility -= calcCivilianTargetDisutility(firingPlan.getTarget()); utility *= modifier; utility -= (shooterIsAero ? OVERHEAT_DISUTILITY_AERO : OVERHEAT_DISUTILITY) * overheat; utility -= (firingPlan.getTarget() instanceof MechWarrior) ? EJECTED_PILOT_DISUTILITY : 0; firingPlan.setUtility(utility);
final Integer targetId = plan.getTarget().getTargetId(); final Double newDamage = damageMap.get(targetId) + plan.getExpectedDamage(); damageMap.replace(targetId,newDamage);
return; final Targetable target = plan.getTarget();
final Targetable target = alphaStrike.getTarget();