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:
2026-08-06 11:39:09 +05:00
parent 8a4c48c5e1
commit 84da9b49e2
10 changed files with 588 additions and 94 deletions
+2 -3
View File
@@ -19,13 +19,12 @@
</a>
<ul class="nav-links">
<li><a href="/">whoami</a></li>
<li><a href="/projects.html">ls projects/</a></li>
<li><a href="/game.html" aria-current="page">./battlecity</a></li>
<li><a href="/projects">ls projects/</a></li>
<li><a href="/game" aria-current="page">./battlecity</a></li>
</ul>
</header>
<main id="game-root">
<!-- TODO: coop-режим с AI и защитой базы — этап 5 -->
<h2 class="prompt">./battlecity</h2>
<div id="lobby"></div>
<div id="battlecity-canvas-container" style="display: none"></div>