refactor: new structure
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Collecting Asteroids Task Type
|
||||
|
||||
Match asteroids to cargo ships by weight sum. Each page has 3 ships with cargo bays and ~12 asteroids scattered across the page. Child draws lines connecting asteroids to ships so that asteroid values sum to ship capacity.
|
||||
|
||||
## Layout
|
||||
|
||||
- 3 ships per page with cargo bay images
|
||||
- 2 asteroid types per page (70:30 ratio distribution)
|
||||
- 12 asteroids per page scattered with absolute positioning
|
||||
- Hero images: splitter ships from `assets/hero-images/splitters/`
|
||||
- Footer images: cabin interiors from `assets/footers/cabin{1-9}.jpeg`
|
||||
- Cargo bay images: `assets/icons/pack4-cargobay/cargo-bay{1-9}.png`
|
||||
- Asteroid images: `assets/icons/pack3-asteroids/asteroid{1-16}.png`
|
||||
|
||||
## Asteroid Placement Rules
|
||||
|
||||
- Distribute asteroids evenly across the page area using grid-based approach
|
||||
- Asteroids must not overlap with ships or cargo bays
|
||||
- Each asteroid has a numeric value (1-20) displayed on it
|
||||
- Scale formula: `scale = baseScale + 0.15 * value` (default baseScale: 0.30)
|
||||
- No editor-first approach — generate everything via AI first, editor comes later for fine-tuning
|
||||
|
||||
## Validation
|
||||
|
||||
Use verify script to check that asteroid values can be partitioned to ship capacities:
|
||||
```bash
|
||||
node scripts/verify.mjs --ships 10,10,14 --asteroids 3,2,1,4,5,2,3,6,5,4,1,6
|
||||
```
|
||||
|
||||
Always verify solvability after generating or editing asteroid values.
|
||||
|
||||
## Scripts
|
||||
|
||||
- `scripts/verify.mjs` — solver to verify asteroid-to-ship partition (stdout → Claude reads)
|
||||
- `scripts/transform-collecting3.mjs` — bulk asset replacement utility
|
||||
|
||||
## Editor
|
||||
|
||||
`editor.html?file={docId}` — drag asteroids and ship circles, adjust values and scales.
|
||||
|
||||
Key controls:
|
||||
- Drag: move asteroid/ship position
|
||||
- `+/-`: change asteroid value (1-20 range)
|
||||
- `[/]`: rotate ±5° (Shift = ±1°)
|
||||
- `</.>`: adjust base scale per asteroid type
|
||||
- Save: writes to `docs/{docId}.data.json`
|
||||
Reference in New Issue
Block a user