paradramorama/README.md
m3ultra 21dd748e8e Vertical slice: possess/decay/bail loop, live pitch-duel, full floor
Ranarama x Paradroid hybrid. Bare signal invisible to hardware, hunted
by static; touch a machine for a picture-in-picture tune-to-lock duel
while the world stays live; possessed bodies decay and double as ammo
and disguise; gain=damage=noise aggro economy; eject leaves re-enterable
husks; floor clear resolves the dissonant drone to a major chord.
Vanilla JS + Canvas + Web Audio, no build step.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 00:27:47 +10:00

47 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PARADRAMORAMA
*Ranarama × Paradroid, finished properly this time.*
You are a rogue **Signal** loose in a haunted studio complex. The hardware can't
see you — you're just noise on the line. Static gremlins CAN see you, and they
hunt signals. Touch a machine to invade it in a live pitch-matching duel (the
world does not pause), wear its body while it decays, burn its weapons, and bail
before it blows. Purge every amp and every machine on the floor and the drone
resolves to a chord.
## Run it
Any static server from the repo root (ES modules won't load off `file://`):
```
python3 -m http.server 8474
```
then open http://localhost:8474
## Controls
| Key | Action |
|---|---|
| WASD / arrows | move |
| touch hardware | start possession duel |
| W / S (in duel) | tune your oscillator to the target tone, hold the lock |
| SPACE | fire — **hold** to ride the gain (more damage, more noise) |
| E | eject from the body (leaves a husk you can re-enter, no duel) |
| P | pause · M | mute |
## The loop
1. **Bare signal** — fast, invisible to hardware, helpless. Static hunts you.
2. **Duel** — bump a machine → picture-in-picture pitch-match under a timer
while the room stays live. Static hits you mid-duel, you lose the duel.
3. **Possessed** — the body is your health, ammo and disguise, and it is
always draining. Firing drains it faster. Gain = damage = noise = every
machine on the floor hears you.
4. **Bail** — eject before it blows or eat coherence damage. Hide. Hunt the
next host.
Full design: [DESIGN.md](DESIGN.md)
Prototype is vanilla JS + Canvas + Web Audio. No dependencies, no build step.