diff --git a/server/gameserver/incubator.cc b/server/gameserver/incubator.cc index 10de443b..c0ba5299 100644 --- a/server/gameserver/incubator.cc +++ b/server/gameserver/incubator.cc @@ -658,12 +658,26 @@ void Incubator::Rearrangement() void Incubator::StartNewBattleMode() { + Player* selected_player = nullptr; + room->TraversePlayerList + ( + [&selected_player] (Player* hum) -> bool + { + selected_player = hum; + return false; + }); + if (!selected_player) { + return; + } room->xtimer.SetIntervalWpEx ( SERVER_FRAME_RATE * (3 + rand() % 2), - [this] (int event, const a8::Args* args) + [this, selected_player] (int event, const a8::Args* args) { if (a8::TIMER_EXEC_EVENT == event) { + if (room->IsGameOver()) { + return; + } } }, &xtimer_attacher_);