protected float getArmorValueFor(ItemStack stack, EnumRestriction restrict) { float enhance = 0; if (stack.doesStackHave(Enchantments.ENHANCEMENT)) { foreach (Enchantment en in stack.enchants) { if (en == Enchantments.ENHANCEMENT) { enhance += 0.05f; } } } AidType p = stack.getAllAids(); float best = 0; for (int i = 1; i < 32; i *= 2) { float a = getArmorValue((p & (AidType)i), restrict); if (a > best) { best = a; } } if ((restrict ^ EnumRestriction.MAGIC) == 0) { enhance = 0; } if ((restrict ^ EnumRestriction.SHIELD) == 0) { enhance /= 5; } return((best > 0)?enhance + best:0); }
protected float getArmorValue(AidType type, EnumRestriction restrict) { switch (type) { case AidType.HEAVY_ARMOR: return((restrict & EnumRestriction.ARMOR) > 0 ? 0.3f : 0); case AidType.MEDIUM_ARMOR: return((restrict & EnumRestriction.ARMOR) > 0 ? 0.2f : 0); case AidType.LIGHT_ARMOR: return((restrict & EnumRestriction.ARMOR) > 0 ? 0.1f : 0); case AidType.LIGHT_SHIELD: return((restrict & EnumRestriction.SHIELD) > 0 ? 0.05f : 0); case AidType.HEAVY_SHIELD: return((restrict & EnumRestriction.SHIELD) > 0 ? 0.1f : 0); case AidType.BARKSKIN: return((restrict & EnumRestriction.MAGIC) > 0 ? 0.1f : 0); } return(0); }