fix: module 10 review round 1 (module-local SpellGrid cards, cast target check, CLI without panic hook)
- SpellGrid cards move to course/10-spellgrid/cards; start-module and verify-references stage course/cards plus module-local cards up to the module, so M5-M9 workspaces get exactly the pre-M10 card set. - cast() rejects a chosen-target spell without a target (checkCast/checkPlay); new test_10_targeted_spell_needs_target. - Rust CLI pre-validates instead of swapping the global panic hook. - Catalog: CRIER noun; DEATHRATTLE/BATTLECRY note on lexicon vs catalog role. - Lesson: design note on mid-movement reparse. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a0cf9be214
commit
6f576940b7
34 files changed
+295
-79
No files matched your search
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"name": "Bramble Wall",
|
||||
"type": "minion",
|
||||
"cost": 1,
|
||||
"attack": 0,
|
||||
"health": 3,
|
||||
"noun": "BRAMBLE",
|
||||
"split": 0,
|
||||
"text": [],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"name": "Ember Moth",
|
||||
"type": "minion",
|
||||
"cost": 1,
|
||||
"attack": 1,
|
||||
"health": 1,
|
||||
"noun": "MOTH",
|
||||
"split": 1,
|
||||
"text": [
|
||||
{
|
||||
"kind": "keyword",
|
||||
"keyword": "Taunt"
|
||||
},
|
||||
{
|
||||
"kind": "trigger",
|
||||
"on": "deathrattle"
|
||||
},
|
||||
{
|
||||
"kind": "effect",
|
||||
"effect": {
|
||||
"type": "dealDamage",
|
||||
"target": "enemyHero",
|
||||
"amount": 2
|
||||
}
|
||||
}
|
||||
],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"name": "Graft",
|
||||
"type": "spell",
|
||||
"cost": 2,
|
||||
"split": 0,
|
||||
"text": [
|
||||
{
|
||||
"kind": "effect",
|
||||
"effect": {
|
||||
"type": "assemble",
|
||||
"filter": {
|
||||
"trigger": "deathrattle"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"name": "Grave Warden",
|
||||
"type": "minion",
|
||||
"cost": 3,
|
||||
"attack": 1,
|
||||
"health": 1,
|
||||
"noun": "WARDEN",
|
||||
"split": 0,
|
||||
"text": [
|
||||
{
|
||||
"kind": "aura",
|
||||
"modifier": {
|
||||
"type": "triggerMultiplier",
|
||||
"trigger": "deathrattle",
|
||||
"times": 2,
|
||||
"stacking": "max"
|
||||
}
|
||||
}
|
||||
],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"name": "Powder Keg",
|
||||
"type": "minion",
|
||||
"cost": 2,
|
||||
"attack": 1,
|
||||
"health": 1,
|
||||
"noun": "KEG",
|
||||
"split": 0,
|
||||
"text": [
|
||||
{
|
||||
"kind": "trigger",
|
||||
"on": "deathrattle"
|
||||
},
|
||||
{
|
||||
"kind": "effect",
|
||||
"effect": {
|
||||
"type": "dealDamage",
|
||||
"target": "allMinions",
|
||||
"amount": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"name": "Rune Scribe",
|
||||
"type": "minion",
|
||||
"cost": 2,
|
||||
"attack": 1,
|
||||
"health": 1,
|
||||
"noun": "SCRIBE",
|
||||
"split": 0,
|
||||
"text": [
|
||||
{
|
||||
"kind": "trigger",
|
||||
"on": "deathrattle"
|
||||
},
|
||||
{
|
||||
"kind": "effect",
|
||||
"effect": {
|
||||
"type": "spawnText",
|
||||
"word": "WIN",
|
||||
"at": "self"
|
||||
}
|
||||
}
|
||||
],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"name": "Spark",
|
||||
"type": "spell",
|
||||
"cost": 1,
|
||||
"split": 0,
|
||||
"text": [
|
||||
{
|
||||
"kind": "effect",
|
||||
"effect": {
|
||||
"type": "dealDamage",
|
||||
"target": "chosen",
|
||||
"amount": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"name": "Thorn Hedge",
|
||||
"type": "minion",
|
||||
"cost": 1,
|
||||
"attack": 0,
|
||||
"health": 2,
|
||||
"noun": "HEDGE",
|
||||
"split": 0,
|
||||
"text": [],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"name": "Tin Knight",
|
||||
"type": "minion",
|
||||
"cost": 2,
|
||||
"attack": 1,
|
||||
"health": 3,
|
||||
"noun": "KNIGHT",
|
||||
"split": 0,
|
||||
"text": [],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"name": "Town Crier",
|
||||
"type": "minion",
|
||||
"cost": 1,
|
||||
"attack": 1,
|
||||
"health": 1,
|
||||
"noun": "CRIER",
|
||||
"split": 0,
|
||||
"text": [
|
||||
{
|
||||
"kind": "trigger",
|
||||
"on": "battlecry"
|
||||
},
|
||||
{
|
||||
"kind": "effect",
|
||||
"effect": {
|
||||
"type": "dealDamage",
|
||||
"target": "enemyHero",
|
||||
"amount": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"game": "spellgrid"
|
||||
}
|
||||
Reference in new issue
Block a user