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
@@ -436,6 +436,14 @@ impl SpellGrid {
|
||||
pub fn set_chooser(&mut self, chooser: impl FnMut(&str, &[String]) -> String + 'static) {
|
||||
self.grid.world_mut().set_chooser(Box::new(chooser));
|
||||
}
|
||||
/// For the command line: why `cast` would panic, or `Ok` if it wouldn't.
|
||||
pub fn check_cast(&self, card: &str, target: Option<Id>) -> Result<(), String> {
|
||||
self.grid.check_cast(card, target)
|
||||
}
|
||||
/// For the command line: why `play` would panic, or `Ok` if it wouldn't.
|
||||
pub fn check_play(&self, card: &str, x: i32, y: i32) -> Result<(), String> {
|
||||
self.grid.check_play(card, x, y)
|
||||
}
|
||||
/// Test hook: the naive engine reads the auras before the dead leave play, the
|
||||
/// same end-of-Phase steps reversed.
|
||||
pub fn with_naive_aura_timing(&mut self) {
|
||||
|
||||
Reference in new issue
Block a user