#pragma once class Player; struct _FATIGUE_TYPE; class FatigueManager { public: FatigueManager(void); ~FatigueManager(void); enum eFATIGUE_INIT_TYPE { FATIGUE_INIT_MIDNIGHT = 1, FATIGUE_INIT_OFFLINE = 2, }; private: Player * m_pPlayer; _FATIGUE_TYPE* m_pCurFatigueType; // ÇöÀç Ç÷¹ÀÌ ½Ã°£¿¡ Àû¿ëµÇ´Â FatigueType; util::Timer m_PlayingTimer; // Ç÷¹À̾îÀÇ Ç÷¹ÀÌ ½Ã°£À» ´©ÀûÇÏ´Â Ä«¿îÅÍ. int m_nSecPlayTime; // ÇöÀç À¯ÀúÀÇ ´©Àû Ç÷¹ÀÌ ½Ã°£.( ´ÜÀ§ : ÃÊ ) int m_nSecRemainMsgTime; // ¸Þ¼¼Áö¸¦ º¸³¾½Ã°£±îÁö ³²Àº ½Ã°£.( ´ÜÀ§ : ÃÊ ) BOOL m_bApplyFatigue; // °³Àκ°·Î Çǵµ·Î¸¦ Àû¿ë½ÃŰ´ÂÁö ¿©ºÎ. __PROPERTY( WORD, CurDay ); // ¿À´Ã ³¯ÀÚ. __PROPERTY( BOOL, Init ); __PROPERTY( DWORD, CurTickCount ); __PROPERTY( DWORD, PreTickCount ); public: VOID Init( Player * pPlayer ); VOID Update(); BYTE GetItemDropRatio(); BYTE GetExpRatio(); BOOL GetItemPickUp(); BYTE GetShareItemPickupRatio(); BYTE GetShareHeimPickupRatio(); //implemented by __NA_000000_20070704_FATIGUE_REWARD BOOL GetItemReward(); BYTE GetHeimRewardRatio(); BYTE GetExpRewardRatio(); BOOL IsApplyFatigue(); VOID SetApplyFatigue( BOOL bApplyFatigue ){ m_bApplyFatigue = bApplyFatigue; } _FATIGUE_TYPE* GetCurFatigueType(); int GetPlayTime(){ return m_nSecPlayTime; } private: BOOL CheckMaxPlayTime( SYSTEMTIME& sysTime ); BOOL SetDBPlayTime( INT nMinPlayTime ); VOID SetPlayTime( int nSecPlayTime ); int GetMinutePlayTime(){ return (int)(m_nSecPlayTime / 60); } //ºÐ´ÜÀ§·Î Ç÷¹ÀÌ Å¸ÀÓÀ» ±¸ÇÑ´Ù. VOID AddPlayTime( int nSecPlayTime ); void SendTimeMessage(); BYTE GetCurFatigueTypeNum(); BOOL CanApplyFatigue(); VOID InitTickCount(); DWORD GetDiffTickCount(){ return ( GetCurTickCount() - GetPreTickCount() ); } BOOL IsMsgTimeExpired(); BOOL ChangeFatigueType(); BOOL CheckAuth(); };