Тактический отряд с автоматическим огнём в изометрии, собственный софтверный растеризатор (raylib только окно, ввод и финальный блит). Ядро (спек, раздел 6): - LaneClear: проверка линии огня по своим, стенам и дальности; - решатель огневых позиций с гистерезисом и коммитом; - резервирование линий огня и расступание из чужих секторов; - пули-снаряды, дружественный урон физически возможен. Хоррор-слой (render-only): свет и туман войны с памятью карты, светящиеся трассеры, кровь, виньетка, зерно, напряжение. Ближний бой: сектор удара, три фазы, связка из трёх ударов, своя дисциплина «не бить сквозь своего». Проверка: squad_proto.exe --accept прогоняет критерии приёмки раздела 11 плюс блок M7 по ближнему бою — все PASS, FRIENDLY_HITS = 0 за 3 минуты боя. Сборка: cmake -S . -B build && cmake --build build --config Release raylib 6.0 подтягивается через FetchContent. Документация — CLAUDE.md как оглавление, содержание в docs/. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
1.7 KiB
JSON
49 lines
1.7 KiB
JSON
{
|
||
"version": "2.0.0",
|
||
"tasks": [
|
||
{
|
||
"label": "cmake configure",
|
||
"type": "shell",
|
||
"command": "cmake",
|
||
"args": ["-S", ".", "-B", "build"],
|
||
"problemMatcher": [],
|
||
"detail": "Разовая конфигурация; raylib 6.0 подтягивается через FetchContent"
|
||
},
|
||
{
|
||
"label": "build release",
|
||
"type": "shell",
|
||
"command": "cmake",
|
||
"args": ["--build", "build", "--config", "Release", "--parallel"],
|
||
"group": { "kind": "build", "isDefault": true },
|
||
"problemMatcher": ["$msCompile"],
|
||
"detail": "Основная сборка -> build/bin/squad_proto.exe"
|
||
},
|
||
{
|
||
"label": "build debug",
|
||
"type": "shell",
|
||
"command": "cmake",
|
||
"args": ["--build", "build", "--config", "Debug", "--parallel"],
|
||
"group": "build",
|
||
"problemMatcher": ["$msCompile"]
|
||
},
|
||
{
|
||
"label": "accept",
|
||
"type": "shell",
|
||
"command": "${workspaceFolder}/build/bin/squad_proto.exe",
|
||
"args": ["--accept"],
|
||
"dependsOn": "build release",
|
||
"problemMatcher": [],
|
||
"detail": "Прогнать критерии приёмки из спека (раздел 11)"
|
||
},
|
||
{
|
||
"label": "headless 180s",
|
||
"type": "shell",
|
||
"command": "${workspaceFolder}/build/bin/squad_proto.exe",
|
||
"args": ["--headless", "180"],
|
||
"dependsOn": "build release",
|
||
"problemMatcher": [],
|
||
"detail": "Прогон без окна с метриками"
|
||
}
|
||
]
|
||
}
|