Keep the wounded walking, and make the steward worth his size
A wound skin was a single still, so anything hurt froze on one frame and slid across the court. Every skin has its …b twin now — the stride swapped, stepped off the same clock as the healthy walk — for both shamblers, both racket-zombie stages, and the steward, who had no wounded state at all. The steward also died like a shambler at 3 hp, which made a bigger body read as decoration. Five now, with a wound skin to show the second half of that. hpMax is recorded on every body that has hp, so "hurt = show the wound" is one rule instead of a per-variant constant to remember. First pass at the wound frames was rejected on sight and deserved it: the generator drew small figures with fine pixels on a GRADIENT background, and a nearest-neighbour downscale to sprite height shredded the outlines. Regenerated two at a time, drawn large, chunky pixels, flat background, hard black outline — then fitted per channel onto each frame's own healthy twin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
faec897d80
commit
1168e9ee5b
13 files changed
+20
-6
No files matched your search
+5
-1
@@ -33,7 +33,11 @@ export function spawnZombie(x, z, variant) {
|
||||
if (variant === 'f') { zb.v = Math.min(TUNE.runnerVMax, zb.v * TUNE.runnerSpeed); shriek(); } // shriek = the fairness contract; capped so late runners stay reactable
|
||||
if (variant === 'a' || variant === 'b') zb.hp = TUNE.shamblerHp; // classic shamblers take a wound before they drop — only the runner is one-shot glass
|
||||
if (variant === 'g') { zb.v *= 0.55; zb.hp = TUNE.bruteHp; } // slow, but soaks hits
|
||||
if (variant === 'd') { zb.v *= 0.8; zb.hp = TUNE.stewardHp; } // the steward: a head taller and a hit tougher than the crowd, nothing more exotic than that
|
||||
if (variant === 'd') { zb.v *= 0.8; zb.hp = TUNE.stewardHp; } // the steward: a head taller and several hits tougher than the crowd, nothing more exotic than that
|
||||
// Every body with hp remembers its FULL hp. The wound skins used to compare against the variant's
|
||||
// TUNE constant, which meant every new body needed its own branch to look hurt; one field here and
|
||||
// the rule is "hp below full = show the wound", for anything that has a wound skin.
|
||||
if (zb.hp) zb.hpMax = zb.hp;
|
||||
if (variant === 's') zb.shieldT = 0; // chair up; > 0 = seconds of stagger left
|
||||
if ('fgsd'.includes(variant) && !G.seen['v' + variant]) { G.seen['v' + variant] = true; aside('ump_dress_code', 0.8); }
|
||||
if (variant === 'm') { // the rogue ball machine: furniture, not a body. It does not walk at all.
|
||||
|
||||
Reference in new issue
Block a user