aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add Cut Test map; document ClaimsStructures is not a placement gateHEADswarm/devices-on-strut-graphVaino Kauppila2026-07-303-4/+52
| | | | | | | | | | | | - New map entry in data/maps.lua: "Cut Test" — a narrow 2-wide X-braced tower with a reactor on top, for testing the mount-radius / collapse victory mechanic. - Comment in build_graph.cpp documenting that ClaimsStructures in Forts game data is a territory-claiming flag, not a placement-legality rule. - Update CLAUDE.md M5 status to done: devices on strut graph, fire damages devices. Co-Authored-By: Claude <noreply@anthropic.com>
* Mount devices on the strut graph so cutting supports destroys themVaino Kauppila2026-07-308-25/+1143
| | | | | | | | | | | | | | | | | | | | | | | | Implements win-condition path (c): destroy the enemy reactor by cutting its supports so it falls. Previously devices sat at fixed map coordinates, structurally immune to collapse. - BuildGraph gains MountedDevice tracking: mount_device/unmount_device, is_device_alive/get_device_hp/damage_device, nearest_device, with a break_node index-shift fix so mount references stay correct as other geometry on the same fort is destroyed. update_fire now also damages any device mounted on a burning strut. - app.cpp mounts devices onto the nearest strut (within 2 units) at both map-load and interactive placement, and after each tick's structural collapse pass, zeroes a device's HP if its mount didn't survive -- which flows through the existing win-condition/cleanup code unchanged. - tools/device_collapse_test.cpp: 15 headless tests covering collapse, partial support loss, splash/beam/fire-through-mount damage, multiple devices, index stability, and clean unmount. Verified: full test suite passes (15/15), sim_check shows zero regressions across all 3 maps. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* New maps and map selectormainEmil A. Overbeck2026-07-1916-112/+533
|
* MakefileEmil A. Overbeck2026-07-194-69/+125
|
* WASD bindingsEmil A. Overbeck2026-07-192-6/+10
|
* Recoil and armorEmil A. Overbeck2026-07-1910-35/+128
|
* Update docsEmil A. Overbeck2026-07-193-58/+145
|
* More Forts assetsEmil A. Overbeck2026-07-1812-24/+87
|
* Deterministic physics docEmil A. Overbeck2026-07-183-1/+125
|
* Better Steam path detection and build guideEmil A. Overbeck2026-07-173-43/+131
|
* map out lua files in original forts game directoryVaino Kauppila2026-07-032-0/+134
|
* Initial import: LibreForts (M0-M5 in progress)Vaino Kauppila2026-07-0266-0/+66897
Open-source Forts clone: custom C++20 engine + data-driven (Lua) 2D physics artillery RTS. - Building: node/strut graph on a stiff mass-spring solver (canon Forts model), triangulation rigidity, axial + 30-degree angle-stress breaking, cascading collapse, fire (DoT + spread), ground destroys debris. - Weapons (M4): cannon (ballistic) + laser (beam/ignite) with select-and-aim-in- arc UX; splash / beam damage; bg-brace passthrough. - Devices + economy (M5): reactors + win/loss + restart, mines/turbines/battery, metal deposits, storage caps, per-shot energy cost. - Data-driven via Lua/sol2 with a layered mod loader; enemy-fort scenario mod. - Renderer: SDL3 + textures + ImGui dev UI. stb_image + ImGui vendored. - Assets: CC0 placeholders only; real game art loaded at runtime from the user's own install via forts: paths (bring-your-own; nothing copyrighted committed). See README.md / CLAUDE.md and research/ + requirements/ for detail.