Fire the laser as light, and stop him jogging on the spot
The auto-fire jog was one guard. gameplay skipped the pose update in mgSteer mode, so the pose stuck on 'idle' -- and render covered for it by faking a run cycle off G.idleT, which animated whether he was moving or not. That fake is what read as "this hectic run animation... odd all the time". The pose follows MOVEMENT in every mode now and the fake is deleted, so auto-fire, the horde and the melee racket all use the ordinary run animation and standing still is standing still. The comment that justified the fake -- two rackets when idle -- was solving a smaller problem than it caused; at sprite scale the overlap does not read. The laser, second pass, all of it "it must read as light he fired": - it draws AFTER the net and every body. It was drawn before the far-side pass, so the net and the crowd painted over it, which is exactly why it looked like it was lying on the floor and sitting under the net. - beamLen 26 -> 34: at 26 it stopped just past the far baseline and read as cut off in mid-court. It carries into the courtside ads now. - beamW0 0.35 -> 0.06, a POINT at the strings. At 0.35 it left the racket as a 0.7 m bar hanging in mid-air instead of something emitted from it. - it DELETES ordinary bodies, hp irrelevant. A plane of light that left a roller man standing made it a worse ball, not a weapon. A boss is the exception and takes dmgBeam 8 -- severe, survivable. - four nested wedges composited 'lighter' (violet bloom, blue, cyan, white core), each fading along its length. One quad with a gradient was a coloured shape. Rocket: speed 17 -> 38, and a real jet plume laid tight ON the flight line rather than scattered sparks, which looked like a firework. Beacon: a finer one-pixel thread and a much brighter ball, so the BALL is the bright thing and the trail only says where it has been. And the bug in the middle of that: firePellet stamps a whitelist of fields onto the round, and jet/trailR went onto the WEAPONS rows without being added to the list -- so the rocket flew with no plume and nothing errored. Any new pellet field has to be added in both places. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
46e268973d
commit
91053b4c35
6 files changed
+151
-62
No files matched your search
+38
@@ -320,6 +320,44 @@ zombie (now an occasional opponent, `TUNE.racketEvery`, not the every-game fixtu
|
||||
frame entirely. `xLim = Math.max(xVis, COURT.W / 2)` — the camera limit, floored at the sideline so
|
||||
every legal ball stays catchable.
|
||||
|
||||
## Session log: the second pass on the barrel weapons (2026-08-03)
|
||||
|
||||
**The auto-fire jog is gone, and it was one guard.** `gameplay` skipped the pose update in `mgSteer`
|
||||
mode (`if (!mgSteer && ...) P.pose = moving ? 'run' : 'idle'`), so the pose stuck on 'idle' — and
|
||||
`render` covered for it by faking a run cycle off `G.idleT`, which animated whether he was moving or
|
||||
not. That fake is what Oliver saw: *"this hectic run animation... looked odd all the time."* The pose
|
||||
follows MOVEMENT in every mode now and the fake is deleted, so auto-fire (and the horde, and the
|
||||
melee racket) uses the ordinary run animation and standing still is standing still. The comment that
|
||||
justified the fake — "the idle sprite has a racket at his hip AND drawMgRacket puts one in his hands,
|
||||
two rackets" — was solving a smaller problem than it caused; at sprite scale the overlap does not read.
|
||||
|
||||
**The laser, second pass.** Four things, all of them "it must read as light he fired":
|
||||
- **It draws AFTER the net and every body.** It was drawn before the far-side pass, so the net and
|
||||
the crowd painted over it — which is precisely why it read as lying on the floor and being *under*
|
||||
the net. Light in the air goes last.
|
||||
- **`beamLen` 26 -> 34.** At 26 it stopped a metre past the far baseline and read as being CUT OFF in
|
||||
mid-court. It now carries into the courtside ads, which is where light should stop.
|
||||
- **`beamW0` 0.35 -> 0.06** — a POINT at the strings. At 0.35 it left the racket as a 0.7 m bar
|
||||
hanging in mid-air rather than as something emitted.
|
||||
- **It DELETES ordinary bodies**, hp irrelevant (`killZombie`, not a wound) — a plane of light that
|
||||
left a roller man standing made it a worse ball, not a weapon. A BOSS is the exception and takes
|
||||
`dmgBeam` 8: "they also must suffer severely" but they survive.
|
||||
- **The look is four nested wedges composited `lighter`** — violet bloom, the weapon's blue, cyan,
|
||||
white core — each fading along its length. One quad with a gradient was a coloured shape; layers
|
||||
sharing an axis and brightening toward the centre is what reads as sci-fi.
|
||||
|
||||
**Rocket:** speed 17 -> 38 and a real JET plume. The plume is laid down tight ON the flight line
|
||||
(`jet`, spread along this frame's step, near-zero velocity, additive hot-white -> orange -> grey)
|
||||
instead of scattered sparks with their own velocities, which looked like a firework.
|
||||
|
||||
**Beacon:** a finer trail (`trail` 1 at `trailR` 0.035, one-pixel motes) and a much brighter ball
|
||||
(`glow` 3.2, a two-ring additive bloom and a fat white core), so the BALL is the bright thing and the
|
||||
trail only says where it has been.
|
||||
|
||||
**The bug in the middle of all that:** `firePellet` stamps a whitelist of fields onto the round, and
|
||||
`jet`/`trailR` were added to the WEAPONS rows without being added to that list — so the rocket flew
|
||||
with no plume at all and nothing errored. **Any new pellet field has to be added in both places.**
|
||||
|
||||
## TEST MODE — triple-tap the scoreboard
|
||||
|
||||
A sandbox for trying new content without playing twenty games to reach it. Three taps on the
|
||||
|
||||
Reference in new issue
Block a user