ctan
dd0b42b73b
docs(map): make omitted move_cost explicitly mean impassable
2026-09-20 18:03:46 +02:00
ctan
ee22f7548a
fix(map): reject duplicate YAML keys via a SafeLoader duplicate-check
2026-09-20 18:00:27 +02:00
ctan
bce0a59e60
fix(map): fail on blank rows inside a layer, keep trailing-space cells verbatim
2026-09-20 17:48:47 +02:00
ctan
205ddece0b
fix(map): require single-character legend keys
2026-09-20 17:43:50 +02:00
ctan
130087a556
fix(map): reject a zones layer without a deployment section
...
The README documents deployment as required when zones exist, but load_map
only enforced the reverse direction (deployment without zones). A map with
a zones layer and no deployment now fails with MapValidationError instead
of loading with unreachable deployment zones.
2026-09-20 17:15:29 +02:00
ctan
ba5eb4c95f
fix(map): load_map rejects two deployment sides bound to the same zone letter (build_states resets its placed set per side, so shared letters deployed camps on top of each other) - fail-fast MapValidationError + README rule, reject/accept tests
2026-09-19 17:12:42 +02:00
ctan
24e208ea41
fix(rules): load_map rejects any square_size_ft other than 5 (SRD Measuring Distance: one grid square is 5 feet; the engine's 5-10-5 geometry, step costs and ranges are hard-coded to that scale) - a map declaring 10-ft squares was loaded silently and mis-scaled; now a fail-fast MapValidationError, with reject/accept tests
2026-09-19 16:37:30 +02:00
ctan
e6125b04f6
feat(combat): support partial and improved cover levels
2026-09-10 11:32:08 +02:00
ctan
21698d76c6
feat(grid): map YAML schema, 5-10-5 grid, Dijkstra movement, corner LoS/cover
2026-08-17 22:49:50 +02:00