public double calcArmorWastage(L2Character attacker, L2PcInstance target, double mobDamage, boolean shield) { double wastage = 0; double armorShield = shield ? 1 : 0; int[] slots = { L2Item.SLOT_HEAD, L2Item.SLOT_LEGS, L2Item.SLOT_FEET, L2Item.SLOT_GLOVES, L2Item.SLOT_FULL_ARMOR, L2Item.SLOT_L_HAND }; for (int slotId = 0; slotId < slots.length; slotId++) { L2ItemInstance item = target.getInventory().getPaperdollItem(slots[slotId]); if (item != null) { if (slots[slotId] == L2Item.SLOT_L_HAND && item.getItemType() != L2WeaponType.NONE) { continue; } L2ItemInstance weaponItem = attacker.getActiveWeaponInstance(); double weaponMaterial = 0; double weaponTyp = 0; if (weaponItem != null) { weaponMaterial = Util.getMaterialValue(weaponItem); weaponTyp = Util.getWeaponType(weaponItem); } double armorMaterial = Util.getMaterialValue(item); wastage += (item.getPDef() * (0.1 + armorShield + armorMaterial)) / (mobDamage * (weaponMaterial + weaponTyp)); } } return wastage; }