squad-proto/engine
z.kirill 9bcb5ca013 Запуск грузит проект; автопилот --play; строй сжимается в тесноте (M31)
ГЛАВНОЕ. "Дольше пяти секунд не продержаться на первом уровне" - это был
не баланс, а запуск. По умолчанию useRooms был false: обычный запуск exe
собирал ЗАХАРДКОЖЕННУЮ карту прототипа со старой расстановкой тварей и
высаживал туда ОДНОГО оперативника с ножом (размер отряда берётся из
профиля). Игрок попадал не на первый этаж игры, а вообще не в игру.
Теперь проект подключается по умолчанию, а старая карта осталась под
флагом --no-rooms.

--PLAY. Новый прогон: автопилот ведёт отряд к спуску и дерётся по дороге.
Ни --descend, ни --wall не меряли ПРОХОЖДЕНИЕ: первый собирает этажи и ни
с кем не воюет, второй ставит отряд в толпу и запрещает двигаться. Жалоба
же была именно про проход этажа.

Автопилот ходит по полю расстояний до спуска (заливка по проходимым
клеткам), целится на несколько клеток вперёд по спуску поля и правит
курсором - тем же вводом, каким играет человек. Три версии до рабочей:
по прямой упирался в первую стену, по восьми соседям лез в диагональную
щель между углами (тело круглое, не пролезает), по соседней клетке дёргался
на каждой границе.

Одиночка проходит три этажа и гибнет на четвёртом:

  1  тварей 3, убил 0, 100% здоровья, света 244  дошёл (78 с)
  2  тварей 6, убил 1, 100%,          света 155  дошёл (44 с)
  3  тварей 6, убил 0,  65%,          света   8  дошёл (74 с)
  4  тварей 9, убил 5,   ВАЙП                    (37 с)

Свет кончается к третьему этажу: расчёт "заряда на четыре пути до спуска"
считал прямые пути, а живой отряд ходит петлями.

СТРОЙ В ТЕСНОТЕ. Клин шириной в пять тел не проходит в дверь шириной в
клетку: бойцы упираются друг в друга, расталкивание держит их на месте,
отряд встаёт насмерть. Теперь строй сам сжимается в колонну, когда вокруг
тел мало свободных клеток.

ЧЕСТНО: это НЕ вылечило проход пятёрки до конца. Автопилот с полным
отрядом всё ещё застревает на первом этаже там, где одиночка проходит, и
причина не в ширине строя (проверено сжатием в точку и отрядом без
клинков). Похоже, нужна нормальная проводка строя по проходам - это
отдельная веха, а не патч в конце. Оставляю с числами, а не с обещанием.

--accept PASS, все семь проверок зелёные.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 13:20:21 +03:00
..
app.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
app.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
catalog.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
catalog.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
config.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
framebuffer.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
framebuffer.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
hash.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
level_gen.cpp Правки по игре: начало, ставка, наёмники (M29) 2026-08-16 04:09:26 +03:00
level_gen.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
math.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
microfont.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
microfont.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
pixel.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
pixel.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
progression.cpp Правки по игре: начало, ставка, наёмники (M29) 2026-08-16 04:09:26 +03:00
progression.h Правки по игре: начало, ставка, наёмники (M29) 2026-08-16 04:09:26 +03:00
project.cpp Правки по игре: начало, ставка, наёмники (M29) 2026-08-16 04:09:26 +03:00
project.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
projection.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
projection.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
room.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
room.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
sfa_library.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
sfa_library.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
text_parse.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
theme.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
tilemap_draw.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
tilemap_draw.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
tilemap.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
tilemap.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
tileset.cpp Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
tileset.h Tile2D: движок отдельным продуктом, игра — проектом в нём (M11-M20) 2026-08-13 21:07:19 +03:00
view2d.h Запуск грузит проект; автопилот --play; строй сжимается в тесноте (M31) 2026-08-16 13:20:21 +03:00