Files
Leviathan/Client/Game/game/DB/SSkillDB.h
T
2026-06-01 12:46:52 +02:00

212 lines
4.3 KiB
C++

#pragma once
//#include <string>
//#include <vector>
#include <map>
#include <tchar.h>
#include <toolkit/khash.h>
#include <mmo/ArTime.h>
#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<SkillTreeDisplay* >& skill_tree );
protected:
struct SKILL_TREE
{
~SKILL_TREE();
int nJobID;
std::vector<SkillTreeDisplay* > 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<int> & 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<UINT> 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();