4.3 KiB
4.3 KiB
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)