/* ========================================================================== * ÆÄ ÀÏ : StatusCalc_Client.h * ¸ñ Àû : ½ºÅÝ °è»ê±â Ŭ¶óÀÌ¾ðÆ® * ÀÛ ¼º ÀÚ : ¹Ú°æÈñ * ÀÛ ¼º ÀÏ : 2007-10-19 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "Status_Common.h" #include "Player_Common.h" //class cStatusScript; //class cPlayer; //struct sPlayerSkillStepInfo; enum ePLAYER_STATUS_EXT; enum eSTATUS_PLUS; //enum eSTATUSCOLORPOS; class cStatusCalc_Client { public: static cStatusCalc_Client* mpStatusCalc; public: cStatusCalc_Client(void); ~cStatusCalc_Client(void); /// Ç÷¹À̾î Àüü °è»ê - óÀ½ Á¢¼ÓÇÒ¶§¸¸ È£ÃâÇÑ´Ù. void CalcPlayerInit(); /// Ç÷¹ÀÌ¾î ½ºÅÝ1(+½ºÅÝ2) °è»ê void CalcPlayerBaseGlobal(); /// Ç÷¹ÀÌ¾î ½ºÅÝ1Plus+½ºÅÝ2Plus(+½ºÅÝ2) °è»ê void CalcPlayerExtensionGlobal(); /// hero ½ºÅÝ2 È®Àå°ªÀ» Àоî¿Â´Ù. float GetStatus2Plus( ePLAYER_STATUS_EXT status2 ); float GetStatus2Per( ePLAYER_STATUS_EXT status2 ); private: /// ½ºÅÝâ »ö»ó ¼³Á¤ void SetBaseStatusInfoType( ePLAYER_STATUS pos, float value, float totalValue ); void SetExtStatusInfoType( ePLAYER_STATUS_EXT pos, float value, float totalValue ); /// ½ºÅ³ È¿°ú¿¡¼­ ½ºÅÝ¿¡ ´õÇØÁú ¼öÄ¡¸¦ Àоî¿Í ´õÇÔ void CalcPlayerStatusSkillInfluenceAdd(); /// ½ºÅ³ ÆÐ½Ãºê¿¡¼­ ½ºÅÝ¿¡ ´õÇØÁú ¼öÄ¡¸¦ Àоî¿Í ´õÇÔ void CalcPlayerStatusSkillPassiveAdd(); ///// ¾ÆÀÌÅÛ¿¡¼­ ½ºÅÝ¿¡ ´õÇØÁú ¼öÄ¡¸¦ Àоî¿Í ´õÇÔ void CalcPlayerStatusItemAdd(); void CalcPlayerStatusItemSkillAddDetail( eSTATUS_PLUS statusType, float value, bool passive ); /// Ç÷¹ÀÌ¾î ±âº»½ºÅÝ ºÎÅÍ ÀÌÈÄ ½ºÅÝÀÌ º¯ÇÒ¶§ »ç¿ë - ±âº»È®À彺ÅÝ(+)°è»ê ¾ÈÇÔ void CalcPlayerBaseOnly(); /// Ç÷¹ÀÌ¾î ±âº»È®À彺ÅÝ(+) ºÎÅÍ ÀÌÈÄ ½ºÅÝÀÌ º¯ÇÒ¶§ »ç¿ë - ±âº» ½ºÅÝ °è»ê ¾ÈÇÔ void CalcPlayerExtensionOnly(); /// ºÎ¸ð Á÷¾÷±º Äڵ带 Àоî¿È unsigned long GetParantJob( unsigned long job, unsigned int jobPos ); /// Ç÷¹ÀÌ¾î ±âº» ½ºÅÝ °è»ê void CalcPlayerStatus(); /// È®Àå ½ºÅÝ °è»ê void CalcPlayerExtStatus( ePLAYER_STATUS_EXT statusExt ); /// Ç÷¹ÀÌ¾î ½ºÅÝ °è»ê ¿ÜºÎ ÀÎÅÍÆäÀ̽ºÀÇ °ø¿ëÇ׸ñ void CalcPlayerGlobal(); private: float mBaseStatus[ePLAYER_STATUS_LEVEL]; /// 070207 PKH ±âº» ½ºÅÝ(Èû,¹Îø,ü·Â,Áö´É,ÁöÇý) float mBaseStatusPlus[ePLAYER_STATUS_LEVEL]; /// 070207 PKH ±âº» ½ºÅÝ (Èû,¹Îø,ü·Â,Áö´É,ÁöÇý)(+) float mBaseStatusPer[ePLAYER_STATUS_LEVEL]; /// ±âº» ½ºÅÈ (Èû,¹Îø,ü·Â,Áö´É,ÁöÇý)(%) float mExtStatus[ePLAYER_STATUS_EXT_MAX]; /// 070207 PKH È®Àå ½ºÅÝ float mExtStatusPlus[ePLAYER_STATUS_EXT_MAX]; /// 070207 PKH È®Àå ½ºÅÝ¿¡ ´õÇØÁú °ª float mExtStatusPer[ePLAYER_STATUS_EXT_MAX]; /// 070207 PKH È®Àå ½ºÅÝ¿¡ È®·ü·Î °öÇØÁú °ª float mExtStatusLast[ePLAYER_STATUS_EXT_MAX]; /// 070522 PKH È®Àå ½ºÅÝ ÃÖÁ¾°ª /// 070510 PKH ½ºÅÝ¿Ü ½ºÅÝ float mExtAddStatus[ePLAYER_STATUS_EXT_ADD_MAX]; typedef tPointerHashMap cPointerHashMap; typedef tHashSet cHashSet; }; #define STATUSCALC cStatusCalc_Client::mpStatusCalc