Files
Leviathan/Client/Game/engine/Ui/Controls/KUIControlSkillCastGauge.h
T
2026-06-01 12:46:52 +02:00

99 lines
2.1 KiB
C++

#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<class KSimpleSpriteAnimator*> m_vtFrameAnimator;
};