public class SSArmorDurabilityCalc {
private static float MAX_HULL = 20000;
private static float MAX_ARMOR = 2325;
private static float DAMAGE = 100;
private static float hull = MAX_HULL;
private static float armor = MAX_ARMOR;
public static void main(String args[]) {
float count = 0;
while (hull > 0) {
float dam = DAMAGE * (DAMAGE / (DAMAGE + Math.max(armor, MAX_ARMOR * 0.05f)));
dam = Math.max(dam, DAMAGE * 0.15f);
if (armor > 0) armor -= dam;
else hull -= dam;
count++;
}
System.out.println(count + " shots");
}
}
Armor both has a minimum percentage that will always apply, and a minimum damage (percentage?) that it will always let through, so the latter may throw off your numbers.
I reverse engineered some of it, based on what has been shared here on the forum over the years. I didn't bother to account for armor cells, so it always comes back with a lower number needed to destroy the target than actually required, assuming no skills. Other than that it is accurate - I have counted shots in-game to confirm it.SpoilerCode: javapublic class SSArmorDurabilityCalc {
private static float MAX_HULL = 20000;
private static float MAX_ARMOR = 2325;
private static float DAMAGE = 100;
private static float hull = MAX_HULL;
private static float armor = MAX_ARMOR;
public static void main(String args[]) {
float count = 0;
while (hull > 0) {
float dam = DAMAGE * (DAMAGE / (DAMAGE + Math.max(armor, MAX_ARMOR * 0.05f)));
dam = Math.max(dam, DAMAGE * 0.15f);
if (armor > 0) armor -= dam;
else hull -= dam;
count++;
}
System.out.println(count + " shots");
}
}[close]