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

View File

@ -295,13 +295,53 @@ a8::Attacher* InGameVoice::GetNoDeadTimerAttacher(int killer_id)
void InGameVoice::TriggerEvent(Human* killer, Human* deader) void InGameVoice::TriggerEvent(Human* killer, Human* deader)
{ {
bool is_first_boold = global_kills_ == 1; bool is_first_boold = global_kills_ == 1;
bool sent = false;
{ {
int val = global_kills_; int val = global_kills_;
mt::InGameVoice::Traverse mt::InGameVoice::Traverse
( (
room_->IsMobaModeRoom(), room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kGlobalKills, 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)) { if (meta->MatchCond(val)) {
Notify(killer, deader, meta); Notify(killer, deader, meta);
@ -309,6 +349,7 @@ void InGameVoice::TriggerEvent(Human* killer, Human* deader)
return true; return true;
}); });
} }
}
{ {
if (!is_first_boold) { if (!is_first_boold) {
int val = GetIntMap(personal_kills_, killer->GetUniId()); 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 (!is_first_boold) {
if (deader->GetTeam()->AllIsDead()) { if (deader->GetTeam()->AllIsDead()) {
@ -368,32 +396,13 @@ void InGameVoice::TriggerEvent(Human* killer, Human* deader)
} }
{ {
if (!is_first_boold) { if (!is_first_boold) {
int val = GetIntMap(personal_series_kills_, killer->GetUniId());
mt::InGameVoice::Traverse mt::InGameVoice::Traverse
( (
room_->IsMobaModeRoom(), room_->IsMobaModeRoom(),
InGameVoiceEventType_e::kSeriesKills, InGameVoiceEventType_e::kEnemyTeamBekill,
[this, killer, deader, val] (const mt::InGameVoice* meta) -> bool [this, killer, deader] (const mt::InGameVoice* meta) -> bool
{ {
if (meta->MatchCond(val)) {
Notify(killer, deader, meta); 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);
}
return true; return true;
}); });
} }