Ясно, спасибо за объяснения. Мой пример, D3A1 имеет в своём составе части D3, и в фрагменте кода отвечающем за повреждения D3 тоже встречается.
Код:
} else if (string.startsWith("xxspar")) {
if ((string.endsWith("t1") || string.endsWith("t2")
|| string.endsWith("t3") || string.endsWith("t4"))
&& chunkDamageVisible("Tail1") > 2
&& getEnergyPastArmor((3.5F
/ (float) Math.sqrt(v1.y * v1.y
+ v1.z * v1.z)),
shot) > 0.0F) {
debugprintln(this, "*** Tail1 Spars Broken in Half..");
nextDMGLevels(1, 2, "Tail1_D3", shot.initiator);
}
if ((string.endsWith("li1") || string.endsWith("li2")
|| string.endsWith("li3") || string.endsWith("li4"))
&& chunkDamageVisible("WingLIn") > 2
&& getEnergyPastArmor(3.5F * World.Rnd().nextFloat(1.0F,
1.2F),
shot) > 0.0F) {
debugprintln(this, "*** WingLIn Spars Damaged..");
nextDMGLevels(1, 2, "WingLIn_D3", shot.initiator);
}
if ((string.endsWith("ri1") || string.endsWith("ri2")
|| string.endsWith("ri3") || string.endsWith("ri4"))
&& chunkDamageVisible("WingRIn") > 2
&& getEnergyPastArmor(3.5F * World.Rnd().nextFloat(1.0F,
1.2F),
shot) > 0.0F) {
debugprintln(this, "*** WingRIn Spars Damaged..");
nextDMGLevels(1, 2, "WingRIn_D3", shot.initiator);
}
if ((string.endsWith("lm1") || string.endsWith("lm2")
|| string.endsWith("lm3") || string.endsWith("lm4"))
&& chunkDamageVisible("WingLMid") > 2
&& getEnergyPastArmor(3.5F * World.Rnd().nextFloat(1.0F,
1.2F),
shot) > 0.0F) {
debugprintln(this, "*** WingLMid Spars Damaged..");
nextDMGLevels(1, 2, "WingLMid_D3", shot.initiator);
Это не все части, есть еще. Попробую сделать все по образцу "Вел", не получится, уберу все D3 и поищу коды без этих частей.