Files
Sun1602/Server/Common/FatigueOptionParser.h
T
2022-10-26 12:25:11 +08:00

73 lines
1.8 KiB
C++

#pragma once
#include <Singleton.h>
#include <map>
struct _FATIGUE_COMMON
{
BOOL m_bUse;
BYTE m_byTypeCount;
BYTE m_byInitType;
WORD m_wCheckCycle;
};
struct _FATIGUE_APPLY
{
BOOL m_bVillageTime;
BOOL m_bLobbyTime;
BOOL m_bSuperMaster;
BOOL m_bDeadTime;
BOOLEAN m_bInSSQField;
};
struct _FATIGUE_TYPE
{
BYTE m_byType;
int m_nStartTime;
int m_nEndTime;
WORD m_wMsgInterval;
BYTE m_byItemDropRatio;
BYTE m_byExpRatio;
BOOL m_bItemPickUp;
BYTE m_bySharedItemPickupRatio;
BYTE m_bySharedHeimPickupRatio;
BOOL m_bItemReward;
BYTE m_byHeimRewardRatio;
BOOL m_byExpRewardRatio;
};
typedef STLX_MAP<BYTE, _FATIGUE_TYPE*> FATIGUE_TYPE_MAP;
typedef FATIGUE_TYPE_MAP::iterator FATIGUE_TYPE_MAP_ITER;
class FatigueOptionParser : public util::Singleton<FatigueOptionParser>, public IParser
{
public:
FatigueOptionParser(void);
~FatigueOptionParser(void);
private:
_FATIGUE_COMMON m_FatigueCommon;
_FATIGUE_APPLY m_FatigueApply;
FATIGUE_TYPE_MAP m_mapFatigueType;
public:
BOOL IsUse(){ return m_FatigueCommon.m_bUse; }
WORD GetCheckCycle(){ return m_FatigueCommon.m_wCheckCycle; }
BYTE GetInitType(){ return m_FatigueCommon.m_byInitType; }
BOOL ApplyVillageTime(){ return m_FatigueApply.m_bVillageTime; }
BOOL ApplyLobbyTime(){ return m_FatigueApply.m_bLobbyTime; }
BOOL ApplySuperMaster(){ return m_FatigueApply.m_bSuperMaster; }
BOOL ApplyDeadTime(){ return m_FatigueApply.m_bDeadTime; }
BOOLEAN ApplyInSSQField() { return m_FatigueApply.m_bInSSQField; }
int GetMsgInterval( int nPlayTime );
_FATIGUE_TYPE* GetFatigueTypeFromTime( int nPlayTime );
_FATIGUE_TYPE* GetFatigueType( BYTE byType );
public:
virtual BOOL LoadScript( eSCRIPT_CODE ScriptCode, BOOL bReload );
BOOL _Load( BOOL bReload );
virtual VOID Release();
};