#pragma once //#include "KUIControl.h" #include "KPrimitiveSprite.h" class KUIControlSkillCastGauge : public KUIControl { public: KUIControlSkillCastGauge(); virtual ~KUIControlSkillCastGauge(); void Cast(LPCSTR skillName, DWORD castTime); void Cancel(); void DelayCast( DWORD castTime ); DWORD GetRemainTime(); DWORD GetCastTime() { return m_CastTime; } virtual void Process( DWORD dwTime ); virtual void Render(KViewportObject * pViewport, bool isFront = false ); virtual void OnPosChangeNofity(int XOffset, int YOffset); virtual void OnClipChangeNotify(const KRect& rcClipRect); protected: virtual void _initControl(); private: void _SetNextState(DWORD nextState, DWORD castTime); float _GetPercent(); private: DWORD m_CurState; DWORD m_NextState; KRect m_rcGaugeClipArea; DWORD m_StartTime; DWORD m_CastTime; DWORD m_CurTime; KTextPhrase m_SkillNamePhrase; }; ////////////////////////////////////////////////////////////////////////// /// 로비용 선택 이펙트 class KUIControlEffectGauge : public KUIControl { public: enum KEFFECTGAUGE_STATE { KEFFECTGAUGE_COLOR = 0, KEFFECTGAUGE_GRAY, KEFFECTGAUGE_MAX, }; enum { KEFFECTGAUGE_NORMAL = 0, KEFFECTGAUGE_ACTIVATE, KEFFECTGAUGE_DOWN, KEFFECTGAUGE_DISABLE, }; KUIControlEffectGauge(); virtual ~KUIControlEffectGauge(); virtual void Process( DWORD dwTime ); virtual void Render(KViewportObject * pViewport, bool isFront = false ); virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y); virtual void OnPosChangeNofity(int XOffset, int YOffset); virtual void OnClipChangeNotify(const KRect& rcClipRect); virtual void UpdateBack(); void SetWorkingTime( int nSecond ); protected: virtual void _initControl(); void updateSprite(); void _SetNextState(short nextState, DWORD castTime); DWORD m_dwButtonState; short m_nCurStep; KRect m_rcGaugeClipArea; KSpritePrimitive m_GaugeSprite[KEFFECTGAUGE_MAX]; DWORD m_StartTime; DWORD m_CastTime; DWORD m_CurTime; std::vector m_vtFrameAnimator; };