This commit is contained in:
aozhiwei 2022-11-10 19:59:08 +08:00
parent 80507ffd22
commit 1fa5c3c4f6
6 changed files with 16 additions and 7 deletions

View File

@ -434,7 +434,7 @@ void Car::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
);
room->NotifyUiUpdate();
room->frame_event.AddDead(GetWeakPtrRef(), 0);
GetTrigger()->Die();
GetTrigger()->Die(killer_id, weapon_id);
}
void Car::GetAabbBox(AabbCollider& aabb_box)

View File

@ -286,7 +286,7 @@ void Hero::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
room->pve_data.OnBeKill(this);
room->NotifyUiUpdate();
}
GetTrigger()->Die();
GetTrigger()->Die(killer_id, weapon_id);
}
void Hero::OnAddToTargetPartObject(Entity* target)

View File

@ -4395,7 +4395,7 @@ void Human::InternalBeKill(int killer_id, const std::string& killer_name, int we
downed = false;
SetHP(0.0f);
dead_frameno = room->GetFrameNo();
GetTrigger()->Die();
GetTrigger()->Die(killer_id, weapon_id);
OnDie();
KillMgr::Instance()->OnHumanDead(this, &info);
room->frame_event.AddDead(GetWeakPtrRef(), 0);

View File

@ -471,6 +471,7 @@ void Skill::ProcSWZB()
kPreDieEvent,
[this] (const std::vector<std::any>& params)
{
int killer_id = std::any_cast<int>(params.at(0));
CreatureWeakPtr sender = owner->GetWeakPtrRef();
MetaData::Skill* skill_meta = meta;
a8::Vec2 center = owner->GetPos();
@ -516,7 +517,8 @@ void Skill::ProcSWZB()
SkillHelper::GetSwzbEffect(meta),
0
);
if (!meta->raw_phases.empty()) {
Entity* killer = owner->room->GetEntityByUniId(killer_id);
if (killer && !meta->raw_phases.empty()) {
owner->over_delay_time = meta->raw_phases.at(0).param1;
}
#ifdef DEBUG
@ -537,6 +539,13 @@ void Skill::ProcSWZB()
#endif
}
);
owner->GetTrigger()->AddListener
(
kDieEvent,
[this] (const std::vector<std::any>& params)
{
});
}
void Skill::ProcCMXD()

View File

@ -237,7 +237,7 @@ void Trigger::PreDie(int killer_id, int weapon_id)
DispatchEvent(kPreDieEvent, {killer_id, weapon_id});
}
void Trigger::Die()
void Trigger::Die(int killer_id, int weapon_id)
{
{
std::vector<int> list;
@ -254,7 +254,7 @@ void Trigger::Die()
}
}
TriggeCondBuffAll(kCondBuffDid);
DispatchEvent(kDieEvent, {});
DispatchEvent(kDieEvent, {killer_id, weapon_id});
}
void Trigger::TraverseCondBuffs(int cond, std::function<void (Buff*, bool&)> func)

View File

@ -64,7 +64,7 @@ public:
void HpChg();
void ReceiveDmg();
void PreDie(int killer_id, int weapon_id);
void Die();
void Die(int killer_id, int weapon_id);
void ActiveBuff(MetaData::Buff* buff_meta);
void DeactiveBuff(MetaData::Buff* buff_meta);
void BulletHit(IBullet* bullet, Creature* target);