Phase 6a: rename core vocabulary (game/main/component/archetype/system)
game/module -> program, main -> entry, component -> property, archetype -> model, system -> handler. Done via a transitional self-hosting bootstrap: parser accepts both -> reseed -> compiler source moved to new keywords + parser tightened to new-only -> reseed (fixpoint holds). Old keywords now rejected. Token-safe corpus migration (tools/ludic-tools/rename_kw.c) leaves the LLVM @main/entry: labels in emit strings untouched; goldens byte-identical. Editor vocab (header/JetBrains/TextMate/emacs), check-docs wrapper, and doc fences updated; error string 'unknown component' -> 'unknown property'. test.sh 14/14, test-tools 28/0, check-vocabulary green. (Doc prose pass to follow.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
3227e1e1d3
commit
42f955fd22
35 changed files with 2632 additions and 2646 deletions
|
|
@ -1,17 +1,17 @@
|
|||
# world.ludic — the data model: components, entity archetypes, constants.
|
||||
# Imported by examples/chronorift.ludic. No `game` wrapper (this is a fragment).
|
||||
|
||||
component Pos { x: int = 0, y: int = 0 }
|
||||
component Actor { kind: int = 0 }
|
||||
component Stats { hp: int = 1, maxhp: int = 1, mp: int = 0, maxmp: int = 0,
|
||||
property Pos { x: int = 0, y: int = 0 }
|
||||
property Actor { kind: int = 0 }
|
||||
property Stats { hp: int = 1, maxhp: int = 1, mp: int = 0, maxmp: int = 0,
|
||||
atk: int = 1, def: int = 0, lvl: int = 1, xp: int = 0, guard: int = 0 }
|
||||
component Party { slot: int = 0 }
|
||||
property Party { slot: int = 0 }
|
||||
|
||||
# Entity KINDS. Identity is stored as one integer per entity (L_kind), not as
|
||||
# an empty marker component. Query membership with {Player} / {Enemy}.
|
||||
archetype Player { Pos, Actor, Party, Stats } # the controllable knight
|
||||
archetype Ally { Party, Stats } # backline mage (no overworld body)
|
||||
archetype Enemy { Actor, Stats } # battle foe
|
||||
model Player { Pos, Actor, Party, Stats } # the controllable knight
|
||||
model Ally { Party, Stats } # backline mage (no overworld body)
|
||||
model Enemy { Actor, Stats } # battle foe
|
||||
|
||||
const MW: int = 40
|
||||
const MH: int = 18
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue