#pragma once //#include "SUIWnd.h" class SInventorySlot; class SUIDisplayInfo; class KUIControlGauge; namespace{ enum{ MODE_ALL, MODE_STAT, MODE_ITEM, MODE_REGEN, }; }; class SUICreaturePageWnd : public SUIWnd { public: SUICreaturePageWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo ); virtual bool InitControls( KPoint kPos ); virtual bool InitData( bool bReload = false ); virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam ); virtual void ProcMsgAtStatic( SGameMessage* pMsg ); virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true ); virtual void OnRefresh( SGameMessage* pMsg ); // operators private: void RefreshHPMP( AR_HANDLE hCreature ); void RefreshHP( int nHP, int nMaxHP ); void RefreshMP( int nMP, int nMaxMP ); void RefreshAddInfo( const char * pControlName, int nValue ); // 생성 =================== void CreateTab(); void InitValue(); // 해당 컨트롤에 값 넣어준다 ==== void SetValue( std::string strName, int nValue, bool bPercent = false ); std::string GetValue( int nValue, bool bPer = false ); void SetGauge( class KUIControlGauge* pGauge, __int64 nCur, __int64 nMax ); // 업데이트 ===================== void RefreshInfo( int nMode = MODE_ALL, AR_HANDLE hCreature = 0 ); void RefreshCreatureName( AR_HANDLE hCreature ); void RefreshCreatureClass( AR_HANDLE hCreature ); void RefreshCreaturerRank( AR_HANDLE hCreature ); void RefreshCreaturerOverbreed( AR_HANDLE hCreature); void RefreshCreaturerEvolutionFormIcon( AR_HANDLE hCreature); void RefreshCreatureFace( AR_HANDLE hCreature ); void RefreshCreatureLevel( AR_HANDLE hCreature ); void RefreshCreatureExp( AR_HANDLE hCreature ); void RefreshCreatureJP( AR_HANDLE hCreature ); void RefreshStat( AR_HANDLE hCreature ); void RefreshItemStat( AR_HANDLE hCreature ); void RefreshParameter( AR_HANDLE hCreature ); void RefreshItemParameter( AR_HANDLE hCreature ); void RefreshRegen( bool bHP, int nPer, int nPoint, AR_HANDLE hCreature ); void RefreshCreatureStat( AR_HANDLE hCreature ); // 스킬/파라미터 전환 ============== void RefreshTab(); void RefreshDetailWnd(); private: SUIDisplayInfo* m_pDisplayInfo; bool m_bShowDetailWnd; KUIControlStatic* m_pOverBreed; // 오버 브리드 컨트롤 KUIControlStatic* m_pOverBreedIcon; // 오버 브리드 아이콘 KUIControlIconStatic* m_pEvolutionRankIcon; // 진화 등급 아이콘 std::string m_strOverBreedPropertyTag; // 오버브리드 속성 태그 ,.. }; /// 디테일 class SUIDetailCreaturePageWnd : public SUIWnd { public: SUIDetailCreaturePageWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo ) : SUIWnd( pGameManager ) , m_pDisplayInfo( pDisplayInfo ) { } virtual ~SUIDetailCreaturePageWnd(); virtual bool InitControls( KPoint kPos ); virtual bool InitData( bool bReload = false ); virtual void ProcMsgAtStatic( SGameMessage* pMsg ); virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true ); // operators private: // 장착 아이템 ====================== void RefreshCreatureItemSlots(); void EnableCreatureItemSlots( int nPos = 0, bool bEnable = false, bool bAll = false ); void InitValue(); void SetValue( char const* strName, int nValue, bool bPercent = false ); void SetItemValue( char const* strName, char const* strSignName, int nValue, bool bPercent = false ); void SetItemSignValue(char const* strName, int nValue); void RefreshInfo(AR_HANDLE hCreature); void RefreshParameter(AR_HANDLE hCreature); void RefreshItemParameter(AR_HANDLE hCreature); // 2010.05.10 크리쳐 강화 정보 업데이트 - prodongi void refreshCreatureEnhance(); private: struct SItemDurability { SItemDurability() { pGaugeBase = NULL; pGauge = NULL; pIcon = NULL; } KUIControlStatic* pGauge; // Durability Gauge KUIControlStatic* pGaugeBase; // Durability Base KUIControlMultiIcon* pIcon; // Icon }; enum DURABILITY { ITEM0 = 0, ITEM1, ITEM2, ITEM3, ITEM4, MAX = 5 }; // attribute private: SUIDisplayInfo* m_pDisplayInfo; float m_fGaugeWidth; SItemDurability m_sCreatureCardDurability; std::vector< SItemDurability* > m_vcDurability; };