#pragma once #include "Item.h" class EnchantmentInstance; class EnchantedBookItem : public Item { public: static const wstring TAG_STORED_ENCHANTMENTS; EnchantedBookItem(int id); bool isFoil(std::shared_ptr itemInstance); bool isEnchantable(std::shared_ptr itemInstance); const Rarity *getRarity(std::shared_ptr itemInstance); ListTag *getEnchantments(std::shared_ptr item); void appendHoverText(std::shared_ptr itemInstance, std::shared_ptr player, vector *lines, bool advanced, vector &unformattedStrings); void addEnchantment(std::shared_ptr item, EnchantmentInstance *enchantment); std::shared_ptr createForEnchantment(EnchantmentInstance *enchant); void createForEnchantment(Enchantment *enchant, vector > *items); std::shared_ptr createForRandomLoot(Random *random); WeighedTreasure *createForRandomTreasure(Random *random); WeighedTreasure *createForRandomTreasure(Random *random, int minCount, int maxCount, int weight); };