Public feed
#529305
public static void setArmorWastage(L2Character attacker, L2PcInstance target, double damage, boolean shield)
{
List<ArmorPart> parts = new FastList<ArmorPart>();
List<StandardArmorPart> notUsedArmorParts = new FastList<StandardArmorPart>();
double wastage = Formulas.getInstance().calcArmorWastage(attacker, target, damage, shield);
double completePercent = 0;
for (StandardArmorPart armorPart : StandardArmorPart.values())
{
if (armorPart.getShield() == shield)
{
L2ItemInstance item = target.getInventory().getPaperdollItem(armorPart.getSlot());
if (item != null)
{
ArmorPart armor = new ArmorPart(armorPart, item);
parts.add(armor);
completePercent += armorPart.getPercent();
}
}
}
for (StandardArmorPart armorPart : StandardArmorPart.values())
{
if (armorPart.getShield() == shield && !contains(parts, armorPart))
notUsedArmorParts.add(armorPart);
}
for (StandardArmorPart stdArmorPart : notUsedArmorParts)
{
for (ArmorPart armorPart : parts)
{
L2ItemInstance item = armorPart.getItem();
if (item != null)
{
double extraWastage = (armorPart.getStdArmorPart().getPercent() / completePercent) * stdArmorPart.getPercent();
armorPart.addPercent(extraWastage);
}
}
}
for (ArmorPart armorPart : parts)
{
L2ItemInstance item = armorPart.getItem();
if (item != null)
{
item.setWastage(item.getWastage() - (armorPart.getCompletePercent() * wastage));
}
}
}