Files
kq4-decompile/rooms/kq4-079-mountain-path-to-dark-castle/kq4-079-mountain-path-to-dark-castle.md
2026-02-20 14:00:40 -08:00

76 lines
5.7 KiB
Markdown

# Room 79: Mountain Path to Dark Castle
This is the treacherous mountain path that winds around the craggy cliffs leading to Lolotte's dark castle. The room features two of Lolotte's winged henchmen (goons) that ambush the player when approaching from the south. The path is narrow and dangerous with various drop-offs that can cause the player to fall to their death. Players can look at the castle, path, goons, and surrounding landscape, but cannot interact with or capture the goons.
## Look Description
"The treacherous path winds narrowly around the craggy mountain. In the distance, perched upon a rocky ledge, you see a dark, unfriendly castle."
## Interactions
| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look` / `look around` / `look room` / `look cliff` | "The treacherous path winds narrowly around the craggy mountain. In the distance, perched upon a rocky ledge, you see a dark, unfriendly castle." (Print 79 0) |
| TODO | Look | `look goon` (if goons present) | "Lolotte's goons are not appealing at all! Besides having an unnatural pallor to their skin, they are creepy little creatures who fly upon wings that resemble those of bats." (Print 79 1) |
| TODO | Look | `look goon` (if goons not present) | "You don't see one here." (Print 79 2) |
| TODO | Look | `look path` | "The mountain path is thin and dangerous. It seems to lead to the dark castle." (Print 79 3) |
| TODO | Look | `look castle` | "The dark castle looks very forbidding. It perches precariously upon an over-hanging, mountain ledge. The path, upon which you are now treading, seems to lead directly to the sinister castle." (Print 79 4) |
| TODO | Look | `look boulder` | "The whole mountain is rocky." (Print 79 5) |
| TODO | Look | `look down` / `look dirt` | "The ground is a long way down." (Print 79 6) |
| TODO | Look | `look forest` | "You see a forest of trees below you." (Print 79 7) |
| TODO | Action | `climb cliff` | "The craggy mountains are much too steep to climb." (Print 79 8) |
| TODO | Talk | `converse goon` / `converse` | "Lolotte's henchmen must not speak, as they only utter strange guttural sounds." (Print 79 9) |
| TODO | Action | `get goon` / `capture goon` | "Why would you want one?!" (Print 79 10) |
| TODO | Inventory | `deliver [item]` (if player has item) | "The henchmen are not interested in your offering." (Print 79 11) |
| TODO | Inventory | `deliver [item]` (if player doesn't have item) | "You can't give that." (Print 79 12) |
## Scripts
| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | h1Actions | Entering from south or default entry | First henchman spawns at top of screen, plays theme music, walks down to chase player, transitions to attacking view, captures player |
| TODO | Interaction | h2Actions | Spawns alongside h1Actions when entering from south | Second henchman follows similar pattern to h1Actions, coordinates with first henchman to surround player, triggers capture sequence |
| TODO | Interaction | stopHench | Player falls into pit (any fall* script triggers) | Both henchmen stop chasing and exit screen to the left when player dies |
| TODO | Interaction | egoDead | Player steps on any control area marked as pit | Death sequence: screen shakes, message displayed, game over flag set, player dies |
| TODO | Background | fallBlue | Player on control area $0002 | Player falls and dies (blue pit) |
| TODO | Background | fallCyan | Player on control area $0008 | Player falls and dies (cyan pit) |
| TODO | Background | fallGreen | Player on control area $0004 | Player falls and dies (green pit) |
| TODO | Background | fallLgrey | Player on control area $0080 | Player falls and dies (light grey pit) |
| TODO | Background | fallGrey | Player on control area $0100 | Player falls and dies (grey pit) |
| TODO | Background | fallLblue | Player on control area $0200 | Player falls and dies (light blue pit) |
| TODO | Background | fallLgreen | Player on control area $0400 | Player falls and dies (light green pit) |
| TODO | Background | fallLcyan | Player on control area $0800 | Player falls and dies (light cyan pit) |
## Technical Notes
- **Room Number**: 79
- **Picture**: 79 (day) / 179 (night when `global100` is set)
- **Style**: $0008 (dissolve)
- **Exits**: North→80, South→30
- **Music**: Henchman theme (sound #29, looping)
### State Variables
| Variable | Values | Description |
|----------|--------|-------------|
| `global100` | `0`, `1` | Night time flag - if set, room uses picture 179 |
| `global101` | number | Room state tracking |
| `global105` | `0`, `1`, `10` | Player state: 10 = falling/dying, 1 = captured by henchmen |
| `global109` | `1`, `2`, `3` | Unknown - checked during henchman capture sequence to determine outcome |
| `global169` | `true`, `false` | Henchmen presence flag - if true, henchmen spawn |
| `global189` | `0`, `1` | Room visited/active flag |
| `global204` | number | Unknown state variable |
### Additional Technical Details
- Synonyms defined: `goon` = `goon` = `man` = `animal`
- Two Act instances (newAct, newAct_2) created for the two henchmen
- Henchmen use views 142, 143, 144 for different animation states
- When captured (state 5 in h2Actions), checks global109 and inventory items (33, 4) to determine capture outcome
- Player falls to death if stepping on control areas with bitmasks $0002, $0004, $0008, $0080, $0100, $0200, $0400, $0800
- Control area $0010 triggers base setter (water effect)
- Control area $0040 triggers exit to room 80 (north edge)
- When player dies (egoDead), global127 is set to 1
- If player is captured by henchmen, transported to room 92
- If player falls but survives somehow, transported to room 30