1
This commit is contained in:
parent
4d59b16aaa
commit
076323856a
@ -2787,7 +2787,7 @@ void Creature::ClearEnergyShield()
|
|||||||
kPropEnergyShield,
|
kPropEnergyShield,
|
||||||
energy_shield,
|
energy_shield,
|
||||||
max_energy_shield,
|
max_energy_shield,
|
||||||
true);
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::weak_ptr<Effect> Creature::AddEffect(int effect_id)
|
std::weak_ptr<Effect> Creature::AddEffect(int effect_id)
|
||||||
|
@ -702,6 +702,7 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in
|
|||||||
SetHP(std::max(0.0f, new_health));
|
SetHP(std::max(0.0f, new_health));
|
||||||
if (old_health - GetHP() > 0.001f) {
|
if (old_health - GetHP() > 0.001f) {
|
||||||
stats.damage_amount_in += old_health - GetHP();
|
stats.damage_amount_in += old_health - GetHP();
|
||||||
|
real_dmg_out = old_health - GetHP();
|
||||||
GetTrigger()->ReceiveDmg();
|
GetTrigger()->ReceiveDmg();
|
||||||
}
|
}
|
||||||
if (GetHP() <= 0.0001f && !dead) {
|
if (GetHP() <= 0.0001f && !dead) {
|
||||||
@ -2559,6 +2560,7 @@ void Human::OnBulletHit(IBullet* bullet)
|
|||||||
bullet->GetPassenger().Get()->GetUniId(),
|
bullet->GetPassenger().Get()->GetUniId(),
|
||||||
bullet->GetPassenger().Get()->GetName(),
|
bullet->GetPassenger().Get()->GetName(),
|
||||||
dmg_out);
|
dmg_out);
|
||||||
|
bullet->GetSender().Get()->GetTrigger()->DmgOut(this, dmg_out);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!bullet->IsPreBattleBullet()) {
|
if (!bullet->IsPreBattleBullet()) {
|
||||||
@ -2574,6 +2576,7 @@ void Human::OnBulletHit(IBullet* bullet)
|
|||||||
bullet->GetSender().Get()->GetUniId(),
|
bullet->GetSender().Get()->GetUniId(),
|
||||||
bullet->GetSender().Get()->GetName(),
|
bullet->GetSender().Get()->GetName(),
|
||||||
dmg_out);
|
dmg_out);
|
||||||
|
bullet->GetSender().Get()->GetTrigger()->DmgOut(this, dmg_out);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -503,12 +503,16 @@ void Trigger::Attacked(Creature* sender)
|
|||||||
void Trigger::DmgOut(Creature* target, float dmg)
|
void Trigger::DmgOut(Creature* target, float dmg)
|
||||||
{
|
{
|
||||||
DispatchEvent(kDmgOutEvent, {target, dmg});
|
DispatchEvent(kDmgOutEvent, {target, dmg});
|
||||||
TraverseCondBuffs
|
if (HasCondBuff(kEventBuffDmgOut)) {
|
||||||
(kEventBuffDmgOut,
|
TraverseCondBuffs
|
||||||
[this, dmg] (Buff* buff, bool& stop)
|
(kEventBuffDmgOut,
|
||||||
{
|
[this, dmg] (Buff* buff, bool& stop)
|
||||||
AddBuffs(buff, buff->meta->_int_buff_param1, buff->meta->_buff_param4_int_list);
|
{
|
||||||
});
|
auto buff_vars = std::make_shared<std::vector<float>>();
|
||||||
|
buff_vars->push_back(dmg);
|
||||||
|
AddBuffs(buff, buff->meta->_int_buff_param1, buff->meta->_buff_param4_int_list, buff_vars);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Trigger::BulletBlock(IBullet* bullet, const glm::vec3& pos)
|
void Trigger::BulletBlock(IBullet* bullet, const glm::vec3& pos)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user