1
This commit is contained in:
parent
2594ab3610
commit
deb8ec286d
@ -190,6 +190,11 @@ void CallFuncBuff::Deactivate()
|
||||
owner->GetCurrWeapon()->buff_id = 0;
|
||||
}
|
||||
break;
|
||||
case BuffCallFunc_e::kAddEnergyShield:
|
||||
{
|
||||
owner->ClearEnergyShield();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
}
|
||||
@ -333,7 +338,26 @@ void CallFuncBuff::ProcFlashMove()
|
||||
|
||||
void CallFuncBuff::ProcAddEnergyShield()
|
||||
{
|
||||
if (!owner->dead && !owner->downed) {
|
||||
if (owner->energy_shield > 0) {
|
||||
is_valid_ = false;
|
||||
owner->GetTrigger()->UpdateEnergyShield(hold_param2_, meta->GetDurationTime(this) * FRAME_RATE_MS);
|
||||
} else {
|
||||
owner->AddEnergyShield(hold_param2_);
|
||||
event_handlers_.push_back(owner->GetTrigger()->AddListener
|
||||
(
|
||||
kUpdateEnergyShieldEvent,
|
||||
[this] (const a8::Args& args) mutable
|
||||
{
|
||||
}));
|
||||
event_handlers_.push_back(owner->GetTrigger()->AddListener
|
||||
(
|
||||
kDestoryEnergyShieldEvent,
|
||||
[this] (const a8::Args& args) mutable
|
||||
{
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CallFuncBuff::ProcAddHp()
|
||||
|
@ -261,6 +261,7 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in
|
||||
energy_shield,
|
||||
max_energy_shield,
|
||||
true);
|
||||
GetTrigger()->ReceiveDmg();
|
||||
} else {
|
||||
float old_health = GetHP();
|
||||
float new_health = std::max(0.0f, GetHP() - dec_hp);
|
||||
|
@ -574,3 +574,13 @@ void Trigger::EndReload()
|
||||
{
|
||||
DispatchEvent(kEndReloadEvent, {});
|
||||
}
|
||||
|
||||
void Trigger::UpdateEnergyShield(int value, int new_time)
|
||||
{
|
||||
DispatchEvent(kUpdateEnergyShieldEvent, {value, new_time});
|
||||
}
|
||||
|
||||
void Trigger::DestoryEnergyShield()
|
||||
{
|
||||
DispatchEvent(kDestoryEnergyShieldEvent, {});
|
||||
}
|
||||
|
@ -46,7 +46,9 @@ enum EventId_e
|
||||
kAttackTargetEvent,
|
||||
kStartReloadEvent,
|
||||
kEndReloadEvent,
|
||||
kDownedEvent
|
||||
kDownedEvent,
|
||||
kUpdateEnergyShieldEvent,
|
||||
kDestoryEnergyShieldEvent
|
||||
};
|
||||
|
||||
class Weapon;
|
||||
@ -92,6 +94,8 @@ public:
|
||||
void Downed();
|
||||
void StartReload();
|
||||
void EndReload();
|
||||
void UpdateEnergyShield(int value, int new_time);
|
||||
void DestoryEnergyShield();
|
||||
|
||||
std::weak_ptr<EventHandlerPtr> AddListener(int event_id, a8::CommonCbProc cb);
|
||||
void RemoveEventHandler(std::weak_ptr<EventHandlerPtr> handler_ptr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user