# Room 54: Seven Dwarfs' Cottage

The Seven Dwarfs' cottage kitchen is the main living area of the dwarfs' tree house. The room features a large wooden table, sink, cabinets, fireplace with mantel, closet with broom, and stairs leading up to the bedroom. A diamond pouch can be found on the table. The player can interact with various objects, clean the room (a multi-stage quest), and must avoid being caught by the dwarf who patrols the area.

## Look Description

"This is the main room of the Seven Dwarfs' cozy tree house. What a mess it is!" (Print 54 50)

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `[!][around][/cottage,kitchen]` | "This is the main room of the Seven Dwarfs' cozy tree house." (Print 54 50) + "What a mess it is!" (Print 54 51) if dishes unwashed |
| TODO | Look | `/window` | "You can see the forest out the window." (Print 54 22) - only when in rect 124 117 197 130 |
| TODO | Look | `/mantel,mantel` | "Clean soup bowls are set on the mantel above the fireplace." (Print 54 23) if mantel has bowls, otherwise "There is nothing on top of the mantel." (Print 54 24) |
| TODO | Look | `<under/table` | "There is nothing of interest under the table." (Print 54 25) |
| TODO | Look | `/table` | "You see a long, wooden table." (Print 54 26) + "You also notice a blue pouch." (Print 54 27) if pouch on table, or "You see a long, wooden table. Empty soup bowls are left on it." (Print 54 28) if dishes on table |
| TODO | Look | `/stair` | "The narrow stairs lead up to the bedroom." (Print 54 29) |
| TODO | Look | `/cabinet` | "You see many cupboards." (Print 54 30) |
| TODO | Look | `<in/cabinet` | "There is nothing to interest you in the cupboards." (Print 54 1) |
| TODO | Look | `/wall` | "There is nothing of importance on the walls." (Print 54 31) |
| TODO | Look | `/dirt` or `<down` | "There is nothing interesting on the floor." (Print 54 32) |
| TODO | Look | `/bowl` | "Clean soup bowls are set on the mantle above the fireplace." (Print 54 33) if cleaned, otherwise "Empty soup bowls are left on the table." (Print 54 34) |
| TODO | Look | `/caldron,soup` | "You see a pot of soup bubbling over a cheery fire." (Print 54 35) |
| TODO | Look | `/fire,fireplace` | "A cheery fire heats a bubbling pot of soup in the fireplace." (Print 54 36) |
| TODO | Look | `/carpet` | "A rag rug covers the floor." (Print 54 37) |
| TODO | Look | `/sink` | "The sink is clean and empty." (Print 54 38) if cleaned, otherwise "There are dirty dishes in the sink." (Print 54 39) |
| TODO | Look | `/dish[<dirty]` | "The dishes are dirty." (Print 54 40) if dishes dirty, otherwise "The dishes have been washed and put away." (Print 54 41) |
| TODO | Look | `/clock[<cuckoo]` | "This clock has seen better days. The cuckoo has flown away." (Print 54 42) |
| TODO | Look | `/time` | "This clock is broken." (Print 54 43) |
| TODO | Look | `<in/closet` | "The closet contains only an old broom." (Print 54 44) if near closet, or "The closet is closed." (Print 54 45) if door closed |
| TODO | Look | `/closet` | "There's nothing much in the closet except for an old broom." (Print 54 46) if near closet, otherwise "You see a closet door." (Print 54 47) |
| TODO | Look | `/broom` | "You see an old broom." (Print 54 48) if near closet, otherwise "You can't see any brooms from here." (Print 54 49) |
| TODO | Look | `/pouch,diamond` | "There is a blue pouch in the center of the table." (Print 54 21) if pouch in room |
| TODO | Look | `/soup` | "The soup is delicious!" (Print 54 20) if soup drunk |
| TODO | Action | `open,(look<in)/cabinet` | "There is nothing to interest you in the cupboards." (Print 54 1) |
| TODO | Action | `close/cabinet` | "This house needs more than that!" (Print 54 2) if dishes unwashed, otherwise "It is already closed." (Print 54 3) |
| TODO | Action | `open/door,closet,pantry` | "It is already open." (Print 54 4) if open, or opens closet door if player in rect 40 137 70 150 |
| TODO | Action | `close/door,closet,pantry` | "It is already closed." (Print 54 3) if closed, or closes closet door if player in rect |
| TODO | Action | `sit` | "Not now." (Print 54 5) |
| TODO | Action | `clean[/cottage]` | Cleans house if conditions met (starts cleaning quest) |
| TODO | Action | `clean,scrub/table,dish` | Cleans table if conditions met |
| TODO | Action | `clean,do,scrub,sweep,dust[/dish,dirt,furniture]` | "The room is nice and clean now." (Print 54 9) if cleaned, otherwise "This house needs more than that!" (Print 54 2) |
| TODO | Action | `chew,drink,chew/soup` | "Not now." (Print 54 5) if soup not available, otherwise "The soup is delicious!" (Print 54 10) |
| TODO | Get | `/dish[<dirty]` | "You don't want dirty dishes!" (Print 54 11) or "You don't need them." (Print 54 12) |
| TODO | Get | `/broom` | "You don't need the broom." (Print 54 13) if near, otherwise "What broom?" (Print 54 14) |
| TODO | Get | `/caldron` | "The pot doesn't belong to you." (Print 54 15) |
| TODO | Get | `/bowl` | "You don't need the soup bowls." (Print 54 16) |
| TODO | Get | `/soup` | "You're not hungry now." (Print 54 17) if soup drunk, otherwise "The soup doesn't belong to you." (Print 54 18) |
| TODO | Get | `/pouch,diamond` | Picks up pouch if conditions met, awards 2 points |
| TODO | Look | `is<how<time` or `[!*]/time` | "The clock is broken." (Print 54 0) |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | `startClean` | Player types "clean" in cottage with unwashed dishes and sink has dishes | Initiates cleaning sequence: moves player through kitchen, leads to room 53 |
| TODO | Interaction | `cleanKitchen` | Player returns to room after dishes washed (global115=1) | Full cleaning animation: washes remaining dishes, sweeps floor, updates state, awards 5 points, moves to room 654 |
| TODO | Interaction | `cleanTable` | Player types "clean table" or "scrub dish" with dishes washed but table dirty | Cleans table in stages, disposes of dirty bowl views, updates global177 flag |
| TODO | Interaction | `doorOpen` | Player opens closet door | Moves player to door, plays open animation |
| TODO | Interaction | `doorClose` | Player closes closet door | Moves player to door, plays close animation |
| TODO | Interaction | `useSteps` | Player uses control area near stairs | Moves player up or down stairs to bedroom (room 53) |
| TODO | Background | `bounceBitchScript` | Runs continuously on dwarf NPC | Monitors player position; if player is alone in room (not cleaning, dwarf not hostile), triggers dwarf to chase and eject player |
| TODO | Background | `dishDust` | Created during dish cleaning animation | Displays dust particles following player during washing |
| TODO | Background | `sweepDust` | Created during floor sweeping animation | Displays dust particles following player during sweeping |

