This commit is contained in:
aozhiwei 2022-10-06 09:37:52 +08:00
parent 1a51c6df3f
commit 7a0a2db3cc
2 changed files with 145 additions and 15 deletions

View File

@ -11,25 +11,12 @@ void Skill::Initialzie()
switch (meta->i->skill_type()) {
case kActiveSkill:
{
inc_times_timer_ = owner->room->xtimer.AddRepeatTimerAndAttach
(
GetCd() / FRAME_RATE_MS,
a8::XParams()
.SetSender(this),
[] (const a8::XParams& param)
{
Skill* skill = (Skill*)param.sender.GetUserData();
if (skill->GetCurrTimes() < skill->GetMaxTimes()) {
skill->curr_times_++;
skill->NotifySkillState();
}
},
&xtimer_attacher.timer_list_);
InitActiveSkill();
}
break;
case kPassiveSkill:
{
InitPassiveSkill();
}
break;
default:
@ -249,3 +236,131 @@ void Skill::DoMinorMode()
owner->need_sync_active_player = true;
}
}
void Skill::InitActiveSkill()
{
inc_times_timer_ = owner->room->xtimer.AddRepeatTimerAndAttach
(
GetCd() / FRAME_RATE_MS,
a8::XParams()
.SetSender(this),
[] (const a8::XParams& param)
{
Skill* skill = (Skill*)param.sender.GetUserData();
if (skill->GetCurrTimes() < skill->GetMaxTimes()) {
skill->curr_times_++;
skill->NotifySkillState();
}
},
&xtimer_attacher.timer_list_);
}
void Skill::InitPassiveSkill()
{
switch (meta->GetMagicId()) {
case MAGIC_SJXY:
{
ProcSJXY();
}
break;
case MAGIC_SSJS:
{
ProcSSJS();
}
break;
case MAGIC_JSHX:
{
ProcJSHX();
}
break;
case MAGIC_SWZB:
{
ProcSWZB();
}
break;
case MAGIC_CMXD:
{
ProcCMXD();
}
break;
case MAGIC_MYXY:
{
ProcMYXY();
}
break;
case MAGIC_GZJS:
{
ProcGZJS();
}
break;
case MAGIC_JYFH:
{
ProcJYFH();
}
break;
case MAGIC_FH:
{
ProcFH();
}
break;
case MAGIC_YSHF:
{
ProcYSHF();
}
break;
default:
{
}
break;
}
}
void Skill::ProcSJXY()
{
}
void Skill::ProcSSJS()
{
}
void Skill::ProcJSHX()
{
}
void Skill::ProcSWZB()
{
}
void Skill::ProcCMXD()
{
}
void Skill::ProcMYXY()
{
}
void Skill::ProcGZJS()
{
}
void Skill::ProcJYFH()
{
}
void Skill::ProcFH()
{
}
void Skill::ProcYSHF()
{
}

View File

@ -53,7 +53,22 @@ class Skill
void AddPassiveSkillBuff();
private:
void InitActiveSkill();
void InitPassiveSkill();
void NotifySkillState();
void ProcSJXY();
void ProcSSJS();
void ProcJSHX();
void ProcSWZB();
void ProcCMXD();
void ProcMYXY();
void ProcGZJS();
void ProcJYFH();
void ProcFH();
void ProcYSHF();
private:
int curr_times_ = 0;
xtimer_list* inc_times_timer_ = nullptr;