Coop с AI/базой (соло-старт), реванш, чистые URL, доработки клиента
Сервер (Game.hpp/cpp): - coop-режим: AI-противники (волна 8, до 3 одновременно), простое преследование базы с рандомизацией, база с укрытием из кирпича. - Комната стартует соло (1 игрок), второй может подключиться позже. - Fix: хитбокс пули по базе брал радиус танка вместо пули. - Fix: AI при столкновении со стеной теперь сразу перерешает направление, а не долбит в одну точку до 3с — без этого база падала за секунды. Клиент: - Танк: гусеницы, башня, заметный ствол (было — незаметный нубик). - Рендер базы (укрытие/флаг), AI-танки — отдельным оттенком зелёного. - Экран победы/поражения — крупный glitch-текст на весь оверлей вместо строки текста; кнопки "играть ещё" (без reload) и "в лобби". - Блок кнопок управления (D-pad + огонь) справа от игрового поля. - Лобби: coop стартует по кнопке "готов" в одиночку. nginx: try_files с fallback на .html — чистые URL (/projects, /game) без расширения, старые /projects.html и т.п. продолжают работать.
This commit is contained in:
@@ -250,7 +250,11 @@ void Lobby::maybeStartGame(const std::string &room_id) {
|
||||
return;
|
||||
}
|
||||
Room &room = it->second;
|
||||
if (room.mode != "pvp" || room.state != "waiting" || room.players.size() != kMaxPlayersPerRoom) {
|
||||
if (room.state != "waiting" || room.players.empty()) {
|
||||
return;
|
||||
}
|
||||
// pvp — строго вдвоём; coop — можно соло, второй подключается позже.
|
||||
if (room.mode == "pvp" && room.players.size() != kMaxPlayersPerRoom) {
|
||||
return;
|
||||
}
|
||||
bool allReady = std::all_of(room.players.begin(), room.players.end(),
|
||||
|
||||
Reference in New Issue
Block a user