A portrait-first phone controller for Ectobounce, the shared-screen haunted-hotel arcade game. Open /ectobounce-c/ with the same r room parameter as the viewer at /ectobounce/, or scan the viewer's QR code.
Use left/right, Jump and Zap. Jump height responds to how long you hold. Zap becomes Launch when your lantern contains a ghost. The controller shows your matching colour/number, score, lantern state and network status. Simultaneous touches, sliding direction input, touch cancellation and keyboard/mouse testing are supported.
On first check-in, an illustrated guide explains how to stun, capture and launch ghosts. Reopen it through Menu at any time. Enter Your name in the same menu; it is saved as rcwebName, shared with other RCWeb apps on this device. Changing it updates your current player without resetting your score or slot. Names are limited to 16 characters; leaving the field empty restores your colour name.
The first player is captain and can open or pause the hotel through Menu. After victory or defeat, any joined controller can choose Play again, even if the viewer joined first. The menu stays open until the viewer starts room 1 and closes its end-of-game overlay. Up to six players can play simultaneously; additional phones wait for a space. Late players enter the current wave immediately with two seconds of protection. Each newly opened controller gets its own player; reloading or reconnecting resumes the same player within the 20-second presence window. Reconnection requests a fresh input session so held or queued commands cannot replay unexpectedly.
Audio plays on the shared display after sound is enabled there. Phone vibration is optional feedback for action presses.
While you are a ghost, Jump becomes Up and Zap becomes Down. Hold these with left/right to fly diagonally through platforms toward a teammate for revival. Keyboard players can use arrows or WASD; Space flies up and X/Z flies down. The ghost faces its flight direction and stays inside the room.
The controller follows the original midnight-blue and gold hotel concept, with a painted bellhop portrait recoloured for each of the six players, framed live status panels, and large circular action buttons. The layout adapts to small portrait phones and landscape without changing multi-touch input. The two local artwork assets total about 90 KB; labels and controls remain live HTML. Artwork prompts and source locations are recorded in art-prompts.md.
Run node src/main/apps/app/ectobounce-c/design.test.cjs against the running local server to check responsive touch targets, Zap/Launch labels, all six portrait colours, simultaneous input, reconnect status and visible artwork-load errors.