# Room 70: Waterfall Cave

This is the scenic area behind the waterfall, accessible by walking through the falls. The room features a dramatic waterfall, cave entrance, steep cliff, and a pool of water. Players can swim in the pool, drink from the water, collect a board, and be swept out by strong currents in specific areas. The room supports both land and swimming forms.

## Look Description

"What's this?! Why, it's a cave behind the waterfall! You see an old board lying by the cave entrance."

## Interactions

| Status | Behavior Type | Command | Response |
|--------|--------------|---------|----------|
| TODO | Look | `look waterfall` / `look falls` | "Waterfalls sure look different when you're underneath them!" |
| TODO | Look | `look cliff` / `look mountain` | "The mountain, above the waterfall, rises steeply to the east." |
| TODO | Look | `look cave` | "It sure is dark in there!" |
| TODO | Look | `look boulder` | "You see rocks all around you." |
| TODO | Look | `look flora` / `look moss` | "You see only moss growing on the rocks." |
| TODO | Look | `look dirt` / `look ground` (board present) | "You see a board lying on the ground." |
| TODO | Look | `look dirt` / `look ground` (no board) | "You see nothing interesting on the ground." |
| TODO | Look | `look under water` / `look under pool` (on land) | "You're not in the water." |
| TODO | Look | `look under water` / `look under pool` (in water) | "You look under the water, and see nothing but...more water." |
| TODO | Look | `look in water` / `look in pool` | "You look into the water, but see nothing of interest." |
| TODO | Look | `look waterfall` | "It's difficult to see much of anything through a waterfall." |
| TODO | Look | `look in pool` / `look in water` | "You peer into the pool of water, but cannot see anything of importance." |
| TODO | Look | `look pool` / `look water` | "You see a deep pool below the waterfall." |
| TODO | Look | `look around` / `look room` | "What's this?! Why, it's a cave behind the waterfall! %s" (conditionally includes board text) |
| TODO | Action | `climb cliff` / `climb mountain` | "The mountain is too steep to climb." |
| TODO | Action | `climb boulder` / `climb rock` | "You don't like to climb rocks." |
| TODO | Get | `get board` (if present, close enough) | Picks up board, +2 score, sets `board_collected = true` |
| TODO | Get | `get board` (if present, too far) | "You can't get that from here." (Print 800 1) |
| TODO | Get | `get board` (not present) | "You already have it." |
| TODO | Action | `drink` / `get drink` (in water, valid terrain) | Triggers drinking animation sequence |
| TODO | Action | `drink` / `get drink` (on land or invalid terrain) | "You have no reason to carry water." |
| TODO | Get | `get water` | "You have no reason to carry water." |
| TODO | Action | `dive` / `bathe[<enter]` (on land) | "Just enter the water." |
| TODO | Action | `dive` / `bathe[<enter]` (in water) | "You're already in the water." |

## Scripts

| Status | Behavior Type | Name | Trigger | Behavior |
|--------|--------------|------|---------|----------|
| TODO | Interaction | swimIn | Entering from Room 24 (swimming entry) | Swimming animation sequence: enters from pool, transforms to swimming view (377→378), plays poof sound, transforms back to normal form at shore, prints "It sure feels good to be yourself again!" |
| TODO | Interaction | boardActions | Using `get board` command | Rosella bends down to pick up board, board is removed from room, added to inventory (item 22), +2 score awarded |
| TODO | Interaction | drinking | Using `drink` command in valid water | Rosella kneels and drinks from pool, displays message, animation completes, returns to walking |
| TODO | Interaction | sweptOut | Player enters specific rectangles (142-166, 110-125 or 49-111, 117-128) | Player is swept away by current: plays swept animation (view 10), transported to Room 24 |

## Technical Notes

- **Room Number**: 70
- **Picture**: 70
- **Exits**: South→71 (via control area $0040), Room 24 (when swept out via `sweptOut` script)
- Entry from Room 24 triggers `swimIn` script for swimming entrance animation

### State Variables

| Variable | Values | Description |
|----------|--------|-------------|
| `global101` | `1` | Room initialization flag |
| `global105` | `0`, `3`, `4` | Current terrain type (0=land, 3=shallow water, 4=deep water) |
| `global182` | `0`, `1` | Board collected flag (set to 1 when board is picked up) |
| `global205` | `0`, `1` | Swept out state (set to 1 when player is being swept away) |
| `board_in_room` | `true`, `false` | Whether board item (22) is present in room |

### Terrain Detection

| Control Area | View | Description |
|--------------|------|-------------|
| $0001 | 2 | Land (normal walking) |
| $0800 | 7 | Shallow water (kneeling) |
| $0002 | 8 | Deep water (swimming) |

### Additional Technical Details

- No region scripts applied (no `setRegions` call)
- Board appears in room only when inventory item 22 is owned by room 70
- Player can be swept out in two specific rectangular zones: 142-166 x 110-125 and 49-111 x 117-128
- When entering from Room 24, player starts at position (158, 119) in swimming form
- When entering from land, player starts at position (224, 114)
- View 668 is used for animated waterfall effects (7 animated props with different loops/cels)
- Valid drinking terrain checked via bitmask: $0008 (shallow), $0800 (shallow), $0002 (deep), $0200 (shallow)
