SpellGrid capstone: Part I's card engine and Part II's grid engine joined at three seams (rules -> aura data, hazard victims -> one destroy Sequence, Sequence end -> write text, remove the dead, reparse). Three levels with scripted solutions, a naive-timing test via a harness-only hook that reverses the END_OF_PHASE list, CLIs in both tracks, the BATTLECRY IS DOUBLE Expansion Drop, SpellGrid cards and words in course/cards and the catalog, level schema cards/hand, and tools staging/copying of module levels. Co-Authored-By: Claude Opus 5.5 <[email protected]>
42 lines
1.4 KiB
JSON
42 lines
1.4 KiB
JSON
{
|
|
"width": 7,
|
|
"height": 6,
|
|
"objects": [
|
|
{"kind": "text:KNIGHT", "x": 0, "y": 0},
|
|
{"kind": "text:IS", "x": 1, "y": 0},
|
|
{"kind": "text:YOU", "x": 2, "y": 0},
|
|
{"kind": "text:FLAG", "x": 4, "y": 0},
|
|
{"kind": "text:IS", "x": 5, "y": 0},
|
|
{"kind": "text:WIN", "x": 6, "y": 0},
|
|
{"kind": "text:WALL", "x": 0, "y": 1},
|
|
{"kind": "text:IS", "x": 1, "y": 1},
|
|
{"kind": "text:STOP", "x": 2, "y": 1},
|
|
{"kind": "text:HEDGE", "x": 4, "y": 1},
|
|
{"kind": "text:IS", "x": 5, "y": 1},
|
|
{"kind": "text:STOP", "x": 6, "y": 1},
|
|
{"kind": "wall", "x": 0, "y": 2},
|
|
{"kind": "wall", "x": 1, "y": 2},
|
|
{"kind": "wall", "x": 2, "y": 2},
|
|
{"kind": "wall", "x": 3, "y": 2},
|
|
{"kind": "wall", "x": 4, "y": 2},
|
|
{"kind": "wall", "x": 5, "y": 2},
|
|
{"kind": "wall", "x": 6, "y": 2},
|
|
{"kind": "wall", "x": 3, "y": 3},
|
|
{"kind": "wall", "x": 4, "y": 3},
|
|
{"kind": "wall", "x": 5, "y": 3},
|
|
{"kind": "wall", "x": 6, "y": 3},
|
|
{"kind": "flag", "x": 5, "y": 4},
|
|
{"kind": "wall", "x": 6, "y": 4},
|
|
{"kind": "wall", "x": 4, "y": 5},
|
|
{"kind": "wall", "x": 5, "y": 5},
|
|
{"kind": "wall", "x": 6, "y": 5}
|
|
],
|
|
"cards": [
|
|
{"card": "Tin Knight", "x": 0, "y": 4},
|
|
{"card": "Thorn Hedge", "x": 4, "y": 4},
|
|
{"card": "Powder Keg", "x": 1, "y": 5},
|
|
{"card": "Grave Warden", "x": 2, "y": 5}
|
|
],
|
|
"hand": ["Whirlwind"]
|
|
}
|