This commit is contained in:
aozhiwei 2024-04-10 16:12:06 +08:00
parent 803f0ae873
commit 96982ddc44

View File

@ -190,25 +190,31 @@ void Room::Init()
if (a8::TIMER_EXEC_EVENT == event) { if (a8::TIMER_EXEC_EVENT == event) {
if (!IsGameOver() && !GetVictoryTeam()) { if (!IsGameOver() && !GetVictoryTeam()) {
for (size_t i = 0; i < 2; ++i) { for (size_t i = 0; i < 2; ++i) {
Team* team = GetMobaTeamA(); const auto side = i + 1;
if (i == 1) { auto& tuple = GetMapMeta()->GetMobaRoomMeta()->moba_towers.at(i);
team = GetMobaTeamB(); TraverseTeams
}
auto tuple = GetMapMeta()->GetMobaRoomMeta()->moba_towers.at(i);
team->TraverseMembers
( (
[&tuple] (Human* hum) -> bool [&tuple, side] (Team* team) -> bool
{ {
float distance = hum->GetPos().Distance2D2(std::get<0>(tuple)); team->TraverseMembers
if (distance < std::get<1>(tuple)) { (
if (!hum->dead && !hum->poisoning && !hum->downed) { [&tuple, side] (Human* hum) -> bool
if (hum->GetHP() + 1 < hum->GetMaxHP()) { {
hum->AddHp(hum->GetMaxHP() * if (hum->side != side) {
hum->room->GetMapMeta()->GetMobaRoomMeta()->tower_recover_hp_rate()); return false;
hum->TryAddBuff(hum, kRecoverHpEffectBuffId); }
} float distance = hum->GetPos().Distance2D2(std::get<0>(tuple));
} if (distance < std::get<1>(tuple)) {
} if (!hum->dead && !hum->poisoning && !hum->downed) {
if (hum->GetHP() + 1 < hum->GetMaxHP()) {
hum->AddHp(hum->GetMaxHP() *
hum->room->GetMapMeta()->GetMobaRoomMeta()->tower_recover_hp_rate());
hum->TryAddBuff(hum, kRecoverHpEffectBuffId);
}
}
}
return true;
});
return true; return true;
}); });
} }