This commit is contained in:
aozhiwei 2023-02-16 19:20:30 +08:00
parent 35638c99d1
commit e372d674a4
3 changed files with 30 additions and 0 deletions

View File

@ -442,6 +442,33 @@ void Skill::Proc30301XL()
void Skill::Proc30401MAO()
{
#if 1
a8::XTimerWp shield_timer;
owner->GetTrigger()->AddListener
(
kHpChgEvent,
[this, shield_timer] (const a8::Args& args) mutable
{
if (!owner->dead &&
!owner->room->IsGameOver() &&
owner->GetHP() < meta->_number_meta->number() * owner->GetMaxHP()
) {
if (shield_timer.expired()) {
owner->AddEnergyShield
(meta->_number_meta->shield() +
meta->_number_meta->shield_addition() * owner->GetBattleContext()->GetHeroTotalAtk());
shield_timer = owner->room->xtimer.SetTimeoutWpEx
(
meta->_number_meta->_float_time * SERVER_FRAME_RATE,
[this] (int event, const a8::Args* args)
{
owner->ClearEnergyShield();
},
&xtimer_attacher);
}
}
});
#else
struct _Nested
{
static void cb(CreatureWeakPtr sender, Entity* e, const mt::Skill* skill_meta)
@ -543,6 +570,7 @@ void Skill::Proc30401MAO()
}
#endif
});
#endif
}
void Skill::Proc30501TZ()

View File

@ -224,6 +224,7 @@ void Trigger::HpChg()
RemoveBuffs(buff->meta->_int_buff_param1, buff->meta->_buff_param4_int_list);
}
});
DispatchEvent(kHpChgEvent, {});
}
void Trigger::ReceiveDmg()

View File

@ -35,6 +35,7 @@ enum EventId_e
kUseSkillEvent,
kTriggerBulletHitBuffEvent,
kDmgOutEvent,
kHpChgEvent,
kAttacked
};