listening and smelling
Both parse since ADR-230 D2: listen, listen to X, and the hear [X] alias; smell and sniff, bare or with a target.
listen (listening). With a target, a running device
reports device_running, a stopped one device_off, a container
sloshes (liquid_sounds) or rustles (container_sounds) by its
contents, and anything else reports no_sound. Bare listen scans the
room: running devices report active_devices, and an otherwise quiet
room reports silence. It has no preconditions at all, making it a
pure flavor seam.
smell (smelling). With a target, food and drink report
food_scent/drink_scent, a lit light source burning_scent, an open
container with food inside container_food_scent, and anything else
no_particular_scent; a target in another room refuses too_far. Bare
smell checks smoke first (smoke_detected), then food (food_nearby),
and otherwise reports no_scent.
The author writes:
create the Chapel
a room
Candle smoke and old stone.
create the pipe organ
aka organ
scenery
in the Chapel
A pipe organ that fills the far wall.
on listening it
phrase organ-breath
end on
phrase organ-breath:
Air sighs through the pipes, a chord not quite sounding.
create the player
starts in the Chapel
The player sees:
> listen
You hear nothing out of the ordinary.
> listen to the organ
Air sighs through the pipes, a chord not quite sounding.
> smell the organ
The pipe organ has no particular smell.
> smell
You don't smell anything unusual.
The organ's on listening it phrase replaces the stock miss entirely;
where no clause answers, the platform's own misses are honest rather
than errors.
listen (listening-*) | smell (smelling-*) | |
|---|---|---|
| Refusals | — | too_far |
| Success | device_running · device_off · liquid_sounds · container_sounds · no_sound · active_devices · silence | food_scent · drink_scent · burning_scent · container_food_scent · no_particular_scent · smoke_detected · food_nearby · no_scent |
| Events | listened / listen_blocked | smelled / smell_blocked |
Interceptors: like touching, both are favorites for on listening it / on smelling it clauses.
Separately from this action pair, the platform has a real sound propagation system (the acoustic traits): engine-level, per-turn, event-driven. Sounds travel through walls by acoustic cost and reach listener entities. The listening action does not read it; the two meet in story logic, not in stdlib.