aozhiwei b52a2f4778 1
2021-05-06 15:11:29 +08:00

55 lines
1.2 KiB
C++

#pragma once
namespace MetaData
{
struct Player;
struct Equip;
struct Dress;
struct Skill;
struct Tank;
struct Buff;
}
namespace cs
{
class MFBuff;
}
class Human;
class Creature;
class Buff
{
public:
Creature* owner = nullptr;
MetaData::Buff* meta = nullptr;
MetaData::Skill* skill_meta = nullptr;
a8::XTimerAttacher xtimer_attacher;
long long add_frameno = 0;
int skill_lv = 0;
int GetLeftTime();
int GetLastingTime();
bool NeedSync(Human* hum);
void FillMFBuff(cs::MFBuff* buff_pb);
bool FreezeOperate();
void ProcDelayAddBuff(Creature* caster);
void ProcIntervalAddBuff(Creature* caster);
void ProcBatchAddBuff(Creature* caster);
void ProcSummonHero(Creature* caster);
void ProcBeRecycle(Creature* caster);
void ProcBecome(Creature* caster);
void ProcRemoveBecome(Creature* caster);
void ProcDriver(Creature* caster);
void ProcRemoveDriver(Creature* caster);
void ProcSprint(Creature* caster);
private:
void InternalTimerAddBuff(Creature* caster);
void RecoverHoldWeapons(Creature* caster);
private:
int hold_curr_weapon_idx_ = 0;
std::list<Weapon> hold_weapons_;
};