45 lines
797 B
C++
45 lines
797 B
C++
#pragma once
|
|
|
|
namespace MetaData
|
|
{
|
|
struct Skill;
|
|
}
|
|
|
|
namespace cs
|
|
{
|
|
class MFSkill;
|
|
}
|
|
|
|
struct xtimer_list;
|
|
class Creature;
|
|
class Skill
|
|
{
|
|
public:
|
|
Creature* owner = nullptr;
|
|
MetaData::Skill* meta = nullptr;
|
|
long long last_use_frameno = 0;
|
|
a8::XTimerAttacher xtimer_attacher;
|
|
int force_use_times = 0;
|
|
|
|
void Initialzie();
|
|
int GetCd();
|
|
int GetLeftTime();
|
|
int GetPassedTime();
|
|
int GetCurrTimes();
|
|
int GetMaxTimes();
|
|
void DecTimes();
|
|
void FillMFSkill(cs::MFSkill* skill_pb);
|
|
void ResetSkillCd();
|
|
void Accelerate(int time);
|
|
void LockCastPhase();
|
|
|
|
void ClearPassiveSkillBuff();
|
|
void AddPassiveSkillBuff();
|
|
|
|
private:
|
|
void NotifySkillState();
|
|
private:
|
|
int curr_times_ = 0;
|
|
xtimer_list* inc_times_timer_ = nullptr;
|
|
};
|