64 lines
4.3 KiB
Markdown
64 lines
4.3 KiB
Markdown
# Room 56: Seven Dwarfs' Diamond Mine (West)
|
|
|
|
This is the western section of the Seven Dwarfs' diamond mine. The room contains working dwarfs, a bucket full of diamonds, and a dwarf who will give the player a lantern in exchange for returning a lost pouch of diamonds. The room has different visual states depending on whether the player has found the pouch and whether they've returned it to receive the lantern.
|
|
|
|
## Look Description
|
|
|
|
"One dwarf appears to be idling by the diamond bucket."
|
|
|
|
## Interactions
|
|
|
|
| Status | Behavior Type | Command | Response |
|
|
|--------|--------------|---------|----------|
|
|
| TODO | Look | `look` / `look around` / `look room` / `look mine` / `look diamond mine` | "One dwarf appears to be idling by the diamond bucket." |
|
|
| TODO | Look | `look dwarf` | "You see the busy little dwarfs hard at work within the diamond mine. The diamonds flash and sparkle from the earthen walls." |
|
|
| TODO | Look | `look bucket` | "You see a bucket brim full of sparkling diamonds." |
|
|
| TODO | Talk | `talk dwarf` / `converse dwarf` (near dwarf, has pouch, no lantern) | Triggers answer1 script with dialogue sequence |
|
|
| TODO | Talk | `talk dwarf` / `converse dwarf` (not near dwarf or no pouch) | "You attempt to talk with the dwarf by the bucket again, but he only ignores you. You get the message." |
|
|
| TODO | Action | `kiss dwarf` / `kiss` (near dwarf) | "You attempt to kiss the dwarf, but he seems embarrassed by it." |
|
|
| TODO | Action | `deliver pouch` / `return pouch` / `deliver diamond` / `return diamond` (has pouch, no lantern, near dwarf) | Triggers handOff script - dwarf accepts pouch, gives lantern, awards 3 points |
|
|
| TODO | Action | `deliver pouch` / `return pouch` / `deliver diamond` / `return diamond` (not near dwarf) | "The dwarf is not interested." |
|
|
| TODO | Action | `deliver pouch` / `return pouch` / `deliver diamond` / `return diamond` (doesn't have pouch) | "The dwarf is not interested." |
|
|
| TODO | Get | `get bucket` / `rob bucket` | "The bucket is not yours, Rosella!" |
|
|
| TODO | Get | `get lantern` / `rob lantern` | "You were raised better than that!" |
|
|
|
|
## Scripts
|
|
|
|
| Status | Behavior Type | Name | Trigger | Behavior |
|
|
|--------|--------------|------|---------|----------|
|
|
| TODO | Background | dwarvesMove | Continuous | Controls dwarf character animations - randomly selects from 6 different movement/animation sequences for the working dwarfs |
|
|
| TODO | Background | sparkle | Continuous when `diamonds_visible = true` | Randomly selects one of 4 diamond sparkle props, plays sparkle animation cycle, repeats continuously |
|
|
| TODO | Interaction | answer1 | Talking to dwarf with pouch but no lantern | Displays multi-line dialogue sequence where dwarf explains player shouldn't be in mine, then offers lantern in exchange for pouch |
|
|
| TODO | Interaction | handOff | Delivering pouch to dwarf while near bucket | Stops dwarf animations, hides sparkle effects, shows dwarf accepting pouch animation, awards 3 points, gives player lantern (item 3), then resumes dwarf work animations |
|
|
|
|
## Technical Notes
|
|
|
|
- **Room Number**: 56
|
|
- **Picture**: 56
|
|
- **Style**: $0010
|
|
- **Region**: 600 (Diamond Mine)
|
|
- **Exits**: West→55
|
|
- **Music**: Dwarf theme (sound #30, looping via region)
|
|
|
|
### State Variables
|
|
|
|
| Variable | Values | Description |
|
|
|----------|--------|-------------|
|
|
| `diamonds_visible` | `true`, `false` | Whether diamond sparkles are visible (global223) |
|
|
| `has_pouch` | `true`, `false` | Player has pouch of diamonds (item 1) |
|
|
| `has_lantern` | `true`, `false` | Player has received lantern from dwarf (item 3) |
|
|
| `pouch_returned` | `true`, `false` | Player has returned pouch to dwarf (controls room visuals and available interactions) |
|
|
|
|
### Additional Technical Details
|
|
|
|
- Room uses Region 600 for shared diamond mine interactions
|
|
- Room has different visuals based on inventory state:
|
|
- With pouch (item 1): Dwarf by bucket appears with different animation
|
|
- Without pouch: Different dwarf positions, no pouch on dwarf
|
|
- With lantern (item 3): Lantern visible on dwarf
|
|
- Without lantern: No lantern shown on dwarf
|
|
- When delivering pouch to dwarf, player receives lantern and 3 points are awarded
|
|
- Player enters at position (65, 139) from east (Room 55)
|
|
- Edge detection returns player to Room 55 if they go too far east (onControl $0040)
|
|
- Global101 is set to 1 on room entry (purpose unclear - may be initialization flag)
|