This commit is contained in:
aozhiwei 2022-10-12 14:27:16 +08:00
parent ba648a0293
commit e33ff7833c

View File

@ -663,23 +663,35 @@ void Skill::ProcMYXY()
void Skill::ProcGZJS() void Skill::ProcGZJS()
{ {
float dmg_ruduce_rate = 0; float dmg_ruduce_rate = meta->number_meta->float_ratio2;
std::weak_ptr<a8::XTimerPtr> dmg_ruduce_timer;
owner->GetTrigger()->AddListener owner->GetTrigger()->AddListener
( (
kFlyHookCreateEvent, kFlyHookCreateEvent,
[this, dmg_ruduce_rate] (const std::vector<std::any>& params) [this, dmg_ruduce_rate, dmg_ruduce_timer] (const std::vector<std::any>& params) mutable
{ {
Buff* buff = std::any_cast<Buff*>(params.at(0)); Buff* buff = std::any_cast<Buff*>(params.at(0));
if (!buff->skill_meta || buff->skill_meta->GetMagicId() != MAGIC_HJHX) { if (!buff->skill_meta || buff->skill_meta->GetMagicId() != MAGIC_HJHX) {
return; return;
} }
#if 0 if (!dmg_ruduce_timer.expired()) {
owner->GetAbility()->AddSpeedAddition(speed_rate); owner->room->xtimer.DeleteTimer(dmg_ruduce_timer);
owner->GetAbility()->AddDefAddition(def_rate);
owner->GetAbility()->IncImmuneVertigo();
#endif
} }
); owner->GetAbility()->AddDmgRuduce(dmg_ruduce_rate);
xtimer_list* timer = owner->room->xtimer.AddDeadLineTimerAndAttach
(
meta->number_meta->float_time * 1000 / FRAME_RATE_MS,
a8::XParams()
.SetSender(this)
.SetParam1(dmg_ruduce_rate),
[] (const a8::XParams& param)
{
Skill* skill = (Skill*)param.sender.GetUserData();
skill->owner->GetAbility()->DelDmgRuduce(param.param1.GetDouble());
},
&xtimer_attacher.timer_list_);
dmg_ruduce_timer = owner->room->xtimer.GetTimerPtr(timer);
});
owner->GetTrigger()->AddListener owner->GetTrigger()->AddListener
( (
kFlyHookDestoryEvent, kFlyHookDestoryEvent,
@ -689,11 +701,6 @@ void Skill::ProcGZJS()
if (!buff->skill_meta || buff->skill_meta->GetMagicId() != MAGIC_HJHX) { if (!buff->skill_meta || buff->skill_meta->GetMagicId() != MAGIC_HJHX) {
return; return;
} }
#if 0
owner->GetAbility()->DelSpeedAddition(speed_rate);
owner->GetAbility()->DelDefAddition(def_rate);
owner->GetAbility()->DecImmuneVertigo();
#endif
} }
); );
} }