diff options
Diffstat (limited to 'Minecraft.World/DigDurabilityEnchantment.cpp')
| -rw-r--r-- | Minecraft.World/DigDurabilityEnchantment.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Minecraft.World/DigDurabilityEnchantment.cpp b/Minecraft.World/DigDurabilityEnchantment.cpp new file mode 100644 index 00000000..f2ef1656 --- /dev/null +++ b/Minecraft.World/DigDurabilityEnchantment.cpp @@ -0,0 +1,36 @@ +#include "stdafx.h" +#include "net.minecraft.world.item.h" +#include "DigDurabilityEnchantment.h" + +DigDurabilityEnchantment::DigDurabilityEnchantment(int id, int frequency) : Enchantment(id, frequency, EnchantmentCategory::digger) +{ + setDescriptionId(IDS_ENCHANTMENT_DURABILITY); +} + +int DigDurabilityEnchantment::getMinCost(int level) +{ + return 5 + (level - 1) * 8; +} + +int DigDurabilityEnchantment::getMaxCost(int level) +{ + return Enchantment::getMinCost(level) + 50; +} + +int DigDurabilityEnchantment::getMaxLevel() +{ + return 3; +} + +bool DigDurabilityEnchantment::canEnchant(shared_ptr<ItemInstance> item) +{ + if (item->isDamageableItem()) return true; + return Enchantment::canEnchant(item); +} + +bool DigDurabilityEnchantment::shouldIgnoreDurabilityDrop(shared_ptr<ItemInstance> item, int level, Random *random) +{ + ArmorItem *armor = dynamic_cast<ArmorItem *>(item->getItem()); + if (armor && random->nextFloat() < 0.6f) return false; + return random->nextInt(level + 1) > 0; +}
\ No newline at end of file |
