Splatter: the pull IS the shot — direction aims, length is power
The ball economy made it harder in the wrong way: waiting for a ballboy is friction, not difficulty, and walking with the finger was one gesture too many for anyone to discover. Both are out — a spent ball hands you a fresh one again, and the thumb only ever does the slingshot. The brake moves into the gesture instead. The pull's LENGTH is now the shot's power and nothing else: under TUNE.zSplatQ it merely staggers, at full draw it's quality 1.0 with the PERFECT flash and hitstop. A lazy rhythm of short pulls can't kill anything, so tempo stops being a strategy. The pull's DIRECTION is a ray, not a landing point, which is the ergonomic fix for having to drag off the bottom of the phone: distance to the target no longer costs drag length. The first shambler standing in the lane eats the ball, whether it's 5 or 21 metres away, and the cone widens with range so distant lanes stay pickable. Full power now sits at 95px of travel. Also gone: the free predictive auto-lock on a directionless aim (zombieTarget returns null with no direction, and a bare hold no longer fires at all). Melee goes back to cleaving the cluster — it's the panic button — with the 1s cooldown left in as the brake. The reticle reads power throughout: cool blue only staggers, hot red kills, the drawn band grows behind you, and the pull clicks the moment it crosses the kill threshold. Verified by simulated touch gestures: 10px cancels, 35px = 0.31 (stagger), 60px = 0.60, 95px = 1.00; the same 60px pull reaches shamblers at 5m, 21m and diagonally; 22 serves in 30s, so the pace is back. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2787778ad2
commit
ff973cf6bb
6 files changed
+82
-97
No files matched your search
@@ -31,11 +31,15 @@ export const TUNE = {
|
||||
zSplatQ: 0.5, // min shot quality to splatter; below = stagger pushback
|
||||
zPushback: 1.4, // m a staggered zombie is knocked back
|
||||
splatterOverT: 0.1, // s the spent-ball 'over' beat lasts before the next serve is armed
|
||||
// ball economy: a dead ball LIES on the court. No serve until it's back in your hand.
|
||||
pickupR: 1.4, // m — walk over your loose ball to pick it up instantly (the fast way)
|
||||
eatBallR: 0.8, // m — a shambler this close to a loose ball swallows it
|
||||
looseMax: 2.0, // s before the boys hand you one anyway — the ceiling on standing ball-less. THE fire-rate knob.
|
||||
fetchEaten: 3.5, // s until fresh balls arrive after one got eaten — the only real punishment in the economy
|
||||
// the slingshot: the pull's DIRECTION picks a lane, its LENGTH is power. Deliberately DECOUPLED —
|
||||
// reaching a far shambler must not cost a longer drag than the screen has room for. The old
|
||||
// mapping (pull length = reach) is why you had to drag off the bottom of the phone.
|
||||
pullMin: 18, // px of pull below which the release cancels — no shot, nothing spent
|
||||
pullFull: 95, // px of pull for a full-power shot. Keep this well inside one thumb's travel.
|
||||
pullQMin: 0.12, // shot quality at pullMin, scaling to 1.0 (= PERFECT) at pullFull. Below
|
||||
// zSplatQ it only staggers, so a lazy flick can't kill: THE anti-spam knob.
|
||||
aimCone: 0.45, // lane half-width per meter of range — the aim cone widens with distance
|
||||
aimReach: 22, // m the aim ray runs when no shambler stands in the lane
|
||||
backstopZ: -1.8, // z of the far backstop — must sit IN FRONT of the -2 retire line, or balls die before they reach it
|
||||
backstopKeep: 0.55, // pace a ball keeps after the rebound — still lethal, slower
|
||||
backstopPop: 1.8, // m/s of lift off the fence, so the rebound travels back instead of dying at the net posts
|
||||
|
||||
Reference in new issue
Block a user