#pragma once #include "Item.h" class EnchantmentInstance; class EnchantedBookItem : public Item { public: static const std::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, std::vector* lines, bool advanced); void addEnchantment(std::shared_ptr item, EnchantmentInstance* enchantment); std::shared_ptr createForEnchantment( EnchantmentInstance* enchant); void createForEnchantment( Enchantment* enchant, std::vector >* items); std::shared_ptr createForRandomLoot(Random* random); WeighedTreasure* createForRandomTreasure(Random* random); WeighedTreasure* createForRandomTreasure(Random* random, int minCount, int maxCount, int weight); };