This commit is contained in:
aozhiwei 2024-04-01 15:49:26 +08:00
parent 73b8f3ffa4
commit 66d9755786

View File

@ -295,20 +295,61 @@ a8::Attacher* InGameVoice::GetNoDeadTimerAttacher(int killer_id)
void InGameVoice::TriggerEvent(Human* killer, Human* deader)
{
bool is_first_boold = global_kills_ == 1;
bool sent = false;
{
int val = global_kills_;
mt::InGameVoice::Traverse
(
room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kGlobalKills,
[this, killer, deader, val] (const mt::InGameVoice* meta) -> bool
[this, killer, deader, val, &sent] (const mt::InGameVoice* meta) -> bool
{
if (meta->MatchCond(val)) {
Notify(killer, deader, meta);
sent = true;
}
return true;
});
}
if (sent) {
return;
}
{
if (!is_first_boold) {
int val = GetIntMap(personal_nodead_series_kills_, killer->GetUniId());
mt::InGameVoice::Traverse
(
room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kNoDeadSeriesKills,
[this, killer, deader, val, &sent] (const mt::InGameVoice* meta) -> bool
{
if (meta->MatchCond(val)) {
Notify(killer, deader, meta);
sent = true;
}
return true;
});
}
}
if (sent) {
return;
}
{
if (!is_first_boold) {
int val = GetIntMap(personal_series_kills_, killer->GetUniId());
mt::InGameVoice::Traverse
(
room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kSeriesKills,
[this, killer, deader, val, &sent] (const mt::InGameVoice* meta) -> bool
{
if (meta->MatchCond(val)) {
Notify(killer, deader, meta);
}
return true;
});
}
}
{
if (!is_first_boold) {
int val = GetIntMap(personal_kills_, killer->GetUniId());
@ -338,19 +379,6 @@ void InGameVoice::TriggerEvent(Human* killer, Human* deader)
});
}
}
{
if (!is_first_boold) {
mt::InGameVoice::Traverse
(
room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kEnemyTeamBekill,
[this, killer, deader] (const mt::InGameVoice* meta) -> bool
{
Notify(killer, deader, meta);
return true;
});
}
}
{
if (!is_first_boold) {
if (deader->GetTeam()->AllIsDead()) {
@ -368,32 +396,13 @@ void InGameVoice::TriggerEvent(Human* killer, Human* deader)
}
{
if (!is_first_boold) {
int val = GetIntMap(personal_series_kills_, killer->GetUniId());
mt::InGameVoice::Traverse
(
room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kSeriesKills,
[this, killer, deader, val] (const mt::InGameVoice* meta) -> bool
InGameVoiceEventType_e::kEnemyTeamBekill,
[this, killer, deader] (const mt::InGameVoice* meta) -> bool
{
if (meta->MatchCond(val)) {
Notify(killer, deader, meta);
}
return true;
});
}
}
{
if (!is_first_boold) {
int val = GetIntMap(personal_nodead_series_kills_, killer->GetUniId());
mt::InGameVoice::Traverse
(
room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kNoDeadSeriesKills,
[this, killer, deader, val] (const mt::InGameVoice* meta) -> bool
{
if (meta->MatchCond(val)) {
Notify(killer, deader, meta);
}
Notify(killer, deader, meta);
return true;
});
}