Public feed #529305

Anonymous

public text v1 · immutable
Raw Edit
·published 2007-06-01 21:30 UTC
rendered paste body
	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));
			}
		}
	}