153 lines
3.6 KiB
C++
153 lines
3.6 KiB
C++
#pragma once
|
|
|
|
#include "KUIControlNumber.h"
|
|
|
|
// 추가로 뜨는 Critical, Fail, Resist ,Perfect, MaxHeal 등 전부 이걸 Control에 추가해주는 형태로 작업
|
|
class KDamageTextProcess;
|
|
class KUIControlDamageText : public KUIControl
|
|
{
|
|
public:
|
|
KUIControlDamageText();
|
|
virtual ~KUIControlDamageText();
|
|
virtual void Process(DWORD dwTime);
|
|
virtual void Render(KViewportObject * pViewport, bool isFront = false );
|
|
virtual void OnAlphaChangeNotify(float fAlpha);
|
|
|
|
/// 외부 알파는 보존하고 바꿔줘야 하므로
|
|
void ChangePrimitiveAlpha(float fAlpha);
|
|
void ChangeScale(float fScaleFactor);
|
|
|
|
void AddProcess(KDamageTextProcess* pProcess);
|
|
|
|
private:
|
|
std::vector<KDamageTextProcess*> m_vtProcess;
|
|
};
|
|
|
|
class KUIControlNumberEffectBase : public KUIControlNumber
|
|
{
|
|
public:
|
|
KUIControlNumberEffectBase(const DWORD* pStateTime, int beginState, int maxState);
|
|
virtual void OnAlphaChangeNotify(float fAlpha);
|
|
|
|
void SetActivateChildAll(bool bActive);
|
|
protected:
|
|
void _CheckNextState(DWORD dwTimeDiff);
|
|
void _ChangeAlpha(float fAlpha);
|
|
void _MovePos(int x, int y);
|
|
|
|
protected:
|
|
virtual void _initControl();
|
|
void _CheckDestroy();
|
|
void _RegisterMover(KUIControl* pControl)
|
|
{
|
|
m_vtAdditionalControlMover.push_back(pControl);
|
|
}
|
|
|
|
protected:
|
|
std::vector<DWORD> m_vtStartTiemPerObject;
|
|
|
|
std::vector<KUIControl*> m_vtAdditionalControlMover; ///< Parent Control 함께 이동을 할 녀석은 이곳에 등록
|
|
|
|
int m_nMaxState;
|
|
int m_nState;
|
|
const DWORD* m_pStateTime;
|
|
KPoint m_ptOldPos;
|
|
DWORD m_dwTime;
|
|
DWORD m_dwEffectStartTime;
|
|
};
|
|
|
|
|
|
class KUIControlDamage : public KUIControlNumberEffectBase
|
|
{
|
|
public:
|
|
KUIControlDamage();
|
|
virtual ~KUIControlDamage();
|
|
|
|
virtual void Process(DWORD dwTime);
|
|
|
|
void AddDamageEtcText(LPCSTR aniName, LPCSTR perfectAni = NULL);
|
|
void AddExtraDamage(LPCSTR plusAniName, LPCSTR aniName, LPCSTR damageText);
|
|
protected:
|
|
virtual void _initControl();
|
|
|
|
void _CheckNextState(DWORD dwTimeDiff);
|
|
};
|
|
|
|
class KUIControlDamageCritical : public KUIControlNumberEffectBase
|
|
{
|
|
public:
|
|
KUIControlDamageCritical();
|
|
virtual void Process(DWORD dwTime);
|
|
virtual void OnPosChangeNofity(int XOffset, int YOffset);
|
|
|
|
void AddCriticalText(LPCSTR aniName);
|
|
void AddExtraDamage(LPCSTR plusAniName, LPCSTR aniName, LPCSTR damageText);
|
|
protected:
|
|
virtual void _initControl();
|
|
void _CheckNextState(DWORD dwTimeDiff);
|
|
|
|
protected:
|
|
std::vector<int> m_vtXPosPerObject;
|
|
};
|
|
|
|
|
|
|
|
class KUIControlHealing : public KUIControlNumberEffectBase
|
|
{
|
|
public:
|
|
KUIControlHealing();
|
|
virtual ~KUIControlHealing();
|
|
|
|
virtual void Process(DWORD dwTime);
|
|
int GetEachNumberState(size_t idx);
|
|
protected:
|
|
virtual void _CheckNextState(DWORD dwTimeDiff);
|
|
};
|
|
|
|
|
|
class KUIControlHealingMaximize : public KUIControlHealing
|
|
{
|
|
public:
|
|
KUIControlHealingMaximize();
|
|
virtual ~KUIControlHealingMaximize();
|
|
|
|
virtual void Process(DWORD dwTime);
|
|
virtual void OnPosChangeNofity(int XOffset, int YOffset);
|
|
|
|
void AddMaxHealText(LPCSTR aniName);
|
|
protected:
|
|
virtual void _initControl();
|
|
virtual void _CheckNextState(DWORD dwTimeDiff);
|
|
|
|
protected:
|
|
std::vector<int> m_vtXPosPerObject;
|
|
|
|
};
|
|
|
|
/// Miss, Block, Fail
|
|
class KUIControlDamageEtc : public KUIControl
|
|
{
|
|
public:
|
|
KUIControlDamageEtc();
|
|
virtual ~KUIControlDamageEtc();
|
|
virtual void Process(DWORD dwTime);
|
|
virtual void Render(KViewportObject * pViewport, bool isFront = false );
|
|
virtual void OnAlphaChangeNotify(float fAlpha);
|
|
|
|
void AddPerfectText(LPCSTR aniName);
|
|
void SetDelayTime(int time) { m_delayTime = time; }
|
|
private:
|
|
void _ChangeAlpha(float fAlpha);
|
|
void _MovePos(int x, int y);
|
|
void _CheckNextState(DWORD dwTimeDiff);
|
|
|
|
private:
|
|
int m_nState;
|
|
int m_delayTime;
|
|
DWORD m_dwTime;
|
|
DWORD m_dwEffectStartTime;
|
|
KPoint m_ptOldPos;
|
|
};
|
|
|
|
|