47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# 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`
|