Document pacing test workflow in CLAUDE.md
Add instructions for running the pacing report test and interpreting results after loot table changes. Also fix stale [if] syntax note.
This commit is contained in:
parent
71e10ec084
commit
4703ff1e05
1 changed files with 16 additions and 1 deletions
17
CLAUDE.md
17
CLAUDE.md
|
|
@ -42,10 +42,25 @@ Adventures use Loreline `.lor` script format. Custom functions available in scri
|
||||||
- Cosmetics: `hasCosmetic(id)`, `hasEquipped(slot, style)`
|
- Cosmetics: `hasCosmetic(id)`, `hasEquipped(slot, style)`
|
||||||
- Progression: `hasCompletedAdventure(theme)`, `markSecretBranch(id)`, `hasSecretBranch(id)`, `countSecretBranches()`, `allSecretBranches()`
|
- Progression: `hasCompletedAdventure(theme)`, `markSecretBranch(id)`, `hasSecretBranch(id)`, `countSecretBranches()`, `allSecretBranches()`
|
||||||
|
|
||||||
Hints for disabled choices use `|||` separator: `Option text|||Hint text #label [if condition]`
|
Hints for disabled choices use `|||` separator: `Option text|||Hint text #label if condition`
|
||||||
|
|
||||||
full documentation: https://loreline.app/fr/docs/
|
full documentation: https://loreline.app/fr/docs/
|
||||||
|
|
||||||
|
## Pacing Test
|
||||||
|
To check game progression balance after modifying loot tables (`content/data/boxes.json`):
|
||||||
|
```
|
||||||
|
dotnet test --filter "FullRun_PacingReport" --logger "console;verbosity=detailed"
|
||||||
|
```
|
||||||
|
This runs a full simulation (3 seeds: 42, 123, 777) and prints a report showing when each milestone is first reached (UI features, adventures, cosmetics, resources, crafting, lore). Use this to verify that rebalancing changes produce the desired early-game pacing.
|
||||||
|
|
||||||
|
Key things to look for:
|
||||||
|
- **1st Meta UI unlock** should happen before box ~50 for a good early experience
|
||||||
|
- **1st Adventure** should appear before box ~120
|
||||||
|
- **All content reachable** within ~1000 boxes (game completion)
|
||||||
|
- No long gaps between milestones (>100 boxes without progress feels stale)
|
||||||
|
|
||||||
|
Weights are in `content/data/boxes.json`. The main generator is `box_of_boxes` (auto-opens, produces the next box). Adjust weights there and in tier boxes (`box_not_great`, `box_ok_tier`, etc.) to tune pacing.
|
||||||
|
|
||||||
## Conventions
|
## Conventions
|
||||||
- C# 12 with file-scoped namespaces, primary constructors where appropriate
|
- C# 12 with file-scoped namespaces, primary constructors where appropriate
|
||||||
- Immutable records for value types, sealed classes for services
|
- Immutable records for value types, sealed classes for services
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue