#pragma once //#include //#include #include #include #include #include #include "SkillBaseFile.h" using std::map; using std::set; using std::vector; using std::string; ////////////////////////////////////////////////////////////////////////// class SSkillDB { public: SSkillDB(); ~SSkillDB(); long GetCastingTime( int nSkillID, int nSkill_lv ); /// 2011.05.27 AR_TIME -> long - prodongi bool IsNeedTarget( int nSkillID ); struct SkillBaseEx* GetSkillData( int nSkillID ); int GetToolTipID( int nSkillID ); int GetStringID( int nSkillID ); int GetIconID( int nSkillID ); const char * GetIconName( int nSkillID ); protected: void Init(); void Destroy(); void Load(); KHash< SkillBaseEx*, hashPr_mod_int> m_hashSkill; private: public: static SSkillDB* m_pThis; }; SSkillDB & GetSkillDB(); ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// class SSkillTreeDisplayDB { public: SSkillTreeDisplayDB(); ~SSkillTreeDisplayDB(); void GetSkillTree( int nJobID, std::vector& skill_tree ); protected: struct SKILL_TREE { ~SKILL_TREE(); int nJobID; std::vector job_tree_list; }; void Init(); void Destroy(); void Load(); void addTreeData( const SkillTreeDisplay* pData ); std::vector< SKILL_TREE* > tree_list; }; SSkillTreeDisplayDB & GetSkillTreeDisplayDB(); //----------------------------------------------------------------------------------------------------------------- // 스킬 트리 DB Struct //----------------------------------------------------------------------------------------------------------------- class SSkillTreeDB { public: SSkillTreeDB( void ); ~SSkillTreeDB( void ); const std::vector< SkillTreeEx >* GetSkillTreeData( int nSkillTree ); int GetSkillMaxLevel( int nSkillTree, int nSkillId ); void GetJobList_hasSkill( int nSkillID, std::vector & jobList ); protected: void Init( void ); void Load( void ); protected: std::map< int, std::vector< SkillTreeEx >* > m_mapSkillTreeList; }; SSkillTreeDB & GetSkillTreeDB(); class SSkillStageDB { protected: KHash< _SKILL_FX*, hashPr_mod_int> m_hashSkillFx; public: void Init(); void Load(); void Destroy(); public: _SKILL_FX* GetSkillStageData( int nSkillID); public: SSkillStageDB(); ~SSkillStageDB(); }; SSkillStageDB & GetSkillStageDB(); ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// class SFieldTypeMaterialDB { protected: KHash< _FIELD_TYPE_MATERIAL*, hashPr_mod_int> m_hashFieldTypeMaterial; protected: void Init(); void Destroy(); void Load(); public: SFieldTypeMaterialDB(); ~SFieldTypeMaterialDB(); }; SFieldTypeMaterialDB & GetFieldTypeMaterialDB(); //----------------------------------------------------------------------------------------------------------------- // 소환수 랜덤 스킬 DB Struct //----------------------------------------------------------------------------------------------------------------- namespace nsSummonRandomSkillDB { typedef struct stSummonRandomSkill { vector vecSkillID; stSummonRandomSkill() { } ~stSummonRandomSkill() { vecSkillID.clear(); } }SUMMON_RANDOM_SKILL_ID, *PSUMMON_RANDOM_SKILL_ID; }; using namespace nsSummonRandomSkillDB; //----------------------------------------------------------------------------------------------------------------- // 소환수 랜덤 스킬 DB Class //----------------------------------------------------------------------------------------------------------------- class SSummonRandomSkillDB { public: SSummonRandomSkillDB( void ); ~SSummonRandomSkillDB( void ); typedef map< UINT, PSUMMON_RANDOM_SKILL_ID > SUMMON_RANDOM_SKILL_LIST; typedef map< UINT, PSUMMON_RANDOM_SKILL_ID >::iterator SUMMON_RANDOM_SKILL_ITER; const SUMMON_RANDOM_SKILL_ID* const GetRandomSkillIDList( const int nGroupID ); private: bool Load( void ); void Destroy( void ); private: SUMMON_RANDOM_SKILL_LIST m_mapSummonRandomSkill; }; SSummonRandomSkillDB & GetSummonRandomSkillDB();