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() 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 struct _Nested
{ {
static void cb(CreatureWeakPtr sender, Entity* e, const mt::Skill* skill_meta) static void cb(CreatureWeakPtr sender, Entity* e, const mt::Skill* skill_meta)
@ -543,6 +570,7 @@ void Skill::Proc30401MAO()
} }
#endif #endif
}); });
#endif
} }
void Skill::Proc30501TZ() void Skill::Proc30501TZ()

View File

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

View File

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