This commit is contained in:
aozhiwei 2022-10-26 19:46:41 +08:00
parent 0b36ea969c
commit 1cbc1b2d74

View File

@ -1386,5 +1386,34 @@ void Buff::ProcSputteringFunc(Bullet* bullet)
void Buff::ProcIntervalRangeAddBuffFunc() void Buff::ProcIntervalRangeAddBuffFunc()
{ {
owner->room->xtimer.AddRepeatTimerAndAttach
(
meta->param4 / FRAME_RATE_MS,
a8::XParams()
.SetSender(this),
[] (const a8::XParams& param)
{
Buff* buff = (Buff*)param.sender.GetUserData();
buff->owner->TraverseCreatures
(
[buff] (Creature* c, bool& stop)
{
if (c->dead) {
return;
}
if (buff->owner->GetUniId() == c->GetUniId()) {
return;
}
if (!buff->GetCaster().Get()) {
return;
}
if (buff->GetCaster().Get()->team_id != c->team_id) {
if (buff->owner->GetPos().Distance(c->GetPos()) < buff->meta->param2) {
c->TryAddBuff(buff->GetCaster().Get(), buff->meta->int_param3, buff->skill_meta);
}
}
});
},
&xtimer_attacher.timer_list_
);
} }