/* ========================================================================== * ÆÄ ÀÏ : HeroInfoWindow.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2006-12-07 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "UIWindow.h" #include "Hero.h" /* TODO : ¸ðµç ¼Ó¼ºÄ¡µéÀ» ¿ÜºÎ¿¡¼­ ¼³Á¤ÇÒ¼ö ÀÖµµ·Ï ÇØ¾ßÇϸç, ÅØ½ºÆ®µéÀº ½ºÅ²ÅؽºÆ®¿¡¼­ °¡Á®¿Àµµ·Ï ÇÑ´Ù. ³²ÀÚ + 1 ³²ÀÚ, ±×¸®°í °¢ ¼Ó¼ºÄ¡¿¡ µû¸¥ »öº¯È­µµ ÇÊ¿äÇÏ´Ù */ enum eStateInfo_Type; enum eHeroInfoImage { eHERO_INFO_PHYSICAL_IMAGE, eHERO_INFO_MAGIC_IMAGE, eHERO_INFO_IMAGE_MAX, }; class cGauge; class cDoubleGauge; class cLabel; class cRadioButton; class cUIImage; class cUIImageFont; const int HERO_LEVEL_IMAGE_INDEX = 220; class cHeroInfoWindow : public cUIWindow { public: cHeroInfoWindow(); virtual ~cHeroInfoWindow(); virtual void Open() {} virtual void Close(); // hero ¼¼ÆÃµÈ ÈÄ¿¡ ÃʱâÈ­ÇØ¾ßÇÒ µ¥ÀÌÅÍ void InitHeroInfo(); void UpdateHeroInfo(); void UpdateHeroHPMP(); void UpdateExpSxp(); void SetEXP( double value ); /// ÇöÀç EXP ¼¼ÆÃ void SetMAXEXP( double value ); /// ÃÖ´ë EXP ¼¼ÆÃ void SetSXP( double value ); /// ÇöÀç SXP ¼¼ÆÃ void SetMAXSXP( double value ); /// ÃÖ´ë SXP ¼¼ÆÃ void SetSkillLevel( int slevel ); /// SkillLeve ¼¼ÆÃ void SetLevel( int level ); /// ·¹º§ ¼¼ÆÃ void SetClass( unsigned long job ); /// Ŭ·¡½º void SetTitle( LPCTSTR text ); /// ȣĪ void SetGuild( LPCTSTR text ); /// ±æµå void SetPosition( LPCTSTR text ); /// ±æµå Á÷À§¼ÂÆÃ /* TODO: ¿ì¼± ½ºÅ×ÀÌÅͽº Ãß°¡·®Àº »ö ±¸º°ÀÌ È®¿¬ÇϹǷΠŸÀÔÀ» º¸°í »öÀ» ¹Ù²ãÁÖµµ·Ï ÇÑ´Ù. ÀÏ¹Ý ½ºÅ×ÀÌÅͽº ¼öÄ¡´Â ÇÑ»öÀ¸·Î µ¿ÀÏÇÒ °¡´É¼ºÀÌ Å©¹Ç·Î, ½ºÅ©¸³Æ®¿¡¼­ ¼¼ÆÃÇØÁְųª, ÇÑ»öÀ¸·Î ¼¼ÆÃÇϵµ·ÏÇØ¼­ »ö ÀÎÀÚ¸¦ Áö¿ìÀÚ. */ void SetStr( int value, unsigned long color ); /// Èû void SetDex( int value, unsigned long color ); /// ¹Îø void SetCon( int value, unsigned long color ); /// ü·Â void SetInt( int value, unsigned long color ); /// Áö´É void SetWis( int value, unsigned long color ); /// ÁöÇý /// Ãß°¡·®Àº Ç×»ó »öº¯È­°¡ ÀÖÀ¸¹Ç·Î ¹Ýµå½Ã ³Ö¾îÁØ´Ù void SetPlusStr( int value, eStateInfo_Type type ); /// Èû Ãß°¡·® void SetPlusAgi( int value, eStateInfo_Type type ); /// ¹Îø Ãß°¡·® void SetPlusCon( int value, eStateInfo_Type type ); /// ü·Â Ãß°¡·® void SetPlusInt( int value, eStateInfo_Type type ); /// Áö´É Ãß°¡·® void SetPlusWis( int value, eStateInfo_Type type ); /// ÁöÇý Ãß°¡·® /// ¹°¸®¼öÄ¡¿Í ¸¶¹ý¼öÄ¡´Â ÀÚüÀûÀ¸·Î »öÀÌ º¯ÇϹǷÎ, /// ³ë¸»»óŰ¡ ÀÖ´Ù. void SetAtt( int min, int max, eStateInfo_Type type = eSTATE_NORMAL ); /// °ø°Ý·Â void SetDef( int value, eStateInfo_Type type = eSTATE_NORMAL ); /// ¹æ¾î·Â void SetHit( int value, eStateInfo_Type type = eSTATE_NORMAL ); /// ¸íÁß void SetAvoid( int value, eStateInfo_Type type = eSTATE_NORMAL ); /// ȸÇÇ void SetMag( int min, int max, eStateInfo_Type type = eSTATE_NORMAL ); /// ¸¶¹ý·Â void SetRes( int value, eStateInfo_Type type = eSTATE_NORMAL ); /// ÀúÇ×·Â void SetAttackCritical( float value, eStateInfo_Type type = eSTATE_NORMAL ); /// ¹°¸® Å©¸®Æ¼Äà void SetMagicCritical( float value, eStateInfo_Type type = eSTATE_NORMAL ); /// ¸¶¹ý Å©¸®Æ¼Äà void SetHPrecovery( float value, eStateInfo_Type type = eSTATE_NORMAL ); /// HP ȸº¹·® void SetMPrecovery( float value, eStateInfo_Type type = eSTATE_NORMAL ); /// MP ȸº¹·® void SetFast( int value, eStateInfo_Type type = eSTATE_NORMAL ); void SetHeal( int value, eStateInfo_Type type = eSTATE_NORMAL ); void SetMagDef( int value, eStateInfo_Type type = eSTATE_NORMAL ); void SetMagHit( int value, eStateInfo_Type type = eSTATE_NORMAL ); void SetPhyProtect( float value, eStateInfo_Type type = eSTATE_NORMAL ); // ¹°¸® ¹æÈ£ void SetMagProtect( float value, eStateInfo_Type type = eSTATE_NORMAL ); // ¸¶¹ý ¹æÈ£ /// ¼¼·Â ŸÀÔ void SetForceType( unsigned char type ); protected: bool OnCreate( cUINodeProperty* pproperty ); void OnCommand( cUINode* pcaller, unsigned int id ); void OnRender( cUIFontItemKeeper* pKeeper ); void OnRadioPressed( cUINode* , unsigned int ); void UpdateRect(); void OnShow(); /// ½ºÅÈ Å¸ÀÔÀ» º¸°í »öÀ» ÁöÁ¤ÇÑ´Ù unsigned long GetColorForStateType( eStateInfo_Type type ); private: /// °¢ °ÔÀÌÁö cDoubleGauge* mpHPGauge; cDoubleGauge* mpMPGauge; cGauge* mpEXPGauge; cGauge* mpSXPGauge; /// Hero ±âº»Á¤º¸ cLabel* mpName; cLabel* mpRace; cLabel* mpGender; cLabel* mpClass; cLabel* mpTitle; cLabel* mpGuild; cLabel* mpPosition; /// Á÷À§ /// ·¡¹ë ¼öÄ¡ cUIImageFont* mpLevelFont; cUIPos mLevelFontPos; cLabel* mpSkillLevel; /// ½ºÅ³ ·¹º§ /// ½ºÅ×ÀÌÅͽº cLabel* mpStr; /// Èû cLabel* mpDex; /// ¹Îø cLabel* mpCon; /// ü·Â cLabel* mpInt; /// Áö´É cLabel* mpWis; /// ÁöÇý /// ½ºÅ×ÀÌÅͽº Ãß°¡·® cLabel* mpPlusStr; /// Èû Áõ°¡ cLabel* mpPlusDex; /// ¹Îø Áõ°¡ cLabel* mpPlusCon; /// ü·Â Áõ°¡ cLabel* mpPlusInt; /// Áö´É Áõ°¡ cLabel* mpPlusWis; /// ÁöÇý Áõ°¡ /// ¹°¸®¼öÄ¡ cLabel* mpAtt; /// °ø°Ý·Â cLabel* mpDef; /// ¹æ¾î·Â cLabel* mpHit; /// ¸íÁß cLabel* mpAvoid; /// ȸÇÇ /// ¸¶¹ý¼öÄ¡ cLabel* mpMag; /// ¸¶¹ý·Â cLabel* mpRes; /// ÀúÇ×·Â cLabel* mpAttackCri; /// ¹°¸® Å©¸®Æ¼Äà cLabel* mpMagicCri; /// ¸¶¹ý Å©¸®Æ¼Äà cLabel* mpHPRecover; /// HP ȸº¹·® cLabel* mpMPRecover; /// MP ȸº¹·® cLabel* mpFast; /// À̵¿¼Óµµ cLabel* mpHeal; /// Èúȸº¹·® cLabel* mpMagDef; /// ¸¶¹ý¹æ¾î cLabel* mpMagHit; /// ¸¶¹ý¸íÁß cLabel* mpForceType; /// ¼¼·Â ŸÀÔ cLabel* mpPhyProtect; /// ¹°¸® ¹æÈ£ cLabel* mpMagProtect; /// ¸¶¹ý ¹æÈ£ cRadioButton* mpPhysicalButton; cRadioButton* mpMagicButton; cUINodeSkin* mpInfoImgSkin[eHERO_INFO_IMAGE_MAX]; cUIImage* mpInfoImg[eHERO_INFO_IMAGE_MAX]; cUINodeSkin* mpLevelPosSkin; cString mHeroLevel; };