# Room 29: Dense Forest

A forest clearing where a robin bird may appear with an earthworm. The player can obtain the earthworm by watching the bird and catching it when it drops the worm. Features a dangerous pit on the west side that causes the player to fall.

## Look Description

"You are roaming through a dense forest."

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look/around`, `look/room`, `look[<around][/!*]` | "You are roaming through a dense forest." (Print 29 0) |
| TODO | Get | `capture,get/earthworm` | If worm exists and close enough: catches worm. If worm not present: "You see a fat worm wiggling on the ground." (Print 29 11). If not close enough: "You're not close enough." (Print 800 1) |
| TODO | Look | `look/crow`, `look/crow` | Unhandled (allows crow interaction from other rooms) |
| TODO | Look | `look/robin`, `look/bird`, `look/robin,bird` | If bird present and state 0: "A pretty robin pulls hungrily at a long earthworm." (Print 29 2). If bird present and state > 0: "You see a bird flying away." (Print 29 3). If no bird: "You don't see one here." (Print 29 4) |
| TODO | Talk | `converse/robin`, `converse/bird`, `converse/robin,bird` | If bird state 0: "Cheep, cheep!" (Print 29 5). If bird state > 0: "Not now." (Print 29 6) |
| TODO | Action | `kill/robin`, `kill/bird`, `kill/robin,bird` | "Not a little robin!" (Print 29 7) |
| TODO | Get | `capture,get,kiss/robin`, `capture,get,kiss/bird` | If bird present: "You're not close enough." (Print 800 1). If no bird: "You don't see one here." (Print 29 4) |
| TODO | Action | `help/robin`, `help/bird`, `help/robin,bird` | "How can you do that, Rosella?" (Print 29 8) |
| TODO | Inventory | `deliver` (to robin) | If bird present: "The robin can't understand." (Print 29 9). If no bird: "There's no one here." (Print 29 10) |
| TODO | Look | `look/earthworm` | If bird present and has worm and bird state 0: "A pretty robin pulls hungrily at a long earthworm." (Print 29 2). If worm on ground: "You see a fat worm wiggling on the ground." (Print 29 11). If player has worm: shows worm inventory. Otherwise: "You don't see one here." (Print 29 4) |
| TODO | Look | `look/dirt` | If worm on ground: "You see a fat worm wiggling on the ground." (Print 29 11). If bird present with worm: "A pretty robin pulls hungrily at a long earthworm." (Print 29 2). Otherwise: "You see nothing of importance." (Print 29 12) |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | fallSouth | Player walks west into pit area (control area $0004) | Triggers fall animation using view 17, plays fall sound (51), then transitions to swimming view (21) and moves to room 28 |
| TODO | Background | birdActions | Robin bird spawned (50% chance when player has worm); triggers when player gets within 30 pixels of bird | Bird drops worm (creates earthworm prop), flies away to upper left, then disposes |
| TODO | Background | wormActions | Runs continuously on room init; also triggered when player captures worm | Spawns earthworm on ground (moves item 19 to room); when player captures, disposes worm, gives worm to player, awards 2 points, sets global182 to 1 |

## Technical Notes

- **Room Number**: 29
- **Picture**: 29
- **Region**: 508
- **Exits**: North→23, South→5, East→30, West→28
- **Music**: Sound 51 (fall sound)

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `global100` | 0, 1 | Controls whether room overlay (129) is shown |
| `global101` | 0 | Unknown, set to 0 in init |
| `global182` | 0, 1 | Worm collected score flag - set to 1 after player obtains worm |
| `newAct` | 0, object | Robin bird actor instance (spawned randomly 50% chance) |
| `newProp` | 0, object | Earthworm prop instance (spawned when bird drops it) |
| `worm_owned` | true, false | Whether player has earthworm in inventory (item 19 owned by 206=player, 29=room) |

### Special Mechanics

- Bird (50% spawn chance): Only appears when player has the earthworm in inventory (item 19 owned by 206)
- Worm spawning: Worm appears on ground in room when wormActions initializes
- Worm capture: Player must get close to worm (within 15 pixels) and use capture/get command
- Fall hazard: West exit has a pit - walking into control area $0004 triggers fall sequence
- Fall sequence: Player falls using view 17 animation, then transitions to swimming view (21) and is moved to room 28
- Score: 2 points awarded when worm is collected (global182 prevents re-awarding)
