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 (!IsGameOver() && !GetVictoryTeam()) {
for (size_t i = 0; i < 2; ++i) {
Team* team = GetMobaTeamA();
if (i == 1) {
team = GetMobaTeamB();
}
auto tuple = GetMapMeta()->GetMobaRoomMeta()->moba_towers.at(i);
team->TraverseMembers
const auto side = i + 1;
auto& tuple = GetMapMeta()->GetMobaRoomMeta()->moba_towers.at(i);
TraverseTeams
(
[&tuple] (Human* hum) -> bool
[&tuple, side] (Team* team) -> bool
{
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);
}
}
}
team->TraverseMembers
(
[&tuple, side] (Human* hum) -> bool
{
if (hum->side != side) {
return false;
}
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;
});
}