12345678910111213141516171819202122232425262728293031323334353637383940 |
- #pragma once
- #include <Text.h>
- #include <JSON.h>
- #include <Trie.h>
- #include <Writer.h>
- #include "Effect.h"
- #include "StaticRegistry.h"
- class Item;
- class ItemStack;
- class ItemSkill;
- class ItemSkillLevelUpRule;
- class ItemType : public virtual Framework::ReferenceCounter
- {
- protected:
- const int id;
- ItemSkillLevelUpRule *levelUpRule;
- const ItemType *zBrokenType;
- ItemType( int id, ItemSkillLevelUpRule *levelUpRule, const ItemType *zBrokenType );
- virtual void loadSuperItem( Item *zItem, Framework::StreamReader *zReader ) const;
- virtual void saveSuperItem( const Item *zItem, Framework::StreamWriter *zWriter ) const;
- public:
- ~ItemType();
- int getId() const;
- const ItemType *zBrokenItemType() const;
- virtual Item *createItem() const = 0;
- virtual ItemStack *createItemStack( int size ) const;
- virtual ItemSkill *createDefaultItemSkill() const;
- virtual void levelUpItemSkill( ItemSkill *zSkill ) const;
- virtual Item *loadItem( Framework::StreamReader *zReader ) const;
- virtual void saveItem( const Item *zItem, Framework::StreamWriter *zWriter ) const;
- virtual Item *cloneItem( Item *zItem ) const;
- };
|