## Technical Notes

- **Room Number**: 54
- **Picture**: 54
- **Region**: 601 (Dwarf cottage region)
- **Exits**: North→53 (via stairs or control area), East→22 (via control area), South→53 (via control area), West→654 (after cleaning)

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `global101` | 1 | Room initialization flag |
| `global102` | 0, 1, 2 | Kitchen cleaned state: 0=dishes unwashed, 1=cleaned, 2=dwarf ejected player |
| `global115` | 0, 1 | Cleaning in progress flag |
| `global122` | 0, 1 | Dwarf is hostile/chasing player |
| `global176` | 0, 1 | Player has drunk soup |
| `global177` | 0, 1 | Table cleaned (dirty bowls removed) |
| `global182` | 0, 1 | Diamond collected |
| `global189` | 0, 1 | Room completion flag |
| `global204` | 0, 1 | Script running flag |
| `global205` | 0, 1 | Script running flag |
| `local25` | 0, 1 | Player movement blocked during scripts |
| `newProp_2 cel` | 0, >0 | Closet door state: 0=closed, >0=open |

### Synonyms

- `sink` = `counter`
- `cottage` = `room`

### Inventory Items Referenced

- Item 1: Pouch/Diamond
- Item at 1: Crown (referenced in code but not used in room 54)
