Commit Graph

4 Commits

Author SHA1 Message Date
seppedl 679639df9f Wire game transitions end-to-end, add Guide lookup, add 79 tests
Transitions:
- Add I-HOUSEWRECK (tick 20) and I-VOGONS (tick 50) timed events to
  earth.py, queued at startup in main.py
- I-VOGONS demolishes Earth and moves player to Vogon Hold
- Fix airlock→Dark transition to call Dark room M-ENTER handler
- Fix dream-restore to support multiple callbacks (list instead of single)
- Add state.finish() call to RAMP for endgame victory

Guide system:
- Add 16-entry lookup database to GUIDE object (space, towel, vogons,
  poetry, beast, babel fish, earth, magrathea, marvin, etc.)
- "consult guide about X" now returns relevant entry text

Tests (79 passing):
- test_engine.py (14): containment, flags, articles, clock mechanics
- test_parser.py (20): directions, compound verbs, prepositions, synonyms
- test_earth.py (21): full opening sequence, puzzles, navigation
- test_vogon.py (4): room existence, Hold first-visit sequence
- test_dark.py (7): inventory clearing, dream dispatch, probabilities
- conftest.py: shared game fixture and send() helper

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 22:04:22 +02:00
seppedl a1bb4cbf02 Add complete game content: Vogon ship, Heart of Gold, off-Earth, dream system
Engine refactoring:
- Replace hardcoded state attributes with generic state.flags dict
- Add death system (jigs_up/finish) with dream-restore callbacks
- Add inventory extras hook system (removes hardcoded headache/tea lines)
- Add 16 new verb handlers (consult, say, carve, plug, repair, kick, etc.)
- Add verb synonyms to parser

New content modules (25 rooms, 107 objects total):
- vogon.py: Hold, Captain's Quarters, Airlock; babel fish puzzle, poetry
  scene, airlock ejection sequence with timed events
- heart.py: 10 Heart of Gold rooms; Marvin tool quest, tea/no-tea paradox,
  Nutrimat overload, Infinite Improbability Drive puzzle, victory sequence
- unearth.py: Traal (Beast lair with towel/name/carve puzzle), War Chamber,
  Inside Whale, Maze with random exits and particle
- dark.py: Dream dispatch room with probabilistic destination selection,
  sensory discovery mechanic, dream-restore callback

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 21:52:57 +02:00
seppedl a6fe624c5e Add README with uv install instructions, fix pyproject.toml
- Add README.md with install/run instructions using uv
- Add build-system and script entry point to pyproject.toml
- Add .gitignore for __pycache__ and save files
- Remove placeholder main.py (entry point is h2g2.main:main)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 20:50:47 +02:00
seppedl f55286db8e Initial commit: ZIL source + Python game engine
Original ZIL source code for The Hitchhiker's Guide to the Galaxy (Infocom, 1984)
plus a native Python text adventure engine with the Earth opening sequence playable
(Bedroom → Front Porch → Front of House → Country Lane → Pub).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 20:46:54 +02:00