99 lines
4.4 KiB
C++
99 lines
4.4 KiB
C++
#pragma once
|
|
#include "L2ItemType.h"
|
|
#include "../StatsSet.h"
|
|
|
|
class L2ItemTemplate
|
|
{
|
|
public:
|
|
static const int TYPE1_WEAPON_RING_EARRING_NECKLACE = 0;
|
|
static const int TYPE1_SHIELD_ARMOR = 1;
|
|
static const int TYPE1_ITEM_QUESTITEM_ADENA = 4;
|
|
|
|
static const int TYPE2_WEAPON = 0;
|
|
static const int TYPE2_SHIELD_ARMOR = 1;
|
|
static const int TYPE2_ACCESSORY = 2;
|
|
static const int TYPE2_QUEST = 3;
|
|
static const int TYPE2_MONEY = 4;
|
|
static const int TYPE2_OTHER = 5;
|
|
static const int TYPE2_PET_WOLF = 6;
|
|
static const int TYPE2_PET_HATCHLING = 7;
|
|
static const int TYPE2_PET_STRIDER = 8;
|
|
static const int TYPE2_PET_BABY = 9;
|
|
static const int TYPE2_PET_EVOLVEDWOLF = 10;
|
|
|
|
protected:
|
|
//static const int crystalItemId[] = { 0, 1458, 1459, 1460, 1461, 1462, 1462, 1462 };
|
|
//static const int crystalEnchantBonusArmor[] = { 0, 11, 6, 11, 19, 25, 25, 25 };
|
|
//static const int crystalEnchantBonusWeapon[] = { 0, 90, 45, 67, 144, 250, 250, 250 };
|
|
|
|
public:
|
|
L2ItemTemplate( L2ItemType itemType, L2ItemSubType subType, StatsSet& set );
|
|
virtual ~L2ItemTemplate();
|
|
|
|
public:
|
|
static L2ItemSubType getArmorTypeByName( const char *name );
|
|
static L2ItemSubType getWeaponTypeByName( const char *name );
|
|
static L2ItemSlot getSlotByName( const char *name );
|
|
static L2ItemMaterial getMaterialByName( const char *name );
|
|
static L2ItemCrystal getCrystalTypeByName( const char *name );
|
|
|
|
public:
|
|
L2ItemType getType() const { return m_type; }
|
|
L2ItemSubType getSubType() const { return m_subType; }
|
|
bool isArmor() const { return (m_subType>=ARMOR_NONE) && (m_subType<=ARMOR_SIGIL); }
|
|
bool isWeapon() const { return (m_subType>=WEAPON_NONE) && (m_subType<=WEAPON_DUAL_DAGGER); }
|
|
bool isEtcItem() const { return (m_subType>=ETCITEM_ARROW) && (m_subType<=ETCITEM_HERB); }
|
|
int getId() const { return m_itemId; }
|
|
const wchar_t *getName() const { return (const wchar_t *)m_name; }
|
|
int getType1() const { return m_type1; }
|
|
int getType2() const { return m_type2; }
|
|
int getWeight() const { return m_weight; }
|
|
L2ItemMaterial getMaterialType() const { return m_materialType; }
|
|
L2ItemCrystal getCrystalType() const { return m_crystalType; }
|
|
int getDuration() const { return m_duration; }
|
|
int getTime() const { return m_time; }
|
|
L2ItemSlot getBodyPart() const { return m_bodyPart; }
|
|
int getPrice() const { return m_referencePrice; }
|
|
int getCrystalCount() const { return m_crystalCount; }
|
|
bool isStackable() const { return m_stackable; }
|
|
bool isCrystallizable() const { return m_crystallizable; }
|
|
bool isSellable() const { return m_sellable; }
|
|
bool isDropable() const { return m_dropable; }
|
|
bool isDestroyable() const { return m_destroyable; }
|
|
bool isTradeable() const { return m_tradeable; }
|
|
bool isCommon() const { return m_common; }
|
|
bool isHeroItem() const { return m_heroItem; }
|
|
bool isPvpItem() const { return m_pvpItem; }
|
|
|
|
protected:
|
|
L2ItemType m_type; // weapon/armor/etcitem
|
|
L2ItemSubType m_subType; // type of weapon/type of armor/type of etcitem
|
|
int m_itemId;
|
|
wchar_t *m_name;
|
|
int m_type1;
|
|
int m_type2;
|
|
int m_weight;
|
|
L2ItemMaterial m_materialType;
|
|
L2ItemCrystal m_crystalType; // default to none-grade
|
|
int m_duration;
|
|
int m_time;
|
|
L2ItemSlot m_bodyPart;
|
|
int m_referencePrice;
|
|
int m_crystalCount;
|
|
bool m_crystallizable;
|
|
bool m_stackable;
|
|
bool m_sellable;
|
|
bool m_dropable;
|
|
bool m_destroyable;
|
|
bool m_tradeable;
|
|
bool m_common;
|
|
bool m_heroItem;
|
|
bool m_pvpItem;
|
|
//protected FuncTemplate[] _funcTemplates;
|
|
//protected EffectTemplate[] _effectTemplates;
|
|
//protected L2Skill[] _skills;
|
|
//protected List <Condition> _preConditions = new FastList<Condition>();
|
|
//private static final Func[] _emptyFunctionSet = new Func[0];
|
|
//protected static final L2Effect[] _emptyEffectSet = new L2Effect[0];
|
|
};
|