From d46b7b5bbc2df042fd4839c1eb863543b8270239 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Sat, 26 Sep 2026 22:29:58 -0700 Subject: [PATCH] oskiewar v168: the site is the monowheel park MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The oskiewar-day-perf lane (270e77723b) becomes the web build: freeskate opens at the front door onto the park — loop, monowheel, park kids, the P1 view inset, the heartbeat — with the console perf work (LOD tiers, WeakMap figure state, ten-hertz seat readouts, one clock read per frame). Social preview reburned for the park. --- xbox/live/oskiewar.js | 5205 +++++++++++++++++++++++++-- xbox/live/social/manifest.json | 2 +- xbox/live/social/oskiewar-title.jpg | Bin 101654 -> 78677 bytes xbox/live/social/oskiewar-title.mp4 | Bin 476117 -> 129678 bytes 4 files changed, 4809 insertions(+), 398 deletions(-) diff --git a/xbox/live/oskiewar.js b/xbox/live/oskiewar.js index dc7ec894d9..95225d65bb 100644 --- a/xbox/live/oskiewar.js +++ b/xbox/live/oskiewar.js @@ -1,4 +1,6 @@ // @bundle-qr +globalThis.__oskiewarOpponent = "freeskate"; +// @bundle-qr // The console's monotonic clock can hand back a negative number: App.cpp // converts QPC ticks with `counter * 1000000`, which overflows int64 past // about ten days of uptime. Every deadline in this piece starts at 0 and is @@ -45,7 +47,7 @@ let netFrameInputs = null; // +/- on a keyboard, in quarter steps between a quarter and double speed; // the offline reel harness drives simMonotonicUs itself and never touches // this, so recordings always run at one. -let gameSpeed = 1; +let gameSpeed = .8; let gameSpeedChangedAt = 0; let scaledClockUs = 0; let lastRawClockUs = null; @@ -96,9 +98,11 @@ if (hostAnalytics) if (netSilent) return; return hostAnalytics(...args); }; +// The account feed (fighters, moods, who is signed in), read by gamePaint. +const hostAc = typeof ac === "function" ? ac : null; // Monotonic count of committed revisions to this piece (next revision included). -const buildVersion = 167; +const buildVersion = 168; const floorY = 1800; // Oskiewar now opens as a versus game. An ordinary web visit hosts a room — // the URL becomes the invitation — and until a friend opens it, all you can @@ -118,6 +122,7 @@ const versusActive = () => gameMode === "fight" && fightOpponent === "versus"; const versusLane = () => lobbyActive() || versusActive(); // Freeskate: one rider alone on the long park, no guns, no clock, no rounds — // a room for working on the skating itself. `?opponent=freeskate`. +let freeskateSecond = false; const freeskateActive = () => gameMode === "fight" && fightOpponent === "freeskate"; // Rooms with one body in them: the versus lobby and freeskate park the // second chair off the map, respawn instead of ending a round, and hand the @@ -262,12 +267,21 @@ let terrainSamples = gridCols * 6; let terrainPhase = 0; // The long park is selected by ?map=skatepark; the host's deal owns the map. let skateparkMap = globalThis.__oskiewarMap === "skatepark"; -const skateLoops = [ +// Which skate course the long-park machinery is running: "park" is the long +// outdoor course (half-pipe, pond, blocks, loops, chains, boost pads); +// "indoor" is one big half-pipe in a hall. Freeskate starts indoors; a host +// can ask for the park with `__oskiewarFreeskateMap = "skatepark"`. +let skateCourse = "park"; +const parkLoops = [ { x: 6300, radius: 320 }, { x: 15300, radius: 420 }, { x: 24300, radius: 500 }, ]; -const skateBoosts = [2400, 5400, 10800, 14400, 19800, 23400, 27000] +const parkBoosts = [2400, 5400, 10800, 14400, 19800, 23400, 27000] .map((x) => ({ left: x, right: x + 240, speed: 3900 })); +// Filled per course by `configureWorldMap`; kept as the same arrays so every +// reference to them stays live. +const skateLoops = parkLoops.slice(); +const skateBoosts = parkBoosts.slice(); const skateRopes = []; const chainLinks = 16; const chainLength = 44; @@ -279,6 +293,98 @@ const chainLength = 44; // air straight up out of it and land back in (see `skateVert`). const halfpipeRadius = 540; const halfpipe = { leftCoping: 2, rightCoping: 22, floorFrom: 8, floorTo: 16 }; +const parkHalfpipe = { ...halfpipe }; +// The indoor course: one big half-pipe wall to wall — a four-tile deck, a +// 540 quarter, a twelve-tile flat (half as wide again as the park's), the +// other quarter and deck. Thirty-two tiles in all, under a roof. +const indoorHalfpipe = { leftCoping:4,rightCoping:76,floorFrom:10,floorTo:70 }; +const hallCols = 80; +const indoorCols = 96; +const indoorFeatures = [ + {from:0,to:3,kind:"pond",depth:2600,lift:halfpipeRadius}, + {from:3,to:4,kind:"flat",lift:halfpipeRadius}, + {from:4,to:10,kind:"transition",rise:halfpipeRadius,dir:-1}, + {from:10,to:70,kind:"flat"}, + {from:70,to:76,kind:"transition",rise:halfpipeRadius,dir:1}, + {from:76,to:80,kind:"flat",lift:halfpipeRadius}, + {from:80,to:95,kind:"pond",depth:2600,lift:halfpipeRadius}, + {from:95,to:96,kind:"flat",lift:halfpipeRadius}, +]; +// The hall's roof, 24 m over the flat: high enough for a big vert air, low +// enough that the room reads as a room. A head that reaches it bonks. +const indoorCeilingY = floorY - 1400; +const indoorSkate = () => skateparkMap && skateCourse === "indoor"; +// The roof is glass: eight panes in a frame. A slow knock bonks you back +// down; an air that meets a pane at speed (or a body coming down onto one) +// shatters it — the pane is gone, its shards fall into the hall, and the +// hole is open until the round resets. +const roofPaneTiles = 4; +const roofBreakSpeed = 1300; +const roofPanes = []; +const roofShards = []; +// From above the glass is a floor: every intact pane is a ledge to walk on. +// The two end panes are open skylights over the decks, so a rider on the +// roof drops back in from either side (and an air can leave through them). +const roofLedges = []; +function rebuildRoofLedges() { + roofLedges.length = 0; + const width = tileSize * roofPaneTiles; + roofPanes.forEach((pane, index) => { + if (pane.broken || pane.open) return; + roofLedges.push({ level: 100 + index, glass: true, y: indoorCeilingY, + left: gridLeft + index * width, right: gridLeft + (index + 1) * width }); + }); +} +// Funboxes on the pipe's floor: two plywood cubes in the middle lane. In +// that lane their tops are ledges to land on and ride across and their sides +// are walls; strafe into another lane and they pass beside you. +const hallCubes = []; +for(let row=0;row<3;row++)for(let col=0;col<3-row;col++) + hallCubes.push({x:tileCenterX(20)+(col-(2-row)/2)*120,size:120,baseY:indoorCeilingY-row*120}); +const cubeLedges = []; +function cubeTop(cube) { return (cube.baseY??floorY) - cube.size; } +function inCubeLane(z) { return Math.abs(z || 0) < 90; } +function activeCubeLedges(z = 0) { + cubeLedges.length = 0; + if (!indoorSkate() || !inCubeLane(z)) return cubeLedges; + for (const cube of hallCubes) if (!cube.broken && Math.abs(z || 0) <= cube.size / 2 + 8) + cubeLedges.push({ level: 200 + hallCubes.indexOf(cube), cube: true, y: cubeTop(cube), + left: cube.x - cube.size / 2, right: cube.x + cube.size / 2 }); + return cubeLedges; +} +// A cube's sides are walls in its lane: a body inside one below its top is +// put back out of the side it came in by, and its sideways speed spent. +function resolveCubeSides(player, previousX) { + if (!indoorSkate() || player.underPipe || !inCubeLane(player.z)) return; + for (const cube of hallCubes) { + if(cube.broken || player.y-200 > (cube.baseY??floorY))continue; + const left = cube.x - cube.size / 2, right = cube.x + cube.size / 2; + const inset = isHeadOnly(player) ? 24 : player.skateboard ? 28 : 36; + if (Math.abs(player.z || 0) >= cube.size / 2 + 18 || player.y <= cubeTop(cube) + 6) continue; + const overlapping = player.x + inset > left && player.x - inset < right; + const swept = previousX + inset <= left && player.x + inset > left || + previousX - inset >= right && player.x - inset < right; + if (!overlapping && !swept) continue; + const side = previousX <= cube.x ? 1 : -1; + player.x = side > 0 ? left - inset : right + inset; + pressWall(player, side, side > 0 ? left : right); + player.vx = player.knockVx = player.dashVx = 0; + if (player.skateboard) player.skateVx = 0; + player.runSpeed = 0; + } +} + +function resetRoofPanes() { + roofPanes.length = 0; + roofShards.length = 0; + if (indoorSkate()) { + const count = Math.ceil(hallCols / roofPaneTiles); + for (let index = 0; index < count; index++) + roofPanes.push({ broken: false, open: index === 0 || index === count - 1 }); + } + rebuildRoofLedges(); +} +const roofPaneAt = (x) => roofPanes[Math.floor((x - gridLeft) / (tileSize * roofPaneTiles))] || null; const halfpipeFeatures = [ { from: 0, to: 2, kind: "flat", lift: halfpipeRadius }, { from: 2, to: 8, kind: "transition", rise: halfpipeRadius, dir: -1 }, @@ -286,22 +392,45 @@ const halfpipeFeatures = [ { from: 16, to: 22, kind: "transition", rise: halfpipeRadius, dir: 1 }, { from: 22, to: 24, kind: "flat", lift: halfpipeRadius }, { from: 24, to: 32, kind: "bank", rise: halfpipeRadius, dir: -1 }, - { from: 32, to: 40, kind: "flat" }, + { from: 32, to: 34, kind: "flat" }, + // The pond: a basin 4 m deep and fourteen tiles wide, its water standing at sea level (the + // course floor), for swimming. See `pondAt` and the water step. + { from: 34, to: 48, kind: "pond", depth: 400 }, ]; -function configureWorldMap(name) { +// Water stands at sea level — the course floor — over any pond basin. +const seaLevelY = floorY; +const pondAt = (x) => parkSegments.find((segment) => segment.kind === "pond" && + x > segment.left && x < segment.right) || null; + +function configureWorldMap(name, course = skateCourse) { // A normal round keeps its current workshop/local variant. Only entering // or leaving the long course needs to replace the world dimensions. if (name !== "skatepark" && !skateparkMap) return; + const previousMap = skateparkMap + "/" + skateCourse; skateparkMap = name === "skatepark"; - gridCols = skateparkMap ? 320 : 40; + skateCourse = course === "indoor" ? "indoor" : "park"; + // The marks on the ground belong to the ground: kept through resets, + // cleared only when the map itself changes. + if (previousMap !== skateparkMap + "/" + skateCourse) { + decals.length = 0; + bloodDrops.length = 0; + } + const indoor = skateparkMap && skateCourse === "indoor"; + Object.assign(halfpipe, indoor ? indoorHalfpipe : parkHalfpipe); + skateLoops.length = 0; + skateBoosts.length = 0; + if (skateparkMap && !indoor) { skateLoops.push(...parkLoops); skateBoosts.push(...parkBoosts); } + if(indoor)skateLoops.push({x:tileCenterX(44),radius:260}); + gridCols = !skateparkMap ? 40 : indoor ? indoorCols : 320; gridWidth = gridCols * tileSize; if (gridField.length !== gridCols * gridRows) gridField = new Float32Array(gridCols * gridRows); worldRight = gridLeft + gridWidth + wallThickness; - const features = skateparkMap ? [ + const features = indoor ? indoorFeatures : skateparkMap ? [ ...halfpipeFeatures, ...[40, 140, 240].flatMap((from) => [ - { from, to: from + 40, kind: "flat" }, + // The first block's flat starts where the pond ends. + { from: from === 40 ? 48 : from, to: from + 40, kind: "flat" }, { from: from + 40, to: from + 46, kind: "bank", rise: 270, dir: 1 }, { from: from + 46, to: from + 50, kind: "flat", lift: 270 }, { from: from + 50, to: from + 56, kind: "bank", rise: 270, dir: -1 }, @@ -321,7 +450,7 @@ function configureWorldMap(name) { function resetSkateRopes() { skateRopes.length = 0; - if (!skateparkMap) return; + if (!skateparkMap || skateCourse !== "park") return; for (const x of [3600, 9900, 18900]) { const anchorY = floorY - 850; skateRopes.push({ x, y: anchorY, z: 0, @@ -409,7 +538,19 @@ function skateRopeInput(player, input, grabHeld, dt, grabPressed = grabHeld) { // simulation tick. Nodes, previous positions and attachments all roll back. function updateSkateRopes(dt) { if (!skateparkMap || survivalActive()) return; + // Chains were the long park's biggest cost on the console: three of them, + // thirty-two relaxation passes, every tick, kilometres from anyone. A chain + // nobody is near sleeps (it is hanging at rest by then), and one nobody + // holds settles in eight passes. Both depend only on simulated positions, + // so rollback peers agree on which chains ran. for (const rope of skateRopes) { + const riders = players.filter((player) => player.alive && + skateRopes[player.ropeIndex] === rope); + if (!riders.length && !players.some((player) => + Math.abs(player.x - rope.x) < 2600)) { + rope.dt = dt; + continue; + } const timeScale = dt / (rope.dt || dt); rope.dt = dt; for (let i = 1; i < rope.nodes.length; i++) { @@ -419,18 +560,17 @@ function updateSkateRopes(dt) { node.px = node.x; node.py = node.y; node.x += vx; node.y += vy + fallGravity() * dt * dt; } - const riders = players.filter((player) => player.alive && - skateRopes[player.ropeIndex] === rope); - const inverseMass = (index) => index === 0 ? 0 : - riders.some((rider) => Math.abs(rider.ropeLink - index) < 1) ? .125 : 1; - for (let pass = 0; pass < 32; pass++) { + const weight = rope.nodes.map((_, index) => index === 0 ? 0 : + riders.some((rider) => Math.abs(rider.ropeLink - index) < 1) ? .125 : 1); + const passes = riders.length ? 32 : 8; + for (let pass = 0; pass < passes; pass++) { rope.nodes[0].x = rope.x; rope.nodes[0].y = rope.y; for (let i = 1; i < rope.nodes.length; i++) { const a = rope.nodes[i - 1], b = rope.nodes[i]; const dx = b.x - a.x, dy = b.y - a.y; const length = Math.hypot(dx, dy) || 1; const error = (length - chainLength) / length; - const wa = inverseMass(i - 1), wb = inverseMass(i); + const wa = weight[i - 1], wb = weight[i]; const sum = wa + wb; b.x -= dx * error * wb / sum; b.y -= dy * error * wb / sum; a.x += dx * error * wa / sum; a.y += dy * error * wa / sum; @@ -539,6 +679,14 @@ function skateBoostStep(player, previousX, now) { const loopShell = 60; const loopSegments = 64; function drawLoopTrack(loop, ground) { + { + const key=ground.join(',')+':'+loop.radius+':'+sceneLod(); + if(loop.meshKey!==key){loop.meshKey=key;releaseQuadMesh(loop.mesh);loop.mesh=captureQuadMesh(()=>drawLoopTrackGeometry(loop,ground));} + drawQuadMesh(loop.mesh);return; + } + drawLoopTrackGeometry(loop,ground); +} +function drawLoopTrackGeometry(loop, ground) { const face = mixColor(ground, [255, 255, 255], .1); const side = mixColor(ground, [0, 0, 0], .22); const shell = mixColor(ground, [0, 0, 0], .12); @@ -546,27 +694,798 @@ function drawLoopTrack(loop, ground) { x: loop.x + Math.sin(angle) * radius, y: floorY - loop.radius + Math.cos(angle) * radius, z }); const inner = loop.radius, outer = loop.radius + loopShell; - for (let i = 0; i < loopSegments; i++) { - const a = i / loopSegments * Math.PI * 2, b = (i + 1) / loopSegments * Math.PI * 2; + const lod = sceneLod(); + const segments = lod >= 3 ? 16 : lod >= 2 ? 32 : loopSegments; + for (let i = 0; i < segments; i++) { + const a = i / segments * Math.PI * 2, b = (i + 1) / segments * Math.PI * 2; const ia = ring(a, inner, -90), ib = ring(b, inner, -90); const ib2 = ring(b, inner, 90), ia2 = ring(a, inner, 90); - const projected = [ia, ib, ib2, ia2].map((p) => projectPoint(p.x, p.y, p.z)); - if (!photoSurface("concrete", ...projected)) worldQuad(ia, ib, ib2, ia2, face); + worldQuad(ia, ib, ib2, ia2, face); worldQuad(ring(a, outer, -90), ring(b, outer, -90), ring(b, outer, 90), ring(a, outer, 90), shell); - for (const z of [-90, 90]) + // Far out, one side face reads as the band's thickness; both is detail. + for (const z of lod >= 2 ? [-90] : [-90, 90]) worldQuad(ring(a, inner, z), ring(b, inner, z), ring(b, outer, z), ring(a, outer, z), side); } } +// The indoor course is a hall: one plain back wall (no columns or bands — +// a grid behind the rider read as clutter) under a glass roof, all in the flat theme's greys so the pipe and +// the rider stay the brightest things in the room. +function hallPalette() { return hallColors; } +const hallColors = (() => { + return { + ramp: [250, 196, 170], // peach skin: the surface you ride + structure: [196, 170, 238], // lilac sides and underside + wall: [150, 196, 250], // sky back wall + trim: [72, 88, 116], // columns, dado, the roof's frame + glass: [192, 228, 242], // roof panes + glint: [248, 252, 255], + coping: [204, 210, 222], // the steel pipe along each lip + section: [96, 110, 134], // the building's walls and roof, cut away + }; +})(); + +// Dust in the hall's air: fine specks drifting slowly under the roof, +// catching the light. Cosmetic, on the paint clock. +const dust = []; +function drawDust(hall) { + const now = runtime().monotonicUs / 1e6; + if (!dust.length) for (let index = 0; index < 28; index++) + dust.push({ x: (index * 173.3) % 1, y: (index * 97.1) % 1, z: (index * 61.7) % 1, phase: index * 1.9 }); + const left = cameraCenter - cameraWidth * .7, width = cameraWidth * 1.4; + const scale = cameraScale(); + const previous = triangleDepth; + for (const speck of dust) { + const x = left + ((speck.x + now * .006 + Math.sin(now * .2 + speck.phase) * .01) % 1 + 1) % 1 * width; + const y = floorY - 60 - speck.y * 1500 + Math.sin(now * .35 + speck.phase) * 20; + const z = worldNear + 40 + speck.z * (roomDepth - 80); + const point = projectPoint(x, y, z); + if (![point.x, point.y].every(Number.isFinite)) continue; + const glint = .5 + .5 * Math.sin(now * 1.3 + speck.phase * 2); + const size = Math.max(.8, (1.2 + glint * 1.2) * scale); + triangleDepth = point.z; + const ink = mixColor(hall.wall, [255, 250, 232], .5 + glint * .5); + screenTriangle(point.x - size, point.y, point.x + size, point.y, point.x, point.y - size * 1.6, ink[0], ink[1], ink[2]); + screenTriangle(point.x - size, point.y, point.x + size, point.y, point.x, point.y + size * 1.6, ink[0], ink[1], ink[2]); + } + triangleDepth = previous; +} + +let hallMesh=null,hallMeshKey=''; +function drawIndoorHall(ground){ + drawCityStreet(); + const key=ground.join(',')+roofPanes.map(p=>p.broken?1:0).join('')+hallCubes.map(c=>c.broken?1:0).join('')+gridCols; + if(key!==hallMeshKey){hallMeshKey=key;const originalDust=drawDust;drawDust=()=>{};try{releaseQuadMesh(hallMesh);hallMesh=captureQuadMesh(()=>drawIndoorHallGeometry(ground));}finally{drawDust=originalDust;}} + drawQuadMesh(hallMesh);drawDust(hallPalette()); + // A breaking pane used to send the whole hall back through the per-frame JS + // path for as long as its shards flew; the shards are their own loop. + if(roofShards.length)drawRoofShards(hallPalette().glass); +} +function drawRoofShards(glass){ + for (const shard of roofShards) { + const point = projectPoint(shard.x, shard.y, shard.z); + if (![point.x, point.y].every(Number.isFinite)) continue; + const size = shard.size * cameraScale(); + const corner = (turn) => [point.x + Math.cos(shard.rotation + turn) * size, + point.y + Math.sin(shard.rotation + turn) * size * .6]; + const previous = triangleDepth; + triangleDepth = point.z; + screenTriangle(...corner(0), ...corner(2.3), ...corner(4.1), ...glass); + triangleDepth = previous; + } +} + +function drawIndoorHallGeometry(ground) { + const left = worldLeft, right = gridLeft + hallCols*tileSize; + const top = indoorCeilingY, bottom = floorY + 2000; + const backZ = worldFar - 4; + const hall = hallPalette(); + const wall = hall.wall; + const trim = hall.trim; + const quad = (a, b, c, d, color) => worldQuad(a, b, c, d, color); + // The park opens onto a sidewalk and city street behind it. + // The funboxes: plywood cubes with a masonite top and steel on the top + // edges. + for (const cube of hallCubes) { + if(cube.broken)continue; + const l = cube.x - cube.size / 2, r = cube.x + cube.size / 2; + const top = cubeTop(cube), bottom = (cube.baseY??floorY) + 1, n = -cube.size / 2, f = cube.size / 2; + // Every face its own colour: a pale top, terracotta front, blue-grey + // sides and a lilac back. + const faces = { top:[207,166,112],front:[168,116,65],back:[139,94,51],left:[186,135,78],right:[145,98,54] }; + worldQuad({ x: l, y: top, z: n }, { x: r, y: top, z: n }, { x: r, y: top, z: f }, { x: l, y: top, z: f }, faces.top); + worldQuad({ x: l, y: top, z: n }, { x: r, y: top, z: n }, { x: r, y: bottom, z: n }, { x: l, y: bottom, z: n }, faces.front); + worldQuad({ x: l, y: top, z: f }, { x: r, y: top, z: f }, { x: r, y: bottom, z: f }, { x: l, y: bottom, z: f }, faces.back); + for (const x of [l, r]) + worldQuad({ x, y: top, z: n }, { x, y: top, z: f }, { x, y: bottom, z: f }, { x, y: bottom, z: n }, + x === l ? faces.left : faces.right); + for(let row=1;row<4;row++)worldCapsule(l,top+cube.size*row/4,n-1,r,top+cube.size*row/4,n-1,Math.max(1,2*cameraScale()),[89,57,32]); + worldCapsule(l+10,top+10,n-2,r-10,bottom-10,n-2,Math.max(2,9*cameraScale()),[217,170,109]); + worldCapsule(r-10,top+10,n-3,l+10,bottom-10,n-3,Math.max(2,9*cameraScale()),[217,170,109]); + const edge = Math.max(1, 7 * cameraScale()); + for (const [a, b] of [[[l, n], [r, n]], [[l, f], [r, f]], [[l, n], [l, f]], [[r, n], [r, f]]]) + worldCapsule(a[0], top - 2, a[1], b[0], top - 2, b[1], edge, hall.coping); + } + drawDust(hall); + // The glass roof: each intact pane a pale sheet, the frame between them + // and down the middle; a broken pane is an open hole in the frame. + const glass = hall.glass; + const frame = trim; + // Steel coping along both lips of the pipe. + for (const tile of [halfpipe.leftCoping, halfpipe.rightCoping]) { + const x = gridLeft + tile * tileSize, y = floorY - halfpipeRadius - 7; + worldCapsule(x, y, worldNear, x, y, worldFar, Math.max(1, 14 * cameraScale()), hall.coping); + } + const paneWidth = tileSize * roofPaneTiles; + roofPanes.forEach((pane, index) => { + const x1 = gridLeft + index * paneWidth, x2 = x1 + paneWidth; + if (!pane.broken && !pane.open) { + worldQuad({ x: x1, y: top, z: worldNear }, { x: x2, y: top, z: worldNear }, + { x: x2, y: top, z: backZ }, { x: x1, y: top, z: backZ }, glass); + // A glint across the pane. + worldQuad({ x: x1 + paneWidth * .15, y: top + 1, z: worldNear }, { x: x1 + paneWidth * .22, y: top + 1, z: worldNear }, + { x: x1 + paneWidth * .5, y: top + 1, z: backZ }, { x: x1 + paneWidth * .43, y: top + 1, z: backZ }, + hall.glint); + } + worldQuad({ x: x1 - 10, y: top + 2, z: worldNear }, { x: x1 + 10, y: top + 2, z: worldNear }, + { x: x1 + 10, y: top + 2, z: backZ }, { x: x1 - 10, y: top + 2, z: backZ }, frame); + }); + const midZ = (worldNear + backZ) / 2; + worldQuad({ x: left, y: top + 2, z: midZ - 8 }, { x: right, y: top + 2, z: midZ - 8 }, + { x: right, y: top + 2, z: midZ + 8 }, { x: left, y: top + 2, z: midZ + 8 }, frame); + drawRoofShards(glass); +} + +function drawDecals(surface) { + if (!decals.length && !bloodDrops.length) return; + const now = runtime().monotonicUs; + const reach = cameraWidth * .8 + 300; + const lod = sceneLod(); + const previous = triangleDepth; + let drawn = 0; + for (let index = decals.length - 1; index >= 0 && drawn < 45; index--) { + const decal = decals[index]; + if (Math.abs(decal.x - cameraCenter) > reach) continue; + if (lod > 1 && decal.size < 5 && decal.kind !== "skid") continue; + drawn++; + const age = (now - decal.at) / 1e6; + decal.shape ||= decalShape(decal); + if (decal.kind === "arc") { + const color = mixColor(surface, [34, 30, 30], .85 * Math.max(.65, decal.strength) * clamp(1 - age / 180, .7, 1)); + const steps = 4, width = decal.strength > .8 ? 5 : 7; + for (let step = 0; step < steps; step++) { + const a1 = decal.angle + decal.sweep * step / steps, a2 = decal.angle + decal.sweep * (step + 1) / steps; + for (const r of decal.strength > .8 ? [decal.size - 2, decal.size + 2] : [decal.size]) { + const p1 = { x: decal.x + Math.cos(a1) * r, y: decal.ground, z: decal.z + Math.sin(a1) * r }; + const p2 = { x: decal.x + Math.cos(a2) * r, y: decal.ground, z: decal.z + Math.sin(a2) * r }; + worldQuad({ ...p1, x: p1.x - width / 2 }, { ...p2, x: p2.x - width / 2 }, + { ...p2, x: p2.x + width / 2 }, { ...p1, x: p1.x + width / 2 }, color); + } + } + continue; + } + if (decal.kind === "skid") { + const fade = clamp(1 - age / 180, .7, 1) * Math.max(.65, decal.strength); + const color = mixColor(surface, [24, 20, 28], .9 * fade); + decal.ground2 ??= terrainFloorAt(decal.x2) - .9; + for (const side of [-15, 15]) { + const a = { x: decal.x, y: decal.ground, z: decal.z + side }, + b = { x: decal.x2, y: decal.ground2, z: decal.z + side }; + const w = Math.max(3, decal.size * .7); + worldQuad({ ...a, z: a.z - w }, { ...b, z: b.z - w }, { ...b, z: b.z + w }, { ...a, z: a.z + w }, color); + } + continue; + } + // Three projections place the whole mark: its centre and one unit along + // and across the surface. The ground is flat across a mark, so every + // corner is an affine step from the centre in screen space. + const center = projectPoint(decal.x, decal.ground, decal.z); + if (![center.x, center.y].every(Number.isFinite)) continue; + const alongPoint = projectPoint(decal.x + decal.tx, decal.ground + decal.ty, decal.z); + const acrossPoint = projectPoint(decal.x, decal.ground, decal.z + 1); + const ax = alongPoint.x - center.x, ay = alongPoint.y - center.y; + const bx = acrossPoint.x - center.x, by = acrossPoint.y - center.y; + triangleDepth = center.z - .002; + const fan = (scale, color) => { + const shape = decal.shape, size = decal.size * scale; + let lastX = center.x + (shape[0] * ax + shape[1] * bx) * size; + let lastY = center.y + (shape[0] * ay + shape[1] * by) * size; + const firstX = lastX, firstY = lastY; + for (let corner = 2; corner <= shape.length; corner += 2) { + const u = shape[corner % shape.length], v = shape[(corner + 1) % shape.length]; + const x = corner === shape.length ? firstX : center.x + (u * ax + v * bx) * size; + const y = corner === shape.length ? firstY : center.y + (u * ay + v * by) * size; + screenTriangle(center.x, center.y, lastX, lastY, x, y, color[0], color[1], color[2]); + lastX = x; lastY = y; + } + }; + if (decal.kind === "blood") { + const wet = clamp(1 - age / 30, 0, 1); + fan(1, mixColor([70, 14, 18], [146, 8, 20], wet)); + if (decal.size > 14) fan(.55, mixColor([54, 10, 14], [112, 4, 14], wet)); + } else if (decal.kind === "ding") { + fan(1.6, mixColor(surface, [48, 30, 24], .8)); + fan(.8, mixColor(surface, [252, 238, 212], .75)); + } else if (decal.kind === "wheelmark") { + fan(1.4, mixColor(surface, [24, 20, 28], .9)); + } else if (decal.kind === "chip") { + fan(1.25, [120, 84, 52]); + fan(.9, [232, 196, 146]); + } + } + for (const drop of bloodDrops) { + const point = projectPoint(drop.x, drop.y, drop.z); + const tail = projectPoint(drop.x - drop.vx * .018, drop.y - drop.vy * .018, drop.z - drop.vz * .018); + if (![point.x, point.y, tail.x, tail.y].every(Number.isFinite)) continue; + triangleDepth = point.z; + const width = Math.max(1.2, drop.size * cameraScale()); + const inkDrop = drop.kind === "wood" ? [226, 188, 136] : [150, 10, 22]; + screenTriangle(point.x - width, point.y, point.x + width, point.y, tail.x, tail.y, inkDrop[0], inkDrop[1], inkDrop[2]); + } + triangleDepth = previous; +} + +// The skater's braid: a Verlet chain pinned to the back of the head, drawn +// as a three-strand plait. Each link carries its own momentum, falls under +// gravity and is dragged by the air it moves through (so at speed it streams +// out behind); links hold their length, a second constraint across every +// pair of links gives it a braid's stiffness so it bends in a curve instead +// of folding, and it may not pass into the head or down through the torso — +// it lies on the back when still. The plait is laid along a smoothed curve +// through the links: alternating lobes left and right, each shaded with an +// edge and a sheen, tapering to a tie and a loose tuft. Hair, not game +// state: it steps on the paint clock and never touches the simulation. +const braidLinks = 7; +const braidLink = 11; +function drawPonytail(player, world) { + if(player.civilian){ + if(player.hairVariant===0)return; + const h=world.head,k=cameraScale(),side=player.facing||1; + const a=projectPoint(h.x-side*h.radius*.65,h.y-h.radius*.25,h.z); + const b=projectPoint(h.x-side*35,h.y+30,h.z),c=projectPoint(h.x-side*45,h.y+(player.hairVariant===1?65:100),h.z); + stroke(a.x,a.y,b.x,b.y,10*k,[24,20,30]);stroke(b.x,b.y,c.x,c.y,8*k,[24,20,30]); + stroke(a.x,a.y,b.x,b.y,7*k,player.hairColor);stroke(b.x,b.y,c.x,c.y,5*k,player.hairColor);return; + } + const head = world?.head; + if (!head || !player.alive) return; + const now = runtime().monotonicUs; + const hair = player.hair ||= { nodes: [], at: now }; + const dt = clamp((now - hair.at) / 1e6, 0, .05); + hair.at = now; + const facing = player.facing || 1; + // Gathered high at the back of the head. + const spinLook = player.spin ? Math.cos(player.spin.angle) : 1; + const spinSide = player.spin ? Math.sin(player.spin.angle) : 0; + const anchor = { x: head.x - facing * head.radius * .72 * spinLook, y: head.y - head.radius * .55, + z: (head.z || 0) - facing * head.radius * .72 * spinSide }; + // A lone rolling head carries the braid's gather round with it. + if (isHeadOnly(player) && !player.skateboard && player.headRoll) { + const roll = player.headRoll, dx = anchor.x - head.x, dy = anchor.y - head.y; + anchor.x = head.x + dx * Math.cos(roll) - dy * Math.sin(roll); + anchor.y = head.y + dx * Math.sin(roll) + dy * Math.cos(roll); + } + const groundTail = isHeadOnly(player) && !player.skateboard; + const nodes = hair.nodes; + if (nodes.length !== braidLinks || + Math.hypot(nodes[0].x - anchor.x, nodes[0].y - anchor.y) > 200) { + nodes.length = 0; + for (let index = 0; index < braidLinks; index++) { + const x = anchor.x - facing * index * 2, y = anchor.y + index * braidLink; + nodes.push({ x, y, px: x, py: y }); + } + } + nodes[0].x = nodes[0].px = anchor.x; + nodes[0].y = nodes[0].py = anchor.y; + // At rest it flows out from the gather and down behind the back in an + // arc, so a soft pull toward that shape keeps it hair, not a hanging pole. + for (let index = 1; index < nodes.length; index++) { + const fall = index / nodes.length; + const restX = anchor.x - facing * braidLink * (1.1 * index - 1.1 * index * fall * .6); + const restY = anchor.y + braidLink * index * (.35 + fall * .75); + const pull = groundTail ? 0 : .05 * (1 - fall * .6); + nodes[index].x += (restX - nodes[index].x) * pull; + nodes[index].y += (restY - nodes[index].y) * pull; + } + const gravity = 2200 * dt * dt; + const drag = Math.exp(-dt * (groundTail ? 9 : 2.4)); + for (let index = 1; index < nodes.length; index++) { + const node = nodes[index]; + const vx = (node.x - node.px) * drag, vy = (node.y - node.py) * drag; + node.px = node.x; node.py = node.y; + node.x += vx; node.y += vy + gravity; + } + const torso = world.segments?.find((segment) => segment.role === "torso"); + const keepOut = (node) => { + const hx = node.x - head.x, hy = node.y - head.y; + const reach = Math.hypot(hx, hy) || .001; + if (reach < head.radius + 3) { + node.x = head.x + hx / reach * (head.radius + 3); + node.y = head.y + hy / reach * (head.radius + 3); + } + if (torso) { + // Nearest point on the torso's line; stay a body's half-width off it. + const tx = torso.x2 - torso.x1, ty = torso.y2 - torso.y1; + const length = tx * tx + ty * ty || 1; + const along = clamp(((node.x - torso.x1) * tx + (node.y - torso.y1) * ty) / length, 0, 1); + const cx = torso.x1 + tx * along, cy = torso.y1 + ty * along; + const ox = node.x - cx, oy = node.y - cy; + const off = Math.hypot(ox, oy) || .001; + const room = (torso.width || 10) / 2 + 4; + if (off < room) { + const side = ox === 0 ? -facing : Math.sign(ox); + node.x = cx + (off > .01 ? ox / off : side) * room; + node.y = cy + (off > .01 ? oy / off : 0) * room; + } + } + }; + for (let pass = 0; pass < 5; pass++) { + for (let index = 1; index < nodes.length; index++) { + const a = nodes[index - 1], b = nodes[index]; + const dx = b.x - a.x, dy = b.y - a.y; + const distance = Math.hypot(dx, dy) || .001; + const pull = (distance - braidLink) / distance; + if (index === 1) { b.x -= dx * pull; b.y -= dy * pull; } + else { a.x += dx * pull * .5; a.y += dy * pull * .5; b.x -= dx * pull * .5; b.y -= dy * pull * .5; } + } + // Bending stiffness: every other node is held most of the way to a + // straight span, softly, so the braid curves rather than kinks. + for (let index = 2; index < nodes.length; index++) { + const a = nodes[index - 2], b = nodes[index]; + const dx = b.x - a.x, dy = b.y - a.y; + const distance = Math.hypot(dx, dy) || .001; + const want = braidLink * 1.82; + if (distance < want) { + const push = (distance - want) / distance * .18; + if (index - 2 > 0) { a.x += dx * push * .5; a.y += dy * push * .5; } + b.x -= dx * push * (index - 2 > 0 ? .5 : 1); b.y -= dy * push * (index - 2 > 0 ? .5 : 1); + } + } + for (let index = 1; index < nodes.length; index++) { + const node = nodes[index]; + keepOut(node); + if (groundTail) { + const floor = terrainFloorAt(node.x) - 4; + if (node.y >= floor) { + node.y = floor; + node.py = floor; + // Ground friction spends sideways velocity without pulling the + // tail ahead of the rolling head or adding a bounce. + node.px += (node.x - node.px) * .35; + } + } + } + nodes[0].x = anchor.x; nodes[0].y = anchor.y; + } + // A smoothed curve through the links (Catmull-Rom, two steps a link). + const curve = []; + for (let index = 0; index < nodes.length - 1; index++) { + const p0 = nodes[Math.max(0, index - 1)], p1 = nodes[index], p2 = nodes[index + 1], + p3 = nodes[Math.min(nodes.length - 1, index + 2)]; + for (let step = 0; step < 2; step++) { + const u = step / 2, u2 = u * u, u3 = u2 * u; + curve.push({ + x: .5 * (2 * p1.x + (-p0.x + p2.x) * u + (2 * p0.x - 5 * p1.x + 4 * p2.x - p3.x) * u2 + (-p0.x + 3 * p1.x - 3 * p2.x + p3.x) * u3), + y: .5 * (2 * p1.y + (-p0.y + p2.y) * u + (2 * p0.y - 5 * p1.y + 4 * p2.y - p3.y) * u2 + (-p0.y + 3 * p1.y - 3 * p2.y + p3.y) * u3) }); + } + } + curve.push({ x: nodes.at(-1).x, y: nodes.at(-1).y }); + if (groundTail) for (const point of curve) + point.y = Math.min(point.y, terrainFloorAt(point.x) - 4); + const points = curve.map((point) => projectPoint(point.x, point.y, anchor.z + 2)); + if (!points.every((point) => Number.isFinite(point.x) && Number.isFinite(point.y))) return; + // Drawn the way the figure is drawn: one flat colour inside the same dark + // outline the limbs wear, full at the gather and tapering to a round tip. + const scale = cameraScale(); + const edge = Math.max(1.25, Math.min(3, scale * 1.8)); + const outline = [8, 12, 24], hairInk = player.hairColor || [104, 68, 46]; + const widthAt = (index) => Math.max(2, (13 - index * 9 / points.length) * scale); + for (let index = 1; index < points.length; index++) + filledCapsule(points[index - 1].x, points[index - 1].y, points[index].x, points[index].y, + widthAt(index) + edge * 2, outline); + for (let index = 1; index < points.length; index++) + filledCapsule(points[index - 1].x, points[index - 1].y, points[index].x, points[index].y, + widthAt(index), hairInk); + // Strand ends: the tip frays into a few loose strands. + const tipPoint = points.at(-1), beforeTip = points.at(-2); + const tx = tipPoint.x - beforeTip.x, ty = tipPoint.y - beforeTip.y, tl = Math.hypot(tx, ty) || 1; + for (const spread of [-.5, -.18, .16, .46]) { + const c = Math.cos(spread), s = Math.sin(spread); + const ex = tipPoint.x + (tx * c - ty * s) / tl * 9 * scale, ey = tipPoint.y + (tx * s + ty * c) / tl * 9 * scale; + const sx = tipPoint.x - tx / tl * 2 * scale, sy = tipPoint.y - ty / tl * 2 * scale; + stroke(sx, sy, ex, ey, Math.max(1, 2.2 * scale) + edge * 1.2, outline); + stroke(sx, sy, ex, ey, Math.max(1, 2.2 * scale), hairInk); + } + // The bow is drawn later, over the head and the hair (`drawBow`). + hair.bow = { points, nodes, anchor, now, dt, scale, edge }; +} + +// The hair on the head the braid comes from: a cap over the crown and back +// of the skull, and a fringe that falls over the forehead — a few locks, +// swaying a little with the braid — drawn before the face so the eyes stay +// on top. Screen space, from the projected head. +function drawHairline(player, head) { + if (!head || !player.alive) return; + // A lone rolling head carries its hair round with it. + const roll = isHeadOnly(player) && !player.skateboard ? player.headRoll || 0 : 0; + // One filled shape over the crown, in the figure's style: it follows the + // head's own outline from behind the ear, over the top, down to a soft + // hairline curving above the eyes — then short fringe locks that stop at + // the brows. Filled as a fan, so there are no seams between strokes. + const r = head.radius, facing = player.facing || 1; + const edge = Math.max(1.25, Math.min(3, cameraScale() * 1.8)); + const outline = [8, 12, 24], hairInk = player.hairColor || [104, 68, 46]; + const turn = (x, y) => roll ? { + x: head.x + (x - head.x) * Math.cos(roll) - (y - head.y) * Math.sin(roll), + y: head.y + (x - head.x) * Math.sin(roll) + (y - head.y) * Math.cos(roll) } : { x, y }; + const at = (angle, reach) => turn(head.x + Math.cos(angle) * r * reach * facing, + head.y + Math.sin(angle) * r * reach); + const outer = []; + for (let step = 0; step <= 9; step++) outer.push(at(Math.PI * (.9 + step / 9 * .98), 1.03)); + // The hairline: a straight fringe across the forehead, down to just above + // the brows with a few scallops along its cut edge, then back behind the + // ear. Head-relative (x forward, y down, in radii), mirrored with facing. + const local = (x, y) => turn(head.x + x * r * facing, head.y + y * r); + const front = outer.at(-1), back = outer[0]; + const hairline = [ + local(.86, -.3), local(.66, -.36), local(.52, -.3), local(.36, -.37), + local(.2, -.31), local(.04, -.38), local(-.14, -.34), local(-.38, -.3), local(-.62, -.12), + ]; + const shape = [...outer, ...hairline]; + const cx = shape.reduce((sum, point) => sum + point.x, 0) / shape.length; + const cy = shape.reduce((sum, point) => sum + point.y, 0) / shape.length; + for (let index = 0; index < shape.length; index++) { + const a = shape[index], b = shape[(index + 1) % shape.length]; + screenTriangle(cx, cy, a.x, a.y, b.x, b.y, hairInk[0], hairInk[1], hairInk[2]); + } + // Its edges: along the head's rim, and the hairline itself. + for (let index = 1; index < outer.length; index++) + filledCapsule(outer[index - 1].x, outer[index - 1].y, outer[index].x, outer[index].y, edge * 1.6, outline); + const line = [front, ...hairline, back]; + for (let index = 1; index < line.length; index++) + stroke(line[index - 1].x, line[index - 1].y, line[index].x, line[index].y, edge, outline); + +} + +// The bow on the braid's gather, drawn after the head and the hair cap so it +// sits on top of them. +function drawBow(player, layer = "all") { + const hair = player.hair, frame = hair?.bow; + if (!frame || !player.alive) return; + // The tails hang behind the head; the loops and knot sit on top of it. + const tails = layer !== "loops", loops = layer !== "tails"; + const { points, nodes, anchor, now, dt, scale, edge } = frame; + const outline = [8, 12, 24]; + // The bow at the gather: two ribbon tails hanging from the knot — each its + // own little chain, falling, trailing and fluttering like the hair — then + // two loops either side of the knot on top of them. + const ribbon = player.accent || [255, 110, 160]; + const knot = points[1]; + const along = { x: points[2].x - points[0].x, y: points[2].y - points[0].y }; + const alongLength = Math.hypot(along.x, along.y) || 1; + const ax = along.x / alongLength, ay = along.y / alongLength; + const bx = -ay, by = ax; + const loop = Math.max(4, 12 * scale); + // The tails live in world units beside the braid's nodes. + const root = nodes[1]; + hair.ribbons ||= [[], []]; + if (tails) for (const [which, ribbonTail] of hair.ribbons.entries()) { + const offset = (which ? 1 : -1) * 3; + const count = 7, link = 6; + if (ribbonTail.length !== count || Math.hypot(ribbonTail[0].x - root.x, ribbonTail[0].y - root.y) > 120) { + ribbonTail.length = 0; + for (let index = 0; index < count; index++) + ribbonTail.push({ x: root.x + offset, y: root.y + index * link, px: root.x + offset, py: root.y + index * link }); + } + ribbonTail[0].x = ribbonTail[0].px = root.x + offset; + ribbonTail[0].y = ribbonTail[0].py = root.y; + if (dt > 0) { + const drag = Math.exp(-dt * 12); + for (let index = 1; index < count; index++) { + const node = ribbonTail[index]; + const vx = (node.x - node.px) * drag, vy = (node.y - node.py) * drag; + node.px = node.x; node.py = node.y; + node.x += vx; node.y += vy + 1600 * dt * dt; + } + } + // A ribbon bends but does not stretch like a spring. Each point trails + // the attachment's actual movement; there is no clock-driven flutter. + for (let index = 1; index < count; index++) { + const a = ribbonTail[index - 1], b = ribbonTail[index]; + const dx = b.x - a.x, dy = b.y - a.y, distance = Math.hypot(dx, dy) || 1; + b.x = a.x + dx / distance * link; + b.y = a.y + dy / distance * link; + } + const drawn = ribbonTail.map((node) => projectPoint(node.x, node.y, anchor.z + 3)); + if (!drawn.every((point) => Number.isFinite(point.x) && Number.isFinite(point.y))) continue; + const width = Math.max(2, 3.6 * scale); + for (const [ink, extra] of [[outline, edge * 2], [ribbon, 0]]) + for (let index = 1; index < drawn.length; index++) + stroke(drawn[index - 1].x, drawn[index - 1].y, drawn[index].x, drawn[index].y, width + extra, ink); + // A V-notch cut into the end. + const end = drawn.at(-1), before = drawn.at(-2); + const dx = end.x - before.x, dy = end.y - before.y, length = Math.hypot(dx, dy) || 1; + screenTriangle(end.x - dy / length * width * .55, end.y + dx / length * width * .55, + end.x + dy / length * width * .55, end.y - dx / length * width * .55, + end.x - dx / length * width * .9, end.y - dy / length * width * .9, outline[0], outline[1], outline[2]); + } + if (loops) for (const side of [-1, 1]) { + const tip = { x: knot.x + bx * side * loop * 1.4 - ax * loop * .3, y: knot.y + by * side * loop * 1.4 - ay * loop * .3 }; + const upper = { x: tip.x - ax * loop * .75, y: tip.y - ay * loop * .75 }; + const lower = { x: tip.x + ax * loop * .75, y: tip.y + ay * loop * .75 }; + for (const [ink, grow] of [[outline, edge * 1.4], [ribbon, 0]]) { + screenTriangle(knot.x, knot.y, upper.x - ax * grow, upper.y - ay * grow, + tip.x + bx * side * grow, tip.y + by * side * grow, ink[0], ink[1], ink[2]); + screenTriangle(knot.x, knot.y, tip.x + bx * side * grow, tip.y + by * side * grow, + lower.x + ax * grow, lower.y + ay * grow, ink[0], ink[1], ink[2]); + } + stroke(knot.x, knot.y, tip.x - bx * side * loop * .25, tip.y - by * side * loop * .25, + Math.max(1, edge * .7), mixColor(ribbon, [0, 0, 0], .35)); + } + if (loops) { + filledDisc(knot.x, knot.y, Math.max(2.5, 5.5 * scale) + edge, outline); + filledDisc(knot.x, knot.y, Math.max(2, 5.5 * scale), ribbon); + } +} + +// The skater's clothes, drawn over the figure in its own style (flat colour, +// the dark outline): a white T-shirt with short sleeves and a daisy on the +// chest, and a pleated skirt — alternating panels flaring to the hem — that +// swings with the rider's movement. +function drawOutfit(player, geometry) { + const torso = geometry.segments.find((segment) => segment.role === "torso"); + if (!torso || !hasPart(player, "torso")) return; + const scale = cameraScale(); + const edge = Math.max(1.25, Math.min(3, scale * 1.8)); + const outline = [8, 12, 24]; + const shirt = player.shirtColor || [252, 252, 250]; + const skirt = player.skirtColor || [188, 164, 226]; + const neck = { x: torso.x1, y: torso.y1 }, hip = { x: torso.x2, y: torso.y2 }; + const ux = neck.x - hip.x, uy = neck.y - hip.y, length = Math.hypot(ux, uy) || 1; + const up = { x: ux / length, y: uy / length }, across = { x: -up.y, y: up.x }; + const at = (along, side) => ({ x: hip.x + ux * along + across.x * side, y: hip.y + uy * along + across.y * side }); + const quad = (a, b, c, d, ink) => { + screenTriangle(a.x, a.y, b.x, b.y, c.x, c.y, ink[0], ink[1], ink[2]); + screenTriangle(a.x, a.y, c.x, c.y, d.x, d.y, ink[0], ink[1], ink[2]); + }; + // Skate shoes: chunky, a white sole under a coloured upper, laces on top, + // pointing the way the foot does. + for (const shin of geometry.segments) { + if (!/shin$/.test(shin.role || "") || !hasPart(player, shin.part)) continue; + const foot = { x: shin.x2, y: shin.y2 }; + const toe = (player.facing || 1); + const heel = { x: foot.x - toe * 6 * scale, y: foot.y }, tip = { x: foot.x + toe * 15 * scale, y: foot.y }; + const shoe = player.shoeColor || [70, 70, 96]; + filledCapsule(heel.x, heel.y - 3 * scale, tip.x, tip.y - 3 * scale, 11 * scale + edge * 2, outline); + filledCapsule(heel.x, heel.y - 1 * scale, tip.x, tip.y - 1 * scale, 7 * scale, [250, 250, 250]); + filledCapsule(heel.x, heel.y - 5 * scale, tip.x - toe * 2 * scale, tip.y - 5 * scale, 8 * scale, shoe); + for (const lace of [.25, .5]) + stroke(heel.x + (tip.x - heel.x) * lace, heel.y - 9 * scale, heel.x + (tip.x - heel.x) * (lace + .12), heel.y - 6 * scale, + Math.max(.8, edge * .6), [250, 250, 250]); + } + // Sleeves: thin, hugging the upper arm. + for (const bone of geometry.segments) { + if (!/upper-arm$/.test(bone.role || "") || !hasPart(player, bone.part)) continue; + const ex = bone.x1 + (bone.x2 - bone.x1) * .42, ey = bone.y1 + (bone.y2 - bone.y1) * .42; + filledCapsule(bone.x1, bone.y1, ex, ey, bone.width + 2.5 * scale + edge * 2, outline); + filledCapsule(bone.x1, bone.y1, ex, ey, bone.width + 2.5 * scale, shirt); + } + // The shirt: close to the body — a slender band down the torso line, + // a touch wider at the chest. + const chest = 7.5 * scale, waist = 6 * scale; + quad(at(-.06, -waist - edge), at(-.06, waist + edge), at(.97, chest + edge), at(.97, -chest - edge), outline); + quad(at(-.04, -waist), at(-.04, waist), at(.95, chest), at(.95, -chest), shirt); + const collar = at(.95, 0); + filledDisc(collar.x, collar.y, 3.5 * scale, player.color); + // A daisy on the chest. + const daisy = at(.62, 0), petal = 2.1 * scale; + for (let index = 0; index < 7; index++) { + const angle = index / 7 * Math.PI * 2; + filledDisc(daisy.x + Math.cos(angle) * petal * 1.35, daisy.y + Math.sin(angle) * petal * 1.35, petal + edge * .6, [150, 150, 170]); + } + for (let index = 0; index < 7; index++) { + const angle = index / 7 * Math.PI * 2; + filledDisc(daisy.x + Math.cos(angle) * petal * 1.35, daisy.y + Math.sin(angle) * petal * 1.35, petal, [255, 255, 255]); + } + filledDisc(daisy.x, daisy.y, petal * 1.1 + edge * .6, [200, 150, 40]); + filledDisc(daisy.x, daisy.y, petal * 1.1, [252, 206, 72]); + if(!player.pantsColor)drawSkirt(player, skirt, outline, edge, scale, geometry); +} + +// Each pleat has several movable points so contact can bend the fabric +// between the waistband and hem. This is visual cloth, independent of play. +const skirtPleats = 5; +const skirtRows = 3; +function drawSkirt(player, skirt, outline, edge, scale, geometry) { + if(player.civilian){ + // The projected pose the outfit was handed — the same one this used to + // constrain and project again, per kid, per frame. + const torso=geometry.segments.find(s=>s.role==='torso'); + if(!torso)return; + const x=torso.x2,y=torso.y2,w=18*scale,h=32*scale; + screenTriangle(x-w*.5,y,x+w*.5,y,x+w,y+h,...skirt); + screenTriangle(x-w*.5,y,x+w,y+h,x-w,y+h,...skirt); + for(let i=-1;i<=1;i++)stroke(x+i*w*.25,y,x+i*w*.5,y+h,1.2,outline); + return; + } + const world = player.replayGeometry || player.frozenGeometry || runnerWorldGeometry(player, 0); + const torso = world.segments.find((segment) => segment.role === "torso"); + if (!torso) return; + const now = runtime().monotonicUs; + const hip = { x: torso.x2, y: torso.y2, z: torso.z2 ?? player.z ?? 0 }; + const waistHalf = 9, drop = 38, flare = 22; + const thighs = world.segments.filter((bone) => /thigh$/.test(bone.role || "") && hasPart(player, bone.part)); + const anchors = Array.from({ length: skirtPleats + 1 }, (_, index) => { + const side = index / skirtPleats * 2 - 1; + return { x: hip.x + side * waistHalf, y: hip.y - 3, z: hip.z - 5 }; + }); + let cloth = player.skirtCloth; + if (!cloth?.nodes || Math.hypot(hip.x - cloth.hip.x, hip.y - cloth.hip.y) > 150) { + cloth = player.skirtCloth = { at: now, hip, nodes: anchors.map((anchor, index) => + Array.from({ length: skirtRows + 1 }, (_, row) => { + const t = row / skirtRows, side = index / skirtPleats * 2 - 1; + const x = anchor.x + side * flare * t, y = anchor.y + drop * t; + const z = anchor.z - Math.sin(index / skirtPleats * Math.PI) * 3; + return { x, y, z, px: x, py: y, pz: z }; + })) }; + } + const dt = clamp((now - cloth.at) / 1e6, 0, .05); + cloth.at = now; + cloth.hip = hip; + const nodes = cloth.nodes; + for (let col = 0; col <= skirtPleats; col++) { + Object.assign(nodes[col][0], anchors[col]); + for (let row = 1; row <= skirtRows; row++) { + const point = nodes[col][row]; + if (dt > 0) { + const drag = Math.exp(-dt * 5); + const vx = (point.x - point.px) * drag, vy = (point.y - point.py) * drag; + const vz = (point.z - point.pz) * drag; + point.px = point.x; point.py = point.y; point.pz = point.z; + point.z += vz; + point.x += vx; point.y += vy + 1800 * dt * dt; + } + } + } + const separate = (point, bone) => { + const dx = bone.x2 - bone.x1, dy = bone.y2 - bone.y1; + const z1 = bone.z1 ?? hip.z, dz = (bone.z2 ?? hip.z) - z1; + const t = clamp(((point.x - bone.x1) * dx + (point.y - bone.y1) * dy + + (point.z - z1) * dz) / (dx * dx + dy * dy + dz * dz || 1), 0, 1); + const x = bone.x1 + dx * t, y = bone.y1 + dy * t, z = z1 + dz * t; + const ox = point.x - x, oy = point.y - y; + // This is the front of the skirt. Give an initially embedded point the + // front-facing normal, so it drapes over a thigh instead of parting into + // two strips or flipping through to the back of the leg. + const oz = Math.min(-.5, point.z - z); + const distance = Math.hypot(ox, oy, oz), radius = (bone.width || 10) / 2 + 3; + if (distance >= radius) return; + point.x = x + ox / distance * radius; + point.y = y + oy / distance * radius; + point.z = z + oz / distance * radius; + }; + const link = (a, b, limit, pinned = false, taut = false) => { + const dx = b.x - a.x, dy = b.y - a.y, dz = b.z - a.z; + const length = Math.hypot(dx, dy, dz); + if (length < .00001 || (!taut && length <= limit)) return; + const pull = (length - limit) / length; + const share = pinned ? 1 : .5; + b.x -= dx * pull * share; b.y -= dy * pull * share; b.z -= dz * pull * share; + if (!pinned) { a.x += dx * pull * .5; a.y += dy * pull * .5; a.z += dz * pull * .5; } + }; + // Alternate stretch and capsule contact. Contact is last, so a neighbour + // cannot pull a fold back inside the leg after the collision pass. + for (let pass = 0; pass < 3; pass++) { + for (let col = 0; col <= skirtPleats; col++) { + const side = col / skirtPleats * 2 - 1; + const length = Math.hypot(drop, side * flare) / skirtRows; + for (let row = 1; row <= skirtRows; row++) { + link(nodes[col][row - 1], nodes[col][row], length, row === 1); + if (col > 0) link(nodes[col - 1][row], nodes[col][row], + (waistHalf * 2 + flare * 2 * row / skirtRows) / skirtPleats, false, true); + } + } + for (let col = 0; col <= skirtPleats; col++) + for (let row = 1; row <= skirtRows; row++) + for (const bone of thighs) separate(nodes[col][row], bone, col < skirtPleats / 2 ? -1 : 1); + } + const points = nodes.map((column, col) => column.map((p, row) => + projectPoint(p.x, p.y, p.z - (col % 2) * 1.5 * row / skirtRows))); + if (!points.flat().every((p) => Number.isFinite(p.x) && Number.isFinite(p.y))) return; + for (let col = 0; col < skirtPleats; col++) { + for (let row = 0; row < skirtRows; row++) { + const a = points[col][row], b = points[col + 1][row]; + const c = points[col + 1][row + 1], d = points[col][row + 1]; + const fold = nodes[col + 1][row].z - nodes[col][row].z; + const shade = clamp(.07 + Math.abs(fold) / 35, .07, .3); + const ink = mixColor(skirt, col % 2 ? [25, 20, 40] : [255, 255, 255], shade); + screenTriangle(a.x, a.y, b.x, b.y, c.x, c.y, ...ink); + screenTriangle(a.x, a.y, c.x, c.y, d.x, d.y, ...ink); + } + } + for (let col = 0; col <= skirtPleats; col++) + for (let row = 0; row < skirtRows; row++) { + const a = points[col][row], b = points[col][row + 1]; + stroke(a.x, a.y, b.x, b.y, col === 0 || col === skirtPleats ? edge : Math.max(.8, edge * .45), + col === 0 || col === skirtPleats ? outline : mixColor(skirt, [0, 0, 0], .3)); + } + for (let col = 0; col < skirtPleats; col++) { + const a = points[col][skirtRows], b = points[col + 1][skirtRows]; + stroke(a.x, a.y, b.x, b.y, edge, outline); + } +} + +// A fighter's scars: a raised pink line across the limb where each hit +// landed, darker down its middle, kept for the rest of the visit. +function drawScars(player, geometry) { + // An injured limb shows its injuries: a scar per point of damage, even for + // damage that arrived without a recorded hit (a watcher's copy, a replay). + for (const [part, damage] of Object.entries(player.partDamage || {})) { + const have = (player.scars || []).filter((scar) => scar.part === part).length; + for (let extra = have; extra < Math.min(4, damage); extra++) { + const segment = geometry.segments.find((bone) => bone.part === part && !bone.hitboxOnly); + if (!segment) break; + (player.scars ||= []).push({ part, role: segment.role, + t: .25 + ((extra * .37 + part.length * .13) % .5), angle: ((extra * 1.3 + part.length) % 1.1) - .55 }); + } + } + if (!player.scars?.length) return; + for (const scar of player.scars) { + if (!hasPart(player, scar.part)) continue; + const bone = geometry.segments.find((segment) => segment.role === scar.role) || + geometry.segments.find((segment) => segment.part === scar.part); + if (!bone) continue; + const x = bone.x1 + (bone.x2 - bone.x1) * scar.t, y = bone.y1 + (bone.y2 - bone.y1) * scar.t; + const length = Math.hypot(bone.x2 - bone.x1, bone.y2 - bone.y1) || 1; + const across = { x: -(bone.y2 - bone.y1) / length, y: (bone.x2 - bone.x1) / length }; + const c = Math.cos(scar.angle), s = Math.sin(scar.angle); + const dx = across.x * c - across.y * s, dy = across.x * s + across.y * c; + const reach = (bone.width || 10) * .62; + // Fresh, it is an open cut — dark red with a bright wet middle; over + // twenty seconds it closes to a pale pink scar. + const heal = scar.at ? clamp((runtime().monotonicUs - scar.at) / 20e6, 0, 1) : 1; + filledCapsule(x - dx * reach, y - dy * reach, x + dx * reach, y + dy * reach, + Math.max(1.5, (bone.width || 10) * (.26 - heal * .06)), mixColor([96, 8, 18], [222, 132, 142], heal)); + filledCapsule(x - dx * reach * .8, y - dy * reach * .8, x + dx * reach * .8, y + dy * reach * .8, + Math.max(.8, (bone.width || 10) * .09), mixColor([214, 24, 40], [132, 40, 54], heal)); + } +} + function drawSkateParkFeatures(ground = [110, 116, 128]) { if (!skateparkMap || survivalActive()) return; + if (indoorSkate()) {drawIndoorHall(ground);for(const loop of skateLoops)drawLoopTrack(loop,ground);return;} const visible = (x, radius = 0) => Math.abs(x - cameraCenter) < cameraWidth + radius; for (const loop of skateLoops) { if (!visible(loop.x, loop.radius + loopShell)) continue; drawLoopTrack(loop, ground); } + // Water over each pond: a surface sheet at sea level across the park's + // depth, and a front face down to the basin, a hair nearer than the + // ground's own front wall so the two never fight. + const waterTop = mixColor([46, 110, 170], [120, 186, 236], visualTheme.light); + const waterFront = mixColor([30, 80, 140], [80, 150, 214], visualTheme.light); + for (const segment of parkSegments) { + if (segment.kind !== "pond" || !visible((segment.left + segment.right) / 2, + segment.right - segment.left)) continue; + const l = segment.left, r = segment.right, waterY=seaLevelY-(segment.lift||0); + // The body of water stands just behind the fighters' plane, so a swimmer + // is seen in it rather than hidden behind it; a thin waterline runs + // across the front so it still reads as water. + const backZ = 40; + worldQuad({ x: l, y: waterY, z: backZ }, { x: r, y: waterY, z: backZ }, + { x: r, y: waterY, z: worldFar }, { x: l, y: waterY, z: worldFar }, waterTop); + const steps = 16; + for (let i = 0; i < steps; i++) { + const x1 = lerp(l, r, i / steps), x2 = lerp(l, r, (i + 1) / steps); + worldQuad({ x: x1, y: waterY, z: backZ }, { x: x2, y: waterY, z: backZ }, + { x: x2, y: terrainFloorAt(x2), z: backZ }, { x: x1, y: terrainFloorAt(x1), z: backZ }, + waterFront); + worldQuad({ x: x1, y: waterY - 2, z: worldNear - 2 }, { x: x2, y: waterY - 2, z: worldNear - 2 }, + { x: x2, y: waterY + 8, z: worldNear - 2 }, { x: x1, y: waterY + 8, z: worldNear - 2 }, + waterTop); + } + } for (const pad of skateBoosts) { if (!visible(pad.left, 240)) continue; for (let x = pad.left; x < pad.right; x += 40) { @@ -579,10 +1498,12 @@ function drawSkateParkFeatures(ground = [110, 116, 128]) { if (!visible(rope.x, chainLinks * chainLength)) continue; worldCapsule(rope.x - 70, rope.y, rope.z, rope.x + 70, rope.y, rope.z, 18, [108, 130, 150]); - for (let i = 1; i < rope.nodes.length; i++) { - const a = rope.nodes[i - 1], b = rope.nodes[i]; + // Far out a chain is drawn a few links at a time. + const linkStep = Math.min(4, sceneLod()); + for (let i = linkStep; i < rope.nodes.length; i += linkStep) { + const a = rope.nodes[i - linkStep], b = rope.nodes[i]; worldCapsule(a.x, a.y, rope.z, b.x, b.y, rope.z, 8, - i % 2 ? [220, 225, 236] : [120, 150, 178]); + (i / linkStep) % 2 ? [220, 225, 236] : [120, 150, 178]); } } } @@ -605,6 +1526,8 @@ function terrainFloorAt(x) { for (const segment of parkSegments) { if (x < segment.left || x > segment.right) continue; if (segment.kind === "flat") return floorY - segment.lift; + if (segment.kind === "pond") return floorY - segment.lift + segment.depth * + (indoorSkate()?1:Math.sin(Math.PI * (x - segment.left) / (segment.right - segment.left))); const run = segment.right - segment.left; // How far up the feature we are, measured from ITS bottom: `dir` says // which end that is. A transition rising to the right has its flat end on @@ -729,8 +1652,8 @@ const parkDecks = parkDeckPlan.map((deck, index) => ({ // been entered at least once. const noLedges = []; let freeskateEntered = false; -const activeLedges = () => survivalActive() ? platforms - : freeskateEntered && freeskateActive() ? noLedges : parkDecks; +const activeLedges = (z = 0) => survivalActive() ? platforms + : freeskateEntered && freeskateActive() ? (indoorSkate() ? [...roofLedges, ...activeCubeLedges(z)] : noLedges) : parkDecks; // The station's landmarks, by column. On a ten-wide cube a bare `3` was // readable as "left of centre"; on twenty it is just a digit, and there were // a dozen of them scattered through spawn, pickup and re-serve code all @@ -764,9 +1687,9 @@ const platformY = floorY; // The surface a thing at (x, y) is standing over: the nearest rung at or below // it, and the floor when there is no rung. Shadows, pickups and the bot all // ask this, so a rung that moves takes its furniture with it. -function surfaceYAt(x, y) { +function surfaceYAt(x, y, z = 0) { let surface = terrainFloorAt(x); - if (platformsEnabled()) for (const ledge of activeLedges()) + if (platformsEnabled()) for (const ledge of activeLedges(z)) if (ledge.y < surface && ledge.y >= y - 1 && x >= ledge.left && x <= ledge.right) surface = ledge.y; return surface; @@ -776,10 +1699,10 @@ function surfaceYAt(x, y) { // span, so one answer serves fighters, grenades and the ball alike — and a // lattice change lands in all three at once. The highest crossed rung wins, // because that is the one a fall meets first. -function ledgeCrossed(x, previousY, y, rise = 0, inset = 0) { +function ledgeCrossed(x, previousY, y, rise = 0, inset = 0, z = 0) { if (!platformsEnabled()) return null; let hit = null; - for (const ledge of activeLedges()) { + for (const ledge of activeLedges(z)) { const top = ledge.y - rise; if (previousY > top || y < top) continue; if (x < ledge.left + inset || x > ledge.right - inset) continue; @@ -880,7 +1803,8 @@ const fighterAnimationSpecs = { // A blade in the item hand stretches every hand strike. Kicks are legs. const meleeSpecFor = (player, kind) => { const spec = meleeSpecs[kind] || meleeSpecs.PUNCH; - if (!player?.swordHeld || kind === "KICK") return spec; + if ((!player?.swordHeld && !player?.axeHeld) || kind === "KICK") return spec; + if(player.axeHeld)return {...spec,reach:spec.reach*1.7,span:spec.span*1.7,swell:spec.swell*1.4,force:spec.force*1.6}; return { ...spec, reach: spec.reach * 1.5, span: spec.span * 1.45, swell: spec.swell * 1.3, force: spec.force * 1.15 }; }; @@ -1112,6 +2036,11 @@ class FightCamDoll { this.target = { x: cameraCenter, y: cameraCenterY, z: 0 }; this.width = cameraWidth; this.perspective = 0; + // A second view (the P1 inset) sets these: where on the screen it draws, + // its lens, and the depth window it paints into. null means the stage. + this.viewport = null; + this.depthBase = -1.4; + this.depthSlope = 2.8 / 16000; this.fov = 55; this.roll = 0; this.dirty = true; @@ -1166,12 +2095,13 @@ class FightCamDoll { const up = { x: baseUp.x * rollCos - baseRight.x * rollSin, y: baseUp.y * rollCos - baseRight.y * rollSin, z: baseUp.z * rollCos - baseRight.z * rollSin }; + const port = this.viewport; this.view = { forward, right, up, - centerX: (stageLeft + stageRight) / 2, - centerY: (stageTop + stageBottom) / 2 + + centerX: port ? port.centerX : (stageLeft + stageRight) / 2, + centerY: port ? port.centerY : (stageTop + stageBottom) / 2 + (stageBottom - stageTop) * consoleFrameDrop(), orthoScale: (stageRight - stageLeft) / this.width, - focal: (stageRight - stageLeft) / + focal: port ? port.focal : (stageRight - stageLeft) / (2 * Math.tan(this.fov * Math.PI / 360)) }; this.dirty = false; } @@ -1201,7 +2131,7 @@ class FightCamDoll { const perspectiveY = centerY - view.y * focal / depth; out.x = lerp(orthoX, perspectiveX, this.perspective); out.y = lerp(orthoY, perspectiveY, this.perspective); - out.z = clamp(depth / 16000 * 2.8 - 1.4, -1.4, 1.4); + out.z = clamp(depth * this.depthSlope + this.depthBase, -1.499, 1.4); return out; } @@ -1216,9 +2146,21 @@ class FightCamDoll { } } -const cameraDoll = new FightCamDoll(); +let cameraDoll = new FightCamDoll(); +// The view being drawn: null is the stage. A second view swaps its own doll +// in and names the rectangle it owns; projection, band clipping, LOD and the +// figure code all read the doll and the rectangle, so a second camera is the +// same renderer run again, not a second renderer. +let clipView = null; +function withRenderView(doll, rect, draw) { + const stageDoll = cameraDoll, previousClip = clipView; + cameraDoll = doll; clipView = rect; + try { draw(); } finally { cameraDoll = stageDoll; clipView = previousClip; } +} const cameraScale = () => (stageRight - stageLeft) / cameraDoll.width; let playerCameraYaw = 0; +let skateIsoSide = 1; +let skateIsoYaw = .3; let playerCameraPitch = 0; // A multiplier on the framed width, so zoom rides on top of automatic framing // rather than fighting it: the camera still guarantees both fighters are in @@ -1247,9 +2189,47 @@ const triangleSafe = (value) => value > -32200 && value < 32200; function screenTriangle(x1, y1, x2, y2, x3, y3, r = 255, g = 255, b = 255) { if (!(triangleSafe(x1) && triangleSafe(y1) && triangleSafe(x2) && triangleSafe(y2) && triangleSafe(x3) && triangleSafe(y3))) return; + if (clipView) { scissorTriangle(x1, y1, x2, y2, x3, y3, r, g, b); return; } emitTriangle(x1, y1, triangleDepth, x2, y2, triangleDepth, x3, y3, triangleDepth, r, g, b); } +// The stage's edge is the GPU viewport; a second view's edge is a rectangle +// inside it, so its triangles are cut here. Whole-inside and whole-outside +// are answered by compares; only a triangle on the border walks the edges. +const scissorPoly = new Float64Array(28), scissorNext = new Float64Array(28); +function scissorTriangle(x1, y1, x2, y2, x3, y3, r, g, b) { + const left = clipView.x, right = clipView.x + clipView.w; + const top = clipView.y, bottom = clipView.y + clipView.h; + const inside = (x, y) => x >= left && x <= right && y >= top && y <= bottom; + if (inside(x1, y1) && inside(x2, y2) && inside(x3, y3)) { + emitTriangle(x1, y1, triangleDepth, x2, y2, triangleDepth, x3, y3, triangleDepth, r, g, b); + return; + } + if ((x1 < left && x2 < left && x3 < left) || (x1 > right && x2 > right && x3 > right) || + (y1 < top && y2 < top && y3 < top) || (y1 > bottom && y2 > bottom && y3 > bottom)) return; + let poly = scissorPoly, next = scissorNext, n = 3; + poly[0] = x1; poly[1] = y1; poly[2] = x2; poly[3] = y2; poly[4] = x3; poly[5] = y3; + for (let edge = 0; edge < 4; edge++) { + const axis = edge < 2 ? 0 : 1, bound = edge === 0 ? left : edge === 1 ? right : edge === 2 ? top : bottom; + const sign = edge === 0 || edge === 2 ? 1 : -1; + let m = 0; + for (let i = 0; i < n; i++) { + const j = (i + 1) % n; + const ax = poly[i * 2], ay = poly[i * 2 + 1], bx = poly[j * 2], by = poly[j * 2 + 1]; + const da = ((axis ? ay : ax) - bound) * sign, db = ((axis ? by : bx) - bound) * sign; + if (da >= 0) { next[m * 2] = ax; next[m * 2 + 1] = ay; m++; } + if ((da >= 0) !== (db >= 0)) { + const t = da / (da - db); + next[m * 2] = ax + (bx - ax) * t; next[m * 2 + 1] = ay + (by - ay) * t; m++; + } + } + const swap = poly; poly = next; next = swap; n = m; + if (n < 3) return; + } + for (let i = 1; i + 1 < n; i++) + emitTriangle(poly[0], poly[1], triangleDepth, poly[i * 2], poly[i * 2 + 1], triangleDepth, + poly[i * 2 + 2], poly[i * 2 + 3], triangleDepth, r, g, b); +} function screenRect(x, y, width, height, color) { const [r, g, b] = color; screenTriangle(x, y, x + width, y, x + width, y + height, r, g, b); @@ -1265,6 +2245,25 @@ function screenRect(x, y, width, height, color) { // body (bodies bottom out near -1.42; the shell maps (z + 1.5) / 3 into the // depth buffer, LESS_EQUAL). The web shell keeps box/line as they were. const nativeTrianglePass = typeof triangle3d === "function"; +// The other scene and text bindings, resolved the same way, once: a host +// either has them at boot or never will, and a `typeof` on a hot path is a +// global lookup the interpreter repeats for every capsule, disc and label. +const nativeDisc = typeof disc3d === "function" ? disc3d : null; +const nativeCapsule = typeof capsule3d === "function" ? capsule3d : null; +const nativeSceneMesh = typeof sceneMesh === "function" ? sceneMesh : null; +// sceneApi 2: a park mesh is validated, bounded and lit once natively and +// drawn by handle; sceneMesh (sceneApi 1) stays the path on older consoles. +const nativeMeshUpload = typeof meshUpload === "function" ? meshUpload : null; +const nativeMeshDraw = typeof meshDraw === "function" ? meshDraw : null; +const nativeMeshFree = typeof meshFree === "function" ? meshFree : null; +const nativeRetainedMeshes = nativeMeshUpload !== null && nativeMeshDraw !== null; +const nativeTriangles3d = typeof triangles3d === "function" ? triangles3d : null; +const nativePostEffects = typeof postEffects === "function" ? postEffects : null; +const hostComicWrite = typeof comicWrite === "function" ? comicWrite : null; +const hostYwftWrite = typeof ywftWrite === "function" ? ywftWrite : null; +const hostThemeReady = typeof themeReady === "function" ? themeReady : null; +const hostThemeSprite = typeof themeSprite === "function" ? themeSprite : null; +const hostThemeAssetReady = typeof themeAssetReady === "function" ? themeAssetReady : null; const hudDepth = -1.48; function hudBox(x, y, width, height, ...color) { if (!nativeTrianglePass) { box(x, y, width, height, ...color); return; } @@ -1362,10 +2361,10 @@ const bandEdges = [ ]; function clipScreenBand(polygon) { const width = viewWidth(); - bandMinX = -width * guardBand; - bandMaxX = width * (1 + guardBand); - bandMinY = -viewHeight * guardBand; - bandMaxY = viewHeight * (1 + guardBand); + bandMinX = clipView ? clipView.x : -width * guardBand; + bandMaxX = clipView ? clipView.x + clipView.w : width * (1 + guardBand); + bandMinY = clipView ? clipView.y : -viewHeight * guardBand; + bandMaxY = clipView ? clipView.y + clipView.h : viewHeight * (1 + guardBand); let clipped = polygon; for (const distance of bandEdges) { if (clipped.length < 3) return []; @@ -1380,6 +2379,8 @@ function clipScreenBand(polygon) { // Whether a projected vertex already sits inside the guard band. A NaN fails // every compare, so a broken projection falls through to the clipper. function bandContains(vertex) { + if (clipView) return vertex.x >= clipView.x && vertex.x <= clipView.x + clipView.w && + vertex.y >= clipView.y && vertex.y <= clipView.y + clipView.h; const width = viewWidth(); return vertex.x >= -width * guardBand && vertex.x <= width * (1 + guardBand) && vertex.y >= -viewHeight * guardBand && @@ -1557,9 +2558,11 @@ function losAngelesSun() { return { light: light * light * (3 - 2 * light), sunset }; } +let cachedConsoleHost; function consoleHost() { + if(cachedConsoleHost!==undefined)return cachedConsoleHost; const caps = typeof capabilities === "function" ? capabilities() : {}; - return caps.platform === "xbox-uwp" || caps.platform === "xbox"; + return cachedConsoleHost = caps.platform === "xbox-uwp" || caps.platform === "xbox"; } function consoleFrameDrop() { @@ -1656,7 +2659,8 @@ const players = [ // Survival and the versus lobby are both one-body rooms — the second chair // is parked off the map until somebody takes it. const activePlayers = () => - survivalActive() || soloRoom() ? [players[0]] : players; + freeskateActive() ? (freeskateSecond ? players : [players[0]]) + : survivalActive() || lobbyActive() ? [players[0]] : players; const impacts = []; // Every impact gets a number, in order, for the life of the run. A watcher @@ -1666,6 +2670,213 @@ const impacts = []; // a rollback that re-spawns an impact must re-issue the same number. let impactSequence = 0; +// ── Marks on the world ────────────────────────────────────────────────── +// Blood, wheel scars and dings are decals laid on the ground's own surface, +// following its slope, and they stay: a park keeps the history of what was +// done in it. Blood is droplets first — thrown from a wound the way the hit +// went, falling under gravity — and a splat where each lands, stretched by +// how fast it was going sideways, wet and bright at first and drying darker. +// Everything here is dealt from one seeded sequence, so a replay marks the +// floor the same way. A fighter's own marks (scars) live on the fighter. +const decals = []; +const bloodDrops = []; +const decalCap = 160; +let decalSeed = 7; +function decalRandom() { + decalSeed = (Math.imul(decalSeed, 1103515245) + 12345) >>> 0; + return (decalSeed >>> 8) / 16777216; +} +function addDecal(decal) { + decal.seed = decalRandom() * 1000; + decal.at = runtime().monotonicUs; + // The ground under a mark never moves: its height and slope are read once + // here, not every frame for every corner. + decal.ground = terrainFloorAt(decal.x) - .9; + const slope = terrainTangentAt(decal.x, 8), norm = Math.hypot(1, slope); + decal.tx = 1 / norm; decal.ty = slope / norm; + decal.shape = decalShape(decal); + // Blood landing in blood makes a pool rather than another mark: the + // splat it lands in grows (and freshens), so the count stays flat however + // much is spilled. + if (decal.kind === "blood") { + for (let index = decals.length - 1; index >= Math.max(0, decals.length - 40); index--) { + const pool = decals[index]; + if (pool.kind !== "blood") continue; + if (Math.hypot(pool.x - decal.x, pool.z - decal.z) < pool.size * 1.25 + 6) { + pool.size = Math.min(34, Math.hypot(pool.size, decal.size * .55)); + pool.at = Math.max(pool.at, decal.at - 8e6); + return pool; + } + } + } + decals.push(decal); + if (decals.length > decalCap) decals.splice(0, decals.length - decalCap); + return decal; +} +// A mark's outline, fixed when it lands: corners as (along, across) on the +// surface, jagged by its seed and stretched along its angle, in units of its +// size so a growing pool keeps its shape. +function decalShape(decal) { + const sides = decal.kind === "wheelmark" ? 4 : decal.size < 8 ? 5 : 7; + const jag = decal.kind === "ding" ? .35 : decal.kind === "wheelmark" ? .1 : .28; + const cosA = Math.cos(decal.angle || 0), sinA = Math.sin(decal.angle || 0); + const corners = []; + for (let corner = 0; corner < sides; corner++) { + const theta = corner / sides * Math.PI * 2; + const wobble = 1 + jag * Math.sin(decal.seed * 1.7 + corner * 2.39) * Math.cos(decal.seed + corner * 1.13); + const u = Math.cos(theta) * wobble * (decal.stretch || 1), v = Math.sin(theta) * wobble; + corners.push(u * cosA - v * sinA, u * sinA + v * cosA); + } + return corners; +} + +function spawnBlood(x, y, z, direction, amount, spread = 1) { + for (let drop = 0; drop < amount && bloodDrops.length < 90; drop++) { + const push = direction ? direction * (180 + decalRandom() * 720) : (decalRandom() - .5) * 900; + bloodDrops.push({ x, y, z, + vx: push * spread + (decalRandom() - .5) * 240, + vy: -(120 + decalRandom() * 560) * spread, + vz: (decalRandom() - .5) * 360, + size: 1.6 + decalRandom() * 3.6 }); + } +} +// A drop landing: a short low wet splat on dry ground (lower for a bigger +// drop), a small higher plink when it lands in a pool. Spaced out so a +// spray patters rather than buzzes. +let bloodSoundAt = 0; +function bloodDripSound(drop, intoPool) { + const now = runtime().monotonicUs; + if (now - bloodSoundAt < 45000) return; + bloodSoundAt = now; + const variation = decalRandom(); + if (intoPool) playSine(620 + variation * 420 - drop.size * 30, .035); + else playSine(330 - drop.size * 28 + variation * 90, .05); + emitSignal("blood-drip", -1, intoPool ? 1 : 0, Math.round(drop.size * 10)); +} +function updateBlood(dt) { + for (let index = bloodDrops.length - 1; index >= 0; index--) { + const drop = bloodDrops[index]; + drop.vy += fallGravity() * dt; + drop.x += drop.vx * dt; drop.y += drop.vy * dt; drop.z += drop.vz * dt; + drop.z = clamp(drop.z, worldNear + 10, worldFar - 10); + const ground = terrainFloorAt(drop.x); + if (drop.y < ground) continue; + const sideways = Math.hypot(drop.vx, drop.vz); + if (drop.kind === "wood") { + addDecal({ kind: "chip", x: drop.x, z: drop.z, size: drop.size * 2.2, stretch: 2.6, + angle: decalRandom() * Math.PI }); + bloodDrops.splice(index, 1); + continue; + } + const splat = { kind: "blood", x: drop.x, z: drop.z, size: drop.size * (2 + decalRandom() * 1.8), + stretch: 1 + Math.min(2.6, sideways / 420), angle: Math.atan2(drop.vz, drop.vx) }; + const landed = addDecal(splat); + bloodDripSound(drop, landed !== splat); + // A fast drop throws a couple of satellites on along its line. + if (sideways > 500 && drop.size > 3) for (let satellite = 1; satellite <= 2; satellite++) + addDecal({ kind: "blood", x: drop.x + drop.vx / sideways * satellite * drop.size * 5, + z: drop.z + drop.vz / sideways * satellite * drop.size * 5, size: drop.size * .7, + stretch: 1.3, angle: Math.atan2(drop.vz, drop.vx) }); + bloodDrops.splice(index, 1); + } +} +// The board has a health of its own. Hard landings, slams into the floor, +// kicks and bumps chip it: each chip throws wood splinters that land as +// slivers on the floor and leaves a crack in the grip. At zero it snaps in +// two — the rider is thrown off, the halves tumble away — and a fresh board +// is set down beside the rider a couple of seconds later. +const boardState = { health: 100, cracks: [], brokenAt: 0 }; +function spawnChips(x, y, z, amount, push = 0) { + for (let chip = 0; chip < amount && bloodDrops.length < 90; chip++) + bloodDrops.push({ kind: "wood", x, y, z, + vx: (decalRandom() - .5) * 700 + push, vy: -(200 + decalRandom() * 520), + vz: (decalRandom() - .5) * 300, size: 1.4 + decalRandom() * 2.4 }); +} +function boardAtContact(x, y, z) { + let nearest=null, gap=Infinity; + for (const board of balls) if (board.type === "skateboard") { + const rider=players.find(p=>p.skateboard && !p.onewheel && boardForRider(p)===board); + const at=rider || board; + const d=Math.hypot(at.x-x,at.y-y,(at.z||0)-(z||0)); + if(d 0) || state.brokenAt) return; + state.health = Math.max(0, state.health - amount); + spawnChips(x, y, z, Math.min(10, 2 + Math.round(amount / 4))); + state.cracks.push({ along: (decalRandom() - .5) * 90, across: (decalRandom() - .5) * 14, + length: 6 + amount * .8, angle: (decalRandom() - .5) * 1.6 }); + if (state.cracks.length > 10) state.cracks.shift(); + playDrum("block", .35 + Math.min(.6, amount / 30), panAt(x, z)); + emitSignal("board-damage", -1, Math.round(state.health), Math.round(amount)); + if (state.health <= 0) snapBoard(x, y, z, now, board); +} +function snapBoard(x, y, z, now, board = boardAtContact(x,y,z)) { + const state = boardCondition(board); + state.brokenAt = now; + const rider = players.find(player=>player.skateboard && !player.onewheel && boardForRider(player)===board); + if (rider) resetSkate(rider); + if (board) { board.active = false; board.heldBy = -1; } + for (const side of [-1, 1]) + detachedParts.push({ x1: x + side * 6, y1: y - 18, z1: z, x2: x + side * 58, y2: y - 22, z2: z, + width: 14, color: [222, 182, 128], colors: [], paletteCoordinate: 0, part: "board-half", + vx: side * 380, vy: -620, spin: side * 7, life: 2.6, owner: -1, heldBy: -1, hitAfter: now + 180000 }); + spawnChips(x, y - 20, z, 16); + playDrum("kick", 1.1, panAt(x, z)); + playDrum("snare", .8, panAt(x, z)); + emitSignal("board-snap", rider?.pad ?? -1, 1, 0); +} +function updateBoardState(now) { + for (const board of balls) if (board.type === "skateboard") { + const state=boardCondition(board); + if (!state.brokenAt || now-state.brokenAt<=2.4e6) continue; + state.health=100;state.brokenAt=0;state.cracks.length=0; + const rider=players[board.seat||0]; + const at=rider.skateboard ? {...rider,skateboard:false} : rider; + placeFreeskateBoard(at,board); + } +} + +// A hit on a body: a spray the way the blow went, a pool starting under it, +// and a scar where the hit landed. +function bleed(target, segment, sourceX, strength = 1) { + const direction = Math.sign(target.x - sourceX) || target.facing || 1; + const x = segment ? (segment.x1 + segment.x2) / 2 : target.x; + const y = segment ? (segment.y1 + segment.y2) / 2 : target.y - 100; + spawnBlood(x, y, target.z || 0, direction, Math.round(8 * strength)); + addDecal({ kind: "blood", x: target.x + direction * 20, z: target.z || 0, + size: 9 + strength * 7, stretch: 1.2, angle: direction > 0 ? 0 : Math.PI }); +} +function addScar(target, segment) { + if (!segment) return; + const scars = target.scars ||= []; + scars.push({ part: segment.part, role: segment.role, + t: .2 + decalRandom() * .6, angle: (decalRandom() - .5) * 1.1, at: runtime().monotonicUs }); + if (scars.length > 12) scars.shift(); +} +// Hard contact with the surface: a ding (a chip out of the ramp's skin). +function addDing(x, z, size) { + addDecal({ kind: "ding", x, z, size, stretch: 1, angle: decalRandom() * Math.PI }); +} +// Rubber on the ramp: a skid streak between two points under both wheels. +function addSkid(x1, x2, z, strength = 1) { + if (Math.abs(x2 - x1) < 2) return; + addDecal({ kind: "skid", x: x1, x2, z, size: 3.2, strength }); +} +function trackSkid(player, skidding, strength = 1) { + if (!skidding) { player.skidFrom = null; return; } + if (player.skidFrom === null || player.skidFrom === undefined) { player.skidFrom = player.x; return; } + if (Math.abs(player.x - player.skidFrom) > 34) { + addSkid(player.skidFrom, player.x, player.z || 0, strength); + player.skidFrom = player.x; + } +} + function spawnImpact(impact) { impact.id = ++impactSequence; impacts.push(impact); @@ -2073,6 +3284,9 @@ let impactHitboxesUntil = 0; let nextPowerupAtUs = powerupIntervalUs; let powerupSequence = 0; let acFeed = {}; +// When the feed was last read off the host, on the game clock; null until +// the first read. +let acFeedAt = null; // Pal select is retired: you are your own handle, so there is nobody to pick, // and the dummy is already the default opponent. The whole two-step screen // stays behind this one flag rather than being deleted, because the entry UI @@ -2308,7 +3522,7 @@ const frameMeterStates = { active: { ink: [255, 66, 72], label: "ACTIVE" }, recovery: { ink: [72, 150, 255], label: "RECOVERY" }, stun: { ink: [255, 208, 64], label: "STUN" }, - shield: { ink: [186, 118, 255], label: "SHIELD" }, + shield: { ink: [186, 118, 255], label: "BUBBLE" }, airborne: { ink: [54, 62, 86], label: "" }, }; const frameMeters = [[], []]; @@ -2832,10 +4046,29 @@ function recordReplayCheckpoint(now, force = false) { } } +// A replay frame's copies are plain data — numbers, flags, colour arrays — +// with no cycles, so they are copied field by field. On the console +// structuredClone is the QuickJS polyfill, whose seen-map bookkeeping made +// every capture (chains, shots, sparks, limbs, every other tick) cost the +// long park a dozen milliseconds a frame. +function replayCopy(value, depth = 0) { + if (value === null || typeof value !== "object" || depth > 8) return value; + if (Array.isArray(value)) { + const out = new Array(value.length); + for (let index = 0; index < value.length; index++) + out[index] = replayCopy(value[index], depth + 1); + return out; + } + if (ArrayBuffer.isView(value)) return value.slice(); + const out = {}; + for (const key in value) out[key] = replayCopy(value[key], depth + 1); + return out; +} + function makeRoundReplayFrame(now) { const poseTime = (now - startedAt) / 1000000; return { - ropes: structuredClone(skateRopes), + ropes: replayCopy(skateRopes), players: players.map((player) => ({ present: !lobbyActive() || player.pad === 0, x: player.x, y: player.y, z: player.z, @@ -2856,13 +4089,13 @@ function makeRoundReplayFrame(now) { vx: item.vx, vy: item.vy, active: item.active })), // What was in the air: shots, grenades and rockets, so a replay of a // kill shows the thing that made it. - bullets: structuredClone(bullets), - grenades: structuredClone(grenades), + bullets: replayCopy(bullets), + grenades: replayCopy(grenades), // And what it did: the strike sparks, the death burst, a blast ring and // the limbs that came off. Without them a replay was two bodies moving // through an explosion that never showed. - impacts: structuredClone(impacts), - detachedParts: structuredClone(detachedParts), + impacts: replayCopy(impacts), + detachedParts: replayCopy(detachedParts), camera: { center: cameraCenter, centerY: cameraCenterY, width: cameraWidth }, }; } @@ -2957,7 +4190,7 @@ function captureFrameTelemetry(now, force = false) { } function applyRoundReplayFrame(frame, now, next = null, mix = 0) { - if (frame.ropes) skateRopes.splice(0, skateRopes.length, ...structuredClone(frame.ropes)); + if (frame.ropes) skateRopes.splice(0, skateRopes.length, ...replayCopy(frame.ropes)); for (let index = 0; index < players.length; index++) { const player = players[index]; const state = frame.players[index]; @@ -3034,7 +4267,17 @@ function frameAction(frame) { // Look ahead, so the ramp is already down by the time the punch arrives. A // slowdown that begins on the frame of impact has missed the impact. function replayActionCurve(frames) { - const raw = frames.map(frameAction); + // Being dead is a state, not an action: only the frame a fighter goes + // down counts. Scoring every frame after it held a death replay in + // slow motion to its last frame, twice — it read as a loop. + const raw = frames.map((frame, index) => { + const previous = frames[index - 1]; + const stillDown = previous && frame.players.every((player, seat) => + player.alive !== false || previous.players?.[seat]?.alive === false); + if (!stillDown) return frameAction(frame); + return frameAction({ ...frame, + players: frame.players.map((player) => ({ ...player, alive: true })) }); + }); return raw.map((_, index) => { let peak = 0; for (let at = index; at < Math.min(raw.length, index + replayActionLead); at++) @@ -3058,7 +4301,7 @@ function startInstantReplay(now, respawn = null) { if (!INSTANT_REPLAY) return false; if (roundReplayFrames.length < 2) return false; const frames = respawn ? roundReplayFrames.slice(-90) : roundReplayFrames.slice(); - instantReplay = { frames, cursor: 0, lastAt: now, paused: false, + instantReplay = { frames, cursor: 0, lastAt: now, startedAt: now, paused: false, respawn, previous: padSnapshots[0]?.down?.slice() || [], action: replayActionCurve(frames), speed: 1, @@ -3080,7 +4323,7 @@ function startInstantReplay(now, respawn = null) { } function queueSoloDeathReplay(player, now) { - if (player.pad !== 0 || netSession || roundViewer || localVersusActive() || + if ((freeskateActive() && freeskateSecond) || player.pad !== 0 || netSession || roundViewer || localVersusActive() || versusActive() || survivalActive() || soloDeathReplayPending || instantReplay) return; soloDeathReplayPending = { at: now + 500000, title: shellMode === "MENU", lobby: lobbyActive() }; @@ -3091,18 +4334,9 @@ function queueSoloDeathReplay(player, now) { function updateInstantReplay(now, dt) { if (!instantReplay) return; + // A replay is watched, not operated: no pause, no scrub, no skip. It + // plays through, winds back to its moment, plays it again and ends. const down = padSnapshots[0]?.down || []; - const pressed = (button) => down.includes(button) && - !instantReplay.previous.includes(button); - if (pressed("B")) { - finishInstantReplay(now); - return; - } - if (pressed("A")) instantReplay.paused = !instantReplay.paused; - if (pressed("ArrowLeft") || pressed("ArrowRight")) { - instantReplay.paused = true; - instantReplay.cursor += pressed("ArrowLeft") ? -15 : 15; - } const elapsed = Math.max(0, now - instantReplay.lastAt) / 1000000; instantReplay.speed = replayRampStep(instantReplay.speed, instantReplay.action?.[Math.floor(instantReplay.cursor)] || 0, elapsed); @@ -3113,6 +4347,12 @@ function updateInstantReplay(now, dt) { ? -step * 2.5 : step * instantReplay.speed; } instantReplay.lastAt = now; + // Whatever the footage does, a replay ends: a death replay in eight + // seconds, a round's in twenty-five. + if (now - instantReplay.startedAt > (instantReplay.respawn ? 8e6 : 25e6)) { + finishInstantReplay(now); + return; + } if (instantReplay.direction < 0 && instantReplay.cursor <= instantReplay.rewindTo) { instantReplay.cursor = instantReplay.rewindTo; instantReplay.direction = 1; @@ -3793,6 +5033,16 @@ let nativeControllerCount = 0; let nativeControllerPolls = 0; function samplePad(index) { const pad = gamepad(index); + // Analog triggers read as buttons past half pull, so they strafe like the + // bumpers and travel over netplay the way every other button does. + // The console's native pad reports trigger values without an + // `analogTriggers` flag; only a pad that says its triggers are digital + // aliases (a small web pad) is left alone. + if (pad && pad.analogTriggers !== false && typeof pad.leftTrigger === "number" && + Array.isArray(pad.down)) { + if ((Number(pad.leftTrigger) || 0) > .5 && !pad.down.includes("LeftTrigger")) pad.down = [...pad.down, "LeftTrigger"]; + if ((Number(pad.rightTrigger) || 0) > .5 && !pad.down.includes("RightTrigger")) pad.down = [...pad.down, "RightTrigger"]; + } if (pad && pad.localController === undefined && pad.connected === true && typeof controllers === "function") { // Re-enumerate about twice a second; a pad joining mid-title waits at @@ -3822,6 +5072,7 @@ function startLocalVersus(now) { globalThis.__oskiewarVersusRoom = ""; gameSpeed = 1; startFightAgainst("local", now); + if (freeskateRequested() || indoorSkate()) for (const player of players) dressFreeskater(player); startInputPending = true; navigationPrevious = padSnapshots.map((pad) => pad?.down?.slice() || []); } @@ -3833,6 +5084,11 @@ function updateLocalVersus(now) { // A second local pad must never take over a remote fight or a recording. if (roundViewer || netSession || selfPlay || resimActive || versusActive()) return false; + if (freeskateActive()) { + updateFreeskatePlayers(paired, now); + localControllerMissing = -1; + return false; + } if (arrived && !localVersusActive()) startLocalVersus(now); if (!localVersusActive()) { localControllerMissing = -1; return false; } if (!paired) { @@ -4006,6 +5262,16 @@ function beginSurvival(now) { // floats over it. The intro countdown is spent before the first frame so // somebody arriving from a QR code is moving, not watching a number. function beginTraining(now) { + // A freeskate console's title stands over the hall itself: your rider and + // the board, no bot, no dummy, no weapons — and the word under the + // wordmark says where START goes. + if (freeskateRequested()) { + beginFreeskate(now); + shellMode = "MENU"; + gameplayStarted = false; + titleAttractMode = "still"; + return; + } startFightAgainst(trainingOpponentKind(), now); shellMode = "MENU"; gameplayStarted = false; @@ -4028,28 +5294,121 @@ function beginTraining(now) { } } -// Freeskate's instrument: the rider's ground speed, named by tier, bottom -// left — so the skating can be tuned by eye and by number at once. +// Freeskate's instruments. The mode is named top centre, and the bottom right +// reads the rider out: speed in mph (tier-coloured, tier named), what they +// are travelling as, horizontal and vertical speed, and altitude over the +// ground beneath them. A fighter stands 180 units, so 100 units is a metre. +// Speed is measured from where the rider actually went frame to frame, so it +// is honest on a ramp, round a loop, up a vert wall or swinging on a chain. const speedTiers = [ [runOverdriveTop, "zoom", [255, 92, 188]], [runTopSpeed, "sprint", [255, 176, 48]], [walkSpeed + 120, "run", [96, 214, 255]], [0, "walk", [230, 236, 248]], ]; -function drawFreeskateSpeed() { +const unitsPerMetre = 100; +const mph = (unitsPerSecond) => unitsPerSecond / unitsPerMetre * 2.23694; +// What the character is doing right now, as a verb, with its measurement: +// mph for moving, rpm for spinning. +function statusVerb(rider, speed) { + const mphText = Math.round(mph(speed)) + " mph"; + if (wallPressActive(rider)) return [rider.ducking ? "crouching against wall" : "pressing into wall", ""]; + if (rider.spin) return ["spinning", Math.round(spinRpm(rider)) + " rpm"]; + if (rider.swimming) return ["swimming", mphText]; + if (rider.skateStall) return ["holding", ""]; + if (rider.strafe) return ["strafing", ""]; + if (!rider.grounded) return ["in the air", mphText]; + if (isHeadOnly(rider)) return [speed < 30 ? "resting" : "rolling", speed < 30 ? "" : mphText]; + if (rider.onewheel) return [speed < 30 ? "balancing" : "riding electric", speed < 30 ? "" : mphText]; + if (rider.skateboard) return [speed < 30 ? "standing on the board" : "skating", speed < 30 ? "" : mphText]; + if (rider.ducking) return [Math.abs(rider.vx) > 40 ? "crawling" : "crouching", Math.abs(rider.vx) > 40 ? mphText : ""]; + if (speed < 30) return ["standing", ""]; + if (Math.abs(rider.vx) > walkSpeed + 120) return ["running", mphText]; + return ["walking", mphText]; +} +function drawStatusVerb(rider, speed, ink) { + const [verb, measure] = statusVerb(rider, speed); + // Bottom right, just left of the big speed, at a size you read at a + // glance. The measurement is the big number beside it. + const text = verb; + const safe = hudSafeRect(); + const size = 38; + const speedText = measure || "0 mph"; + const x = Math.round(safe.right - handleWidth(speedText, 46) - 24 - handleWidth(text, size)), y = safe.bottom - 102; + typeWrite(text, x + 2, y + 3, size, ...contrastShadow(ink)); + typeWrite(text, x, y, size, ...ink); +} + +function drawBoardHealth(safe, ink) { + const health = boardState.brokenAt ? 0 : boardState.health; + const label = boardState.brokenAt ? "board snapped" : "board " + Math.round(health) + "%"; + const color = health > 60 ? [120, 220, 150] : health > 30 ? [255, 196, 84] : [255, 96, 96]; + const size = 20; + const x = safe.right - handleWidth(label, size), y = safe.bottom - 150; + typeWrite(label, x + 2, y + 3, size, ...contrastShadow(color)); + typeWrite(label, x, y, size, ...color); +} + +function drawFreeskateSpeed(ink = [245, 248, 255]) { + drawSeatPlayerHud(ink);return; const rider = players[0]; - const speed = Math.abs(rider.skateboard && rider.grounded ? rider.skateVx : rider.vx); - const [, tier, ink] = speedTiers.find(([floor]) => speed >= floor); + const now = runtime().monotonicUs; + const meter = rider.hudMeter ||= { x: rider.x, y: rider.y, at: now, vx: 0, vy: 0 }; + const elapsed = (now - meter.at) / 1000000; + if (elapsed > 0 && elapsed < .5) { + const blend = 1 - Math.exp(-elapsed * 10); + meter.vx += ((rider.x - meter.x) / elapsed - meter.vx) * blend; + meter.vy += ((meter.y - rider.y) / elapsed - meter.vy) * blend; + } + meter.x = rider.x; meter.y = rider.y; meter.at = now; + const speed = Math.hypot(meter.vx, meter.vy); + const [, tier, tierInk] = speedTiers.find(([floor]) => speed >= floor); const safe = hudSafeRect(); - const size = compactLayout() ? 30 : 44; - const x = safe.left + 8, y = safe.bottom - size; - typeWrite(tier, x + 3, y + 4, size, ...contrastShadow(ink)); - typeWrite(tier, x, y, size, ...ink); - const number = String(Math.round(speed)); - const small = Math.round(size * .5); - const numberX = x + handleWidth(tier, size) + 14; - typeWrite(number, numberX + 2, y + size - small + 3, small, ...contrastShadow(ink)); - typeWrite(number, numberX, y + size - small, small, ...ink); + // The console rasterizes every new string, so the numbers refresh ten + // times a second rather than every frame, and only the big reading wears + // a shadow — together that was seven milliseconds of the frame. + const write = (text, rightX, y, size, color, shadow = false) => { + const x = rightX - handleWidth(text, size); + if (shadow) typeWrite(text, x + 2, y + 3, size, ...contrastShadow(color)); + typeWrite(text, x, y, size, ...color); + }; + if (!meter.text || now - (meter.textAt || 0) > 100000) { + meter.textAt = now; + meter.text = { + speed: rider.spin ? Math.round(spinRpm(rider)) + " rpm" : Math.round(mph(speed)) + " mph", + verb: statusVerb(rider, speed)[0], + axes: "h " + Math.round(mph(Math.abs(meter.vx))) + " v " + Math.round(mph(meter.vy)) + " mph", + tier, moving: rider.swimming ? "swim" + (rider.skateboard ? " \u00b7 board" : "") + : (isHeadOnly(rider) ? "head" : rider.skateboard ? "skate" : "run") + " \u00b7 " + tier, + altitude: (seaLevelY - rider.y) / unitsPerMetre, + }; + } + const readout = meter.text; + // Top centre: the mode. + const titleSize = compactLayout() ? 26 : 34; + const title = gameSpeed === 1 ? "freeskate" : "freeskate \u00b7 \u00d7" + gameSpeed; + typeWrite(title, viewCenterX() - handleWidth(title, titleSize) / 2 + 2, + safe.top + 3, titleSize, ...contrastShadow(ink)); + typeWrite(title, viewCenterX() - handleWidth(title, titleSize) / 2, + safe.top, titleSize, ...ink); + // Bottom right, from the bottom up. + const big = compactLayout() ? 34 : 48, small = compactLayout() ? 16 : 22; + const right = safe.right - 8; + let y = safe.bottom - small; + // Altitude is a ruler up the right edge, measured from sea level (the + // course floor and the pond's surface): a tick each metre, a label every + // five, sea level marked, and the rider's own height pointed at. + drawAltitudeGauge(readout.altitude, safe, ink, small); + drawBoardHealth(safe, ink); + write(readout.axes, right, y, small, ink); + y -= Math.round(small * 1.45); + write(readout.moving, right, y, small, tierInk); + y -= big + 6; + write(readout.speed, right, y, big, tierInk, true); + // What the rider is doing, as a verb, just left of the number that + // measures it. + const verbSize = Math.round(big * .72); + write(readout.verb || "", right - handleWidth(readout.speed, big) - 22, y + big - verbSize, verbSize, ink, true); } // Freeskate never ends to the right. The long park repeats every 9,000 @@ -4059,8 +5418,146 @@ function drawFreeskateSpeed() { // circuit is a pad, the middle loop, a chain and a pad, forever. Never // mid-trick: a rider on a chain or inside a loop wraps once they are off it. const freeskateLap = { from: 20250, span: 9000 }; +// Freeskate has one rider. The second chair waits dead past the end of the +// world; a round reset (a death replay ends in one) stands it back up as a +// training dummy in the park — invisible, since freeskate never draws it, +// but still a body with hitboxes — so it is parked again every tick. +function parkFreeskateChair() { + if (freeskateSecond) return; + const chair = players[1]; + if (!chair) return; + chair.alive = false; + chair.respawnAt = Infinity; + chair.x = worldRight + gridWidth; + chair.y = floorY; + chair.vx = chair.vy = 0; + chair.name = ""; +} + +// Glass, voiced from the FEM glass bell (pop/bell, material "glass": the +// shell eigensolve's modes with strong strike participation, as ratios to the +// strike mode, and their relative ring times). Each strike is a few of those +// modes at once on a sine voice; a shattering pane is a spray of strikes at +// scattered pitches over a quarter second, and a shard landing is one tiny +// strike pitched by its size. Queued so the spray unrolls in time. +const glassModes = [[1, 1], [2.545, .39], [3.504, .29], [5.099, .2], [5.594, .18], [7.05, .14]]; +const glassVoices = []; +function glassStrike(at, fundamental, length, modes = 3) { + for (let index = 0; index < modes; index++) { + const [ratio, ring] = glassModes[index]; + const frequency = fundamental * ratio; + if (frequency > 9500) break; + glassVoices.push({ at: at + index * 4000, frequency, duration: Math.max(.03, length * ring) }); + } +} +function playGlassVoices(now) { + for (let index = glassVoices.length - 1; index >= 0; index--) { + if (glassVoices[index].at > now) continue; + const voice = glassVoices[index]; + glassVoices.splice(index, 1); + playSine(voice.frequency, voice.duration); + } +} + +function breakRoofPane(pane, x, rider) { + pane.broken = true; + rebuildRoofLedges(); + const index = roofPanes.indexOf(pane); + const left = gridLeft + index * tileSize * roofPaneTiles; + const width = tileSize * roofPaneTiles; + // Shards are dealt from the pane's own number, so every replay of the + // same break throws the same glass. + for (let shard = 0; shard < 14; shard++) { + const seed = Math.sin((index + 1) * 12.9898 + shard * 78.233) * 43758.5453; + const random = (offset) => { const value = Math.sin(seed + offset) * 10000; return value - Math.floor(value); }; + roofShards.push({ x: left + random(1) * width, y: indoorCeilingY, z: lerp(worldNear, worldFar, random(2)), + vx: (random(3) - .5) * 500 + (rider.vx || 0) * .2, + vy: rider.vy < 0 ? -random(4) * 600 : random(4) * 300, + rotation: random(5) * Math.PI * 2, spin: (random(6) - .5) * 14, + size: 10 + random(7) * 22, rest: 0 }); + } + emitSignal("glass-break", rider.pad, index, Math.round(Math.abs(rider.vy))); + playDrum("whoosh", 1, panPlayer(rider)); + playDrum("block", .9, panPlayer(rider)); + const now = runtime().monotonicUs; + for (let strike = 0; strike < 8; strike++) { + const seed = Math.sin((index + 3) * 91.7 + strike * 17.3) * 43758.5453; + const random = seed - Math.floor(seed); + glassStrike(now + strike * strike * 4200, 900 + random * 1500, .55 - strike * .04, + strike < 3 ? 3 : 2); + } +} + +function updateRoof(rider) { + const dt = 1 / 60; + playGlassVoices(runtime().monotonicUs); + // A broken pane regrows once the rider has been clear of it for a couple + // of seconds, so every trip up through the roof breaks fresh glass. + const paneWidth = tileSize * roofPaneTiles; + roofPanes.forEach((pane, index) => { + if (!pane.broken) return; + const left = gridLeft + index * paneWidth; + const near = rider.x > left - 120 && rider.x < left + paneWidth + 120 && + Math.abs(rider.y - indoorCeilingY) < 420; + pane.clearFor = near ? 0 : (pane.clearFor || 0) + dt; + if (pane.clearFor > 2.2) { + pane.broken = false; + pane.clearFor = 0; + rebuildRoofLedges(); + emitSignal("glass-mend", rider.pad, index, 0); + } + }); + const headroom = isHeadOnly(rider) ? 50 : 200; + const pane = roofPaneAt(rider.x); + const top = rider.y - headroom; + // Rising into the glass from below (a rider already up on the roof is + // standing on it, not under it). + if (rider.vy < 0 && top < indoorCeilingY && top > indoorCeilingY - 120 && + rider.y > indoorCeilingY + 20 && pane && !pane.broken && !pane.open) { + if (-rider.vy >= roofBreakSpeed) { + breakRoofPane(pane, rider.x, rider); + rider.vy *= .8; + } else { + rider.y = indoorCeilingY + headroom; + rider.vy = Math.abs(rider.vy) * .25; + emitSignal("bonk", rider.pad, 1, 0); + playDrum("block", .5, panPlayer(rider)); + } + } + for (let index = roofShards.length - 1; index >= 0; index--) { + const shard = roofShards[index]; + if (shard.rest > 0) { + shard.rest -= dt; + if (shard.rest <= 0) roofShards.splice(index, 1); + continue; + } + shard.vy += fallGravity() * dt; + shard.x += shard.vx * dt; + shard.y += shard.vy * dt; + shard.rotation += shard.spin * dt; + const ground = terrainFloorAt(shard.x); + if (shard.y >= ground) { + shard.y = ground; + shard.vx = shard.vy = shard.spin = 0; + shard.rest = 4; + // Small shards ring high and short, big ones lower. + if (index % 3 === 0) + glassStrike(runtime().monotonicUs, 5200 - shard.size * 90, .09, 2); + } + } +} + function wrapFreeskate() { if (!freeskateActive()) return; + if (players[1]?.alive || players[1]?.x < worldRight) parkFreeskateChair(); + if (indoorSkate()) { + for (const player of activePlayers()) { + updateRoof(player); + resolveCubeSides(player, player.cubePreviousX ?? player.x); + player.cubePreviousX = player.x; + } + return; + } const rider = players[0]; if (rider.x < freeskateLap.from || rider.vx <= 0 || rider.ropeIndex >= 0 || rider.skateLoop >= 0) return; @@ -4079,6 +5576,306 @@ function wrapFreeskate() { emitSignal("freeskate-lap", rider.pad, 1, 0); } +function drawAltitudeGauge(altitude, safe, ink, small) { + const low = -4; + const high = Math.max(10, Math.ceil((altitude + 3) / 5) * 5); + const x = safe.right - 6; + const top = safe.top + 70, bottom = safe.bottom - 200; + const yAt = (metres) => lerp(bottom, top, (metres - low) / (high - low)); + hudLine(x, top, x, bottom, 2, ...ink); + const step = high > 40 ? 5 : 1; + for (let metres = Math.ceil(low / step) * step; metres <= high; metres += step) { + const major = metres % 5 === 0; + const y = yAt(metres); + hudLine(x - (major ? 16 : 8), y, x, y, major ? 2 : 1, ...ink); + if (major && metres !== 0) { + const label = String(metres); + typeWrite(label, x - 22 - handleWidth(label, small * .8), y - small * .4, + Math.round(small * .8), ...ink); + } + } + const sea = yAt(0), seaInk = [72, 168, 228]; + hudLine(x - 34, sea, x + 2, sea, 3, ...seaInk); + typeWrite("sea", x - 34 - handleWidth("sea", small * .8) - 4, sea - small * .4, + Math.round(small * .8), ...seaInk); + const markY = yAt(clamp(altitude, low, high)); + const markInk = altitude < 0 ? seaInk : [255, 176, 48]; + hudBox(x - 12, markY - 3, 14, 6, ...markInk); + const reading = altitude.toFixed(1) + " m"; + // Near sea level the reading would sit on the "sea" label; lift it clear. + const readingY = Math.abs(altitude) < 1.2 ? markY - small * 1.6 : markY - small * .5; + typeWrite(reading, x - 22 - handleWidth(reading, small), readingY, small, ...markInk); +} + +// Freeskate's pause menu. Start opens it and the world holds still; up and +// down pick a row, left and right step the game speed, A chooses. Speed runs +// full, half and quarter, for working a trick through slowly. +let freeskateMenu = null; +const freeskateSpeeds = [1, .5, .25]; +const freeskateMenuRows = ["speed", "resume", "back to title"]; +function updateFreeskateMenu(now) { + const down = padSnapshots[0]?.down || []; + const pad = padSnapshots[0] || {}; + const menu = freeskateMenu; + const stick = pad.leftY > .5 ? "ArrowUp" : pad.leftY < -.5 ? "ArrowDown" + : pad.leftX > .5 ? "ArrowRight" : pad.leftX < -.5 ? "ArrowLeft" : ""; + const held = stick ? [...down, stick] : down; + const pressed = (button) => held.includes(button) && !menu.previous.includes(button); + if (pressed("ArrowUp")) menu.row = (menu.row + freeskateMenuRows.length - 1) % freeskateMenuRows.length; + if (pressed("ArrowDown")) menu.row = (menu.row + 1) % freeskateMenuRows.length; + const step = pressed("ArrowRight") ? 1 : pressed("ArrowLeft") ? -1 : 0; + if (step && menu.row === 0) { + const index = Math.max(0, freeskateSpeeds.indexOf(gameSpeed)); + gameSpeed = freeskateSpeeds[clamp(index + step, 0, freeskateSpeeds.length - 1)]; + gameSpeedChangedAt = now; + emitSignal("game-speed", -1, gameSpeed, 0); + playDrum("hat", .45, step * .3); + } + if (pressed("A")) { + if (menu.row === 1) freeskateMenu = null; + else if (menu.row === 2) { freeskateMenu = null; returnToTitle(now, "menu"); } + else { + const index = Math.max(0, freeskateSpeeds.indexOf(gameSpeed)); + gameSpeed = freeskateSpeeds[(index + 1) % freeskateSpeeds.length]; + gameSpeedChangedAt = now; + emitSignal("game-speed", -1, gameSpeed, 0); + } + playDrum("block", .45, 0); + } + if (freeskateMenu) freeskateMenu.previous = held.slice(); +} + +function drawFreeskateMenu(ink) { + if (!freeskateMenu) return; + const size = compactLayout() ? 34 : 50; + const gap = Math.round(size * 1.35); + const speedLabel = (speed) => speed === 1 ? "\u00d71" : speed === .5 ? "\u00d7\u00bd" : "\u00d7\u00bc"; + const rows = [ + "speed " + freeskateSpeeds.map((speed) => + speed === gameSpeed ? "[" + speedLabel(speed) + "]" : speedLabel(speed)).join(" "), + "resume", "back to title", + ]; + const heading = "paused"; + let y = Math.round(viewHeight * .32); + typeWrite(heading, viewCenterX() - handleWidth(heading, size * .7) / 2 + 3, y + 4, + Math.round(size * .7), ...contrastShadow(ink)); + typeWrite(heading, viewCenterX() - handleWidth(heading, size * .7) / 2, y, + Math.round(size * .7), ...ink); + y += gap; + for (const [index, row] of rows.entries()) { + const chosen = index === freeskateMenu.row; + const label = (chosen ? "> " : " ") + row; + const color = chosen ? [255, 176, 48] : ink; + const x = viewCenterX() - handleWidth(label, size) / 2; + typeWrite(label, x + 3, y + 4, size, ...contrastShadow(color)); + typeWrite(label, x, y, size, ...color); + y += gap; + } +} + +// Tricks and their windows. A window is when a move is possible, as a box in +// the world and a time: debug mode draws each one (green while its time runs, +// with a bar for what is left) so the moves can be found, timed and gamed. +// +// stall falling back past a coping out of a vert air, push back toward +// the pipe: the rider locks on the lip in a side hang, until they +// push toward the deck, press down, or two and a half seconds +// pass — then they drop back in. +// vert out any vert air: a double-tap sideways leaves the pipe's plane. +// grab airborne on the board: hold A to grab the deck. +// release airborne on the board: double-down lets the board go. +const stallHoldUs = 2500000; +function copingNear(player, side, reach = 120) { + return parkSegments.find((segment) => segment.kind === "transition" && + segment.dir === side && + Math.abs((side > 0 ? segment.right : segment.left) - player.x) < reach) || null; +} +const holdWindowUs = 220000; +function updateSkateTricks(player, input, now) { + const windows = player.trickWindows ||= []; + windows.length = 0; + if (player.skateStall) { + const stall = player.skateStall; + const release = input.horizontal === stall.side || input.vertical < 0 || + now >= stall.until || !player.alive; + if (release) { + // Drop back in: from just inside the coping, onto the top of the wall. + player.x = stall.coping - stall.side * 10; + player.y = terrainFloorAt(player.x); + player.grounded = true; + player.skateVx = -stall.side * 300; + player.vx = player.skateVx; player.vy = 0; + player.skateStall = null; + player.pendingMoveLabel = "DROP IN"; + emitSignal("skate-dropin", player.pad, stall.side, 0); + } else { + player.x = stall.x; player.y = stall.y; + player.vx = player.vy = player.skateVx = player.knockVx = 0; + player.grounded = true; player.skatePitch = 0; + windows.push({ name: "stall", x: stall.x - 70, y: stall.y - 200, w: 140, h: 210, + left: (stall.until - now) / stallHoldUs }); + } + return; + } + const riding = player.skateboard || isHeadOnly(player) || player.footSurf; + // The hold (a hang on the coping) has exactly one way in: holding the + // opposite direction through the moment the rider leaves the lip — rolling + // up the transition and into the air. It is judged over the first few + // frames of the vert air, so the stick can already be held on the way up. + if (player.skateVert && !player.trickVertSide) player.trickVertAt = now; + player.trickVertSide = player.skateVert || 0; + if (player.skateVert) { + const side = player.skateVert; + const wall = copingNear(player, side); + windows.push({ name: "vert out 2x side", x: player.x - 90, y: player.y - 220, w: 180, h: 240 }); + const fresh = now - (player.trickVertAt || 0) < holdWindowUs; + if (wall && fresh) { + const coping = side > 0 ? wall.right : wall.left; + windows.push({ name: "hold: hold back off the lip", x: coping - 70, y: player.y - 200, w: 140, + h: 220, left: 1 - (now - player.trickVertAt) / holdWindowUs }); + if (riding && input.horizontal === -side) { + const x = coping + side * 22; + player.skateStall = { side, coping, x, y: terrainFloorAt(x), until: now + stallHoldUs }; + player.skateVert = 0; + player.trickVertSide = 0; + player.skateGrab = false; + player.pendingMoveLabel = "HOLD"; + playDrum("clap", .8, panPlayer(player)); + emitSignal("skate-stall", player.pad, side, 0); + } + } + } else if (riding && player.grounded && (player.skatePitch || 0) && + Math.abs(player.skatePitch) > .6) { + windows.push({ name: "hold: hold back at the lip", x: player.x - 60, y: player.y - 190, w: 120, h: 200 }); + } + if (player.skateboard && !player.grounded) { + windows.push({ name: player.skateGrab ? "grabbing" : "grab: hold A", x: player.x - 60, + y: player.y - 40, w: 120, h: 60 }); + windows.push({ name: "release: 2x down", x: player.x - 60, y: player.y + 20, w: 120, h: 40 }); + } + if (player.skateGrab && (player.grounded || !player.skateboard || + !(inputPads[player.pad]?.down || []).includes("A"))) player.skateGrab = false; +} + +function drawTrickWindows() { + if (!debugHitboxes || renderFlags.hud === false) return; + for (const player of players) { + for (const window of player.trickWindows || []) { + const corners = [[window.x, window.y], [window.x + window.w, window.y], + [window.x + window.w, window.y + window.h], [window.x, window.y + window.h]] + .map(([x, y]) => projectPoint(x, y, player.z || 0)); + if (!corners.every((point) => Number.isFinite(point.x) && Number.isFinite(point.y))) continue; + const ink = window.left !== undefined ? [96, 255, 128] : [255, 214, 84]; + for (let i = 0; i < 4; i++) { + const a = corners[i], b = corners[(i + 1) % 4]; + hudLine(a.x, a.y, b.x, b.y, 2, ...ink); + } + typeWrite(window.name, corners[0].x + 4, corners[0].y + 4, 16, ...ink); + if (window.left !== undefined) { + const width = (corners[1].x - corners[0].x) * clamp(window.left, 0, 1); + hudBox(corners[3].x, corners[3].y - 6, Math.max(0, width), 5, ...ink); + } + } + } +} + +// The freeskate skater wears a soft pastel skin, drawn in the clean vector +// style: the photographed fighters are purple and green wood, and a +// photograph cannot be re-tinted. +// A new look every round: skin, hair and ribbon each step through their +// own list (different lengths, so the combinations keep changing). The +// first round is peach skin, brown hair and a light blue ribbon. +const freeskateSkins = [[250, 214, 198], [252, 210, 222], [226, 214, 250], [210, 240, 226], [210, 228, 250], [250, 238, 200]]; +const freeskateHair = [[104, 68, 46], [42, 34, 32], [222, 184, 110], [150, 64, 40], [226, 222, 210], [44, 52, 74], [120, 84, 58]]; +const freeskateRibbons = [[150, 205, 255], [150, 240, 200], [205, 170, 255], [255, 190, 150], [255, 236, 140]]; +let freeskateLook = 0; +function dressFreeskater(rider, advance = false) { + if (advance) freeskateLook++; + rider.skin = "pastel"; + const look = freeskateLook + rider.pad * 2; + rider.color = freeskateSkins[look % freeskateSkins.length].slice(); + rider.hairColor = freeskateHair[look % freeskateHair.length]; + rider.accent = freeskateRibbons[look % freeskateRibbons.length]; + rider.emo=rider.pad===1;if(rider.emo){rider.hairColor=[22,17,31];rider.accent=[205,100,218];rider.shirtColor=[39,34,46];rider.skirtColor=[92,48,78];rider.shoeColor=[30,26,38];} +} + +function freeskateCourse() { + const requested = String(globalThis.__oskiewarFreeskateMap || "").trim().toLowerCase(); + return requested === "skatepark" || requested === "park" ? "park" : "indoor"; +} + +// Indoors you start on foot beside your one board; the long park still +// drops you in riding. +function boardForRider(player, loose = false) { + if (!loose && player.skateboard && !player.onewheel) + return balls[player.skateBoardId ?? 1]; + let nearest = null, distance = Infinity; + for (const board of balls) { + if (board.type !== "skateboard" || !board.active || board.heldBy >= 0 || + board.recalling && board.recalledBy !== player.pad) continue; + const gap = Math.hypot(board.x-player.x, (board.z||0)-(player.z||0), board.y-player.y); + if (gap < distance) { nearest=board; distance=gap; } + } + return nearest; +} +function ensureFreeskateBoards() { + if (balls.filter(item=>item.type === "skateboard").length < 2) + balls.push({...skateBoardKind, x:0,y:floorY,z:0,vx:0,vy:0,rotation:0, + active:true,heldBy:-1,lastHitBy:-1,safeUntil:0,safePlayers:0,serveAt:0}); + const boards=balls.filter(item=>item.type === "skateboard"); + for (let seat=0;seat<2;seat++) { + const board=boards[seat]; board.seat=seat; + board.condition={health:100,cracks:[],brokenAt:0}; + const rider=seat && !freeskateSecond ? {...players[0],x:players[0].x-340,z:0,skateboard:false} : players[seat]; + placeFreeskateBoard(rider,board); + } +} +function placeFreeskateBoard(rider = players[0], chosen = null) { + if (!indoorSkate()) return; + const board = chosen || balls.find(item=>item.type === "skateboard" && (item.seat||0) === rider.pad); + if (!rider || !board || rider.skateboard || board.condition?.brokenAt) return; + board.active = true; + board.heldBy = -1; + board.releasedBy = -1; + board.x = rider.x + (rider.facing || 1) * 170; + board.y = terrainFloorAt(board.x) - 18; + board.z = rider.z || 0; + board.vx = board.vy = 0; + board.rotation = 0; + board.flipSpin = 0; + board.spatialSpin=false;board.yaw=board.yawRate=board.vz=0; + board.safeUntil = 0; +} + +function updateFreeskatePlayers(paired, now) { + const player=players[1]; + if(freeskateSecond){setSeatDummy(player,!paired,now);return;} + // A disconnected second controller becomes the same opponent under AI. + freeskateSecond=true; + applyRoster(player, 2); + resetSkate(player); + Object.assign(player, { alive:true, npc:false, bot:false, remote:false, spiderDummy:false, + x:clamp(players[0].x-160,worldLeft+100,worldRight-100), y:players[0].y, + z:0, vx:0, vy:0, vz:0, grounded:false, respawnAt:0, gunAmmo:0, grenadeAmmo:0, + swordHeld:false, removedParts:[], partDamage:{}, previous:[], lastTap:{}, lastRelease:{}, + attackKind:'', hitStunUntil:0, facing:1, skin:'pastel' }); + setSeatDummy(player,!paired,now); + player.spawnX = player.x; + dressFreeskater(player); + emitSignal("freeskate-join",1,1,0); +} + +function setSeatDummy(p, dead, now) { + if(p.dummy===dead)return; + if(dead){ + dismountSkateboard(p,now); + Object.assign(p,{dummy:true,alive:true,bot:false,npc:true,vx:0,vy:0,vz:0, + spin:null,attackKind:'',attackUntil:0,headBustedAt:0,respawnAt:Infinity, + frozenGeometry:null,fallenBodyGeometry:null,removedParts:[],partDamage:{}, + grounded:true,y:terrainFloorAt(p.x),previous:[]}); + }else Object.assign(p,{dummy:false,alive:true,bot:false,npc:false,respawnAt:0, + headBustedAt:0,removedParts:[],partDamage:{},previous:[]}); +} function freeskateRequested() { return String(globalThis.__oskiewarOpponent || "").trim().toLowerCase() === "freeskate"; } @@ -4087,15 +5884,20 @@ function freeskateRequested() { // the second chair parked past the wall like the lobby's, and every weapon // pickup cleared so nothing on the course is a fight. function beginFreeskate(now) { + freeskateSecond = false; gameMode = "fight"; selfPlay = false; fightOpponent = "freeskate"; freeskateEntered = true; + freeskateMenu = null; finishReplay(); seriesName = ""; matchName = ""; previousRoundName = ""; - configureWorldMap("skatepark"); + configureWorldMap("skatepark", freeskateCourse()); + resetSkateRopes(); + resetRoofPanes(); + boardState.health = 100; boardState.cracks.length = 0; boardState.brokenAt = 0; const rider = players[0]; // Dropped in the middle of the half-pipe's flat, facing a wall. rider.spawnX = tileCenterX(Math.floor((halfpipe.floorFrom + halfpipe.floorTo) / 2)); @@ -4108,6 +5910,7 @@ function beginFreeskate(now) { rider.spiderDummy = false; rider.remote = false; applyRoster(rider, rider.rosterIndex); + dressFreeskater(rider); const chair = players[1]; chair.npc = true; chair.bot = false; @@ -4119,16 +5922,21 @@ function beginFreeskate(now) { gameplayStarted = true; titleTransitionAt = null; resetRound(now, true); - chair.alive = false; - chair.respawnAt = Infinity; - chair.x = worldRight + gridWidth; - chair.y = floorY; - chair.name = ""; + parkFreeskateChair(); for (const pickup of [...gunPickups, ...saberPickups, ...grenadePickups]) pickup.active = false; // The rider starts on the board, so the loose board that dismounting // throws stays put away until they come off it; no other ball rolls here. for (const item of balls) item.active = false; + if (indoorSkate()) { + resetSkate(rider); + rider.facing = 1; + placeFreeskateBoard(); + } + ensureFreeskateBoards(); + resetMonowheel(); + resetParkSupply(now); + resetParkKids(); roundStartedAt = now - roundIntroDurationUs(); emitSignal("freeskate", 0, 1, 0); } @@ -4431,10 +6239,18 @@ function beginSelect(now) { } function returnToTitle(now, reason = "back") { + parkKids.length=0; + resetRoofPanes();resetParkSupply(now);resetMonowheel(); + waterSplashes.length=0;bubbleNotes.length=0;bottomGlass.fill(false); + decals.length=0;roofShards.length=0; + for(const p of players){resetSkate(p);p.underPipe=false;p.axeHeld=false;p.axeHitAt={};p.resultReaction='';} + if(motorRunning && typeof oscillatorStop==='function')oscillatorStop();motorRunning=false; finishReplay(); if (survivalActive()) beginSurvival(now); else if (versusLane()) beginVersusLobby(now, { title: true }); else beginTraining(now); + parkKids.length=0; + shellMode="MENU";gameplayStarted=false;titleTransitionAt=null; // Menu is a hard navigation boundary: discard the prior fight's zoom and // right-stick diorama angle before the very first title frame is painted. playerCameraYaw = 0; @@ -4671,6 +6487,15 @@ function consumeSystemButtons(now) { // Self-play has no title to return to — a stray Menu press would strand the // loop on a screen nobody is there to start. if (!pressed || selfPlay || shellMode !== "GAME" || selecting) return false; + // In freeskate Start is the clock: full, half, quarter speed and round + // again, for working a trick through slowly. There is no round to leave. + // In freeskate Start opens the pause menu (speed, resume, title). + if (freeskateActive()) { + freeskateMenu = freeskateMenu ? null : { row: 0, previous: padSnapshots[0]?.down?.slice() || [] }; + playDrum("hat", .5, 0); + emitSignal("freeskate-menu", -1, freeskateMenu ? 1 : 0, 0); + return false; + } returnToTitle(now, "menu"); return true; } @@ -4678,6 +6503,14 @@ function consumeSystemButtons(now) { // Start lifts the wordmark off a fight that is already running underneath. function enterGame(now) { startInputPending = true; + // A freeskate console goes back to freeskate from its title — one rider, + // no dummy, no weapons — not into a sparring round. + if (freeskateRequested() && !roundViewer && + !netSession && !versusActive()) { + beginFreeskate(now); + shellPrevious = padSnapshots[0]?.down?.slice() || []; + return; + } if (localControllerPair() && !roundViewer && !netSession && !versusActive()) { startLocalVersus(now); return; @@ -6745,6 +8578,20 @@ function resetRound(now, resetMatch = false, keepMap = false) { player.grabbedBy = -1; resetSkate(player); player.skateboard = skateparkMap && !survivalActive(); + player.strafe = null; + player.strafeHeld = false; + player.strafeLast = null; + // Body state that shapes the pose — and so the hitboxes — starts fresh + // every round, so two seats that did not share the last fight still + // agree about this one. + player.rig = undefined; + player.trucks = undefined; + player.turnFacing = player.facing; + player.turnAt = -1e12; + player.skidFrom = null; + player.spin = null; + player.directionChanges = []; + player.lastHorizontal = 0; player.ropeIndex = -1; player.ropeGrabLocked = false; player.ropeLink = chainLinks; @@ -6776,6 +8623,7 @@ function resetRound(now, resetMatch = false, keepMap = false) { player.landPoseUntil = 0; player.jumpHeld = false; player.airJumpsUsed = 0; + player.ultraAirUsed = false; player.doubleJumpLinesUntil = 0; player.hopUntil = 0; player.sinkUntil = 0; @@ -6887,6 +8735,25 @@ function resetRound(now, resetMatch = false, keepMap = false) { // machine ran the reset: applyRoster above dresses seat one from the local // account, which on the challenger's screen is the challenger. if (netSession) netApplyIdentities(netSession.deal); + resetRoofPanes(); + if (indoorSkate() && localVersusActive()) for (const player of players) dressFreeskater(player); + if (freeskateActive()) { + dressFreeskater(players[0], true); + parkFreeskateChair(); + // A reset re-deals the map's pickups; freeskate has no weapons. + for (const pickup of [...gunPickups, ...saberPickups, ...grenadePickups]) + pickup.active = false; + for (const player of players) { + player.gunAmmo = 0; + player.grenadeAmmo = 0; + player.swordHeld = false; + } + if (indoorSkate()) { + resetSkate(players[0]); + for (const item of balls) if (item.type !== "skateboard") item.active = false; + placeFreeskateBoard(); + } + } } // The box the camera packs. It is a fighting-game pushbox rather than the @@ -6899,7 +8766,7 @@ function fighterFrameRect() { let right = -Infinity; let top = Infinity; let bottom = -Infinity; - for (const player of activePlayers()) { + for (const player of cameraPlayers()) { // Trimmed 2026-08-09 — @jeffrey wanted the lens closer to the fight. // The rect still tracks live position, so jumps and knockbacks widen // the frame as they happen; this is standing headroom, not arc room. @@ -7019,6 +8886,23 @@ function terrainSpan() { bottom: Math.min(parkDeepest, cameraCenterY + reach) }; } +// The long park's features as camera subjects: the half-pipe deck to deck, +// and each loop with room round it. A rider inside one gets it framed whole. +function skateSubjects() { + const pipeLeft = gridLeft + (halfpipe.leftCoping - 1) * tileSize; + const pipeRight = gridLeft + (halfpipe.rightCoping + 1) * tileSize; + return [ + { name: "half-pipe", left: pipeLeft, right: pipeRight, + top: floorY - halfpipeRadius - 160, bottom: floorY + 140 }, + ...parkSegments.filter((segment) => segment.kind === "pond").map((segment) => ({ + name: "pond", left: segment.left - 300, right: segment.right + 300, + top: seaLevelY - segment.lift - 420, bottom: seaLevelY - segment.lift + segment.depth + 120 })), + ...skateLoops.map((loop) => ({ name: "loop", left: loop.x - loop.radius - 380, + right: loop.x + loop.radius + 380, top: floorY - loop.radius * 2 - 180, + bottom: floorY + 140 })), + ]; +} + function updateCamera(dt) { if (survivalActive() || skateparkMap) return; const rect = fighterFrameRect(); @@ -7124,6 +9008,11 @@ function deathOrbitShot(target, width, progress) { } function updateCameraDoll(dt, now) { + if(freeskateActive() && parkSupply.ko){ + const result=parkSupply.ko,subject=players[(now-result.at)<1000000?result.loser:(result.winner<0?0:result.winner)]; + const age=(now-result.at)/1e6,center={x:subject.x,y:subject.y-100,z:subject.z||0}; + cameraDoll.track(deathOrbitShot(center,age<1?600:1000,age/4.8),dt,5);return; + } if (deathCinematic?.solo && !instantReplay) { const player = players[deathCinematic.loserPad]; const width = 680 * portraitPull(); @@ -7132,32 +9021,68 @@ function updateCameraDoll(dt, now) { deathCinematicAge(now) / 1.45), dt, 12); return; } - if (skateparkMap && !survivalActive() && shellMode === "GAME") { + if (skateparkMap && !survivalActive() && (shellMode === "GAME" || freeskateActive())) { const rider = players[netSession?.seat || 0]; - // Off the board, the shot keeps the board in it: the frame widens to hold - // rider and board together, so a bail never loses the thing to go back to. - const board = !rider.skateboard && balls.find((item) => - item.type === "skateboard" && item.active && item.heldBy < 0); - const spanX = board ? Math.abs(board.x - rider.x) : 0; - const spanY = board ? Math.abs(board.y - rider.y) : 0; - const width = Math.max(1100, 900 * cameraAspect, spanX + 700, - (spanY + 600) * cameraAspect) * playerCameraZoom; + // Under the title the lens holds the whole pipe, centred, still. + const titleShot = shellMode !== "GAME"; + // The shot is a logical frame, grown to hold what matters: the rider, + // the ground under them (always — so a big air zooms the lens out rather + // than losing the floor), the board if they have come off it, and the + // whole of any feature they are in — the half-pipe or a loop — so its + // shape stays readable while they ride it. + let left=rider.x-300,right=rider.x+300,top=rider.y-320,bottom=rider.y+170; + const subject=null; + const singleController=players[1].dummy || !freeskateSecond; + if(singleController)bottom=Math.max(bottom,terrainFloorAt(rider.x)+180); + const framedRiders = (singleController?[rider]:activePlayers()).filter(player => player.alive); + for (const other of framedRiders) { + left = Math.min(left, other.x - 300); + right = Math.max(right, other.x + 300); + top = Math.min(top, other.y - 320); + bottom = Math.max(bottom, other.y + 150); + } + const width = Math.max(singleController?1650:1150, right - left, (bottom - top) * cameraAspect) * + (framedRiders.length > 1 ? Math.max(1, playerCameraZoom) : playerCameraZoom); const half = width / 2; - const focusX = board ? (rider.x + board.x) / 2 : rider.x; - const focusY = board ? (rider.y + board.y) / 2 : rider.y; - const desiredX = clamp(focusX + clamp(rider.vx * .18, -300, 300), - worldLeft + half, worldRight - half); - const desiredY = focusY - 180; + // Centred on what it frames, even at the course's ends: clamping to the + // world edge slid a wide shot off the rider — "the camera trends right". + const desiredX = titleShot && subject ? (subject.left + subject.right) / 2 + : (left + right) / 2 + (framedRiders.length > 1 ? 0 : clamp(rider.vx * .12, -240, 240)); + // The title's words sit over the middle of the frame; lift the lens so + // the rider stands below them on the pipe's floor. + const desiredY = (top + bottom) / 2 - (titleShot ? (bottom - top) * .16 : 0); const blend = 1 - Math.exp(-dt * 9); cameraCenter += (desiredX - cameraCenter) * blend; cameraCenterY += (desiredY - cameraCenterY) * blend; cameraWidth = width; // The same orbit the fight camera takes from the right stick, a drag, // the wheel or a trackpad: turn round the rider and tilt over them. - cameraDoll.track({ target: { x: cameraCenter, y: cameraCenterY, z: 0 }, - position: { x: cameraCenter + Math.sin(playerCameraYaw) * width * 1.35, - y: cameraCenterY - width * playerCameraPitch, - z: -Math.cos(playerCameraYaw) * width * 1.35 }, + // A handheld lens: it drifts slowly round the rider and tilts a touch, so + // the park always shows its depth, and shakes a little — more at speed. + // All of it off the game clock, so it is smooth and every screen agrees; + // the player's own orbit still adds on top. + const clock = now / 1000000; + const drift = .15 * Math.sin(clock * .21) + .07 * Math.sin(clock * .53 + 1); + const tilt = .03 * Math.sin(clock * .17 + 2); + const pace = clamp(Math.hypot(rider.vx, rider.vy) / 3000, 0, 1); + const shake = width * (.0018 + pace * .0025); + const shakeX = (Math.sin(clock * 7.3) + .6 * Math.sin(clock * 11.9 + 1)) * shake; + const shakeY = (Math.sin(clock * 8.1 + 2) + .6 * Math.sin(clock * 13.3)) * shake; + // Freeskate starts from a three-quarter view — swung round and looking + // down — so the whole floor of the pipe reads, not just its profile. + // The angle follows the skating: it swings round to look along the way + // the rider is travelling, easing over as they reverse, and holds its + // side while they slow. + const groupVelocity = framedRiders.reduce((sum, player) => sum + player.vx, 0) / Math.max(1, framedRiders.length); + if (Math.abs(groupVelocity) > 250) skateIsoSide = -Math.sign(groupVelocity); + skateIsoYaw += (skateIsoSide * .3 - skateIsoYaw) * (1 - Math.exp(-dt * 1.4)); + const iso = freeskateActive() ? { yaw: skateIsoYaw, pitch: .32 } : { yaw: 0, pitch: 0 }; + const yaw = playerCameraYaw + skateIsoYaw*.6, pitch = .48 + playerCameraPitch; + const aimX = cameraCenter, aimY = cameraCenterY; + cameraDoll.track({ target: { x: aimX, y: aimY, z: 0 }, + position: { x: aimX + Math.sin(yaw) * width * 1.35, + y: aimY - width * pitch, + z: -Math.cos(yaw) * width * 1.35 }, width, perspective: 0, fov: 55, roll: 0 }, dt, 12); return; } @@ -7711,7 +9636,7 @@ function updateGunPickups(now) { for (const pickup of gunPickups) { if (!pickup.active) continue; for (const player of players) { - if (!player.alive || !nearRunner(player, pickup.x, pickup.y, pickup.z, 90) || + if (!player.alive || player.dummy || !nearRunner(player, pickup.x, pickup.y, pickup.z, 90) || runnerDistanceToPoint(player, poseTime, pickup.x, pickup.y, pickup.z) > 90 || !availableArm(player)) continue; player.gunAmmo = Math.min(30, player.gunAmmo + pickup.amount); player.gunMode = pickup.kind || "HANDGUN"; @@ -7755,7 +9680,7 @@ function updateGrenadePickups(now) { for (const pickup of grenadePickups) { if (!pickup.active) continue; for (const player of players) { - if (!player.alive || !nearRunner(player, pickup.x, pickup.y, pickup.z, 90) || + if (!player.alive || player.dummy || !nearRunner(player, pickup.x, pickup.y, pickup.z, 90) || runnerDistanceToPoint(player, poseTime, pickup.x, pickup.y, pickup.z) > 90 || !availableArm(player)) continue; player.grenadeAmmo = Math.min(4, player.grenadeAmmo + pickup.amount); player.itemArm = availableArm(player); @@ -7859,7 +9784,7 @@ function drawBodyTree(tree, t) { } function updatePowerups(now) { - if (freeskateActive()) return; + if (freeskateActive()) {updateGunPickups(now);return;} while (roundElapsedUs >= nextPowerupAtUs) { // Only the slot marked `cycle` is the rotation's business. Asking whether // ANY gun pickup is on the map would let an untouched space laser sitting @@ -8380,8 +10305,8 @@ function breakShield(player, now) { player.shieldBrokenAt = now; player.blockFlash = 1; player.stance = "SHIELD BREAK"; - player.pendingMoveLabel = "SHIELD BREAK"; - playDrum("bell", 1, panPlayer(player)); + player.pendingMoveLabel = "BUBBLE POP"; + playBubbleSound(player, true); emitSignal("shieldbreak", player.pad, 1, 0); } @@ -8426,7 +10351,7 @@ function returnBall(ball, player, now, shielded, intensity = 1) { player.grounded = false; } spawnImpact({ x: ball.x, y: ball.y, z: ball.z, - life: .22, duration: .22, death: false, explosion: false }); + life: .22, duration: .22, death: false, explosion: false, object: true }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 350000); playDrum(shielded ? "block" : "clap", shielded ? 1.1 : 1.25, panAt(ball.x, ball.z)); @@ -8464,6 +10389,31 @@ function crossWackBall(ball, hitters, now) { emitSignal("crosswack", -1, direction, Math.round(speed)); } +// The deck as a collider, and what a head does to it: rolled into from the +// side, a board pops off its tail and flips end over end the way the head +// was going — harder the faster it was hit — and the head gives up a little +// of its roll. The spin settles flat when the deck lands. +const deckHalf = 64; +const deckReach = 16; +function flipBoard(ball, player, now) { + damageBoard(1.5, ball.x, ball.y, ball.z || 0, now); + const direction = Math.sign(player.vx) || Math.sign(ball.x - player.x) || + player.facing || 1; + const speed = Math.abs(player.vx); + ball.vx = direction * clamp(320 + speed * .8, 320, 2200); + ball.vy = -clamp(460 + speed * .35, 460, 1300); + ball.flipSpin = direction * clamp(9 + speed / 160, 9, 26); + ball.x = player.x + direction * (deckHalf + 34); + ball.y = Math.min(ball.y, terrainFloorAt(ball.x) - skateAxleDrop - skateWheelRadius - 4); + ball.safeUntil = now + 260000; + ball.safePlayers = 1 << player.pad; + player.vx *= .7; + if (player.skateVx) player.skateVx *= .7; + playDrum("block", .7, panPlayer(player)); + playDrum("clap", .35, panPlayer(player)); + emitSignal("board-flip", player.pad, direction, Math.round(speed)); +} + function bootBall(ball, player, now) { // Walking contact carries the grounded ball in the player's travel // direction. A melee strike remains the intentionally stronger launch. @@ -8483,7 +10433,7 @@ function bootBall(ball, player, now) { player.lastButton = dashing ? "DASH BOOT" : "BOOT"; player.lastButtonAt = now; spawnImpact({ x: ball.x, y: ball.y, z: ball.z, - life: .16, duration: .16, death: false, explosion: false }); + life: .16, duration: .16, death: false, explosion: false, object: true }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 300000); playDrum("kick", 1.12, panAt(ball.x, ball.z)); emitSignal("boot", player.pad, direction, Math.round(speed)); @@ -8504,7 +10454,7 @@ function bounceBallOffBody(ball, player, now, segmentIndex = -1) { applyBodyHit(player, segmentIndex, ball.x - ball.vx, ball.lastHitBy, now, 760, 110, false); spawnImpact({ x: ball.x, y: ball.y, z: ball.z, - life: .16, duration: .16, death: false, explosion: false }); + life: .16, duration: .16, death: false, explosion: false, object: true }); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 300000); playDrum("block", .82, panAt(ball.x, ball.z)); emitSignal("bodybounce", player.pad, direction, Math.round(speed)); @@ -8518,8 +10468,7 @@ const boomerboardHoldUs = 180000; const boomerboardCatch = 70; function updateBoomerboard(dt, now) { for (const player of activePlayers()) { - const board = balls.find((item) => item.type === "skateboard" && - item.active && item.heldBy < 0); + const board = boardForRider(player, true); // A lone head can call it too, and rides it home. const calling = !player.skateboard && player.alive && Boolean(inputPads[player.pad]?.down?.includes("B")); @@ -8552,8 +10501,9 @@ function updateBoomerboard(dt, now) { board.heldBy = -1; resetSkate(player); player.skateboard = true; + player.skateBoardId = balls.indexOf(board); player.skateVx = player.vx; - player.skatePitch = skateContact(player.x, player.y).pitch; + player.skatePitch = riderContact(player, player.y).pitch; player.boomerSince = 0; player.lastButton = "BOOMERBOARD"; player.lastButtonAt = now; @@ -8598,6 +10548,15 @@ function updateBall(ball, dt, now) { emitSignal("ballserve", -1, 0, 0); } if (!ball.active || now < ball.serveAt) return; + // A board lying at a fighter's feet asked for that fighter's combat boxes up + // to three times a tick, each one a full pose build; one per instant does. + const boxCache = new Map(); + const boxesAt = (player, at) => { + const key = player.pad + ":" + at; + let boxes = boxCache.get(key); + if (!boxes) boxCache.set(key, boxes = sampleCombatBoxes(player, at)); + return boxes; + }; if (ball.heldBy >= 0) { const carrier = players[ball.heldBy]; if (!carrier?.alive || carrier.heldBall !== balls.indexOf(ball)) { @@ -8612,6 +10571,12 @@ function updateBall(ball, dt, now) { } } const isBoard = ball.type === "skateboard"; + if(isBoard && ball.spatialSpin){ + ball.yaw+=(ball.yawRate||0)*dt; + ball.z=clamp((ball.z||0)+(ball.vz||0)*dt,-180,180); + ball.vz*=Math.exp(-dt*2); + ball.yawRate*=Math.exp(-dt*(ball.y>=terrainFloorAt(ball.x)-40?2:.2)); + } const contactRadius = isBoard ? skateAxleDrop + skateWheelRadius : ball.radius; const platformSupported = ledgeSupports(ball.x, ball.y, contactRadius); const floorSupported = ball.y >= terrainFloorAt(ball.x) - contactRadius - 2; @@ -8621,10 +10586,25 @@ function updateBall(ball, dt, now) { const previous = { x: ball.x, y: ball.y, z: ball.z }; ball.x += ball.vx * dt; ball.y += ball.vy * dt; + if (isBoard) { + const floor = terrainFloorAt(ball.x) - contactRadius; + if (ball.y >= floor && previous.y < floor - 1 && ball.vy > 1100) + damageBoard((ball.vy - 1100) / 60, ball.x, floor, ball.z || 0, now); + } if (Math.abs(ball.vx) > 20) { if (isBoard) ball.skateSpin = (ball.skateSpin || 0) + ball.vx * dt / skateWheelRadius; else ball.rotation += ball.vx * dt / Math.max(1, contactRadius); } + // A flipped deck turns end over end in the air, and lands flat: once it + // is down, the turn winds to the nearest whole flip and the spin stops. + if (isBoard && ball.flipSpin) { + if (!grounded) ball.rotation += ball.flipSpin * dt; + else { + const flat = Math.round(ball.rotation / (Math.PI * 2)) * Math.PI * 2; + ball.rotation = flat; + ball.flipSpin = 0; + } + } const inset = wallThickness + contactRadius; if (ball.x < worldLeft + inset) { ball.x = worldLeft + inset; @@ -8673,7 +10653,7 @@ function updateBall(ball, dt, now) { // A board its rider has just let go of passes through them for a moment // instead of being booted, bounced or caught against their own feet. if (ball.releasedBy === player.pad && now - (ball.releasedAt || 0) < 200000) continue; - const boxes = sampleCombatBoxes(player, now); + const boxes = boxesAt(player, now); for (const strike of boxes.hit) { const distance = pointBoxDistance(strike, ball.x, ball.y, ball.z); if (distance <= ball.radius) { @@ -8699,7 +10679,7 @@ function updateBall(ball, dt, now) { // instead of being booted, bounced or caught against their own feet. if (ball.releasedBy === player.pad && now - (ball.releasedAt || 0) < 200000) continue; if (player.blocking) { - const guard = sampleCombatBoxes(player, now).guard[0]; + const guard = boxesAt(player, now).guard[0]; const distance = guard ? pointBoxDistance(guard, ball.x, ball.y, ball.z) : Infinity; if (distance <= ball.radius) { const shield = shieldGeometry(player); @@ -8709,22 +10689,34 @@ function updateBall(ball, dt, now) { return; } } - const headBox = sampleCombatBoxes(player,now).hurt.find(b=>b.part==='head'); - const currentHeadDistance = pointBoxDistance(headBox,ball.x,ball.y,ball.z); - const sweptHeadDistance = segmentBoxEntry( + // A board touches as its deck — a bar 128 long and about 16 thick — not + // as the 52-unit sphere its ball record carries, which bumped fighters + // from well above a flat board. Distances are taken to the deck point + // nearest the fighter. + const boardBall = ball.type === "skateboard"; + const reach = boardBall ? deckReach : ball.radius; + const touchX = boardBall + ? clamp(player.x, ball.x - deckHalf, ball.x + deckHalf) : ball.x; + const headBox = boxesAt(player,now).hurt.find(b=>b.part==='head'); + const currentHeadDistance = pointBoxDistance(headBox,touchX,ball.y,ball.z); + const sweptHeadDistance = boardBall ? Infinity : segmentBoxEntry( { x1: previous.x, y1: previous.y, z1: previous.z, x2: ball.x, y2: ball.y, z2: ball.z },headBox,ball.radius)!==null ? 0 : Infinity; const headDistance = Math.min(currentHeadDistance, sweptHeadDistance); const bodyContact = runnerContactToPoint(player, poseTime, - ball.x, ball.y, ball.z); + touchX, ball.y, ball.z, boxesAt); const bodyDistance = bodyContact.bodyDistance; - if (Math.min(headDistance, bodyDistance) > ball.radius) continue; + if (Math.min(headDistance, bodyDistance) > reach) continue; // Its own rider can catch a released board at any speed — but not in the // first fifth of a second, while it still lies against their feet. const released = ball.releasedBy === player.pad; const ownRelease = released && now - (ball.releasedAt || 0) > 200000; - if (ball.type === "skateboard" && headDistance > ball.radius && - bodyDistance <= ball.radius && !player.skateboard && + // A lone head is all body, and it climbs aboard by coming down onto the + // deck; rolling into the deck from the side flips it instead (below). + const boardTouch = isHeadOnly(player) + ? player.vy >= 0 && player.y <= ball.y + 12 + : headDistance > reach && bodyDistance <= reach; + if (ball.type === "skateboard" && boardTouch && !player.skateboard && !player.dummy && // A thrown deck is a weapon until it slows down — nobody catches a // board shot out of the air with their shins. A board its rider just // let go of is the exception: landing back on it is the point. @@ -8732,8 +10724,9 @@ function updateBall(ball, dt, now) { ball.releasedBy = -1; resetSkate(player); player.skateboard = true; + player.skateBoardId = balls.indexOf(ball); player.skateVx = player.vx; - player.skatePitch = skateContact(player.x, player.y).pitch; + player.skatePitch = riderContact(player, player.y).pitch; ball.active = false; ball.heldBy = -1; player.lastButton = "SKATEBOARD"; @@ -8743,12 +10736,22 @@ function updateBall(ball, dt, now) { return; } const runningContact = player.grounded && Math.abs(player.vx) > 40 && - (onSurface || ball.y >= player.y - ball.radius - 55); + (onSurface || ball.y >= player.y - reach - 55); + if (runningContact && boardBall && isHeadOnly(player)) { + flipBoard(ball, player, now); + return; + } if (runningContact) { bootBall(ball, player, now); return; } - if (headDistance <= ball.radius) { + // A loose board is not a cannonball: bumping your own head into it is + // a nudge, never the limb-stripping HEAD HIT a flying ball deals. + if (boardBall && Math.hypot(ball.vx, ball.vy) < 900) { + flipBoard(ball, player, now); + return; + } + if (headDistance <= reach) { const sourcePad = ball.lastHitBy >= 0 && ball.lastHitBy !== player.pad ? ball.lastHitBy : player.pad === 0 ? 1 : 0; dismountSkateboard(player, now); @@ -8767,16 +10770,93 @@ function updateBall(ball, dt, now) { // still mean something else to the caller. const headDashSpeed = 2600; const headDashHop = 380; + +// Indoor freeskate is about the board, so every double-tap kicks it: riding, +// the board is kicked out from under you the way you tapped (you land on your +// feet with your momentum, and catch it or boomerboard it back); on foot with +// the loose board within reach, the tap kicks it like a ball. Everywhere else +// the double-taps keep their fighting meanings. +const boardKickSpeed = 1100; +const boardKickPop = 1300; +const boardKickReach = 220; +const boardKickMode = (player) => freeskateActive() && indoorSkate() && !isHeadOnly(player); +function kickBoard(player, direction, now) { + if (player.onewheel) { resetSkate(player); return true; } + const board = boardForRider(player); + if (!board) return false; + const riding = player.skateboard; + if (!riding) { + if (!board.active || board.heldBy >= 0) return false; + const feetY = player.y - skateAxleDrop - skateWheelRadius; + if (Math.hypot(board.x - player.x, board.y - feetY) > boardKickReach) return false; + } + const carry = riding ? (player.grounded ? player.skateVx || 0 : player.vx) : player.vx * .4; + let vx, vy; + if (direction === "UP") { vx = carry * .5; vy = -boardKickPop; } + else if (direction === "DOWN") { + vx = carry * .5; + vy = (riding ? player.grounded : Math.abs(board.y - (terrainFloorAt(board.x) - 18)) < 6) + ? 0 : 900; + } else { + const side = direction === "RIGHT" ? 1 : -1; + player.facing = side; + vx = side * boardKickSpeed + (Math.sign(carry) === side ? carry * .6 : 0); + vy = -260; + } + if (riding) { + resetSkate(player); + board.x = player.x; + board.y = player.y - skateAxleDrop - skateWheelRadius; + board.z = player.z; + // You come off it still moving: on the ground the roll becomes your run. + if (player.grounded) { + player.vx = carry; + player.runSpeed = Math.min(runOverdriveTop, Math.abs(carry)); + } else player.knockVx = carry; + } + board.active = true; + board.heldBy = -1; + board.spawnOwner = -1; + board.lastHitBy = -1; + board.recalling = false; + board.releasedBy = player.pad; + board.releasedAt = now; + board.vx = vx; + board.vy = vy; + // Popped up, it flips; kicked along, it spins a little end over end. + board.flipSpin = direction === "UP" ? (player.facing || 1) * 14 + : direction === "DOWN" ? 0 : (vx > 0 ? 1 : -1) * 6; + damageBoard(3, board.x, board.y, board.z || 0, now); + player.pendingMoveLabel = "KICK " + direction; + player.lastButtonAt = now; + playDrum("block", .7, panPlayer(player)); + emitSignal("board-kick", player.pad, ["UP", "RIGHT", "DOWN", "LEFT"].indexOf(direction), + Math.round(Math.hypot(vx, vy))); + return true; +} + function directionTap(player, direction, now) { + if(freeskateActive() && player.skateboard && !player.grounded && direction === "DOWN")return false; const previousTap = player.lastTap[direction] || -10000000; const releasedAt = player.lastRelease[direction] || -10000000; player.lastTap[direction] = now; + const opposite=direction === "LEFT" ? "RIGHT" : direction === "RIGHT" ? "LEFT" : null; + if (opposite && (player.lastTap[opposite] || -10000000)>previousTap)return false; if (now - previousTap > doubleTapUs || releasedAt <= previousTap || now - releasedAt < doubleTapReleaseUs) return false; player.lastTap[direction] = -10000000; + const escapingSpin=!!player.spin && (direction === "LEFT" || direction === "RIGHT"); + if(escapingSpin){ + releaseSpinningBoard(player,now);player.spin=null;player.directionChanges=[]; + } + if (!escapingSpin && boardKickMode(player) && kickBoard(player, direction, now)) return true; player.pendingMoveLabel = direction === "UP" ? "ULTRA AIR" : "DASH " + direction; playDrum("clap", 1.05, panPlayer(player)); if (direction === "UP") { + // One ultra jump per trip through the air: chained double-taps used to + // stack launch on launch and carried a runner sixty metres up. + if (!player.grounded && player.ultraAirUsed) return true; + if (!player.grounded) player.ultraAirUsed = true; player.vy = -ultraJumpVelocity * (freeskateActive() ? .6 : 1); player.grounded = false; player.jumpHeld = false; @@ -8789,7 +10869,7 @@ function directionTap(player, direction, now) { // rider can let go mid-air and land back on it — or, on the ground, // step off and leave it rolling. Released, it is nobody's weapon, and // its rider can catch it again at any speed (see `releasedBy`). - const board = balls.find((item) => item.type === "skateboard"); + const board = boardForRider(player); // Half the roll goes with it: a release is letting go, not a launch. const rolling = (player.grounded ? player.skateVx : player.vx) * .5; resetSkate(player); @@ -8928,7 +11008,9 @@ function crouchHop(player, direction, now) { } function killPlayer(target, killerPad, now, cause = "KO") { + if(target.dummy){applyBodyHit(target,0,players[killerPad]?.x ?? target.x-1,killerPad,now,1250,360,false);return;} if (!target.alive) return; + if(freeskateActive() && freeskateSecond && !parkSupply.ko) parkSupply.ko={at:now,until:now+4800000,settled:false,winner:-1,loser:target.pad}; recordFightHit(killerPad, true); releaseCarriedBall(target, now); if (!soloRoom()) { @@ -8939,7 +11021,7 @@ function killPlayer(target, killerPad, now, cause = "KO") { } target.alive = false; target.headBustedAt = now; - target.respawnAt = now + 1200000; + target.respawnAt = now + (parkSupply.ko ? 6000000 : 1200000); target.vx = 0; if (!soloRoom()) target.vy = 0; target.stance = "HIT"; @@ -8992,6 +11074,9 @@ function groundPound(player, now) { spawnImpact({ x: player.x, y: terrainY, z: player.z, life: .58, duration: .58, death: false, explosion: true, blastRadius: radius, power }); + for (let ding = 0; ding < 3 + poundLevel * 2; ding++) + addDing(player.x + (decalRandom() - .5) * radius, (player.z || 0) + (decalRandom() - .5) * radius * .6, + 4 + decalRandom() * 6 * (1 + power)); impactHitboxesUntil = Math.max(impactHitboxesUntil, now + 350000); playDrum("kick", 1.3, panPlayer(player)); playSine(76 + power * 34 + poundLevel * 18, .32 + poundLevel * .09); @@ -9035,13 +11120,35 @@ function groundPound(player, now) { player.lastButtonAt = now; } +// Whether sampleCombatBoxes could give this fighter a hit box this tick. A +// necessary condition, not the whole one: it repeats the cheap scalar tests +// of the two `hit.push` sites (the pogo dive and the active melee frame) and +// leaves the part and pose tests to the sample itself. A fighter it refuses +// would have sampled to an empty `hit` and been skipped at the same +// `continue`; a fighter it passes is sampled exactly as before. +function couldStrike(player, now) { + if (!player.alive) return false; + if (isPogo(player)) return !player.grounded && !player.pogoHit; + return Boolean(player.attackKind) && now < player.attackUntil && + !player.attackHit && !player.blocking && now >= player.hitStunUntil; +} + function resolveMelee(now) { const poseTime = (now - startedAt) / 1000000; const contacts = []; - const samples = players.map(player => sampleCombatBoxes(player, now)); + // Boxes are built on demand. Sampling every fighter up front was two pose + // builds a tick — in the park, where nobody attacks, and through most of a + // fight — to learn there was nothing to test. A target's boxes are read + // only against an attacker that has a hit box, and by then that attacker's + // turn has touched nothing of the target's, so the late sample is the + // sample the eager map would have taken. + const samples = []; + const sampleOf = (player) => + samples[player.pad] ||= sampleCombatBoxes(player, now); for (const attacker of players) { - const attacking = samples[attacker.pad]; - if (!attacker.alive || !attacking.hit.length) continue; + if (!couldStrike(attacker, now)) continue; + const attacking = sampleOf(attacker); + if (!attacking.hit.length) continue; for (const fragment of detachedParts) { const r = fragment.width/2; const bounds = combatRect('fragment',Math.min(fragment.x1,fragment.x2)-r, @@ -9065,7 +11172,7 @@ function resolveMelee(now) { if (attacker.attackHit) continue; const target = players[attacker.pad === 0 ? 1 : 0]; if (!target.alive) continue; - const contact = combatBoxContact(attacking, samples[target.pad]); + const contact = combatBoxContact(attacking, sampleOf(target)); if (contact?.separation <= 3) { attacker.attackHit = true; contacts.push({ attacker, target, @@ -9164,6 +11271,7 @@ function resolvePogoAttacks(now) { function resolvePlayerPushboxes() { if (players.some((p) => p.ropeIndex >= 0 || p.skateLoop >= 0)) return; if (!players[0].alive || !players[1].alive) return; + if (!laneAligned(players[0], players[1])) return; const poseTime = (runtime().monotonicUs - startedAt) / 1000000; const firstBounds = combatPushbox(players[0]); const secondBounds = combatPushbox(players[1]); @@ -9459,9 +11567,145 @@ function shieldBash(player, now) { emitSignal("shield-bash", player.pad, target.pad, target.shieldLocked ? 1 : 0); } +// STRAFE: the shoulders and triggers step a fighter between three lanes of +// depth — either bumper (LB/RB) one lane back, away from the lens; either +// trigger (LT/RT) one lane forward — +// a committed sixteen-frame move. Fighters in different lanes pass each other: +// strikes and shots only connect across a lane gap of less than a body's +// depth, the way a sidestep works in Tekken. Everything else — walking, +// jumping, skating — stays on the 2D axis. +const strafeLaneGap = 160; +const strafeFrames = 10; +const strafeBoostFrames = 11; +const strafeDoubleTapUs = 300000; +const laneAligned = (a, b) => Math.abs((a.z || 0) - (b.z || 0)) < 90; +function strafePathClear(player, to) { + if (!indoorSkate()) return true; + const from = player.z || 0; + return !hallCubes.some(cube => !cube.broken && player.y > cubeTop(cube) + 6 && + Math.abs(player.x-cube.x) < cube.size/2+28 && + Math.min(from,to) < cube.size/2+18 && Math.max(from,to) > -cube.size/2-18); +} +function updateStrafe(player, pad, now) { + player.z=0;player.strafe=null;player.strafeHeld=false;player.strafeLast=null;return; + const held = pad?.down || []; + // Either bumper steps a lane back (away from the lens); either trigger + // steps a lane forward. + const back = held.includes("LeftShoulder") || held.includes("RightShoulder"); + const forward = held.includes("LeftTrigger") || held.includes("RightTrigger"); + const wanted = back === forward ? 0 : back ? 1 : -1; + const pressed = wanted && !player.strafeHeld && player.alive; + // Double-tap the same way: a strafe boost, two lanes in one quick move, + // from mid-step or just after one. + if (pressed && wanted === player.strafeLast?.direction && now - player.strafeLast.at < strafeDoubleTapUs) { + const lane = clamp(Math.round((player.strafe?.to ?? player.z ?? 0) / strafeLaneGap) + wanted, -1, 1); + const target = clamp(Math.round((player.strafeLast.from ?? 0) / strafeLaneGap) + wanted * 2, -1, 1) * strafeLaneGap; + const to = Math.abs(target - (player.z || 0)) > Math.abs(lane * strafeLaneGap - (player.z || 0)) ? target : lane * strafeLaneGap; + if (Math.round(to) !== Math.round(player.z || 0) && strafePathClear(player, to)) { + player.strafe = { from: player.z || 0, to, at: now, frames: strafeBoostFrames }; + player.pendingMoveLabel = "STRAFE BOOST"; + emitSignal("strafe-boost", player.pad, wanted, Math.round(to / strafeLaneGap)); + playDrum("whoosh", .6, panPlayer(player)); + } + player.strafeLast = null; + player.strafeHeld = true; + return; + } + if (player.strafe) { + const frames = player.strafe.frames || strafeFrames; + const progress = clamp((now - player.strafe.at) / (frames * replayTickUs), 0, 1); + const ease = progress * progress * (3 - 2 * progress); + player.z = player.strafe.from + (player.strafe.to - player.strafe.from) * ease; + if (progress >= 1) player.strafe = null; + } else if (pressed) { + const lane = clamp(Math.round((player.z || 0) / strafeLaneGap) + wanted, -1, 1); + if (lane * strafeLaneGap !== Math.round(player.z || 0) && strafePathClear(player, lane * strafeLaneGap)) { + player.strafe = { from: player.z || 0, to: lane * strafeLaneGap, at: now }; + player.strafeLast = { direction: wanted, at: now, from: player.z || 0 }; + player.pendingMoveLabel = "STRAFE"; + emitSignal("strafe", player.pad, wanted, lane); + playDrum("hat", .45, panPlayer(player)); + } + } + player.strafeHeld = Boolean(wanted); +} +// Turning takes frames too: when a fighter changes direction the pose swings +// round the vertical axis over seven frames rather than flipping in one. +const turnFrames = 7; +// Left-right-left fast winds up a spin — a ballet spin on foot, a skate spin +// on the board — and every further flick while spinning adds to it. It keeps +// turning on its own and slows under friction (slowly in the air). While it +// turns the readout says rpm instead of mph. +const spinWindowUs = 450000; +const spinKick = 5.5; // rad/s per flick +const spinTop = 34; // rad/s, about 325 rpm +function noteDirectionChange(player, now) { + const changes = player.directionChanges ||= []; + changes.push(now); + while (changes.length && now - changes[0] > spinWindowUs) changes.shift(); + if (player.spin) { + player.spin.rate = Math.min(spinTop, player.spin.rate + spinKick * .6); + return; + } + if (changes.length >= 3) { + changes.length = 0; + player.spin = { angle: 0, rate: spinKick * 1.6, direction: player.facing || 1, startedAt:now }; + player.pendingMoveLabel = player.skateboard ? "SKATE SPIN" : "BALLET SPIN"; + emitSignal("spin", player.pad, player.spin.direction, 0); + playDrum("whoosh", .7, panPlayer(player)); + } +} +function updateSpin(player, dt) { + const spin = player.spin; + if (!spin) return; + const before = spin.angle; + spin.angle += spin.rate * dt * spin.direction; + // A whir each quarter turn, rising with the rpm; the board's wheels click. + const quarter = (angle) => Math.floor(angle / (Math.PI / 2)); + if (quarter(before) !== quarter(spin.angle)) { + playSine(150 + spinRpm(player) * 1.6, .045); + if (player.skateboard) playDrum("hat", .25 + Math.min(.4, spin.rate / 60), panPlayer(player)); + } + // It marks the ground each half turn: rubber arcs where the wheels orbit, + // or a scuffed ring under the pivot foot. + const half = (angle) => Math.floor(angle / Math.PI); + if (player.grounded && half(before) !== half(spin.angle)) { + const radius = player.skateboard ? skateTruck : 10; + addDecal({ kind: "arc", x: player.x, z: player.z || 0, size: radius, angle: before, + sweep: spin.angle - before + Math.PI * .9, strength: player.skateboard ? 1 : .6 }); + } + spin.rate *= Math.exp(-dt * (player.grounded ? .7 : .25)); + if (spin.rate < .9) { + // Settle to the nearest whole turn, facing where it started. + player.spin = null; + emitSignal("spin-end", player.pad, 0, 0); + } +} +const spinRpm = (player) => player.spin ? player.spin.rate / (Math.PI * 2) * 60 : 0; +function updateTurn(player, now) { + if (player.turnFacing === undefined) player.turnFacing = player.facing; + if (player.facing !== player.turnFacing) { + player.turnFacing = player.facing; + player.turnAt = now; + } +} + function updatePlayer(player, pad, dt, now) { + if(player.dummy){ + const previous=player.x; + player.vx=player.knockVx||0;player.knockVx*=Math.exp(-dt*4); + player.x=clamp(player.x+player.vx*dt,worldLeft+60,worldRight-60); + player.vy+=1900*dt;player.y+=player.vy*dt; + const floor=terrainFloorAt(player.x); + if(player.y>=floor){player.y=floor;player.vy=0;player.grounded=true;}else player.grounded=false; + resolveCubeSides(player,previous);player.hit=Math.max(0,(player.hit||0)-dt*2); + return; + } const parkPreviousX = player.x; player.previousY = player.y; + updateStrafe(player, pad, now); + updateTurn(player, now); + updateSpin(player, dt); if (player.grabbedBy >= 0) { const carrier = players[player.grabbedBy]; if (!carrier?.alive || carrier.heldPlayer !== player.pad) { @@ -9529,6 +11773,7 @@ function updatePlayer(player, pad, dt, now) { player.lastTap = {}; player.lastRelease = {}; player.airJumpsUsed = 0; + player.ultraAirUsed = false; player.doubleJumpLinesUntil = 0; deathCinematic = null; detachedParts.length = 0; @@ -9543,12 +11788,42 @@ function updatePlayer(player, pad, dt, now) { // A lone head rolls on the board's physics — surface-following, gravity // along the curve, pumping, lip launches and vert — with a softer push. const rollingHead = headOnly && !player.skateboard; + // Running on the long park's slopes rides the board's surface physics too: + // up a bank or a half-pipe wall gravity slows the runner, down it speeds + // them, the feet follow the curve and the lip throws them into the air. + // On the flat their speed goes back to the ordinary run, so running there + // is unchanged. + // A runner is only on a ramp whose surface is under their feet — not + // standing on the glass roof twenty metres above it. + const footSlope = !player.skateboard && !headOnly && skateparkMap && + !survivalActive() && player.y > playerFloor(player,player.x) - 400 && + parkSegments.some((segment) => + (segment.kind === "transition" || segment.kind === "bank") && + player.x > segment.left && player.x < segment.right); + if (player.footSurf && (player.skateboard || headOnly || !player.alive || + (player.grounded && !footSlope))) { + player.footSurf = false; + const carried = Math.abs(player.skateVx || 0); + if (!player.skateboard && carried > runStartSpeed) { + player.runSpeed = Math.min(runOverdriveTop, carried); + player.runDir = Math.sign(player.skateVx); + player.runSince = player.runSince || now; + } + if (!player.skateboard) player.skateVx = 0; + } else if (footSlope && player.grounded && !player.footSurf && !isPogo(player)) { + player.footSurf = true; + player.skateVx = player.vx - player.windVx - player.knockVx; + } + const rollingFoot = Boolean(player.footSurf) && !player.skateboard && !headOnly; + const surfer = rollingHead || rollingFoot; const pogo = isPogo(player); const legCount = ["left-leg", "right-leg"] .filter((part) => hasPart(player, part)).length; const armCount = ["left-arm", "right-arm"] .filter((part) => hasPart(player, part)).length; const rawInput = quantizedInput(pad, player.suppressedDirections); + player.wallInputX = rawInput.horizontal; + player.wallPress = null; const hitStunned = now < player.hitStunUntil; const wasBlocking = player.blocking; const carrying = player.heldBall >= 0 || player.heldPart >= 0 || @@ -9669,10 +11944,11 @@ function updatePlayer(player, pad, dt, now) { player.lastRelease[player.inputY > 0 ? "UP" : "DOWN"] = now; if (input.horizontal && input.horizontal !== player.inputX) { const direction = input.horizontal > 0 ? "RIGHT" : "LEFT"; + if (player.lastHorizontal && player.lastHorizontal !== input.horizontal) noteDirectionChange(player, now); + player.lastHorizontal = input.horizontal; recordCommand(player, direction, now); - if (!directionTap(player, direction, now) && player.grounded && - player.ducking && !headOnly && !pogo && !hitStunned) - crouchHop(player, input.horizontal, now); + // A direction from a crouch is a crawl now, not a hop. + directionTap(player, direction, now); } if (input.vertical && input.vertical !== player.inputY) { const direction = input.vertical > 0 ? "UP" : "DOWN"; @@ -9686,7 +11962,15 @@ function updatePlayer(player, pad, dt, now) { (alternating ? .2 : .035), 0, 1); player.headPumpDirection = input.vertical; player.headPumpAt = now; - if (alternating && player.grounded) { + if (!alternating && input.vertical > 0 && player.grounded) { + // Up hops a head at once. It used to only charge the pump bounce, + // so a lone head needed a second press before it left the floor. + player.vy = -jumpVelocity * .8 * (freeskateActive() ? .75 : 1); + player.grounded = false; + player.stance = "HOP"; + playDrum("block", .5, panPlayer(player)); + emitSignal("jump", player.pad, 1, 0); + } else if (alternating && player.grounded) { player.vy = -lerp(420, headBounceVelocity * 1.7, player.headBounceCharge); player.grounded = false; @@ -9773,8 +12057,9 @@ function updatePlayer(player, pad, dt, now) { : player.blocking ? player.shieldVx || 0 : now < player.dashUntil && Math.abs(player.dashVx) > 0 ? player.dashVx + // Crouched on the ground, a direction is a crawl: slow, still crouched. + : player.ducking && player.grounded ? input.horizontal * walkSpeed * .38 * mobility : runSpeed && input.horizontal ? input.horizontal * runSpeed * mobility - : player.ducking && player.grounded ? 0 : input.horizontal * walkSpeed * mobility; if (player.skateboard && player.skateWallSide) { // Once the board reaches a coping, horizontal momentum has become upward @@ -9787,7 +12072,7 @@ function updatePlayer(player, pad, dt, now) { player.skateVx = -side * Math.max(720, Math.abs(player.skateVx) * .42); controlledVx = player.skateVx; } else controlledVx = 0; - } else if ((player.skateboard || rollingHead) && player.grounded && !player.blocking) { + } else if ((player.skateboard || surfer) && player.grounded && !player.blocking) { // Steering, and ONLY while steering. This used to run every frame against // a target of `input.horizontal * 2700`, which on an idle stick is zero — // so a coasting skater was being dragged to a standstill at 3.2 a second @@ -9796,7 +12081,8 @@ function updatePlayer(player, pad, dt, now) { // drop and a 268-unit one, because the servo ate gravity as fast as // gravity arrived. Let go of the stick now and you coast, which is what // rolling IS. - const skateTarget = input.horizontal * (player.skateboard ? skatePushTop : headRollPush); + const skateTarget = input.horizontal * (player.onewheel ? (player.wheelTurbo?6000:3000) : player.skateboard ? skatePushTop + : rollingFoot ? Math.max(runTopSpeed, player.runSpeed || 0) : headRollPush); // Carving is steering against the roll, and it has to stay in scope: the // scrape it makes is played further down, and hoisting the steer into a // block took both of these with it. @@ -9805,8 +12091,15 @@ function updatePlayer(player, pad, dt, now) { // The stick pushes up to the push top and no further. It used to servo // toward 2,700 from either side, so a rider a pad or a drop had carried // past it was dragged back down for holding forward. - if (input.horizontal) { - const turnRate = carving ? 1.8 : 3.2; + // Climbing the steep part of a wall, holding back is setting up the hold + // at the lip (see `updateSkateTricks`), not a brake: it must not eat the + // speed that carries the rider up there. + const climbing = Math.abs(player.skatePitch || 0) > .6 && player.skateVx && + terrainFloorAt(player.x + Math.sign(player.skateVx) * 20) < playerFloor(player,player.x); + trackSkid(player, player.skateboard && carving && !climbing && + Math.abs(player.skateVx) > 500, clamp(Math.abs(player.skateVx) / 2200, .4, 1)); + if (input.horizontal && !(carving && climbing)) { + const turnRate = player.onewheel ? (carving ? 3 : 2) : carving ? 1.8 : 3.2; const pushing = !carving && Math.abs(player.skateVx) < Math.abs(skateTarget); if (carving || pushing) player.skateVx += (skateTarget - player.skateVx) * @@ -9819,10 +12112,18 @@ function updatePlayer(player, pad, dt, now) { // g·sin·cos, which in terms of tan is g·t/(1+t²): it peaks at 45° exactly // as it should, falls off toward vertical exactly as it should, and needs // no clamp because it cannot exceed half of g. - const contact = skateContact(player.x, player.y); + const contact = riderContact(player, player.y); const terrainSlope = Math.tan(contact.pitch); - player.skateVx += fallGravity() * terrainSlope / - (1 + terrainSlope * terrainSlope) * dt; + // A tuck — holding DOWN on the board — rides a down ramp harder: gravity + // along the slope pulls 35% more while it is speeding the rider up. + const tucked = input.vertical < 0; + const slopePull = fallGravity() * terrainSlope / (1 + terrainSlope * terrainSlope); + const downhill = Math.sign(slopePull) === Math.sign(player.skateVx || slopePull); + // Curved transitions belong to the pump (below); the tuck is for banks + // and the flat, or holding DOWN through a half-pipe would pay twice. + const onTransition = parkSegments.some((segment) => segment.kind === "transition" && + player.x > segment.left && player.x < segment.right); + player.skateVx += slopePull * (tucked && downhill && !onTransition ? 1.35 : 1) * dt; // Pumping. The one thing a skater does that a rolling object does not: // crouch through the bottom of a transition and stand up through the // face, and come out with more speed than you went in with. Holding DOWN @@ -9856,7 +12157,11 @@ function updatePlayer(player, pad, dt, now) { // Compare like with like: the look-ahead is clamped, so the slope under // the rider is too. Unclamped, a transition steeper than 2.5 read as // flattening ahead and threw the rider off halfway up the wall. - if (surfaceVy < -skateLaunchFloor && + // Never early on a curved transition: at pump speed the look-ahead lands + // past the coping while the rider is still mid-wall, and they were + // thrown off it sideways. There the coping crossing (below, after the + // move) is the lip, and it always leaves as vert. + if (!onTransition && surfaceVy < -skateLaunchFloor && (aheadSlope - clamp(terrainSlope, -2.5, 2.5)) * Math.sign(player.skateVx) > .2) { player.vy = surfaceVy; player.grounded = false; @@ -9868,9 +12173,9 @@ function updatePlayer(player, pad, dt, now) { // pass, and a pump through the bottom adds to it. if (Math.abs(terrainSlope) > 2) { player.skateVert = Math.sign(player.skateVx); - player.vy = -Math.abs(player.skateVx) * Math.hypot(1, terrainSlope); + player.vy = -Math.min(skateTop, Math.abs(player.skateVx) * Math.hypot(1, terrainSlope)); player.x -= player.skateVert * 6; - player.skateVx = 0; + player.skateVx = player.knockVx = player.windVx = 0; } playDrum("whoosh", .5 + Math.min(.45, -surfaceVy / 4000), panPlayer(player)); @@ -9879,7 +12184,12 @@ function updatePlayer(player, pad, dt, now) { } // Rolling resistance. A board on smooth concrete barely slows; the old // .65 bled a third of a pump away every second and no pipe could be ridden. - if (!input.horizontal) player.skateVx *= Math.exp(-dt * .15); + // Tucked, the rider carries their inertia: rolling drag drops to a + // quarter, so a crouch holds speed across the flat. + // Legs are not wheels: a runner who stops pushing slows quickly. + if (!input.horizontal) player.skateVx *= Math.exp(-dt * + (player.onewheel ? 1.5 : rollingFoot ? 3 : tucked ? .04 : .15)); + if (player.onewheel) {const top=player.wheelTurbo?6000:3000;player.skateVx=clamp(player.skateVx,-top,top);} controlledVx = player.skateVx; const skateSpeed = Math.abs(player.skateVx); const carveDir = carving ? Math.sign(skateTarget) : 0; @@ -9890,11 +12200,11 @@ function updatePlayer(player, pad, dt, now) { Math.round(skateSpeed / 42) / 100); } player.skateCarveDir = carveDir; - } else if ((player.skateboard || rollingHead) && !player.grounded) { + } else if ((player.skateboard || surfer) && !player.grounded) { // Keep the board's launch momentum instead of borrowing walking speed // in the air and reviving a different skateVx on landing. controlledVx = player.skateVx; - } else if (!player.skateboard && !rollingHead) { + } else if (!player.skateboard && !surfer) { // Stepping off a rolling board lands running at the board's speed. if (player.skateVx && player.grounded && input.horizontal && Math.sign(player.skateVx) === input.horizontal) { @@ -9937,7 +12247,7 @@ function updatePlayer(player, pad, dt, now) { } player.pendingMoveLabel = player.skateboard ? "OLLIE" : airJump ? "DOUBLE AIR" - : wasCrouched ? "CROUCH AIR" : "AIR"; + : wasCrouched ? "AIR CROUCH" : "AIR"; } if (player.jumpLaunchAt && now >= player.jumpLaunchAt) { player.jumpLaunchAt = 0; @@ -9972,7 +12282,9 @@ function updatePlayer(player, pad, dt, now) { } if (!player.grounded && !pogo && input.vertical < 0) { player.ducking = true; - player.pendingMoveLabel ||= "AIR CROUCH"; + // Holding down in the air is a tuck; an air crouch is jumping out of a + // crouch (up and a direction while crouched), named at the jump. + if (playerFloor(player,player.x) - player.y > 60) player.pendingMoveLabel ||= "TUCK"; } // Y and either shoulder spend an item, so reaching for a kick can no @@ -9985,12 +12297,26 @@ function updatePlayer(player, pad, dt, now) { fireGun(player, input); for (const button of pad.down) { if (!player.previous.includes(button)) { + // A bumper or trigger is a strafe, named as one — not "LB" or "RT". + if (["LeftShoulder", "RightShoulder", "LeftTrigger", "RightTrigger"].includes(button)) { + if (player.strafe && player.strafe.at === now) + remember(player, player.strafe.frames === strafeBoostFrames ? "STRAFE BOOST" : "STRAFE"); + continue; + } remember(player, button); if (button === "X" && !headOnly) { - player.pendingMoveLabel = "SHIELD"; - playDrum("block", .7, panPlayer(player)); + player.pendingMoveLabel = "BUBBLE"; + playBubbleSound(player, false); emitSignal("shield", player.pad, 1, 0); } + // In the air on the board, A grabs the deck instead of kicking. + else if (acting && !grabHeld && button === "A" && player.skateboard && + !player.grounded) { + player.skateGrab = true; + player.pendingMoveLabel = "GRAB"; + playDrum("block", .5, panPlayer(player)); + emitSignal("skate-grab", player.pad, 1, 0); + } else if (acting && !grabHeld && button === "A") startMelee(player, "KICK", now); else if (acting && !grabHeld && button === "B") @@ -10000,7 +12326,7 @@ function updatePlayer(player, pad, dt, now) { else if (headOnly && !hitStunned && button === "B") spit(player, true); else if ((acting || (headOnly && !hitStunned)) && - ["Y", "LeftShoulder", "RightShoulder"].includes(button)) { + button === "Y") { const item = heldItem(player); if (item === "GUN") fireGun(player, input); else if (item === "GRENADE") throwGrenade(player, input); @@ -10027,8 +12353,53 @@ function updatePlayer(player, pad, dt, now) { player.vy = Math.min(poundMaxVelocity * (1 + .5 * Math.max(0, player.poundLevel - 1)), player.vy + poundHoldAcceleration * dt); + // Swimming. Below the pond's surface the water holds a body up — buoyancy + // beats gravity once it is under — and drags at it; UP strokes upward. + // A board being ridden floats along with its rider. + updateUnderPipe(player); + const pond = player.underPipe ? {lift:halfpipeRadius} : pondAt(player.x); + const waterY=seaLevelY-(pond?.lift||0); + if (pond && player.y > waterY + 4) { + if (!player.swimming) { + player.swimming = true; + spawnWaterSplash(player, waterY); + playDrum("whoosh", clamp(Math.abs(player.vy) / 2000, .3, 1), panPlayer(player)); + emitSignal("splash", player.pad, Math.round(Math.abs(player.vy)), Math.round(Math.abs(player.vx))); + } + const depth = player.y - waterY; + player.vy -= fallGravity() * 1.8 * Math.min(1, depth / 90) * dt; + player.vy *= Math.exp(-dt * 2.8); + // Swimming is its own motion, not walking slowed down: holding a + // direction strokes, building a swim speed that glides and fades in the + // water. UP strokes toward the surface; DOWN dives. + if (!Number.isFinite(player.swimVx)) player.swimVx = player.vx * .4; + if (input.horizontal) { + player.swimVx += input.horizontal * 1100 * dt; + player.facing = input.horizontal; + if (now >= (player.swimStrokeAt || 0)) { + player.swimStrokeAt = now + 420000; + emitSignal("swim", player.pad, input.horizontal, 0); + } + } + player.swimVx = clamp(player.swimVx * Math.exp(-dt * 1.1), -650, 650); + player.vx = player.swimVx; + if (player.skateboard) player.skateVx = player.swimVx; + if (input.vertical > 0 && now >= (player.swimStrokeAt || 0)) { + player.vy -= 700; + player.swimStrokeAt = now + 350000; + emitSignal("swim", player.pad, 0, 1); + } + if (input.vertical < 0) player.vy += fallGravity() * 1.25 * dt; + player.swimPhase = (player.swimPhase || 0) + dt * + (2.2 + Math.abs(player.swimVx) / 200); + } else { + if(player.swimming)spawnWaterSplash(player,waterY); + player.swimming = false; + player.swimVx = NaN; + } player.x += player.vx * dt; player.y += player.vy * dt; + collideBottomGlass(player,previousY,now); // The ground is a height field, so flying sideways into a steep face used // to land the fighter on top of it — up through a half-pipe wall. In the // air, stepping into ground well above the feet is a wall: the step is @@ -10036,14 +12407,19 @@ function updatePlayer(player, pad, dt, now) { // On the ground the same holds for legs: a transition steeper than about // 55° is a wall to someone on foot — only a board rolls up it — or a // runner walked straight up the vertical face of a half-pipe. - const stepRise = terrainFloorAt(previousX) - terrainFloorAt(player.x); - const footWall = wasGrounded && !player.skateboard && !rollingHead && + const stepRise = playerFloor(player,previousX) - playerFloor(player,player.x); + // Only for feet actually on the ground: someone standing on a ledge (the + // glass roof) high over a transition is not walking into its face. + const footWall = wasGrounded && !player.skateboard && !surfer && + Math.abs(previousY - playerFloor(player,previousX)) < 40 && stepRise > Math.abs(player.x - previousX) * 1.4 + 2; const airWall = !wasGrounded && !player.skateVert && !(player.skateLoop >= 0) && - !(player.ropeIndex >= 0) && terrainFloorAt(player.x) < player.y - 40 && - terrainFloorAt(previousX) >= previousY - 40; + !(player.ropeIndex >= 0) && playerFloor(player,player.x) < player.y - 40 && + playerFloor(player,previousX) >= previousY - 40; if (player.x !== previousX && (footWall || airWall)) { + const wallSide = Math.sign(player.x - previousX); player.x = previousX; + if (footWall) pressWall(player, wallSide, previousX + wallSide * 36, true); player.vx = player.knockVx = player.windVx = player.dashVx = 0; if (player.skateboard) player.skateVx = 0; player.runSpeed = 0; @@ -10061,16 +12437,28 @@ function updatePlayer(player, pad, dt, now) { // not a rolling face but a whirl of spinning lines. A lazy tumble — about // a turn per second, capped — keeps the eyes and mouth readable while // still saying which way the head is traveling. - if (player.grounded) player.headRollRate = clamp(player.vx / 22, -6, 6); - player.headRoll = (player.headRoll || 0) + (player.headRollRate || 0) * dt; + if (player.skateboard) { + // Riding, the head turns with the board — tipped by the slope under + // the deck, carried round a loop — rather than tumbling as if it were + // rolling on the ground. + player.headRollRate = 0; + const boardAngle = (player.skatePitch || 0) + (player.skateRotation || 0); + const turns = Math.round(((player.headRoll || 0) - boardAngle) / (Math.PI * 2)); + const target = boardAngle + turns * Math.PI * 2; + player.headRoll = lerp(player.headRoll || 0, target, 1 - Math.exp(-dt * 14)); + } else { + if (player.grounded) player.headRollRate = clamp(player.vx / 22, -6, 6); + player.headRoll = (player.headRoll || 0) + (player.headRollRate || 0) * dt; + } } // Walking down a slope is not a new landing on every other tick. - const nextFloor = terrainFloorAt(player.x); + const nextFloor = playerFloor(player,player.x); const followingFloor = wasGrounded && player.vy >= 0 && - Math.abs(previousY - terrainFloorAt(previousX)) < 3 && + Math.abs(previousY - playerFloor(player,previousX)) < 3 && nextFloor - previousY <= Math.max(20, Math.abs(player.vx * dt) * 2.5); if (followingFloor) player.y = Math.max(player.y, nextFloor); const landingSpeed = player.vy; + if (!wasGrounded && landingSpeed > 0) player.landingSpeed = landingSpeed; player.grounded = false; // A sinking fighter is transparent to the rung it left and to nothing else. // A window long enough to clear one lip — .25s, 290 units of fall — is @@ -10078,7 +12466,7 @@ function updatePlayer(player, pad, dt, now) { // double-tap that dropped two storeys read as a fall rather than a step // down. Remembering where the sink started is what keeps it one storey. // The floor is never transparent, which is why it stays in the else. - const ledge = player.vy >= 0 && ledgeCrossed(player.x, previousY, player.y); + const ledge = player.vy >= 0 && ledgeCrossed(player.x, previousY, player.y, 0, 0, player.z); const sinking = now < player.sinkUntil && ledge && ledge.y <= player.sinkFrom + 4; if (ledge && !sinking) { @@ -10093,9 +12481,9 @@ function updatePlayer(player, pad, dt, now) { player.vy = 0; player.grounded = true; } - } else if (player.y >= terrainFloorAt(player.x) && + } else if (player.y >= playerFloor(player,player.x) && (!player.skateboard || player.vy >= 0)) { - const terrainY = terrainFloorAt(player.x); + const terrainY = playerFloor(player,player.x); player.y = terrainY; if (headOnly) { player.vy = 0; @@ -10111,7 +12499,7 @@ function updatePlayer(player, pad, dt, now) { // A fast rider can cross a coping in a single step and never be seen on // the lip. Crossing out of a transition over its coping is leaving the lip: // back inside it, straight up, with the speed the wall was carrying. - if ((player.skateboard || rollingHead) && wasGrounded && !player.skateVert) { + if ((player.skateboard || surfer) && wasGrounded && !player.skateVert) { const wall = parkSegments.find((segment) => segment.kind === "transition" && previousX > segment.left && previousX < segment.right); const coping = wall && (wall.dir > 0 ? wall.right : wall.left); @@ -10119,21 +12507,27 @@ function updatePlayer(player, pad, dt, now) { // Tangent speed from the horizontal share. The wall is near vertical // here, so the divisor is small — clamping it at .2 capped the launch // at a third of what the wall was carrying. - const speed = Math.abs(player.skateVx) / Math.max(.05, Math.cos(player.skatePitch || 0)); + // Legs off a lip hop, they do not launch: a runner's vert is capped + // near a jump's height. A board carries its full speed up. + // A board carries its speed up, but no faster than a board can go: + // uncapped, pass after pumped pass compounded into hundred-metre airs. + const speed = Math.min(rollingFoot ? 1300 : skateTop, + Math.abs(player.skateVx) / Math.max(.05, Math.cos(player.skatePitch || 0))); player.skateVert = wall.dir; player.x = coping - wall.dir * 6; // Height stays where the trucks held it; snapping down to the curve // under the lip threw away a hundred units of the air. player.y = Math.min(previousY, player.y); player.vy = -speed; - player.vx = player.skateVx = 0; + // Straight up means straight up: no knockback or wind carries it over. + player.vx = player.skateVx = player.knockVx = player.windVx = 0; player.grounded = false; player.skateAirAt = now; emitSignal("skate-air", player.pad, Math.round(speed), 0); } } - if (player.skateboard || rollingHead) { - const contact = skateContact(player.x, previousY); + if (player.skateboard || surfer) { + const contact = riderContact(player, previousY); // Inside a valley — the concave face of a transition, where the ground // curves up to meet the board — a rolling board cannot leave the surface: // the ground is always on the far side of its path. Only a crest can @@ -10197,6 +12591,7 @@ function updatePlayer(player, pad, dt, now) { player.grounded = false; player.jumpHeld = true; player.airJumpsUsed = 0; + player.ultraAirUsed = false; player.lastButton = "BOOST"; player.lastButtonAt = now; playSine(880, .22); @@ -10208,6 +12603,7 @@ function updatePlayer(player, pad, dt, now) { skateBoostStep(player, parkPreviousX, now); player.hit = Math.max(0, player.hit - dt * 4); player.blockFlash = Math.max(0, player.blockFlash - dt * 6); + updateSkateTricks(player, input, now); player.previous = pad.down.slice(); if (input.vertical > 0) player.previous.push("MOVE_UP"); player.inputX = input.horizontal; @@ -10443,7 +12839,12 @@ function highestJump(options) { return best; } -function botPad(player, opponent, now) { +function botPad(player,opponent,now){ + if(player.botCachedPad && now<(player.botNextThink||0))return player.botCachedPad; + player.botNextThink=now+80000; + return player.botCachedPad=botPadThink(player,opponent,now); +} +function botPadThink(player, opponent, now) { if (selfPlay && typeof globalThis.__oskiewarJevPad === 'function') { const scene = botScene(player, opponent, now); scene.self.ducking = player.ducking; @@ -10802,6 +13203,7 @@ function gameSim() { const now = runtime().monotonicUs; const dt = Math.min(0.04, Math.max(0.001, (now - lastSimAt) / 1000000)); lastSimAt = now; + if(freeskateActive() && parkSupply.ko){updateParkSupply(dt,now);updateCameraDoll(dt,now);return;} // Whether a door is in the way is state, not decoration: the same answer // gates the fight, the claim and the wire, so it is settled once on the tick // rather than re-asked by each of them mid-paint. @@ -10877,8 +13279,8 @@ function gameSim() { // buttons would cost a small pad its item and shield. // Either couch seat can steer the shared camera. Digital M30 shoulders // remain combat buttons, even beside a controller with analog triggers. - const push = clamp(cameraPads.reduce((sum, pad) => sum + (pad?.analogTriggers - ? (Number(pad.leftTrigger) || 0) - (Number(pad.rightTrigger) || 0) : 0), 0), -1, 1); + // The triggers strafe now (see `updateStrafe`), so they no longer zoom. + const push = 0; if (Math.abs(push) > .08) playerCameraZoom = clamp(playerCameraZoom + push * dt * .9, .55, 1.9); // A mouse or a finger on the shell's canvas orbits the same lens the @@ -10906,6 +13308,11 @@ function gameSim() { if (netSession) netLeave("system-button"); return; } + // The freeskate pause menu holds the world still while it is open. + if (freeskateMenu) { + updateFreeskateMenu(now); + return; + } // The wordmark screen is a live training round, so the shell reads start // and then falls straight through into the fight it is sitting on top of. if (shellMode === "MENU") updateShell(now, titleTapped); @@ -11115,17 +13522,31 @@ function gameSim() { captureFrameTelemetry(now); } else { updateWind(dt, now); + if(freeskateActive() && !parkSupply.ko)updateParkKids(dt,now); updatePlayer(players[0], inputPads[0], dt, now); updatePlayer(players[1], inputPads[1], dt, now); + updateRig(players[0], inputPads[0], dt); + updateRig(players[1], inputPads[1], dt); updateSkateRopes(dt); + updateHeavyWheelHits(now); resolvePlayerStanding(now); resolvePlayerPushboxes(); + for(const p of activePlayers()){p.z=0;p.strafe=null;} + for(const b of balls)if(!b.spatialSpin)b.z=0; wrapFreeskate(); + updateMonowheel(dt, now); + updateParkSupply(dt, now); + updateBubbleAudio(now); + updateWheelTurbo(dt,now); + updateMotorAudio(dt); + updateSeatHeartbeat(dt,now); + updateWaterSplashes(dt); updatePowerups(now); updateBodyTrees(dt, now); updateBullets(dt, now); updateGrenades(dt, now); resolveMelee(now); + updateAxeHits(now); resolvePogoAttacks(now); updateLobbyMortality(now); // After the exchange resolves, so a frame that landed a hit reads as the @@ -11134,6 +13555,8 @@ function gameSim() { updateBoomerboard(dt, now); for (const item of balls) if (!item.recalling) updateBall(item, dt, now); updateDetachedParts(dt); + updateBlood(dt); + updateBoardState(now); updateCamera(dt); updateCameraDoll(dt, now); captureFrameTelemetry(now); @@ -11153,8 +13576,14 @@ function gameSim() { gridField[cell] = Math.min(1, gridField[cell] + (impact.explosion ? 1 : impact.death ? .9 : .55)); } + // A hit on a body bleeds instead of throwing bright sparks. + if (!impact.explosion && !impact.object && players.some((player) => + Math.abs(player.x - impact.x) < 160 && Math.abs(player.y - 90 - impact.y) < 160)) { + spawnBlood(impact.x, impact.y, impact.z || 0, 0, impact.death ? 22 : 7, impact.death ? 1.2 : .8); + impact.debris = []; + } const count = impact.explosion ? 24 : impact.death ? 10 : 6; - impact.debris = Array.from({ length: count }, (_, index) => { + if (!impact.debris) impact.debris = Array.from({ length: count }, (_, index) => { const angle = index / count * Math.PI * 2 + Math.sin(impact.x * .013 + impact.y * .007) * .7; const force = (impact.explosion @@ -11201,6 +13630,11 @@ function gameSim() { function updateResultImpactDebris(dt) { for (const impact of impacts) { + if (!impact.debris && !impact.explosion && !impact.object && players.some((player) => + Math.abs(player.x - impact.x) < 160 && Math.abs(player.y - 90 - impact.y) < 160)) { + spawnBlood(impact.x, impact.y, impact.z || 0, 0, impact.death ? 22 : 7, impact.death ? 1.2 : .8); + impact.debris = []; + } if (!impact.debris) { const count = impact.death ? 20 : impact.explosion ? 24 : 6; impact.debris = Array.from({ length: count }, (_, index) => { @@ -11226,6 +13660,7 @@ function updateResultImpactDebris(dt) { } impact.life -= dt; } + updateBlood(dt); while (impacts.length && impacts[0].life <= 0) impacts.shift(); } @@ -11263,6 +13698,8 @@ const discRingFor = (radius) => discRings[ : radius < 52 ? 3 : radius < 110 ? 4 : 5]; function filledDisc(x, y, radius, color) { + // A native fan cannot be scissored, so a second view fans in JS. + if(nativeDisc && !clipView){nativeDisc(x,y,triangleDepth,radius,color[0],color[1],color[2]);return;} const [r, g, b] = color; const ring = discRingFor(radius); const originX = x + ring[0] * radius, originY = y + ring[1] * radius; @@ -11298,7 +13735,24 @@ function filledRing(x, y, outerRadius, innerRadius, color) { } } +// A flat stroke: two triangles, no round caps. Hair, drops and other fine +// strands chain these so their ends overlap; a capsule's two end discs are +// twenty-odd triangles each and on a braid of forty lobes that was the frame. +function stroke(x1, y1, x2, y2, width, color) { + const dx = x2 - x1, dy = y2 - y1; + const length = Math.hypot(dx, dy); + if (length < .001) return; + const nx = -dy / length * width / 2, ny = dx / length * width / 2; + screenTriangle(x1 + nx, y1 + ny, x1 - nx, y1 - ny, x2 + nx, y2 + ny, color[0], color[1], color[2]); + screenTriangle(x1 - nx, y1 - ny, x2 - nx, y2 - ny, x2 + nx, y2 + ny, color[0], color[1], color[2]); +} + +const capsuleArcs=Object.fromEntries([3,4,6,8,12].map(n=>[n,Array.from({length:n+1},(_,i)=>[Math.cos(i*Math.PI/n),Math.sin(i*Math.PI/n)]).flat()])); function filledCapsule(x1, y1, x2, y2, width, color) { + if(nativeCapsule && !clipView){nativeCapsule(x1,y1,x2,y2,triangleDepth,width,color[0],color[1],color[2]);return;} + if (consoleHost() && width <= 3 && Math.abs(x2-x1)+Math.abs(y2-y1) > 1) { + stroke(x1,y1,x2,y2,width,color); return; + } const [r, g, b] = color; const dx = x2 - x1; const dy = y2 - y1; @@ -11314,8 +13768,19 @@ function filledCapsule(x1, y1, x2, y2, width, color) { x2 + nx, y2 + ny, r, g, b); screenTriangle(x1 - nx, y1 - ny, x2 - nx, y2 - ny, x2 + nx, y2 + ny, r, g, b); - filledDisc(x1, y1, radius, color); - filledDisc(x2, y2, radius, color); + // Only the exposed semicircle at each end is needed; full discs doubled + // the covered geometry at every joint, wheel and facial stroke. + const steps=radius<6?3:radius<13?4:radius<26?6:radius<52?8:12; + const ring=capsuleArcs[steps],ux=dx/length,uy=dy/length; + for(const end of [-1,1]){ + const cx=end<0?x1:x2,cy=end<0?y1:y2; + let ax=cx+nx,ay=cy+ny; + for(let i=1;i<=steps;i++){ + const side=ring[i*2],along=ring[i*2+1]*end*radius; + const bx=cx+nx*side+ux*along,by=cy+ny*side+uy*along; + screenTriangle(cx,cy,ax,ay,bx,by,r,g,b);ax=bx;ay=by; + } + } } // Xbox batches GPU triangles above its D2D line layer, so every bone and joint @@ -11350,17 +13815,15 @@ let photoEffectsActive = false, photoWeaponsActive = false; function roundGraphicsTheme() { const requested = globalThis.__oskiewarGraphicsTheme; if (requested === "flat" || requested === "photorealistic") return requested; - // The console ships the retained atlases in its package, so it wears the - // photographic materials unless a host asks for vectors. - const caps = typeof capabilities === "function" ? capabilities() : {}; - return caps.platform === "xbox-uwp" || caps.platform === "xbox" - ? "photorealistic" : "flat"; + // Photographs wherever the host can draw them (the ground and walls stay + // solid colour either way); a host without theme bindings falls to flat. + return "photorealistic"; } function refreshPhotoTheme() { photoThemeActive = roundGraphicsTheme() === "photorealistic" && - typeof themeReady === "function" && typeof themeSprite === "function" && themeReady(); - photoEffectsActive = photoThemeActive && typeof themeAssetReady === "function" && themeAssetReady(2); - photoWeaponsActive = photoThemeActive && typeof themeAssetReady === "function" && themeAssetReady(3); + hostThemeReady !== null && hostThemeSprite !== null && hostThemeReady(); + photoEffectsActive = photoThemeActive && hostThemeAssetReady !== null && hostThemeAssetReady(2); + photoWeaponsActive = photoThemeActive && hostThemeAssetReady !== null && hostThemeAssetReady(3); } const photoExplosionFrames = [[24,64,400,400],[462,53,400,400], [908,34,400,400],[1352,37,400,400],[37,458,400,400], @@ -11399,6 +13862,9 @@ const photoRegions = { acHead: [80, 104, 285, 285], xboxHead: [524, 104, 285, 285], acLimb: [1058, 48, 104, 372], xboxLimb: [1503, 48, 104, 372], gun: [51, 543, 365, 253], skateboard: [460, 611, 412, 136], + // The same photograph cut above the trucks: just the deck, so the trucks + // and wheels under it can be their own parts that roll. + skateDeck: [460, 611, 412, 62], platform: [900, 606, 418, 162], rocket: [1368, 542, 372, 236], concrete: [970, 625, 270, 43], wall: [930, 698, 350, 55], // The same material as `wall`, for the near skirt, which is drawn in @@ -11424,9 +13890,10 @@ function photoLimb(segment, seat) { Math.atan2(dy, dx) - Math.PI / 2); } function photoSurface(region, a, b, c, d) { - // Tall structural faces keep their shaded map color. Stretching a thin - // texture strip over them made the back of the arena look like a curtain. - if (region === "wall") return false; + // Ground and structure stay solid colour under every theme: the concrete + // strip stretched along the terrain read as smeared noise, worst on the + // console. Tall faces never took it (they looked like a curtain). + if (region === "wall" || region === "concrete" || region === "skirt") return false; if (!photoThemeActive || typeof themeQuad !== "function") return false; const points = [a, b, c, d]; if (points.some(p => ![p.x,p.y,p.z].every(Number.isFinite) || @@ -11436,13 +13903,78 @@ function photoSurface(region, a, b, c, d) { a.x,a.y,a.z, b.x,b.y,b.z, c.x,c.y,c.z, d.x,d.y,d.z) !== false; } +// Limbs as curves: each two-bone limb is one smooth curve through its root, +// its joint and its end (a quadratic whose control point puts the joint on +// the curve), drawn as a chain of short strokes with round ends, outline +// first and colour over it. The torso and neck stay straight. +function drawCurvedLimbs(segments, color, outline, edge, player) { + const used = new Set(); + const chains = []; + for (const upper of segments) { + if (upper.hitboxOnly || !/(thigh|upper-arm)$/.test(upper.role || "")) continue; + const lower = segments.find((segment) => !used.has(segment) && segment.part === upper.part && + /(shin|forearm)$/.test(segment.role || "") && + Math.hypot(segment.x1 - upper.x2, segment.y1 - upper.y2) < 3); + if (!lower) continue; + used.add(upper); used.add(lower); + chains.push([upper, lower]); + } + // Loose, not regular: a cubic whose two handles pull past the joint by + // different amounts, so the bend overshoots and each limb curves its own + // way, and a slow wobble per limb (quicker when moving) keeps them alive. + const clock = runtime().monotonicUs / 1e6; + const motion = .35 + Math.min(1, Math.abs(player.vx || 0) / 900); + const curve = ([upper, lower]) => { + const seed = (upper.part || "").length * 1.7 + (upper.role || "").length * .9; + const jx = upper.x2, jy = upper.y2; + const dx = lower.x2 - upper.x1, dy = lower.y2 - upper.y1, length = Math.hypot(dx, dy) || 1; + const nx = -dy / length, ny = dx / length; + const wobble = Math.sin(clock * (3.1 + seed % 1.3) + seed) * upper.width * .45 * motion; + const pull1 = 1.25 + (seed % .5), pull2 = 1.05 + ((seed * 1.3) % .45); + const c1x = upper.x1 + (jx - upper.x1) * pull1 + nx * wobble, c1y = upper.y1 + (jy - upper.y1) * pull1 + ny * wobble; + const c2x = lower.x2 + (jx - lower.x2) * pull2 - nx * wobble * .6, c2y = lower.y2 + (jy - lower.y2) * pull2 - ny * wobble * .6; + const points = []; + const steps=player.civilian?3:Math.max(3,Math.min(7,Math.ceil(length/18))); + for (let step = 0; step <= steps; step++) { + const s = step / steps, q = 1 - s; + points.push({ x: q * q * q * upper.x1 + 3 * q * q * s * c1x + 3 * q * s * s * c2x + s * s * s * lower.x2, + y: q * q * q * upper.y1 + 3 * q * q * s * c1y + 3 * q * s * s * c2y + s * s * s * lower.y2 }); + } + return points; + }; + const drawChain = (points, width, ink) => { + // Each stroke runs a little past its ends so neighbours overlap at the + // bends instead of leaving a notch. + for (let index = 1; index < points.length; index++) { + const a = points[index - 1], b = points[index]; + const dx = b.x - a.x, dy = b.y - a.y, length = Math.hypot(dx, dy) || 1; + const reach = width * .28 / length; + stroke(a.x - dx * reach, a.y - dy * reach, b.x + dx * reach, b.y + dy * reach, width, ink); + } + filledDisc(points[0].x, points[0].y, width / 2, ink); + filledDisc(points.at(-1).x, points.at(-1).y, width / 2, ink); + }; + const shaded = (segment) => damagedPartColor(player.pantsColor && isLegRole(segment.role) ? player.pantsColor : color, player, segment.part); + const curves = chains.map((chain) => ({ chain, points: curve(chain) })); + // Outlines, then fills — straight bones first so limbs sit over the torso. + for (const segment of segments) + if (!segment.hitboxOnly && !used.has(segment)) + filledCapsule(segment.x1, segment.y1, segment.x2, segment.y2, segment.width + edge * 2, outline); + for (const segment of segments) + if (!segment.hitboxOnly && !used.has(segment)) + filledCapsule(segment.x1, segment.y1, segment.x2, segment.y2, segment.width, shaded(segment)); + for (const { chain, points } of curves) drawChain(points, chain[0].width + edge * 2, outline); + for (const { chain, points } of curves) drawChain(points, chain[0].width, shaded(chain[0])); +} + function drawSkeletonSegments(segments, color, outline, player = null) { - if (photoThemeActive && player) { + if (photoThemeActive && player && !player.skin) { for (const segment of segments) if (!segment.hitboxOnly) photoLimb(segment, player.pad); return; } const edge = Math.max(1.25, Math.min(3, cameraScale() * 1.8)); + if (player?.skin) { drawCurvedLimbs(segments, color, outline, edge, player); return; } if (player?.skateboard) segments = segments.slice().sort((a, b) => b.depth - a.depth); for (const segment of segments) { if (segment.hitboxOnly) continue; @@ -11452,7 +13984,7 @@ function drawSkeletonSegments(segments, color, outline, player = null) { for (const [index, segment] of segments.entries()) { if (segment.hitboxOnly) continue; const appearance = generatedAppearance(player); - drawPaletteCapsule(segment, appearance ? null : player && !player.npc + drawPaletteCapsule(segment, appearance || player?.skin ? null : player && !player.npc ? player.handleColors : null, index, appearance ? generatedPartColor(appearance, segment) : color, player); } } @@ -11507,8 +14039,8 @@ function drawPaletteCapsule(segment, colors, coordinate, fallback, player = null } function drawFighterSilhouette(geometry, color, outline, player = null) { - drawSkeletonSegments(geometry.segments, color, outline, player); - if (photoThemeActive && player) { + drawSkeletonSegments(player?.spin ? geometry.segments.filter(s=> !/arm$/.test(s.role||"")) : geometry.segments, color, outline, player); + if (photoThemeActive && player && !player.skin) { const head = geometry.head, seat = player.pad === 0 ? 0 : 1; const radius = Math.max(2, head.radius); photoSprite(seat ? "xboxHead" : "acHead", head.x, head.y, @@ -11656,14 +14188,152 @@ function fighterAnimationPhase(player, now = null) { // Only share poses during one interpolated paint. Simulation and rollback // always rebuild, because a hit may change limbs between queries in one tick. +function pressWall(player, side, x, terrain = false) { + if (!player.alive || !player.grounded || player.skateboard || isHeadOnly(player) || + (player.wallInputX ?? player.inputX) !== side) return; + player.wallPress = { side, x, terrain }; + player.facing = side; + player.runSpeed = 0; +} +function wallPressActive(player) { + return Boolean(player.wallPress && player.grounded && !player.skateboard && + !isHeadOnly(player) && !player.attackKind && !player.blocking && + player.alive && player.inputX === player.wallPress.side); +} +function wallPressGeometry(player) { + const { side, x: wallX, terrain } = player.wallPress; + const crouch = Math.max(player.ducking ? 1 : 0, player.crouchBlend || 0); + const feet = player.y, z = player.z || 0; + const hip = { x: player.x - side * 6, y: feet - lerp(58, 32, crouch) }; + const shoulder = { x: player.x + side * 15, y: feet - lerp(120, 66, crouch) }; + const head = { x: shoulder.x + side * 2, y: shoulder.y - 28, z, radius: 22 }; + const segments = []; + const bone = (a, b, width, role, part) => { + if (hasPart(player, part)) segments.push({ x1:a.x, y1:a.y, z1:z, + x2:b.x, y2:b.y, z2:z, width, role, part }); + }; + bone(shoulder, hip, 10, "torso", "torso"); + bone({x:head.x,y:head.y+18}, shoulder, 10, "neck", "torso"); + for (const [name, spread] of [["left", -1], ["right", 1]]) { + const handY = shoulder.y + spread * 12; + let handX = wallX - side * 5; + if (terrain) { + let near = player.x, far = player.x + side * 220; + for (let step = 0; step < 14; step++) { + const mid = (near + far) / 2; + if (terrainFloorAt(mid) <= handY) far = mid; else near = mid; + } + handX = far - side * 5; + } + const start = { x:shoulder.x, y:shoulder.y + spread * 4 }; + const hand = { x:handX, y:handY }; + const elbow = { x:(start.x+hand.x)/2 - side*7, y:(start.y+hand.y)/2 + 14 }; + bone(start, elbow, 10, name+"-upper-arm", name+"-arm"); + bone(elbow, hand, 10, name+"-forearm", name+"-arm"); + const foot = { x:player.x - side*(spread < 0 ? 27 : -5), y:feet-5 }; + const knee = { x:hip.x + side*lerp(8, 24, crouch), y:(hip.y+foot.y)/2 }; + bone(hip, knee, 10, name+"-thigh", name+"-leg"); + bone(knee, foot, 10, name+"-shin", name+"-leg"); + } + return {head,segments}; +} + const renderPoses = new Map(); let sharingRenderPoses = false; function runnerWorldGeometry(player, t) { + if (wallPressActive(player)) return wallPressGeometry(player); const cached = sharingRenderPoses && renderPoses.get(player); if (cached && (!player.spiderDummy || cached.t === t)) return cached.pose; - const pose = buildRunnerWorldGeometry(player, t); - if (player.skateRotation) { - const c = Math.cos(player.skateRotation), s = Math.sin(player.skateRotation); + const pose = buildRunnerWorldGeometry(player, player.motionClock ?? t); + if(player.breathPhase!==undefined && !player.dummy && player.alive){ + const lift=Math.sin(player.breathPhase*Math.PI*2)*(1.2+(player.heartDanger||0)*1.8); + const breathe=y=>y-lift*clamp((player.y-y)/170,0,1); + pose.head.y=breathe(pose.head.y); + for(const b of pose.segments){b.y1=breathe(b.y1);b.y2=breathe(b.y2);} + } + // Mid-strafe the feet do the travelling: the leading foot lifts, steps into + // the new lane and plants there while the body moves across; then the + // trailing foot lifts and follows it. Planted feet stay where they were + // put, so the step is real footwork, not a slide. + if (player.strafe) { + const progress = clamp((runtime().monotonicUs - player.strafe.at) / ((player.strafe.frames || strafeFrames) * replayTickUs), 0, 1); + const { from, to } = player.strafe; + const direction = Math.sign(to - from) || 1; + const ease = (u) => { u = clamp(u, 0, 1); return u * u * (3 - 2 * u); }; + const leadPhase = clamp(progress / .55, 0, 1), trailPhase = clamp((progress - .45) / .55, 0, 1); + const feet = { + lead: { z: from + (to - from) * ease(leadPhase), lift: Math.sin(leadPhase * Math.PI) * 12 }, + trail: { z: from + (to - from) * ease(trailPhase), lift: Math.sin(trailPhase * Math.PI) * 12 }, + }; + const leadPart = direction * (player.facing || 1) > 0 ? "left-leg" : "right-leg"; + for (const segment of pose.segments) { + if (!/thigh|shin/.test(segment.role || "")) continue; + const foot = segment.part === leadPart ? feet.lead : feet.trail; + const isShin = /shin/.test(segment.role); + // The shin's lower end is the foot; its upper end and the thigh's lower + // end are the knee, halfway between hip and foot in depth. + const kneeZ = ((player.z || 0) + foot.z) / 2; + if (isShin) { + segment.z1 = kneeZ; segment.z2 = foot.z; + segment.y1 -= foot.lift * .5; segment.y2 -= foot.lift; + } else { + segment.z1 = player.z || 0; segment.z2 = kneeZ; + segment.y2 -= foot.lift * .5; + } + } + } + // Open the arms into a balanced 3D pose before turning the whole rig. + if(player.spin && !player.attackKind && !isHeadOnly(player)){ + const torso=pose.segments.find(s=>s.role==='torso'); + if(torso)for(const side of [-1,1]){ + const part=side<0?'left-arm':'right-arm'; + const upper=pose.segments.find(s=>s.part===part && /upper-arm$/.test(s.role||'')); + const lower=pose.segments.find(s=>s.part===part && /forearm$/.test(s.role||'')); + if(!upper || !lower)continue; + Object.assign(upper,{x1:torso.x1+side*12,y1:torso.y1+8,z1:(player.z||0)+side*14, + x2:torso.x1+side*54,y2:torso.y1+16,z2:(player.z||0)+side*24}); + Object.assign(lower,{x1:upper.x2,y1:upper.y2,z1:upper.z2, + x2:torso.x1+side*92,y2:torso.y1+8,z2:(player.z||0)+side*36}); + } + } + if(player.civilian && player.bodyScale){ + const k=player.bodyScale; + pose.head.x=player.x+(pose.head.x-player.x)*k;pose.head.y=player.y+(pose.head.y-player.y)*k;pose.head.radius*=k; + for(const b of pose.segments){b.x1=player.x+(b.x1-player.x)*k;b.x2=player.x+(b.x2-player.x)*k;b.y1=player.y+(b.y1-player.y)*k;b.y2=player.y+(b.y2-player.y)*k;b.width*=k;} + } + // A spin: the whole body turns round the vertical axis by the spin's angle. + if (player.spin) { + const angle = player.spin.angle; + const c = Math.cos(angle), s = Math.sin(angle); + const spin = (point, xKey, zKey) => { + const dx = point[xKey] - player.x, dz = (point[zKey] ?? player.z) - player.z; + point[xKey] = player.x + dx * c - dz * s; + point[zKey] = player.z + dx * s + dz * c; + }; + spin(pose.head, "x", "z"); + for (const segment of pose.segments) { spin(segment, "x1", "z1"); spin(segment, "x2", "z2"); } + } + // Mid-turn the body swings round its vertical axis: the old facing's side + // rotates away into depth and the new one comes round. + const turnAge = (runtime().monotonicUs - (player.turnAt || -1e12)) / (turnFrames * replayTickUs); + if (turnAge >= 0 && turnAge < 1) { + const angle = Math.PI * (1 - turnAge); + const c = Math.cos(angle), s = Math.sin(angle) * (player.facing || 1); + const yaw = (point, xKey, zKey) => { + const dx = point[xKey] - player.x; + point[xKey] = player.x + dx * c; + point[zKey] = (point[zKey] ?? player.z) + dx * s; + }; + yaw(pose.head, "x", "z"); + for (const segment of pose.segments) { yaw(segment, "x1", "z1"); yaw(segment, "x2", "z2"); } + } + // A runner on a wall stands square to it rather than to the sky; a + // swimmer lies along the water, head first the way they are going. + const turn = (player.skateboard && !isHeadOnly(player) ? 0 : player.skateRotation || 0) + + (player.footSurf && player.grounded ? (player.skatePitch || 0) * .85 : 0) + + (isSwimmer(player) ? player.facing * 1.25 : 0); + if (turn) { + const c = Math.cos(turn), s = Math.sin(turn); const rotate = (x, y) => ({ x: player.x + (x - player.x) * c - (y - player.y) * s, y: player.y + (x - player.x) * s + (y - player.y) * c }); Object.assign(pose.head, rotate(pose.head.x, pose.head.y)); @@ -11676,8 +14346,184 @@ function runnerWorldGeometry(player, t) { return pose; } +// The rider's body on springs. Three under-damped springs ride along in the +// simulation — so every screen agrees — and bend the drawn pose: +// lean the upper body lags the board: speeding up throws it back, braking +// pitches it forward, and it overshoots and settles (the sway); +// crouch pumping sinks the knees, a landing compresses them in proportion +// to how hard it came down and springs back, the air tucks them; +// arms a balance swing driven by how fast the lean is changing. +// Only a rider on a board wears it strongly; on foot it is a light sway. +function springStep(state, key, target, stiffness, damping, dt) { + const velocityKey = key + "V"; + const velocity = (state[velocityKey] || 0) + + ((target - (state[key] || 0)) * stiffness - (state[velocityKey] || 0) * damping) * dt; + state[velocityKey] = velocity; + state[key] = (state[key] || 0) + velocity * dt; +} +function updateRig(player, pad, dt) { + if (!player || !player.alive || !(dt > 0)) return; + const rig = player.rig ||= { lean: 0, crouch: 0, arms: 0, lastVx: player.vx, + lastGrounded: player.grounded }; + const board = player.skateboard; + const strength = board ? 1 : .35; + const accel = clamp((player.vx - rig.lastVx) / dt, -9000, 9000); + rig.lastVx = player.vx; + // Inertia: the body wants to stay where it was, so it leans against the + // board's acceleration. Units are the neck's sideways travel. + // On the board the stick is a weight shift too: the body leans the way + // it is held, and the deck tilts under it (see `updateBoardTilt`). + const held = pad?.down || []; + const stick = board ? (held.includes("ArrowRight") ? 1 : held.includes("ArrowLeft") ? -1 : 0) : 0; + springStep(rig, "lean", clamp(-accel * .012 + stick * 26, -46, 46) * strength, 70, 5.5, dt); + const pumping = board && (pad?.down || []).includes("ArrowDown"); + if (player.grounded && !rig.lastGrounded) { + rig.crouchV = (rig.crouchV || 0) + clamp((player.landingSpeed || 900) / 1200, .4, 2.4) * 3; + if (!board && (player.landingSpeed || 0) > 2400) addDing(player.x, player.z || 0, 4 + player.landingSpeed / 900); + } + // A wounded fighter drips as they go. + const wounds = Object.values(player.partDamage || {}).reduce((sum, value) => sum + value, 0); + if (wounds > 0 && !isHeadOnly(player)) { + rig.drip = (rig.drip || 0) + dt * Math.min(4, wounds); + if (rig.drip > .7) { rig.drip = 0; spawnBlood(player.x, player.y - 60, player.z || 0, 0, 1, .2); } + } + rig.lastGrounded = player.grounded; + const crouchTarget = (pumping ? .55 : 0) + (!player.grounded && board ? .3 : 0); + springStep(rig, "crouch", crouchTarget, 90, 9, dt); + rig.crouch = clamp(rig.crouch, 0, .95); + springStep(rig, "arms", clamp((rig.leanV || 0) * .02, -1.4, 1.4) * strength, 55, 4, dt); + updateTruckSprings(player, rig, dt); + if (!player.grounded || !player.skateboard) player.skidFrom = null; +} + +// The board's suspension. Each truck is a stiff spring (the bushings) under +// its end of the deck, measured in units the deck sinks toward that axle: +// the rider's weight settles it, pumping loads it, a landing slams both and +// they rebound, a transition's change of pitch loads the leading truck, and +// the body's lean rocks weight from tail to nose. In the air the trucks hang +// a little off the deck. `skateFrame` sinks the deck by it, so the feet — +// and through them the knees — ride the same motion. +function updateTruckSprings(player, rig, dt) { + const springs = player.trucks ||= { front: 0, back: 0, frontV: 0, backV: 0, + lastPitch: player.skatePitch || 0 }; + if (!player.skateboard) { + springs.front = springs.back = springs.frontV = springs.backV = 0; + springs.tilt = springs.tiltV = 0; + springs.lastPitch = 0; + return; + } + const pitch = player.skatePitch || 0; + const pitchRate = clamp((pitch - springs.lastPitch) / dt, -12, 12); + springs.lastPitch = pitch; + if (player.grounded && !springs.wasGrounded) { + const landed = player.landingSpeed || 900; + if (!freeskateActive() && landed > 1700) damageBoard((landed - 1700) / 55, player.x, player.y - 12, player.z || 0); + if (landed > 1300) { + const frame = skateFrame(player); + for (const along of [-skateTruck, skateTruck]) for (const side of [-15, 15]) { + const at = frame(along, skateAxleDrop + skateWheelRadius, side); + addDecal({ kind: "wheelmark", x: at.x, z: at.z, size: 3 + landed / 1200, stretch: 1.8, angle: 0 }); + } + if (landed > 2300) addDing(player.x, player.z || 0, 5 + landed / 700); + } + const slam = clamp((player.landingSpeed || 900) / 1200, .3, 2.6) * 45; + springs.frontV += slam; + springs.backV += slam; + } + springs.wasGrounded = player.grounded; + const facing = player.facing || 1; + const load = player.grounded ? 1.6 + (rig.crouch || 0) * 3.2 : -1.2; + const rock = player.grounded + ? clamp((rig.lean || 0) * .06 * facing + pitchRate * .35 * Math.sign(player.skateVx || facing), -2.4, 2.4) + : 0; + // Front is the end the rider faces. + springStep(springs, "front", load + rock, 420, 16, dt); + springStep(springs, "back", load - rock, 420, 16, dt); + springs.front = clamp(springs.front, -2, 6.5); + springs.back = clamp(springs.back, -2, 6.5); + updateBoardTilt(player, rig, springs, dt); +} + +// Tilt: the deck rocking on one wheel pair — nose up is positive — driven by +// the rider's body, not the ground. The deck dips under the end the body's +// weight is over (the lean spring in `updateRig`) and the other end lifts: +// pushing off leaves the body behind, so the nose comes up; braking or +// leaning into the stick puts weight on the nose. Reversing snaps the nose +// up like a kickturn, and coming up fast out of a crouch pops the tail. The +// board pivots on whichever wheels stay down (`skateFrame`), so a tilted +// deck lifts its other truck clear. +const boardTiltMax = .42; +function updateBoardTilt(player, rig, springs, dt) { + const facing = player.facing || 1; + if (springs.lastFacing && springs.lastFacing !== facing) + springs.tiltV = (springs.tiltV || 0) + 7; + springs.lastFacing = facing; + const crouchRate = rig.crouchV || 0; + if (crouchRate < -3 && player.grounded) + springs.tiltV = (springs.tiltV || 0) + clamp(-crouchRate * .25, 0, 3); + // Weight over the nose (a lean toward facing) presses it down. + const target = -(rig.lean || 0) * facing * (player.grounded ? .0085 : .011); + springStep(springs, "tilt", clamp(target, -boardTiltMax, boardTiltMax), 120, 11, dt); + springs.tilt = clamp(springs.tilt, -boardTiltMax, boardTiltMax); +} + +// A body in the water without a board swims: it is laid along the surface +// and strokes, rather than standing in the pond. +function isSwimmer(player) { + return !!player.swimming && !player.skateboard && !isHeadOnly(player); +} + +// Holding on the coping: the rider hangs off the lip into the pipe — both +// hands on the coping, arms taking the weight, body down the wall face, +// knees bent and feet pressing the board flat against the transition. The +// wall under the coping is the pipe's own circle, so the pose follows it. +function stallBoardPlayer(player) { + const stall = player.skateStall; + const copingY = terrainFloorAt(stall.coping); + const drop = 205; + const offset = halfpipeRadius - Math.sqrt(halfpipeRadius ** 2 - drop ** 2); + const sway = Math.sin((runtime().monotonicUs || 0) / 180000) * 3; + return { x: stall.coping - stall.side * (offset + 12 + sway), y: copingY + drop + 18, + z: player.z, facing: -stall.side, skatePitch: -stall.side * (Math.PI / 2 - .36), + skateSpin: player.skateSpin || 0, trucks: null }; +} +function hangGeometry(player) { + const stall = player.skateStall, side = stall.side; + const copingY = terrainFloorAt(stall.coping); + const cx = stall.coping, z = player.z; + const breath = Math.sin((runtime().monotonicUs || 0) / 240000) * 3; + const segments = []; + const segment = (x1, y1, x2, y2, width, role, part) => { + if (!hasPart(player, part)) return; + segments.push({ x1, y1, z1: z, x2, y2, z2: z, width, role, part }); + }; + const inward = -side; // into the pipe + const shoulderX = cx + inward * 24, shoulderY = copingY + 44 + breath; + const hipX = cx + inward * 30, hipY = copingY + 118 + breath; + const head = { x: cx + inward * 44, y: copingY + 22 + breath, z, radius: 22 }; + segment(head.x - inward * 6, head.y + 17, shoulderX, shoulderY - 6, 10, "neck", "torso"); + segment(shoulderX, shoulderY - 6, hipX, hipY, 10, "torso", "torso"); + segment(shoulderX - 10, shoulderY - 6, shoulderX + 10, shoulderY - 6, 10, "shoulders", "torso"); + // Both hands on the coping, elbows out. + for (const [arm, spread] of [["left", -1], ["right", 1]]) { + const elbowX = cx + inward * (18 + spread * 4), elbowY = copingY + 14; + segment(shoulderX, shoulderY - 6, elbowX, elbowY, 10, arm + "-upper-arm", arm + "-arm"); + segment(elbowX, elbowY, cx + inward * 2, copingY - 6, 10, arm + "-forearm", arm + "-arm"); + } + // Knees out from the wall, feet on the board against it. + const deck = skateFrame(stallBoardPlayer(player)); + for (const [leg, along] of [["left", -18], ["right", 18]]) { + const foot = deck(along, -4); + const kneeX = hipX + inward * 34, kneeY = (hipY + foot.y) / 2 - 4 + along * .3; + segment(hipX, hipY, kneeX, kneeY, 10, leg + "-thigh", leg + "-leg"); + segment(kneeX, kneeY, foot.x, foot.y, 10, leg + "-shin", leg + "-leg"); + } + return { head, segments }; +} + function buildRunnerWorldGeometry(player, t, at = null) { if (player.spiderDummy) return spiderDummyWorldGeometry(player, t); + if (player.skateStall && player.skateboard && !isHeadOnly(player)) return hangGeometry(player); // Rendering consumes the same fixed 60 Hz phase clock as simulation. The // display can remain uncapped without inventing in-between combat poses. const animation = fighterAnimationPhase(player, at); @@ -11699,14 +14545,19 @@ function buildRunnerWorldGeometry(player, t, at = null) { ? clamp(1 - (player.jumpLaunchAt - poseNow) / jumpAnticipationUs, 0, 1) : 0; const landingRecovery = player.landPoseUntil > poseNow ? clamp((player.landPoseUntil - poseNow) / 110000, 0, 1) : 0; + const rig = player.rig || {}; + // A grab tucks the knees hard; a stall sits a little bent on the lip. + const trickCrouch = player.skateGrab ? .78 : player.skateStall ? .35 : 0; const crouchPose = clamp(Math.max(player.crouchBlend || 0, Math.sin(jumpAnticipation * Math.PI) * .72, - landingRecovery * .45, noLegs ? .45 : 0), 0, 1); + landingRecovery * .45, noLegs ? .45 : 0, rig.crouch || 0, trickCrouch), 0, 1); const height = lerp(180, 108, crouchPose); const formDrop = pogo ? 54 : noLegs ? 31 : 0; const aimPose = player.itemAimLocked || player.gunAimLive ? player.gunAimX || player.facing : 0; - const lean = player.facing * (idle ? 5 : 3 + speed * 10) + aimPose * 7; + // Stalled on a coping, the body hangs back out over the pipe. + const lean = player.facing * (idle ? 5 : 3 + speed * 10) + aimPose * 7 + + (rig.lean || 0) + (player.skateStall ? -player.skateStall.side * 22 : 0); const x = player.x; const feet = player.y; const z = player.z; @@ -11719,8 +14570,10 @@ function buildRunnerWorldGeometry(player, t, at = null) { (player.itemAimLocked || player.gunAimLive ? (player.gunAimY || 0) * 8 : 0); const attackPulse = meleePulse(player, poseNow); + // A head riding a board sits on the deck (its top is 22 above the rider's + // point), not sunk halfway into it. const head = headOnly - ? { x, y: feet - 22, z, radius: 22 } + ? { x, y: feet - 22 - (player.skateboard ? 22 : 0), z, radius: 22 } : { x: neckX + lean * .2, y: feet - height + 22 - breath * 1.6 + formDrop, z, radius: 22 }; const segments = []; @@ -11784,7 +14637,7 @@ function buildRunnerWorldGeometry(player, t, at = null) { // called out. The probe now asks for the surface the fighter is actually // standing on, and a foot hanging past a rung's lip stops at the leg's own // reach — a short dangle — instead of the floor below. - const footPlant = (footX) => Math.min(surfaceYAt(footX, feet), feet + 20); + const footPlant = (footX) => Math.min(surfaceYAt(footX, feet, player.z), feet + 20); segment(head.x, head.y + head.radius * .78, neckX, neckY, 10, "neck"); segment(neckX, neckY, x, hipY, 10, "torso"); // An elbow sags downward whichever way the hand actually reaches. Bending @@ -11818,6 +14671,16 @@ function buildRunnerWorldGeometry(player, t, at = null) { segment(x - player.facing * (lowKick ? 46 : 28), feet - (lowKick ? 18 : 32), x - player.facing * 8, feet, 10, "rear-shin"); + } else if (isSwimmer(player)) { + // Flutter kick: straight legs trailing the body, beating in opposition. + // (Drawn standing; the whole figure is laid prone afterwards.) + const beat = (player.swimPhase || 0) * 2.6; + for (const [side, offset] of [["left", 0], ["right", Math.PI]]) { + const kick = Math.sin(beat + offset) * 16; + const kneeY = (hipY + feet) / 2; + segment(x, hipY, x + kick * .45, kneeY, 10, side + "-thigh"); + segment(x + kick * .45, kneeY, x + kick, feet, 10, side + "-shin"); + } } else if (meditating) { segment(x, hipY, x - 48, feet - 12, 11, "left-thigh"); segment(x - 48, feet - 12, x + 8, feet, 11, "left-shin"); @@ -11840,24 +14703,52 @@ function buildRunnerWorldGeometry(player, t, at = null) { segment(pushKnee, deckAt(pushKnee) - 25, pushFootX, deckAt(pushFootX), 10, "rear-shin"); } else if (crouchPose > .08) { - segment(x, hipY, x - 36, feet - 22, 10, "left-thigh"); - segment(x - 36, feet - 22, x - 4, feet, 10, "left-shin"); - segment(x, hipY, x + 36, feet - 22, 10, "right-thigh"); - segment(x + 36, feet - 22, x + 58, feet, 10, "right-shin"); + // Crawling, the crouched feet shuffle: small alternating steps, each + // lifting a little as it comes forward. + const crawl = player.grounded && Math.abs(player.vx) > 40 + ? (poseNow / 1e6) * 9 * Math.sign(player.vx) * (player.facing || 1) : null; + const shuffle = (offset) => crawl === null ? { dx: 0, lift: 0 } + : { dx: Math.sin(crawl + offset) * 16 * (player.facing || 1), lift: Math.max(0, Math.cos(crawl + offset)) * 10 }; + const l = shuffle(0), r = shuffle(Math.PI); + segment(x, hipY, x - 36 + l.dx * .5, feet - 22 - l.lift, 10, "left-thigh"); + segment(x - 36 + l.dx * .5, feet - 22 - l.lift, x - 4 + l.dx, feet - l.lift, 10, "left-shin"); + segment(x, hipY, x + 36 + r.dx * .5, feet - 22 - r.lift, 10, "right-thigh"); + segment(x + 36 + r.dx * .5, feet - 22 - r.lift, x + 58 + r.dx, feet - r.lift, 10, "right-shin"); + } else if (player.spin && !player.skateboard && player.grounded) { + // A ballet spin: up on the standing leg, the other foot drawn to its knee. + const knee = (hipY + feet) / 2; + segment(x, hipY, x, knee, 10, "lead-thigh"); + segment(x, knee, x, feet, 10, "lead-shin"); + segment(x, hipY, x + player.facing * 30, hipY + 24, 10, "rear-thigh"); + segment(x + player.facing * 30, hipY + 24, x + player.facing * 3, knee, 10, "rear-shin"); } else if (player.grounded) { - // The facing-side foot is visibly planted forward even at rest. - const leadKnee = x + player.facing * 18 + stride * .38; - const leadFoot = x + player.facing * 42 + stride; - const rearKnee = x - player.facing * 16 - stride * .38; - const rearFoot = x - player.facing * 28 - stride; - // The animation phase still chooses the discrete stride; ground probes - // constrain that frame onto the surface underfoot without new sim steps. - const leadGround = footPlant(leadFoot); - const rearGround = footPlant(rearFoot); - segment(x, hipY, leadKnee, leadGround - 30, 10, "lead-thigh"); - segment(leadKnee, leadGround - 30, leadFoot, leadGround, 10, "lead-shin"); - segment(x, hipY, rearKnee, rearGround - 30, 10, "rear-thigh"); - segment(rearKnee, rearGround - 30, rearFoot, rearGround, 10, "rear-shin"); + // A real gait: the feet cross. Each foot swings forward off the ground + // while the other is planted and sweeps back under the hips, so the two + // pass each other every half cycle. Running lengthens the stride and + // lifts the swing foot higher; standing blends back to the planted stance + // with the facing-side foot forward. + const facing = player.facing; + const moving = clamp(speed * 3, 0, 1); + const running = clamp((Math.abs(player.vx) - walkSpeed) / Math.max(1, runTopSpeed - walkSpeed), 0, 1); + const reach = lerp(34, 52, running) * moving; + const lift = lerp(16, 34, running) * moving; + const phase = poseCycle + player.pad * Math.PI; + const step = (offset, stanceX) => { + const swing = Math.sin(phase + offset); + const forward = Math.cos(phase + offset) > 0; + const footX = x + facing * (stanceX * (1 - moving) + swing * reach); + const ground = footPlant(footX); + const footY = ground - (forward ? Math.cos(phase + offset) * lift : 0); + // The knee bends forward, more on the swing. + const kneeX = (x + footX) / 2 + facing * (8 + (forward ? lift * .5 : 3)); + const kneeY = (hipY + footY) / 2 - 2; + return { footX, footY, kneeX, kneeY }; + }; + const lead = step(0, 42), rear = step(Math.PI, -28); + segment(x, hipY, lead.kneeX, lead.kneeY, 10, "lead-thigh"); + segment(lead.kneeX, lead.kneeY, lead.footX, lead.footY, 10, "lead-shin"); + segment(x, hipY, rear.kneeX, rear.kneeY, 10, "rear-thigh"); + segment(rear.kneeX, rear.kneeY, rear.footX, rear.footY, 10, "rear-shin"); } else { segment(x, hipY, x - 32, feet - 32, 10, "left-thigh"); segment(x - 32, feet - 32, x - 7, feet - 11, 10, "left-shin"); @@ -11870,8 +14761,46 @@ function buildRunnerWorldGeometry(player, t, at = null) { const actionNow = poseNow; const armAttack = attackPulse > 0 && player.attackKind && player.attackKind !== "KICK"; - if (player.skateboard && player.grounded && !armAttack && !heldItem(player)) { - const balance = Math.sin(poseCycle) * 18; + if (player.spin && !player.skateboard && !armAttack) { + // Arms rounded overhead in a ballet spin. + for (const [side, shoulderX] of [["left", leftShoulderX], ["right", rightShoulderX]]) { + const out = shoulderX < neckX ? -1 : 1; + segment(shoulderX, shoulderY, shoulderX + out * 22, shoulderY - 44, 10, side + "-upper-arm"); + segment(shoulderX + out * 22, shoulderY - 44, neckX + out * 4, shoulderY - 74, 10, side + "-forearm"); + } + } else if (isSwimmer(player) && !armAttack) { + // Front crawl: each hand circles its shoulder, half a turn apart — + // reaching overhead (ahead, once laid prone), pulling down through the + // water under the body to the hip, and recovering back over the top. + const stroke = player.swimPhase || 0; + for (const [side, shoulderX, offset] of [["left", leftShoulderX, 0], + ["right", rightShoulderX, Math.PI]]) { + const angle = stroke + offset; + const handX = shoulderX + player.facing * 60 * Math.sin(angle); + const handY = shoulderY - 60 * Math.cos(angle); + const reach = twoBone(shoulderX, shoulderY, handX, handY, 34, + -player.facing); + segment(shoulderX, shoulderY, reach.jointX, reach.jointY, 10, + side + "-upper-arm"); + segment(reach.jointX, reach.jointY, reach.targetX, reach.targetY, 10, + side + "-forearm"); + } + } else if (player.skateboard && player.skateGrab && !armAttack) { + // The grab: the front hand reaches down to the deck by the front foot, + // the other arm swings up and back for balance. + const reachX = x + player.facing * 22, reachY = feet - 14; + const frontShoulderX = player.facing > 0 ? rightShoulderX : leftShoulderX; + const backShoulderX = player.facing > 0 ? leftShoulderX : rightShoulderX; + const front = player.facing > 0 ? "right" : "left"; + const back = player.facing > 0 ? "left" : "right"; + const grabArm = twoBone(frontShoulderX, shoulderY, reachX, reachY, 34, player.facing); + segment(frontShoulderX, shoulderY, grabArm.jointX, grabArm.jointY, 10, front + "-upper-arm"); + segment(grabArm.jointX, grabArm.jointY, grabArm.targetX, grabArm.targetY, 10, front + "-forearm"); + segment(backShoulderX, shoulderY, x - player.facing * 34, shoulderY - 30, 10, back + "-upper-arm"); + segment(x - player.facing * 34, shoulderY - 30, x - player.facing * 60, shoulderY - 58, + 10, back + "-forearm"); + } else if (player.skateboard && player.grounded && !armAttack && !heldItem(player)) { + const balance = Math.sin(poseCycle) * 8 + (rig.arms || 0) * 30; segment(leftShoulderX, shoulderY, x - 42, elbowY - 10 - balance, 10, "left-upper-arm"); segment(x - 42, elbowY - 10 - balance, x - 66, handY - balance, @@ -11939,11 +14868,14 @@ function buildRunnerWorldGeometry(player, t, at = null) { } if (player.skateboard && !headOnly) { const deck = skateFrame(player); - const pitch = (player.skatePitch || 0) * .35; + // The body stands nearly square to the deck — a rider on a transition + // leans into it — so the hips stay over the board rather than past it. + const pitch = (player.skatePitch || 0) * .8 + (player.skateRotation || 0) - + (player.trucks?.tilt || 0) * (player.facing || 1) * .5; const c = Math.cos(pitch), sn = Math.sin(pitch); const transform = (px, py, depth) => ({ x: x + (px - x) * c - (py - feet) * sn, - y: feet - skateAxleDrop - skateWheelRadius + (px - x) * sn + (py - feet) * c, + y: feet - (player.onewheel ? 24 : skateAxleDrop + skateWheelRadius) + (px - x) * sn + (py - feet) * c, z: z + depth, }); Object.assign(head, transform(head.x, head.y, 0)); @@ -11970,9 +14902,19 @@ function buildRunnerWorldGeometry(player, t, at = null) { const length = Math.max(48, distance / 1.98); const bend = Math.sqrt(Math.max(0, length * length - distance * distance / 4)); const norm = Math.hypot(dx, dy) || 1; - const knee = { x: (hip.x + foot.x) / 2 + dy / norm * bend * player.facing, - y: (hip.y + foot.y) / 2 - dx / norm * bend * player.facing, - z: (hip.z + foot.z) / 2 }; + // Of the two ways a knee can fold, take the one away from the deck + // (the rear leg's old fold went down through the board), and never + // let it sit lower than a hand's width over the grip. + const up = { x: deck(0, -1).x - deck(0, 0).x, y: deck(0, -1).y - deck(0, 0).y }; + const top = deck(0, -4); + const lift = (point) => (point.x - top.x) * up.x + (point.y - top.y) * up.y; + const fold = (sign) => ({ x: (hip.x + foot.x) / 2 + dy / norm * bend * sign, + y: (hip.y + foot.y) / 2 - dx / norm * bend * sign, + z: (hip.z + foot.z) / 2 }); + const forward = fold(player.facing), back = fold(-player.facing); + const knee = lift(forward) >= lift(back) - 4 ? forward : back; + const clearance = 12 - lift(knee); + if (clearance > 0) { knee.x += up.x * clearance; knee.y += up.y * clearance; } const thigh = segments.find((bone) => bone.role === role + "-thigh"); const shin = segments.find((bone) => bone.role === role + "-shin"); for (const [bone, a, b] of [[thigh, hip, knee], [shin, knee, foot]]) @@ -12036,13 +14978,54 @@ function spiderDummyWorldGeometry(player, t) { } function runnerGeometry(player, t) { - return projectRunnerWorldGeometry(runnerWorldGeometry(player, t)); + return projectRunnerWorldGeometry(constrainLimbs(runnerWorldGeometry(player, t))); +} + +// Real bones, for drawing: every leg and arm is re-solved with fixed-length +// bones — thigh and shin, upper arm and forearm — so a pose that asks for a +// foot or hand out of reach gets it pulled back to where the limb can reach, +// and the knee or elbow sits where two rigid bones put it (on the side the +// pose bent it). The simulation's hitboxes are untouched; this is how the +// body is shown. +const boneLength = { thigh: 36, shin: 35, "upper-arm": 31, forearm: 31 }; +function constrainLimbs(world) { + const segments = world.segments.map((segment) => ({ ...segment })); + const kind = (role = "") => role.endsWith("thigh") ? "thigh" : role.endsWith("shin") ? "shin" + : role.endsWith("upper-arm") ? "upper-arm" : role.endsWith("forearm") ? "forearm" : ""; + const free = (role = "") => !/^(attack|item|grab)-/.test(role); + for (const upper of segments) { + const upperKind = kind(upper.role); + if (!(upperKind === "thigh" || upperKind === "upper-arm") || !free(upper.role)) continue; + const lowerKind = upperKind === "thigh" ? "shin" : "forearm"; + const lower = segments.find((segment) => segment.part === upper.part && kind(segment.role) === lowerKind && + free(segment.role) && Math.hypot(segment.x1 - upper.x2, segment.y1 - upper.y2) < 3); + if (!lower) continue; + const l1 = boneLength[upperKind], l2 = boneLength[lowerKind]; + const rootX = upper.x1, rootY = upper.y1; + let endX = lower.x2, endY = lower.y2; + let dx = endX - rootX, dy = endY - rootY, distance = Math.hypot(dx, dy) || .001; + const reach = l1 + l2 - .5; + if (distance > reach) { + endX = rootX + dx / distance * reach; endY = rootY + dy / distance * reach; + dx = endX - rootX; dy = endY - rootY; distance = reach; + } + const along = (l1 * l1 - l2 * l2 + distance * distance) / (2 * distance); + const out = Math.sqrt(Math.max(0, l1 * l1 - along * along)); + const ux = dx / distance, uy = dy / distance; + // Bend the way the pose bent it. + const side = Math.sign(ux * (upper.y2 - rootY) - uy * (upper.x2 - rootX)) || 1; + const jointX = rootX + ux * along - uy * out * side; + const jointY = rootY + uy * along + ux * out * side; + upper.x2 = lower.x1 = jointX; upper.y2 = lower.y1 = jointY; + lower.x2 = endX; lower.y2 = endY; + } + return { ...world, segments }; } function projectRunnerWorldGeometry(world) { const headPoint = projectPoint(world.head.x, world.head.y, world.head.z); return { - head: { x: headPoint.x, y: headPoint.y, + head: { x: headPoint.x, y: headPoint.y, depth:headPoint.z, radius: Math.max(1.5, world.head.radius * cameraScale()) }, segments: world.segments.map((segment) => { const a = projectPoint(segment.x1, segment.y1, segment.z1); @@ -12100,7 +15083,7 @@ function fighterContainmentRequiredWidth(t) { top = Math.min(top, y - radius); bottom = Math.max(bottom, y + radius); }; - for (const player of activePlayers()) { + for (const player of cameraPlayers()) { const world = player.replayGeometry || player.frozenGeometry || runnerWorldGeometry(player, t); include(world.head.x, world.head.y, world.head.radius); @@ -12127,7 +15110,7 @@ function containFighters(t) { fighterContainmentRequiredWidth(t) * 1.11); return; } - const worlds = activePlayers().map((player) => player.replayGeometry || + const worlds = cameraPlayers().map((player) => player.replayGeometry || player.frozenGeometry || runnerWorldGeometry(player, t)); if (!worlds.length) return; const points = []; @@ -12212,9 +15195,10 @@ function resolveRunnerBounds(player, t) { const rightWall = worldRight - wallThickness; if (player.x - halfWidth < leftWall) { player.x = leftWall + halfWidth; + pressWall(player, -1, leftWall); if (player.skateboard && player.grounded && player.skateVx < -900) { player.skateWallSide = -1; - player.vy = -Math.max(820, Math.abs(player.skateVx) * .82); + player.vy = -clamp(Math.abs(player.skateVx) * .82, 820, 2400); player.grounded = false; player.vx = 0; playDrum("block", .52, panPlayer(player)); @@ -12227,9 +15211,10 @@ function resolveRunnerBounds(player, t) { } if (player.x + halfWidth > rightWall) { player.x = rightWall - halfWidth; + pressWall(player, 1, rightWall); if (player.skateboard && player.grounded && player.skateVx > 900) { player.skateWallSide = 1; - player.vy = -Math.max(820, Math.abs(player.skateVx) * .82); + player.vy = -clamp(Math.abs(player.skateVx) * .82, 820, 2400); player.grounded = false; player.vx = 0; playDrum("block", .52, panPlayer(player)); @@ -12522,9 +15507,9 @@ function runnerDistanceToPoint(player, t, px, py, pz = 0) { return Math.min(contact.headDistance, contact.bodyDistance); } -function runnerContactToPoint(player, t, px, py, pz = 0) { +function runnerContactToPoint(player, t, px, py, pz = 0, boxesAt = sampleCombatBoxes) { const now = runtime().simMonotonicUs || runtime().monotonicUs; - const boxes = sampleCombatBoxes(player, now); + const boxes = boxesAt(player, now); let headDistance = Infinity, bodyDistance = Infinity, segmentIndex = -1; for (const hurt of boxes.hurt) { const distance = pointBoxDistance(hurt, px, py, pz); @@ -12543,8 +15528,8 @@ function spawnDetachedPart(player, part, geometry, sourceX, now) { for (const segment of geometry.segments.filter((item) => item.part === part && !item.hitboxOnly)) { const paletteCoordinate = geometry.segments.indexOf(segment); - detachedParts.push({ ...segment, color: player.color.slice(), - colors: player.npc ? [] : player.handleColors?.map((value) => value.slice()) || [], + detachedParts.push({ ...segment, skin:player.skin, color: (player.skin && segment.role === "torso" ? player.shirtColor || [252,252,250] : player.color).slice(), + colors: player.skin || player.npc ? [] : player.handleColors?.map((value) => value.slice()) || [], paletteCoordinate, vx: direction * (420 + detachedParts.length % 3 * 90), vy: -520 - detachedParts.length % 2 * 120, @@ -12572,6 +15557,8 @@ function damagePart(target, segmentIndex, sourceX, sourcePad, now) { ? part === "torso" ? 5 : 3 : part === "torso" ? 3 : 2; target.partDamage[part] = (target.partDamage[part] || 0) + 1; + bleed(target, segment, sourceX, target.partDamage[part] >= durability ? 1.8 : 1); + addScar(target, segment); emitSignal("partdamage", target.pad, [...limbParts, "torso"].indexOf(part), target.partDamage[part] / durability); if (target.partDamage[part] < durability) return; @@ -12599,6 +15586,7 @@ function damagePart(target, segmentIndex, sourceX, sourcePad, now) { active: true, startsActive: false, respawnAt: Infinity }); target.swordHeld = false; } + if(target.axeHeld){target.axeHeld=false;Object.assign(axePickup,{active:true,x:target.x,y:target.y-65});} target.gunAmmo = 0; target.grenadeAmmo = 0; target.itemArm = ""; @@ -12631,19 +15619,19 @@ const skateTruck = 32; const skateWheelRadius = 8; const skateAxleDrop = 10; -function skateContact(x, y) { +function skateContact(x, y, z = 0) { // Solve the truck chord against the supporting ledge or heightfield. let pitch = 0, left = 0, right = 0; for (let i = 0; i < 6; i++) { const span = skateTruck * Math.cos(pitch); - left = surfaceYAt(x - span, y - 2); - right = surfaceYAt(x + span, y - 2); + left = surfaceYAt(x - span, y - 2, z); + right = surfaceYAt(x + span, y - 2, z); pitch = Math.atan2(right - left, span * 2); } const c = Math.cos(pitch), sn = Math.sin(pitch); const wheelX = -sn * skateAxleDrop; - left = surfaceYAt(x - skateTruck * c + wheelX, y - 2); - right = surfaceYAt(x + skateTruck * c + wheelX, y - 2); + left = surfaceYAt(x - skateTruck * c + wheelX, y - 2, z); + right = surfaceYAt(x + skateTruck * c + wheelX, y - 2, z); const deckY = Math.min(left + skateTruck * sn, right - skateTruck * sn) - skateAxleDrop * c - skateWheelRadius; return { pitch, y: deckY + skateAxleDrop + skateWheelRadius, @@ -12652,17 +15640,61 @@ function skateContact(x, y) { } function skateFrame(player) { - const pitch = player.skateWallSide ? Math.PI / 2 : player.skatePitch || 0; + if (player.onewheel) return monowheelFrame(player); + // In a spin the board turns on the spot with the rider. + const yaw = player.spin ? player.spin.angle : 0; + const yawCos = Math.cos(yaw), yawSin = Math.sin(yaw); + // Round a loop the deck turns with the rider, so the feet stay on it. + const pitch = (player.skateWallSide ? Math.PI / 2 : player.skatePitch || 0) + + (player.skateRotation || 0); const c = Math.cos(pitch), sn = Math.sin(pitch); const down = player.skateWallSide > 0 ? -1 : 1; - return (along, height = 0, across = 0) => ({ + // Deck, grip and anything on it (height at or above the deck's underside) + // sink onto the trucks; axles and wheels stay on the ground. + const springs = player.trucks; + const noseSign = player.facing || 1; + const sag = (along) => { + if (!springs) return 0; + const front = springs.front || 0, back = springs.back || 0; + const mix = clamp((along * noseSign / skateTruck + 1) / 2, -.4, 1.4); + return back + (front - back) * mix; + }; + // Tilted, the deck rotates about the contact under the wheels that stay + // down: the tail's when the nose lifts, the nose's when it dips. + const tilt = springs ? springs.tilt || 0 : 0; + const tc = Math.cos(-tilt * noseSign), ts = Math.sin(-tilt * noseSign); + const pivotAlong = -Math.sign(tilt) * noseSign * skateTruck; + const pivotHeight = skateAxleDrop + skateWheelRadius; + return (along, height = 0, across = 0) => { + if (height <= 1) height += sag(along); + if (tilt) { + const a = along - pivotAlong, h = height - pivotHeight; + along = pivotAlong + a * tc - h * ts; + height = pivotHeight + a * ts + h * tc; + } + return { x: player.x + c * along - sn * height * down, y: player.y - skateAxleDrop - skateWheelRadius + sn * along + c * height * down, z: player.z + across, - }); + }; }; +} +function spunSkateFrame(frame, player) { + if (!player.spin) return frame; + const c = Math.cos(player.spin.angle), s = Math.sin(player.spin.angle); + return (along, height = 0, across = 0) => { + const point = frame(along, height, across); + const dx = point.x - player.x, dz = point.z - player.z; + return { x: player.x + dx * c - dz * s, y: point.y, z: player.z + dx * s + dz * c }; + }; } function resetSkate(player) { + player.wheelTurbo=false;player.wheelChargeAt=0; + if (player.onewheel) { + Object.assign(monowheel,{active:true,x:player.x-(player.facing||1)*75,y:player.y,z:player.z||0, + vx:player.vx*.3,vy:0,safeUntil:runtime().monotonicUs+500000}); + player.onewheel=false; + } player.skateboard = false; player.skateVx = player.skateWallSide = player.skatePitch = 0; player.skateVert = 0; @@ -12673,10 +15705,23 @@ function resetSkate(player) { player.runDir = 0; } +function releaseSpinningBoard(p,now){ + if(!p.skateboard)return; + const spin=p.spin,board=boardForRider(p),vx=p.vx||p.skateVx||0; + if(p.onewheel){resetSkate(p);return;} + resetSkate(p); + if(!board)return; + Object.assign(board,{active:true,heldBy:-1,releasedBy:p.pad,releasedAt:now, + x:p.x,y:p.y-skateAxleDrop-skateWheelRadius-20,z:p.z||0, + vx:vx*.7,vy:Math.min(p.vy||0,-240),vz:spin.direction*180, + spatialSpin:true,yaw:spin.angle,yawRate:spin.rate*spin.direction, + flipSpin:spin.direction*4,rotation:0,safeUntil:now+650000,safePlayers:1< item.type === "skateboard"); if (!board) return true; board.active = true; board.heldBy = -1; @@ -12744,6 +15789,15 @@ function updateDetachedParts(dt, combat = true) { continue; } } + // A severed part bleeds as it goes, for a second or so. + if ((fragment.bleed ??= 1.3) > 0) { + fragment.bleed -= dt; + fragment.drip = (fragment.drip || 0) + dt; + if (fragment.drip > .05) { + fragment.drip = 0; + spawnBlood(fragment.x1, fragment.y1, fragment.z1 || 0, 0, 1, .35); + } + } fragment.vy += 1900 * dt; const dx = fragment.vx * dt; const dy = fragment.vy * dt; @@ -12829,16 +15883,27 @@ function comicGlyphAdvance(character, size) { return size * (comicAdvanceEm[String(character).toLowerCase()] ?? .58); } +// Widths are asked per label per frame, and the labels are few: each +// (size, text) pair is summed once. The sum is the same left-to-right walk +// the reduce made, so the numbers match to the bit. Bounded — a readout that +// changes every frame would otherwise grow the map for the whole visit. +const handleWidths = new Map(); function handleWidth(handle, size) { - return [...handle].reduce((width, character) => - width + comicGlyphAdvance(character, size), 0); + const key = size + "\u0000" + handle; + let width = handleWidths.get(key); + if (width === undefined) { + if (handleWidths.size >= 512) handleWidths.clear(); + width = 0; + for (const character of handle) width += comicGlyphAdvance(character, size); + handleWidths.set(key, width); + } + return width; } function typeWrite(text, x, y, size, ...color) { const visibleText = String(text).toLowerCase(); - if (typeof comicWrite === "function") comicWrite(visibleText, x, y, size, ...color); - else if (typeof ywftWrite === "function") - ywftWrite(visibleText, x, y, size, ...color); + if (hostComicWrite) hostComicWrite(visibleText, x, y, size, ...color); + else if (hostYwftWrite) hostYwftWrite(visibleText, x, y, size, ...color); else systemWrite(visibleText, x, y, size, ...color); } @@ -12872,7 +15937,7 @@ function controlLocale() { if (touch) return { title: "start", select: "", replayPaused: "paused", replayPlaying: "", replay: "", - combat: "A KICK B PUNCH X SHIELD Y USE ITEM", + combat: "A KICK B PUNCH X BUBBLE Y USE ITEM", }; return keyboard ? { title: "start", @@ -12880,14 +15945,14 @@ function controlLocale() { replayPaused: "PAUSED F PLAY A D SCRUB G EXIT", replayPlaying: "F PAUSE A D SCRUB G EXIT", replay: "Q REPLAY", - combat: "SPACE KICK ENTER PUNCH SHIFT SHIELD ALT USE ITEM W AIR", + combat: "SPACE KICK ENTER PUNCH SHIFT BUBBLE ALT USE ITEM W AIR", } : { title: "start", select: "LEFT RIGHT SELECT A READY X P2 / DUMMY / BOT B BACK", replayPaused: "PAUSED A PLAY LEFT RIGHT SCRUB B EXIT", replayPlaying: "A PAUSE LEFT RIGHT SCRUB B EXIT", replay: "Y REPLAY", - combat: "A KICK B PUNCH X SHIELD Y USE ITEM UP AIR", + combat: "A KICK B PUNCH X BUBBLE Y USE ITEM UP AIR", }; } @@ -12898,15 +15963,15 @@ function combatKeys() { if (caps.inputFamily === "keyboard") return [ [["A", "D"], "MOVE", "ArrowLeft"], [["D", "D"], ">> DASH", "ArrowRight"], ["SPACE", "KICK", "A"], ["ENTER", "PUNCH", "B"], - ["SHIFT", "SHIELD", "X"], ["ALT", "USE ITEM", "Y"], + ["SHIFT", "BUBBLE", "X"], ["ALT", "USE ITEM", "Y"], ["W", "AIR", "ArrowUp"]]; if (caps.inputFamily === "touch") return [ ["A", "KICK", "A"], ["B", "PUNCH", "B"], - ["X", "SHIELD", "X"], ["Y", "USE ITEM", "Y"]]; + ["X", "BUBBLE", "X"], ["Y", "USE ITEM", "Y"]]; return [ [["LEFT", "RIGHT"], "MOVE", "ArrowLeft"], [["RIGHT", "RIGHT"], ">> DASH", "ArrowRight"], - ["A", "KICK", "A"], ["B", "PUNCH", "B"], ["X", "SHIELD", "X"], + ["A", "KICK", "A"], ["B", "PUNCH", "B"], ["X", "BUBBLE", "X"], ["Y", "USE ITEM", "Y"], ["STICK_UP", "AIR", "ArrowUp"]]; } @@ -12936,17 +16001,6 @@ function selectionControlKeys() { ["X", "OPPONENT", "X"], ["B", "BACK", "B"]]; } -function replayControlKeys(paused) { - const family = typeof capabilities === "function" - ? capabilities().inputFamily : "xbox"; - if (family === "touch") return []; - if (family === "keyboard") return [ - ["F", paused ? "PLAY" : "PAUSE", "A"], - [["A", "D"], "SCRUB", "ArrowLeft"], ["G", "EXIT", "B"]]; - return [["A", paused ? "PLAY" : "PAUSE", "A"], - [["LEFT", "RIGHT"], "SCRUB", "ArrowLeft"], ["B", "EXIT", "B"]]; -} - function replayOfferKeys() { const family = typeof capabilities === "function" ? capabilities().inputFamily : "xbox"; @@ -13068,7 +16122,7 @@ function m30Seated() { // read off the live hardware, not the leaflet; flip this table if 8BitDo's // firmware ever swaps the pair. const m30FaceSends = { C: "RightTrigger", Z: "RightShoulder" }; -const m30SendLabel = { RightTrigger: "SHIELD", RightShoulder: "USE ITEM", +const m30SendLabel = { RightTrigger: "BUBBLE", RightShoulder: "USE ITEM", LeftTrigger: "KICK", LeftShoulder: "USE ITEM" }; // The M30's own manual page, drawn from the device itself: the white @@ -13161,7 +16215,7 @@ function drawM30Cluster(x, y, size, held, directionActive, ink) { let rowY = bodyMidY + lobeR + Math.round(small * 1.2); const captions = [ `A KICK B PUNCH C ${m30SendLabel[m30FaceSends.C]}`, - `X SHIELD Y USE ITEM Z ${m30SendLabel[m30FaceSends.Z]}`, + `X BUBBLE Y USE ITEM Z ${m30SendLabel[m30FaceSends.Z]}`, `L ${m30SendLabel.LeftShoulder} R ${m30SendLabel.LeftTrigger}`, "A+B GRAB START PAUSE", ]; @@ -13176,6 +16230,7 @@ function drawM30Cluster(x, y, size, held, directionActive, ink) { // logout button now sit in that corner and the legend used to run straight // through them on a narrow view. function drawControlLegend(ink) { + if(freeskateActive())return; const device = typeof capabilities === "function" ? capabilities() : {}; if (device.showControlLegend === false || device.inputFamily === "touch") return; const safe = hudSafeRect(); @@ -13187,7 +16242,6 @@ function drawControlLegend(ink) { (button === "ArrowUp" && pad.leftY > .12) || (button === "ArrowDown" && pad.leftY < -.12); const size = compactLayout() ? 18 : 24; - const x = safe.left + 8; const both = held.includes("A") && held.includes("B"); const legendFighter = players[localSeat()]; const dash = legendFighter.lastButton === "DASH" && @@ -13199,7 +16253,7 @@ function drawControlLegend(ink) { ["DOWN", "ArrowDown", "CROUCH"], ["A", "A", both ? "GRAB" : "KICK"], ["B", "B", both ? "GRAB" : itemMelee[heldItem(legendFighter)] || "PUNCH"], - ["X", "X", "SHIELD"], + ["X", "X", "BUBBLE"], ["Y", "Y", "USE ITEM"], ]; if (survivalActive()) controls.length = 4; @@ -13215,23 +16269,31 @@ function drawControlLegend(ink) { const keyboardCap = { LEFT: "A", RIGHT: "D", STICK_UP: "W", DOWN: "S", A: "SPACE", B: "ENTER", X: "SHIFT", Y: "ALT" }; const step = Math.round(size * 1.82); - for (const [row, [cap, button, action]] of controls.entries()) { - const y = safe.top + row * step; - const width = keyboard - ? drawKeycap(keyboardCap[cap] || cap, - x, y, size, - directionActive(button)) - : drawPadButton(cap, x, y, size, - button.startsWith("Arrow") ? directionActive(button) : held.includes(button)); - if (action) { - // The action wears its button's colour, so a glance matches the word - // to the cap: A's green kick, B's red punch, X's blue shield, Y's gold. - const actionInk = padButtonInk[cap] || ink; - const labelX = x + width + 10, labelY = y + Math.round(size * .25); - typeWrite(action, labelX + 2, labelY + 3, size, ...contrastShadow(actionInk)); - typeWrite(action, labelX, labelY, size, ...actionInk); - } - } + // Bottom centre, under the rider: just the move, in its own colour. Moves + // and actions are one flat set — LEFT is a move the same way OLLIE, HOLD + // or KICK UP is — so there are no button caps or "action" words, only the + // name of what you are doing, coloured the way the input history colours + // it, held while the input is held and for a beat after. + const now = runtime().monotonicUs; + const moveAge = now - (legendFighter.lastButtonAt || -1e12); + const latest = legendFighter.lastButton && (moveAge < 800000 || held.length) ? legendFighter.lastButton : ""; + // Down is a crouch — an air crouch if you are off the ground. + // Down is a crouch; down with a direction on the ground is a crawl. + const nearGround = terrainFloorAt(legendFighter.x) - legendFighter.y < 60; + const downHeld = held.includes("ArrowDown"); + const side = held.includes("ArrowLeft") ? "LEFT" : held.includes("ArrowRight") ? "RIGHT" : ""; + const move = downHeld && side && nearGround && !legendFighter.skateboard ? "CRAWL " + side + : latest === "DOWN" ? (nearGround ? "CROUCH" : "TUCK") : latest; + if (move) { + const moveSize = Math.round(size * 1.6); + const moveInk = moveColor(move); + const moveX = Math.round(viewCenterX() - handleWidth(move, moveSize) / 2); + const moveY = safe.bottom - moveSize - Math.round(size * .6); + typeWrite(move, moveX + 2, moveY + 3, moveSize, ...contrastShadow(moveInk)); + typeWrite(move, moveX, moveY, moveSize, ...moveInk); + } + controls.length = 0; + const x = safe.left + 8; let legendBottom = safe.top + controls.length * step; if (m30) legendBottom = drawM30Cluster(x, legendBottom, size, held, directionActive, ink); @@ -13356,19 +16418,152 @@ function drawHandle(handle, x, y, size, colors, fallback) { } } +// The skater's face, drawn from the MacNeoPolitan Trio's (Menu Band's +// SingerFace, the curious "neo" member): tall oval eyes with a big pupil and +// a catchlight, set a touch uneven; angular brows at a curious tilt; a small +// angled nose; a curved smile lifted at one corner; blush on the cheeks. It +// blinks, and looks the way the skater is going. Laid out in the Trio's +// face units (0..1, y up) on the head circle, turned toward the facing side. +function drawTrioFace(player, head, now) { + if(player.civilian){ + const r=head.radius; + for(const side of [-1,1]){const x=head.x+side*r*.3,y=head.y+r*.1;filledDisc(x,y,r*.23,[252,250,245]);filledDisc(x+(player.facing||1)*r*.07,y,r*.11,[28,22,34]);} + stroke(head.x-r*.18,head.y+r*.47,head.x+r*.17,head.y+r*.5,Math.max(1,r*.07),[66,34,46]);return; + } + const r = head.radius; + // The face lives on the sphere of the head. Every feature has a longitude + // and latitude on it; the head is turned partway toward the way the + // skater faces (and all the way round in a spin), and each point is + // projected from the sphere's surface — so features foreshorten as they + // turn, crowd toward the rim and pass out of sight round the back. + const facing = player.facing || 1; + const yaw = facing * .42 + (player.spin ? player.spin.angle : 0); + // A head rolling on its own turns like a wheel, face and all (a head + // riding a board keeps its eyes level). + const roll = isHeadOnly(player) && !player.skateboard ? player.headRoll || 0 : 0; + const rollCos = Math.cos(roll), rollSin = Math.sin(roll); + const sphere = (u, v) => { + const lon = yaw + (u - .5) * 2.1 * facing, lat = (v - .66) * 1.75; + const dx = r * .97 * Math.sin(lon) * Math.cos(lat), dy = -r * .97 * Math.sin(lat); + return { x: head.x + dx * rollCos - dy * rollSin, y: head.y + dx * rollSin + dy * rollCos, + facing: Math.cos(lon) * Math.cos(lat) }; + }; + const P = (u, v) => sphere(u, v); + const shown = (u, v) => sphere(u, v).facing > .08; + const ink = [24, 18, 26], line = Math.max(1.2, r * .075); + const oval = (c, rx, ry, color, sides = 12) => { + for (let side = 0; side < sides; side++) { + const a = side / sides * Math.PI * 2, b = (side + 1) / sides * Math.PI * 2; + screenTriangle(c.x, c.y, c.x + Math.cos(a) * rx, c.y + Math.sin(a) * ry, + c.x + Math.cos(b) * rx, c.y + Math.sin(b) * ry, color[0], color[1], color[2]); + } + }; + const visible = (point) => point.facing === undefined || point.facing > .08; + const path = (points, width, color = ink) => { + for (let index = 1; index < points.length; index++) + if (visible(points[index - 1]) && visible(points[index])) + filledCapsule(points[index - 1].x, points[index - 1].y, points[index].x, points[index].y, width, color); + }; + const bezier = (a, c1, c2, b, steps = 5) => Array.from({ length: steps + 1 }, (_, index) => { + const s = index / steps, q = 1 - s; + return { u: q * q * q * a[0] + 3 * q * q * s * c1[0] + 3 * q * s * s * c2[0] + s * s * s * b[0], + v: q * q * q * a[1] + 3 * q * q * s * c1[1] + 3 * q * s * s * c2[1] + s * s * s * b[1] }; + }).map(({ u, v }) => P(u, v)); + // Blush. + for (const side of [-1, 1]) { + const cheek = P(.5 + side * .265, .45); + if (cheek.facing > .08) oval(cheek, r * .2 * cheek.facing, r * .11, mixColor(player.color, [255, 110, 128], .32), 10); + } + // Eyes. + const blinking = ((now / 1e6 + player.pad * .7) % 3.4) < .12; + const ex = .175, ew = .088, eh = .155; + for (const side of [-1, 1]) { + const u = .5 + side * ex, v = .61 + side * .014; + const eye = P(u, v); + if (eye.facing <= .08) continue; + const rx = ew * r * 1.84 * Math.max(.2, eye.facing), ry = eh * r * 1.75; + if (blinking) { + path(bezier([u - ew, v], [u - ew * .4, v - eh * .35], [u + ew * .4, v - eh * .35], [u + ew, v]), line); + } else { + oval(eye, rx + line, ry + line, ink); + oval(eye, rx, ry, [248, 248, 250]); + const pr = rx * .5; + const px = eye.x + facing * rx * .28, py = eye.y + ry * .1; + // A coloured iris round the pupil, then the pupil and two catchlights. + filledDisc(px, py, pr, player.irisColor || [96, 140, 196]); + filledDisc(px, py, pr * .62, [6, 6, 10]); + filledDisc(px - facing * pr * .25, py - pr * .42, Math.max(.8, pr * .28), [255, 255, 255]); + filledDisc(px + facing * pr * .3, py + pr * .3, Math.max(.6, pr * .12), [255, 255, 255]); + // The upper lash line, heavier than the rest of the eye, and three + // lashes flicking up off the outer corner. + const lid = bezier([u - ew * 1.02, v + eh * .2], [u - ew * .5, v + eh * 1.08], [u + ew * .5, v + eh * 1.08], [u + ew * 1.02, v + eh * .2], 4); + path(lid, line * 1.6); + const outerSide = side * facing; + for (const [k, lean] of [[.0, .9], [.18, .65], [.36, .4]]) { + const base = P(u + side * ew * (.95 - k), v + eh * (.35 + k * 1.2)); + const tip = { x: base.x + outerSide * r * .12 * lean, y: base.y - r * .1 }; + filledCapsule(base.x, base.y, tip.x, tip.y, Math.max(1, line * .9), ink); + } + } + // The brow: an angled check, one side lifted in curiosity. + const by = Math.min(.835, v + eh * 1.39 + side * .018); + path([P(u - ew * .95, by - eh * .12), P(u - ew * .12, by + eh * .17), P(u + ew * .95, by - eh * .06)], line * 1.2); + } + // Nose. + path([P(.501, .49), P(.486, .46), P(.508, .461)], line * .6); + // Lips: a soft pink mouth with a fuller lower lip, the far corner lifted + // in a smile, and a fine line where they meet. + const mw = .13; + const lipInk = mixColor(player.color, [232, 96, 132], .6); + const upper = bezier([.5 - mw, .355], [.5 - mw * .4, .38], [.5 + mw * .4, .38], [.5 + mw, .37]); + const lower = bezier([.5 - mw, .355], [.5 - mw * .45, .285], [.5 + mw * .45, .285], [.5 + mw, .37]); + const lipCenter = P(.5, .335); + if (!visible(lipCenter)) return; + for (const lip of [upper, lower]) + for (let index = 1; index < lip.length; index++) + screenTriangle(lipCenter.x, lipCenter.y, lip[index - 1].x, lip[index - 1].y, lip[index].x, lip[index].y, + lipInk[0], lipInk[1], lipInk[2]); + path(bezier([.5 - mw, .355], [.5 - mw * .4, .335], [.5 + mw * .4, .335], [.5 + mw, .37]), line * .9); +} + function drawFace(player, head, color, t, now = runtime().monotonicUs) { if (photoThemeActive) color = [20, 12, 26]; if (head.radius < 5) return; const bodyDepth = triangleDepth; triangleDepth = bodyDepth - .012; + if(player.dummy){ + const r=head.radius; + for(const side of [-1,1]){ + const x=head.x+side*r*.34,y=head.y-r*.06,d=r*.16; + filledCapsule(x-d,y-d,x+d,y+d,Math.max(2,r*.1),[24,16,32]); + filledCapsule(x-d,y+d,x+d,y-d,Math.max(2,r*.1),[24,16,32]); + } + triangleDepth=bodyDepth;return; + } + if (player.skin) { + drawTrioFace(player, head, now); + triangleDepth = bodyDepth; + return; + } const r = head.radius; const direction = player.facing || 1; // The whole face turns with a rolling head. Every feature below is placed // in flat face-space and spun around the head's center on the way to the // canvas — eyes, mouth, hair, tears, hearts, all of it — instead of the old // look where the head traveled and the face stayed nailed upright. - const roll = isHeadOnly(player) ? player.headRoll || 0 : photoThemeActive ? player.skateRotation || 0 : 0; + // A head riding a board is the exception: the head turns with the deck, + // but the eyes stay level and keep looking where it is going, as if they + // saw on their own. A seam on the rim shows the head's own turn. + const ridingHead = isHeadOnly(player) && player.skateboard; + const roll = ridingHead ? 0 + : isHeadOnly(player) ? player.headRoll || 0 : photoThemeActive ? player.skateRotation || 0 : 0; const cosRoll = Math.cos(roll), sinRoll = Math.sin(roll); + if (ridingHead) { + const seam = (player.headRoll || 0) - Math.PI / 2; + filledCapsule(head.x + Math.cos(seam - .35) * r * .82, head.y + Math.sin(seam - .35) * r * .82, + head.x + Math.cos(seam + .35) * r * .82, head.y + Math.sin(seam + .35) * r * .82, + Math.max(1.5, r * .12), mixColor(color, [0, 0, 0], .35)); + } const spin = (x, y) => roll === 0 ? { x, y } : { x: head.x + (x - head.x) * cosRoll - (y - head.y) * sinRoll, y: head.y + (x - head.x) * sinRoll + (y - head.y) * cosRoll }; @@ -13565,6 +16760,51 @@ function drawFace(player, head, color, t, now = runtime().monotonicUs) { triangleDepth = bodyDepth; } +// A Glock-style pistol, drawn flat in screen space: a squared slide over a +// polymer frame, a trigger guard, and a grip raked back at the Glock's +// angle. `hand` is the fist, and the fist closes around the middle of the +// grip; `toward` is any point along the aim. Returns the muzzle. +function drawHandgun(hand, toward, facing, scale) { + let dx = toward.x - hand.x, dy = toward.y - hand.y; + const length = Math.hypot(dx, dy); + if (length < .001) { dx = facing || 1; dy = 0; } else { dx /= length; dy /= length; } + // "Down" for the gun: the side its grip hangs from, whichever way it aims. + const side = dx >= 0 ? 1 : -1; + const nx = -dy * side, ny = dx * side; + const s = Math.max(.35, scale); + const at = (along, below) => ({ x: gripTop.x + dx * along * s + nx * below * s, + y: gripTop.y + dy * along * s + ny * below * s }); + // The grip rakes back about 18 degrees from square to the slide. + const rake = .32, gx = nx * Math.cos(rake) - dx * Math.sin(rake), + gy = ny * Math.cos(rake) - dy * Math.sin(rake); + const gripTop = { x: hand.x - gx * 11 * s, y: hand.y - gy * 11 * s }; + const quad = (a, b, c, d, color) => { + screenTriangle(a.x, a.y, b.x, b.y, c.x, c.y, ...color); + screenTriangle(a.x, a.y, c.x, c.y, d.x, d.y, ...color); + }; + const slide = [34, 36, 42], frame = [52, 54, 60], edge = [92, 96, 106]; + // Grip: a slab from under the slide down past the fist. + const gripWide = 6.5; + const g = (along, down) => ({ x: gripTop.x + dx * along * s + gx * down * s, + y: gripTop.y + dy * along * s + gy * down * s }); + quad(g(-gripWide - 2, 0), g(gripWide, 0), g(gripWide, 27), g(-gripWide, 27), frame); + // Frame and dust cover under the slide, then the trigger guard. + quad(at(-8, 0), at(30, 0), at(30, 5), at(-6, 5), frame); + filledCapsule(at(8, 4).x, at(8, 4).y, at(17, 11).x, at(17, 11).y, Math.max(1.5, 3 * s), frame); + filledCapsule(at(17, 11).x, at(17, 11).y, at(20, 5).x, at(20, 5).y, Math.max(1.5, 3 * s), frame); + filledCapsule(at(11, 4).x, at(11, 4).y, at(12, 9).x, at(12, 9).y, Math.max(1, 2 * s), edge); + // The slide: long, square, the Glock's block over everything. + quad(at(-10, -10), at(36, -10), at(36, 0), at(-10, 0), slide); + // A top highlight and rear serrations keep it reading as machined steel. + filledCapsule(at(-9, -9.5).x, at(-9, -9.5).y, at(35, -9.5).x, at(35, -9.5).y, + Math.max(1, 1.4 * s), edge); + for (const along of [-7, -4.5, -2]) { + const a = at(along, -8), b = at(along, -2); + filledCapsule(a.x, a.y, b.x, b.y, Math.max(.8, 1 * s), edge); + } + return at(36, -5); +} + function itemForearm(player, geometry) { const arm = itemHand(player); return geometry.segments.find(segment => segment.part === arm && @@ -13589,7 +16829,7 @@ function drawInventory(player, now, geometry) { // A bash keeps the grenade visible in the fist; itemHandTarget already // parks both weapons on the swinging hand. const bashing = player.attackKind === "BASH" && itemSwinging(player, now); - if (player.swordHeld && player.gunAmmo <= 0 && !throwing && + if (player.swordHeld && !player.axeHeld && player.gunAmmo <= 0 && !throwing && hasPart(player, itemHand(player))) { // The hilt pins to the hand the silhouette actually draws — the far end // of the item arm's forearm capsule — and the blade lies along that @@ -13621,6 +16861,8 @@ function drawInventory(player, now, geometry) { // is which from across the map, the way the handle colors already do. // The hum lives in the halo's width: it breathes on the same clock the // pickups bob on, so a held saber is never a still object. + if(player.axeHeld)drawBigAxe(hand.x,hand.y,tipX,tipY,scale); + else { const hum = 1 + .12 * Math.sin(now / 82000); const halo = mixColor(player.color, [14, 20, 36], .35); filledCapsule(hand.x, hand.y, tipX, tipY, @@ -13639,10 +16881,15 @@ function drawInventory(player, now, geometry) { hand.x - alongX / length * 18 * scale, hand.y - alongY / length * 18 * scale, Math.max(2, 6 * scale), [34, 30, 40]); + } } } if ((player.gunAmmo > 0 || firing) && !throwing) { - const forearm = photoThemeActive ? itemForearm(player, geometry) : null; + // The gun lives in the fist the silhouette actually draws — the end of + // the item forearm — in every theme. The flat theme used to hang it on + // the aim solver's wrist, which the drawn arm doesn't reach while + // skating, pumping or swaying, so the grip floated beside the hand. + const forearm = itemForearm(player, geometry); const pose = gunPose(player, now); const projectedHand = projectPoint(pose.hand.x, pose.hand.y, pose.hand.z); // Render reactions and replay poses may move the drawn skeleton after @@ -13653,12 +16900,14 @@ function drawInventory(player, now, geometry) { const point = projectPoint(x, y, z); return {x:point.x + offsetX, y:point.y + offsetY}; }; - const barrel = projectWeapon(pose.muzzle.x, pose.muzzle.y, pose.muzzle.z); + let barrel = projectWeapon(pose.muzzle.x, pose.muzzle.y, pose.muzzle.z); const barrelWidth = Math.max(3, 9 * scale); const gripWidth = Math.max(2, 6 * scale); // Xbox batches its native line layer underneath GPU fighter triangles. // Held items therefore use the same depth-aware capsule path as the hand. - if (photoThemeActive) { + if (player.gunMode === "HANDGUN") { + barrel = drawHandgun(hand, barrel, player.facing, scale); + } else if (photoThemeActive) { // Place the photograph's grip at the solved wrist. Reflect its local X // before rotation so aiming left does not turn the grip upside down. const dx = barrel.x - hand.x, dy = barrel.y - hand.y; @@ -13706,14 +16955,12 @@ function drawInventory(player, now, geometry) { barrel.y+Math.sin(flashAngle)*flashSize*.43, flashSize,flashSize*.61,flashAngle,false,triangleDepth-.03,false); if (!photoFlash) { - const normalX = -pose.dy; - const normalY = pose.dx; - const flashA = projectWeapon( - pose.muzzle.x + pose.dx * 28 + normalX * 18, - pose.muzzle.y + pose.dy * 28 + normalY * 18, pose.muzzle.z); - const flashB = projectWeapon( - pose.muzzle.x + pose.dx * 28 - normalX * 18, - pose.muzzle.y + pose.dy * 28 - normalY * 18, pose.muzzle.z); + // A forked flash off the muzzle as drawn, in screen space, so it + // leaves whichever barrel the weapon actually has. + const ax = Math.cos(flashAngle), ay = Math.sin(flashAngle); + const reach = 28 * scale, spread = 18 * scale; + const flashA = { x: barrel.x + ax * reach - ay * spread, y: barrel.y + ay * reach + ax * spread }; + const flashB = { x: barrel.x + ax * reach + ay * spread, y: barrel.y + ay * reach - ax * spread }; filledCapsule(barrel.x, barrel.y, flashA.x, flashA.y, Math.max(2, 5 * scale), [255, 248, 190]); filledCapsule(barrel.x, barrel.y, flashB.x, flashB.y, @@ -13736,9 +16983,8 @@ function drawDigitalHeadBurst(player, headWorld, age) { const origin = projectPoint(headWorld.x, headWorld.y, headWorld.z); if (![origin.x, origin.y, origin.z].every(Number.isFinite) || Math.abs(origin.x) > 30000 || Math.abs(origin.y) > 30000) return; - const palette = [ - [255, 48, 96], [176, 18, 54], [255, 92, 126], - player.color, [116, 8, 38], + const palette = player.skin ? [player.color,player.hairColor||player.color,player.accent||player.color,player.shirtColor||[252,252,250]] : [ + [255,48,96],[176,18,54],[255,92,126],player.color,[116,8,38] ]; const directions = [-2.92, -2.61, -2.3, -2.01, -1.72, -1.43, -1.14, -.83, -.52, -.21, .1, .41, .72, 1.03]; @@ -13810,7 +17056,8 @@ function drawBrokenRunner(player, age) { triangleDepth = projectPoint(midX + dx, midY + dy, (segment.z1 + segment.z2) / 2 + dz).z; const width = Math.max(2, segment.width * cameraScale()); - if (photoThemeActive) photoLimb({x1:a.x,y1:a.y,x2:b.x,y2:b.y,width}, player.pad); + if (player.skin) drawSkeletonSegments([{...segment,x1:a.x,y1:a.y,x2:b.x,y2:b.y,width}],segment.role === "torso" ? player.shirtColor || [252,252,250] : player.color,outline,player); + else if (photoThemeActive) photoLimb({x1:a.x,y1:a.y,x2:b.x,y2:b.y,width}, player.pad); else { filledCapsule(a.x, a.y, b.x, b.y, width + 3, outline); filledCapsule(a.x, a.y, b.x, b.y, width, player.color); @@ -13833,7 +17080,141 @@ function drawDeathFlash() { triangleDepth = previousDepth; } +// A figure is drawn at the detail its size on screen can show. Full detail is +// ~90 native calls and ~2 ms of console JS per figure whatever its size, so a +// crowd or a wide shot multiplied that; small figures now drop the outfit, +// face and hair work first, then the outline pass, then all but a head and a +// torso. Held items, the shield and the hit flash survive every tier above the +// dot, because they are play. figureLodScale is the governor's: it lifts every +// threshold together while frames run long and eases back once there is room. +// @jeffrey, 2026-09-26: "i dont like when we lose visuals like the character +// outfit". Full detail holds down to a figure two thirds the size of a +// fighter at rest; the simpler tiers are for a far crowd and a wide zoom-out, +// where the outfit was sub-pixel anyway. Frame time is won in the renderer, +// not by undressing the cast. +const figureLodFull = 64, figureLodSimple = 34, figureLodDot = 12; +let figureLodScale = 1, figureFrameMs = 16.7, figureFrameAt = 0; +function governFigureLod(now) { + const elapsed = (now - figureFrameAt) / 1000; + figureFrameAt = now; + if (!(elapsed > 0 && elapsed < 50)) return; + figureFrameMs += (elapsed - figureFrameMs) * .1; + // The governor once lifted every threshold while frames ran long; that + // stripped outfits at normal zoom, so it now only keeps the measurement. + figureLodScale = 1; +} +// Each figure's last tier, for the hysteresis. Off the fighter: `paint` +// never writes a sim object — players ride structuredClone into rollback +// snapshots, and a render field there is a field the fight does not own. +const figureLodTiers = new WeakMap(); +function figureLod(player, geometry) { + const head = geometry.head; + let top = head.y - head.radius, bottom = head.y + head.radius; + for (const s of geometry.segments) { + if (s.hitboxOnly) continue; + if (s.y1 > bottom) bottom = s.y1; + if (s.y2 > bottom) bottom = s.y2; + if (s.y1 < top) top = s.y1; + if (s.y2 < top) top = s.y2; + } + const height = bottom - top, k = figureLodScale, previous = figureLodTiers.get(player) || 0; + const tierAt = (h) => h >= figureLodFull * k ? 0 : h >= figureLodSimple * k ? 1 + : h >= figureLodDot * k ? 2 : 3; + const forced = globalThis.__oskiewarFigureLod; + if (forced >= 0 && forced <= 3) { figureLodTiers.set(player, forced); return forced; } + let tier = tierAt(height); + if (clipView) return tier; // a second view judges size afresh; the stage keeps the memory + // Twelve percent of hysteresis, so a figure on a boundary does not flicker. + if (tier !== previous && tierAt(height * (tier > previous ? 1.12 : .88)) === previous) + tier = previous; + figureLodTiers.set(player, tier); + return tier; +} +// Which roles wear the trousers. The roles are a fixed vocabulary of a dozen +// strings, so the regex runs once per distinct role for the life of the +// piece instead of once per segment per frame — in QuickJS a regex literal +// is a fresh object every time the expression is reached. +const legRoles = new Map(); +function isLegRole(role) { + let leg = legRoles.get(role); + if (leg === undefined) legRoles.set(role, leg = /thigh|shin/.test(role || "")); + return leg; +} +function figurePartColor(player, segment) { + if (player.dummy) return [192, 188, 179]; + if (segment.role === "torso") return player.shirtColor || player.color; + if (isLegRole(segment.role)) return player.pantsColor || player.color; + return player.color; +} +function drawFigureLod(player, geometry, tier, t) { + const head = geometry.head, skin = player.dummy ? [192, 188, 179] : player.color; + if (tier === 3) { + const torso = geometry.segments.find((s) => s.role === "torso"); + if (torso) filledCapsule(torso.x1, torso.y1, torso.x2, torso.y2, + Math.max(2, torso.width), figurePartColor(player, torso)); + filledDisc(head.x, head.y, Math.max(1.5, head.radius), skin); + return; + } + if (player.skateboard) drawSkateboard(player); + const outline = player.hit > 0 ? [255, 232, 92] : [8, 12, 24]; + const edge = tier === 1 ? Math.max(1.25, Math.min(3, cameraScale() * 1.8)) : 0; + if (edge) { + for (const s of geometry.segments) if (!s.hitboxOnly) + filledCapsule(s.x1, s.y1, s.x2, s.y2, s.width + edge * 2, outline); + filledDisc(head.x, head.y, head.radius + edge, outline); + } + // The shirt reads as a shirt, not as a bone: the torso wears head width. + const shirt = (s) => s.role === "torso" && !player.dummy ? Math.max(s.width, head.radius * 1.1) : s.width; + if (edge) { + const torso = geometry.segments.find((s) => s.role === "torso" && !s.hitboxOnly); + if (torso) filledCapsule(torso.x1, torso.y1, torso.x2, torso.y2, shirt(torso) + edge * 2, outline); + } + for (const s of geometry.segments) if (!s.hitboxOnly) + filledCapsule(s.x1, s.y1, s.x2, s.y2, shirt(s), figurePartColor(player, s)); + filledDisc(head.x, head.y, head.radius, skin); + const r = head.radius; + if (!player.dummy) filledCapsule(head.x - r * .6, head.y - r * .56, head.x + r * .6, + head.y - r * .56, r * .8, player.hairColor || [40, 30, 35]); + if (tier === 1 && !player.dummy) { + for (const side of [-1, 1]) + filledDisc(head.x + side * r * .32 + (player.facing || 1) * r * .12, head.y + r * .1, + Math.max(1, r * .12), [23, 19, 29]); + } + const hitNow = runtime().monotonicUs; + if (player.hitSegment >= 0 && hitNow < player.hitSegmentUntil && + Math.floor(hitNow / 45000) % 2 === 0) { + const segment = geometry.segments[player.hitSegment]; + if (segment) filledCapsule(segment.x1, segment.y1, segment.x2, segment.y2, + segment.width + Math.max(3, 5 * cameraScale()), [255, 238, 102]); + } + const displayNow = player.frozenAt || hitNow; + drawInventory(player, displayNow, geometry); + drawHeldAxe(player, t); + if (player.blocking) { + const worldShield = shieldGeometry(player); + const shield = projectPoint(worldShield.x, worldShield.y, worldShield.z); + drawBubble(player, shield.x, shield.y, + Math.max(18, worldShield.radius * cameraScale()), hitNow / 1e6); + } +} + +// A dummy is drawn as a live, plain figure: the renderer reads a snapshot of +// the fighter with those few fields overlaid. The snapshot object is kept per +// dummy and refilled each frame (Object.assign onto a shape that already has +// every key is a run of plain writes) rather than spread into a new +// ~150-field object with fresh colour arrays every frame. Same fields, same +// values, same lifetime for anything written on it; only the allocation went. +const dummyViews = new WeakMap(); +const dummyInk = [192, 188, 179]; +const dummyOverlay = { alive: true, emo: false, color: dummyInk, handleColors: null, hairColor: dummyInk }; +function dummyView(player) { + let view = dummyViews.get(player); + if (!view) dummyViews.set(player, view = {}); + return Object.assign(view, player, dummyOverlay); +} function drawRunner(player, t, showLabel = true) { + if(player.civilian && player.headless){drawCivilianDebris(player);return;} + if(player.dummy)player=dummyView(player); // A fighter who is down is still on the stage: they read as the broken body // rather than as nothing. There is no state in which a fighter is skipped. const headBurstAge = player.headBustedAt @@ -13869,7 +17250,7 @@ function drawRunner(player, t, showLabel = true) { : player.frozenGeometry ? projectRunnerWorldGeometry(player.frozenGeometry) : runnerGeometry(player, t); - if (roundResult && player.resultReaction) { + if ((roundResult || parkSupply.ko?.settled) && player.resultReaction) { const age = (runtime().monotonicUs - player.resultReactionAt) / 1000000; const amount = player.resultReaction === "POSE" || player.resultReaction === "SULK" ? 3 : 8; @@ -13884,6 +17265,8 @@ function drawRunner(player, t, showLabel = true) { segment.y1 += dy; segment.y2 += dy; } } + const lod = figureLod(player, geometry); + if (lod > 0) { drawFigureLod(player, geometry, lod, t); return; } // Preserve the fighter's identity color during hit flash. A pure white body // disappeared against the daylight arena, so impact now changes only its rim. const color = player.color; @@ -13892,7 +17275,16 @@ function drawRunner(player, t, showLabel = true) { : [8, 12, 24]; const displayNow = player.frozenAt || runtime().monotonicUs; if (player.skateboard) drawSkateboard(player); + if (!player.dummy && (player.skin || player.pad === 0)) { + drawPonytail(player, player.replayGeometry || + player.frozenGeometry || runnerWorldGeometry(player, t)); + drawBow(player, "tails"); + } + if(player.spin)drawSpinArms(player,t,geometry,false,color,outline); drawFighterSilhouette(geometry, color, outline, player); + drawScars(player, geometry); + if (player.skin && !player.dummy) drawOutfit(player, geometry); + if (!player.dummy && (player.skin || player.pad === 0)) { drawHairline(player, geometry.head); drawBow(player, "loops"); } const hitNow = runtime().monotonicUs; if (player.hitSegment >= 0 && hitNow < player.hitSegmentUntil && Math.floor(hitNow / 45000) % 2 === 0) { @@ -13907,19 +17299,55 @@ function drawRunner(player, t, showLabel = true) { // grown from the old dummy door — but the wordmark screen is the // storefront, and whoever sits under it should look back. drawFace(player, geometry.head, contrastShadow(color), t, displayNow); + if(player.emo)drawEmoFringe(player,geometry.head); + if(player.dummy)drawFace(player,geometry.head,contrastShadow(color),t,displayNow); + if(player.spin)drawSpinArms(player,t,geometry,true,color,outline); drawInventory(player, displayNow, geometry); + drawHeldAxe(player,t); if (player.blocking) { const worldShield = shieldGeometry(player); const shield = projectPoint(worldShield.x, worldShield.y, worldShield.z); const radius = Math.max(18, worldShield.radius * cameraScale()); - const shieldColor = player.blockFlash > 0 ? [255, 255, 255] : player.color; - const outerWidth = Math.max(4, 11 * cameraScale()); - filledRing(shield.x, shield.y, radius, - Math.max(0, radius - outerWidth), shieldColor); + drawBubble(player, shield.x, shield.y, radius, runtime().monotonicUs / 1e6); } } +// The shield is a bubble: a thin soap film round the fighter. There is no +// alpha on the console, so the film is all rim — a band of thin-film colour +// that drifts round as the bubble turns, wobbling in and out a little, with +// a bright crescent where the light sits and a glint. A block flashes the +// whole film white. +function drawBubble(player, cx, cy, radius, clock) { + const flash = player.blockFlash > 0; + const width = Math.max(2.5, radius * .07); + const count = 28; + const film = [[255, 150, 214], [255, 226, 140], [150, 255, 200], [120, 214, 255], [196, 160, 255]]; + const at = (index) => { + const angle = index / count * Math.PI * 2; + const wobble = 1 + .035 * Math.sin(angle * 3 + clock * 5.5) + .02 * Math.sin(angle * 5 - clock * 3.1); + return { angle, x: cx + Math.cos(angle) * radius * wobble, y: cy + Math.sin(angle) * radius * wobble }; + }; + for (let index = 0; index < count; index++) { + const a = at(index), b = at(index + 1); + const hue = ((index / count + clock * .12) % 1 + 1) % 1 * film.length; + const low = Math.floor(hue) % film.length, high = (low + 1) % film.length; + const tint = mixColor(film[low], film[high], hue - Math.floor(hue)); + const color = flash ? [255, 255, 255] : mixColor(tint, player.color, .18); + filledCapsule(a.x, a.y, b.x, b.y, width, color); + } + // The light's crescent, upper left, and a glint beside it. + for (let index = 0; index < 5; index++) { + const from = Math.PI * 1.08 + index * .09, to = from + .09; + const r = radius * .8; + filledCapsule(cx + Math.cos(from) * r, cy + Math.sin(from) * r, + cx + Math.cos(to) * r, cy + Math.sin(to) * r, Math.max(2, width * (1.2 - Math.abs(index - 2) * .25)), + [252, 254, 255]); + } + filledDisc(cx + Math.cos(Math.PI * 1.62) * radius * .72, cy + Math.sin(Math.PI * 1.62) * radius * .72, + Math.max(1.5, width * .9), [255, 255, 255]); +} + function drawDiveMotion(player, t) { if (player.grounded || (!player.pounding && !player.pogoDive)) return; const level = player.pounding ? Math.max(1, player.poundLevel || 1) : 1; @@ -14018,13 +17446,17 @@ function drawDebugHitboxes(player, t) { const pushColor = [255, 158, 54]; const attackColor = [255, 58, 64]; const guardColor = [186, 118, 255]; + // Hitcubes: each box is drawn as the cube it is — its near and far faces + // and the four edges between them — so which lane a strike reaches shows. const draw = (b, color, width = 2) => { - const z = (b.near+b.far)/2; - const points = [[b.left,b.top],[b.right,b.top],[b.right,b.bottom],[b.left,b.bottom]] + const face = (z) => [[b.left,b.top],[b.right,b.top],[b.right,b.bottom],[b.left,b.bottom]] .map(([x,y])=>projectPoint(x,y,z)); + const near = face(b.near), far = face(b.far); for (let i=0;i<4;i++) { - const a=points[i], next=points[(i+1)%4]; - debugCapsule(a.x,a.y,next.x,next.y,width,color); + const next=(i+1)%4; + debugCapsule(near[i].x,near[i].y,near[next].x,near[next].y,width,color); + debugCapsule(far[i].x,far[i].y,far[next].x,far[next].y,Math.max(1,width-1),color); + debugCapsule(near[i].x,near[i].y,far[i].x,far[i].y,Math.max(1,width-1),color); } }; for (const b of boxes.hurt) draw(b,hurtColor); @@ -14140,6 +17572,7 @@ function drawFloatingHandle(player, x, y, size) { } function drawPlayerHandle(player, t, side) { + if(freeskateActive())return; const { x, y, size } = playerHandleLayout(player, side); const handle = visibleHandle(player); const drawGlyphs = (dx, dy, colors, fallback) => { @@ -14271,6 +17704,7 @@ function drawPlayerStats(player, side, t) { } function drawHudInventory(player, side) { + if(freeskateActive())return; const items = []; if (player.gunAmmo > 0) items.push("gun " + player.gunAmmo); if (player.grenadeAmmo > 0) items.push("grenade " + player.grenadeAmmo); @@ -14325,6 +17759,7 @@ function commandStreamStackHeight(player, now = runtime().monotonicUs) { } function drawCommandStream(player, side) { + if(freeskateActive()){drawSeatAction(player);return;} const glyph = { LEFT: "<", RIGHT: ">", UP: "^", DOWN: "v" }; const buttonFor = { LEFT: "ArrowLeft", RIGHT: "ArrowRight", UP: "ArrowUp", DOWN: "ArrowDown", "/": "A", "*": "B", ")": "X", @@ -14544,8 +17979,10 @@ function recordFightHit(sourcePad, decisive) { // still knows how far away its ends are. function clipSegmentBand(from, to) { const width = viewWidth(); - const minX = -width * guardBand, maxX = width * (1 + guardBand); - const minY = -viewHeight * guardBand, maxY = viewHeight * (1 + guardBand); + const minX = clipView ? clipView.x : -width * guardBand; + const maxX = clipView ? clipView.x + clipView.w : width * (1 + guardBand); + const minY = clipView ? clipView.y : -viewHeight * guardBand; + const maxY = clipView ? clipView.y + clipView.h : viewHeight * (1 + guardBand); // Most segments sit whole inside the band — every grass blade, most limbs. // Plain compares answer those; only a segment that actually crosses an // edge pays for the parametric walk and its rebuilt endpoints. @@ -14605,6 +18042,25 @@ function worldCapsule(x1, y1, z1, x2, y2, z2, width, color, triangleDepth = previousDepth; } +// The hall's light and air. Indoors, faces higher up the ramps catch more of +// the daylight through the glass and the bottom of the pipe sits a little +// darker; and everything fades toward the colour of the air with distance +// from the lens, which is what gives the room its depth. +function hallAir(color, a, b) { + if (!indoorSkate()) return color; + const height = clamp((floorY - (a.y + b.y) / 2) / halfpipeRadius, 0, 1); + const lift = .9 + height * .16; + let lit = [Math.min(255, color[0] * lift), Math.min(255, color[1] * lift), Math.min(255, color[2] * lift)]; + const distance = ((a.view?.z ?? 0) + (b.view?.z ?? 0)) / 2; + const start = cameraDoll.width * .9; + if (distance > start) { + const fog = Math.min(.28, (distance - start) / (cameraDoll.width * 2.8)); + const air = hallColors.wall; + lit[0] += (air[0] - lit[0]) * fog; lit[1] += (air[1] - lit[1]) * fog; lit[2] += (air[2] - lit[2]) * fog; + } + return lit; +} + function litQuadColor(a, b, c, color) { // Lighting is decided in world space, off the surface the quad names, so it // is the same shade however the clipper ends up cutting the face up. The @@ -14623,8 +18079,14 @@ function litQuadColor(a, b, c, color) { Math.round(color[1] * illumination), Math.round(color[2] * illumination)]; } +const quadView=[{},{},{},{}],quadScreen=[{},{},{},{}]; function worldQuad(a, b, c, d, color) { const lit = litQuadColor(a, b, c, color); + const va=cameraDoll.toView(a,quadView[0]),vb=cameraDoll.toView(b,quadView[1]),vc=cameraDoll.toView(c,quadView[2]),vd=cameraDoll.toView(d,quadView[3]); + if(va.z>=cameraNear && vb.z>=cameraNear && vc.z>=cameraNear && vd.z>=cameraNear){ + const pa=cameraDoll.projectView(va,quadScreen[0]),pb=cameraDoll.projectView(vb,quadScreen[1]),pc=cameraDoll.projectView(vc,quadScreen[2]),pd=cameraDoll.projectView(vd,quadScreen[3]); + if(bandContains(pa)&&bandContains(pb)&&bandContains(pc)&&bandContains(pd)){projectedTriangle(pa,pb,pc,lit);projectedTriangle(pa,pc,pd,lit);return;} + } worldTriangle(a, b, c, lit); worldTriangle(a, c, d, lit); } @@ -14657,7 +18119,23 @@ function rebuildTerrainProfile() { // this is for the ramps, where six samples a tile all survived. const terrainDrawProfile = []; const terrainDrawTolerance = 1; +// Level of detail keeps the contours true: wide shots draw thinner copies +// simplified to 3 and 8 world units — about a pixel at those lenses — never +// a stride that cuts across a curve. Every point of a copy lies on the real +// outline; only straight-enough runs lose points. +const terrainDrawProfiles = [terrainDrawProfile, [], []]; +const terrainDrawTolerances = [terrainDrawTolerance, 3, 8]; function rebuildTerrainDrawProfile() { + for (let level = 0; level < terrainDrawProfiles.length; level++) { + const kept = simplifyTerrain(terrainDrawTolerances[level]); + terrainDrawProfiles[level].splice(0, terrainDrawProfiles[level].length, ...kept); + } +} +const activeTerrainProfile = () => { + const lod = sceneLod(); + return terrainDrawProfiles[lod >= 4 ? 2 : lod >= 2 ? 1 : 0]; +}; +function simplifyTerrain(tolerance) { const kept = []; let anchor = 0; kept.push(terrainProfile[0]); @@ -14673,7 +18151,7 @@ function rebuildTerrainDrawProfile() { for (let between = anchor + 1; between < index; between++) { const point = terrainProfile[between]; const distance = Math.abs((point.x - a.x) * dy - (point.y - a.y) * dx) / length; - if (distance > terrainDrawTolerance) { fits = false; break; } + if (distance > tolerance) { fits = false; break; } } } if (!fits) { @@ -14681,7 +18159,7 @@ function rebuildTerrainDrawProfile() { kept.push(terrainProfile[anchor]); } } - terrainDrawProfile.splice(0, terrainDrawProfile.length, ...kept); + return kept; } rebuildTerrainProfile(); @@ -14729,10 +18207,15 @@ function terrainSkirtTiles(topLeft, topRight, bottomRight, bottomLeft, rows) { return true; } +// One number for how much detail the scene can afford at this lens: 1 up +// close, rising with the camera's width to 6 for a whole-course shot. +const sceneLod = () => cameraDoll.width > 2600 + ? clamp(Math.round(cameraDoll.width / 1800), 1, 6) : 1; + function terrainPass(left, right, zTop, zBottom, bottomY, shadeOf, tileRows = 1) { const { top, bottom } = terrainScratch; const wall = bottomY !== null; - const terrainProfile = terrainDrawProfile; + const terrainProfile = activeTerrainProfile(); const count = terrainProfile.length; let previous = -1; for (let index = 0; index < count; index++) { @@ -14759,7 +18242,7 @@ function terrainPass(left, right, zTop, zBottom, bottomY, shadeOf, tileRows = 1) previous = index; continue; } - const lit = litQuadColor(a1, a, b, shade); + const lit = hallAir(litQuadColor(a1, a, b, shade), a1, a); if (a1.inBand && a.inBand && b.inBand && b1.inBand) { projectedTriangle(a1.screen, a.screen, b.screen, lit); projectedTriangle(a1.screen, b.screen, b1.screen, lit); @@ -14778,11 +18261,14 @@ function terrainPass(left, right, zTop, zBottom, bottomY, shadeOf, tileRows = 1) // Per-segment surface shade, cached against the ground color it was mixed // from: the slope never changes between rebuilds, and mixing 240 colours a // frame was measurable on the console. +// Pastel tints for the pipe's facets: mint, lilac, sky, butter, pink. +const facetTints = [[150, 236, 192], [206, 170, 250], [150, 202, 252], [252, 226, 140], [252, 164, 204]]; let terrainShadeKey = ""; const terrainShades = []; function terrainSurfaceShades(color) { - const terrainProfile = terrainDrawProfile; - const key = color.join(",") + "/" + terrainProfile.length; + const terrainProfile = activeTerrainProfile(); + const key = color.join(",") + "/" + terrainDrawProfiles.indexOf(terrainProfile) + + "/" + terrainProfile.length; if (key === terrainShadeKey) return terrainShades; terrainShadeKey = key; terrainShades.length = 0; @@ -14790,17 +18276,61 @@ function terrainSurfaceShades(color) { const { x: x1, y: y1 } = terrainProfile[index - 1]; const { x: x2, y: y2 } = terrainProfile[index]; const slope = Math.abs(y2 - y1) / Math.max(1, x2 - x1); - terrainShades[index - 1] = - mixColor(color, [110, 120, 90], .16 + Math.min(1, slope) * .22); + let shade = mixColor(color, [110, 120, 90], .16 + Math.min(1, slope) * .22); + // Indoors each facet of the pipe wears its own tint from a set of warm + // tones, so the ramps read as faceted planes rather than one flat colour. + if (indoorSkate()) shade = mixColor(shade, facetTints[(index - 1) % facetTints.length], .42); + terrainShades[index - 1] = shade; } return terrainShades; } -function drawTerrainSurface(left, right, near, far, color) { +let pipeSurfaceMesh=null,pipeSurfaceKey=''; +function drawTerrainSurface(left,right,near,far,color){ + if(!indoorSkate()){drawTerrainSurfaceGeometry(left,right,near,far,color);return;} + const key=gridCols+':'+near+':'+far+':'+color.join(','); + if(key!==pipeSurfaceKey){pipeSurfaceKey=key;releaseQuadMesh(pipeSurfaceMesh);pipeSurfaceMesh=captureQuadMesh(()=>drawTerrainSurfaceGeometry(worldLeft,worldRight,near,far,color));} + drawQuadMesh(pipeSurfaceMesh); +} +function drawTerrainSurfaceGeometry(left, right, near, far, color) { const shades = terrainSurfaceShades(color); + if(indoorSkate()){ + for(const seg of parkSegments){ + if(seg.kind==='pond'||seg.from===10||seg.rightright)continue; + const steps=seg.kind==='transition'?16:1; + for(let i=0;i shades[segment]); } -function drawTerrainFrontWall(left, right, near, color) { +let pipeWallMesh=null,pipeWallKey=''; +function drawTerrainFrontWall(left,right,near,color){ + if(!indoorSkate()){drawTerrainFrontWallGeometry(left,right,near,color);return;} + const key=gridCols+':'+near+':'+color.join(','); + if(key!==pipeWallKey){pipeWallKey=key;releaseQuadMesh(pipeWallMesh);pipeWallMesh=captureQuadMesh(()=>drawTerrainFrontWallGeometry(worldLeft,worldRight,near,color));} + drawQuadMesh(pipeWallMesh); +} +function drawTerrainFrontWallGeometry(left, right, near, color) { + if(indoorSkate()){ + const z=near-2,bottom=tunnelBottom()+720; + const l=Math.max(gridLeft,left),r=Math.min(parkRight,right); + worldQuad({x:l,y:tunnelBottom(),z},{x:r,y:tunnelBottom(),z},{x:r,y:bottom,z},{x:l,y:bottom,z},color); + for(const segment of parkSegments){ + if(segment.rightr || segment.kind==='pond' || segment.from===10)continue; + const steps=segment.kind==='transition'?12:1; + for(let i=0;i wall, reel ? 1 : 4); + terrainPass(left, right, wallZ, wallZ, wallBottom, () => wall, reel || consoleHost() ? 1 : 4); } function drawTerrainBackWall(left, right, far, color) { + if(indoorSkate())return; // The far edge was simply open. Yaw clamps at +/-.62rad, which is more than // enough to swing the diorama around and look straight through the back of // the slab into the buried room wall. The near edge has hung a skirt since @@ -15094,16 +18625,53 @@ function shadowSurfaceY(x, y) { // fighter's depth still bounds it from the front, so the shadow never // draws over the feet it is cast from. Limbs end in round caps, the way the // bodies do, instead of notching at every joint. +// The console's shadow is a blob: one soft oval on the floor under the +// fighter, smaller and fainter the higher they are. Projecting every limb +// onto a curved floor point by point cost the Xbox three milliseconds a +// frame; the web and Mac hosts keep the pose-shaped shadow. +function drawBlobShadow(player, color) { + const floor = shadowSurfaceY(player.x, player.y); + const height = Math.max(0, floor - player.y); + const fade = clamp(1 - height / 900, .15, 1); + const radiusX = 62 * (.55 + .45 * fade), radiusZ = radiusX * .42; + const ink = mixColor(visualTheme.light > .5 ? [205, 210, 222] : [24, 28, 40], color, fade); + const center = { x: player.x, y: floor - 2, z: player.z }; + for (let side = 0; side < 10; side++) { + const a = side / 10 * Math.PI * 2, b = (side + 1) / 10 * Math.PI * 2; + worldTriangle(center, + { x: player.x + Math.cos(a) * radiusX, y: shadowSurfaceY(player.x + Math.cos(a) * radiusX, floor) - 2, + z: player.z + Math.sin(a) * radiusZ }, + { x: player.x + Math.cos(b) * radiusX, y: shadowSurfaceY(player.x + Math.cos(b) * radiusX, floor) - 2, + z: player.z + Math.sin(b) * radiusZ }, ink); + } +} + function drawPoseShadow(player, t, color) { + // Every limb, the head and the board cast their own shape. On the console + // the floor is read once per ten units and cached for the frame, and caps + // and the head use fewer sides — the per-vertex floor lookups were what + // cost it three milliseconds, not the shape. + const lite = consoleHost(); const world = player.replayGeometry || player.frozenGeometry || runnerWorldGeometry(player, t); const surface = shadowSurfaceY(player.x, player.y); const behindFighter = projectPoint(player.x, player.y, player.z).z + .004; + const floorCache = new Map(); + const floorAt = (x) => { + if (!lite) return shadowSurfaceY(x, surface - 5); + const key = Math.round(x / 10); + let y = floorCache.get(key); + if (y === undefined) { y = shadowSurfaceY(key * 10, surface - 5); floorCache.set(key, y); } + return y; + }; const project = (x, y, z) => { const height = Math.max(0, surface - y); const sx = clamp(x + globalLight.x / globalLight.y * height, worldLeft, worldRight); const sz = clamp(z + globalLight.z / globalLight.y * height, worldNear + 4, worldFar - 4); - const point = projectPoint(sx, shadowSurfaceY(sx, surface - 5) - 2, sz); - point.z = Math.max(point.z - .003, behindFighter); + const point = projectPoint(sx, floorAt(sx) - 2, sz); + // On the floor's own surface, just above it. Fighters now stand at the + // floor's near edge, so a shadow there is still behind them — and it is + // no longer buried under the near half of the floor. + point.z -= .002; return point; }; const drawable = (...values) => values.every(value => @@ -15120,9 +18688,10 @@ function drawPoseShadow(player, t, color) { a = onFloor(a); b = onFloor(b); c = onFloor(c); emitTriangle(a.x, a.y, a.z, b.x, b.y, b.z, c.x, c.y, c.z, ...color); }; + const capSides = lite ? 4 : 6; const cap = (center, radius) => { - for (let side = 0; side < 10; side++) { - const a = side * Math.PI / 5, b = (side + 1) * Math.PI / 5; + for (let side = 0; side < capSides; side++) { + const a = side * Math.PI * 2 / capSides, b = (side + 1) * Math.PI * 2 / capSides; face(center, { x: center.x + Math.cos(a) * radius, y: center.y + Math.sin(a) * radius, z: center.z }, { x: center.x + Math.cos(b) * radius, y: center.y + Math.sin(b) * radius, z: center.z }); @@ -15143,9 +18712,18 @@ function drawPoseShadow(player, t, color) { cap(a, radius); cap(b, radius); } + if (player.skateboard) { + // The deck's own shadow: its outline, cast like everything else. + const deck = skateFrame(player.skateStall ? stallBoardPlayer(player) : player); + const corners = [[-60, -10], [60, -10], [60, 10], [-60, 10]] + .map(([along, across]) => { const p = deck(along, -2, across); return project(p.x, p.y, p.z); }); + face(corners[0], corners[1], corners[2]); + face(corners[0], corners[2], corners[3]); + } const head = project(world.head.x, world.head.y, world.head.z); - for (let side = 0; side < 12; side++) { - const a = side * Math.PI / 6, b = (side + 1) * Math.PI / 6; + const headSides = lite ? 8 : 12; + for (let side = 0; side < headSides; side++) { + const a = side * Math.PI * 2 / headSides, b = (side + 1) * Math.PI * 2 / headSides; face(head, project(world.head.x + Math.cos(a)*world.head.radius, world.head.y, world.head.z + Math.sin(a)*world.head.radius), @@ -15222,50 +18800,120 @@ function projectedBallRadius(ball) { return Math.max(.5, Math.abs(edge.x - center.x)); } -function drawSkateboard(player) { - const at = skateFrame(player); - if (photoThemeActive) { - const centerWorld = at(0, 5, 0); - const center = projectPoint(centerWorld.x, centerWorld.y, centerWorld.z); - const left = at(-64, 5, 0), right = at(64, 5, 0); - const a = projectPoint(left.x,left.y,left.z), b = projectPoint(right.x,right.y,right.z); - const width = Math.hypot(b.x-a.x,b.y-a.y); - photoSprite("skateboard", center.x, center.y, width, width * 136 / 412, - Math.atan2(b.y-a.y,b.x-a.x), false, center.z - .01); - return; - } - const deck = [236, 76, 118], grip = [34, 25, 39], truck = [174, 184, 202]; - const quad = (a, b, c, d, color) => worldQuad(at(...a), at(...b), at(...c), at(...d), color); - const axle = (a, b, width, color) => { +// Trucks and wheels as parts of their own under a photographed deck: metal +// hangers down to each axle, and four wheels that roll — urethane in the +// photograph's colour, a darker lip, a silver bearing, and a spin mark that +// turns with the distance the board has covered. +// A skate truck, between its pair of wheels: a baseplate bolted under the +// deck, the kingpin's two urethane bushings, and a cast hanger from the pivot +// down to the axle and out across to both wheels. Shaded rather than flat — +// a dark underside, the aluminium body, a bright top edge — so it reads as a +// solid casting. The deck end rides the suspension (`skateFrame` sinks it), +// the axle end stays with the wheels, so the bushings visibly squash. +function drawTruck(at, along, scale) { + const inward = along > 0 ? -1 : 1; + const capsule = (a, b, width, color) => { const p = at(...a), q = at(...b); - worldCapsule(p.x, p.y, p.z, q.x, q.y, q.z, Math.max(.4, width * cameraScale()), color); + worldCapsule(p.x, p.y, p.z, q.x, q.y, q.z, Math.max(.4, width * scale), color); }; - // Far wheels, deck, near wheels: preserve occlusion in the Canvas2D host. + const steel = [104, 108, 120], body = [182, 188, 200], shine = [236, 240, 248], + shadow = [112, 118, 132], bushing = [236, 128, 46]; + if(scale<.65){ + capsule([along-8,1,0],[along+8,1,0],3,steel); + capsule([along,1,0],[along,skateAxleDrop,0],6,body); + capsule([along,skateAxleDrop,-16],[along,skateAxleDrop,16],3,steel);return; + } + // Baseplate under the deck (this end sinks with the deck). + capsule([along - 8, .6, 0], [along + 8, .6, 0], 3, steel); + // Kingpin with its bushings, squashed between plate and hanger. + capsule([along + inward * 3, 1, 0], [along + inward * 3.5, skateAxleDrop - 4, 0], 2, steel); + capsule([along + inward * 3, 1.4, -3], [along + inward * 3, 1.4, 3], 4.5, bushing); + // The hanger: pivot to axle, shaded underside / body / top edge. + capsule([along + inward * 5, 2, 0], [along, skateAxleDrop, 0], 7.5, shadow); + capsule([along + inward * 5, 1.6, 0], [along, skateAxleDrop - .6, 0], 5.5, body); + capsule([along + inward * 5.4, 1.2, 0], [along - inward * .6, skateAxleDrop - 2.4, 0], 1.6, shine); + // Across, between the wheels: the hanger's arms and the axle ends. + capsule([along, skateAxleDrop - .5, -11], [along, skateAxleDrop - .5, 11], 5.5, body); + capsule([along, skateAxleDrop - 2.6, -11], [along, skateAxleDrop - 2.6, 11], 1.4, shine); + capsule([along, skateAxleDrop, -16], [along, skateAxleDrop, 16], 2, steel); +} + +function drawBoardRunningGear(player, at, nearSide, urethane) { + const scale = cameraScale(); + for (const along of [-skateTruck, skateTruck]) drawTruck(at, along, scale); + const spin = player.skateSpin || 0; const wheel = (along, side) => { - const spin = player.skateSpin || 0; const center = at(along, skateAxleDrop, side * 15); - for (let i = 0; i < 10; i++) { - const a = spin + i * Math.PI / 5, b = spin + (i + 1) * Math.PI / 5; - worldTriangle(center, - at(along + Math.cos(a) * skateWheelRadius, - skateAxleDrop + Math.sin(a) * skateWheelRadius, side * 15), - at(along + Math.cos(b) * skateWheelRadius, - skateAxleDrop + Math.sin(b) * skateWheelRadius, side * 15), - i % 5 === 0 ? truck : [243, 210, 103]); - } + const point = projectPoint(center.x, center.y, center.z); + if (![point.x, point.y].every(Number.isFinite)) return; + const radius = Math.max(1.5, skateWheelRadius * scale); + const shade = side === nearSide ? 0 : .35; + const previous = triangleDepth; + // The near wheels sit in front of the trucks, the far ones behind them. + triangleDepth = point.z + (side === nearSide ? -.006 : .006); + filledDisc(point.x, point.y, radius, mixColor(mixColor(urethane, [90, 36, 10], .45), [0, 0, 0], shade)); + filledDisc(point.x, point.y, radius * .86, mixColor(urethane, [0, 0, 0], shade)); + filledDisc(point.x, point.y, radius * .42, [44, 42, 46]); + filledDisc(point.x, point.y, radius * .3, mixColor([206, 210, 220], [0, 0, 0], shade)); + const mark = (turn, inner, outer, color) => screenTriangle( + point.x + Math.cos(spin + turn) * radius * inner, point.y + Math.sin(spin + turn) * radius * inner, + point.x + Math.cos(spin + turn) * radius * outer, point.y + Math.sin(spin + turn) * radius * outer, + point.x + Math.cos(spin + turn + .45) * radius * outer, point.y + Math.sin(spin + turn + .45) * radius * outer, + ...color); + mark(0, .45, .82, mixColor(urethane, [255, 255, 255], .35)); + mark(Math.PI, .45, .82, mixColor(urethane, [80, 30, 8], .3)); + triangleDepth = previous; }; - const near = cameraDoll.position.z < player.z ? -1 : 1; - for (const along of [-skateTruck, skateTruck]) wheel(along, -near); - quad([-48, -4, -12], [48, -4, -12], [48, -4, 12], [-48, -4, 12], grip); - quad([-48, -4, near * 12], [48, -4, near * 12], [48, 0, near * 12], [-48, 0, near * 12], deck); - for (const end of [-1, 1]) - quad([end * 48, -4, -12], [end * 64, -12, -10], - [end * 64, -12, 10], [end * 48, -4, 12], deck); - for (const along of [-skateTruck, skateTruck]) { - axle([along, 0, 0], [along, skateAxleDrop, 0], 4, truck); - axle([along, skateAxleDrop, -15], [along, skateAxleDrop, 15], 3, truck); - wheel(along, near); - } + for (const along of [-skateTruck, skateTruck]) wheel(along, -nearSide); + for (const along of [-skateTruck, skateTruck]) wheel(along, nearSide); +} + +function drawSkateboard(player) { + if (player.onewheel) { drawMonowheel(player); return; } + // On the coping the board is pressed to the wall under the rider's feet. + if (player.skateStall && player.skateboard) player = stallBoardPlayer(player); + const at = spunSkateFrame(skateFrame(player), player); + // One modelled board in every theme and from every angle — a side-on + // photograph read as nothing once the lens looked down on the park. The + // deck is cross-sections along its length: full width through the middle, + // rounding off at nose and tail, and kicking up past the trucks. Black grip + // on top, the maple plies round the edge, the graphic underneath (seen + // whenever it flips). Trucks and wheels are their own parts below. + const grip = [30, 30, 36], ply = [222, 182, 128], plyDark = [176, 132, 84]; + const graphic = mixColor(player.color || [236, 76, 118], [236, 76, 118], .35); + const stations = [-64, -58, -50, -44, 44, 50, 58, 64]; + const half = (along) => { + const past = Math.max(0, Math.abs(along) - 48) / 16; + return 12 * Math.sqrt(Math.max(0, 1 - past * past * .82)); + }; + const lift = (along) => { + const past = Math.max(0, Math.abs(along) - 42) / 22; + return -9 * past ** 1.4; + }; + const thick = 3.2; + const top = (along, side) => at(along, -4 + lift(along), side * half(along)); + const bottom = (along, side) => at(along, -4 + thick + lift(along), side * half(along) * .96); + const nearSide = cameraDoll.position.z < player.z ? -1 : 1; + for (let index = 0; index + 1 < stations.length; index++) { + const a = stations[index], b = stations[index + 1]; + worldQuad(bottom(a, -1), bottom(b, -1), bottom(b, 1), bottom(a, 1), graphic); + worldQuad(top(a, nearSide), top(b, nearSide), bottom(b, nearSide), bottom(a, nearSide), + index % 2 ? ply : plyDark); + worldQuad(top(a, -nearSide), top(b, -nearSide), bottom(b, -nearSide), bottom(a, -nearSide), plyDark); + worldQuad(top(a, -1), top(b, -1), top(b, 1), top(a, 1), grip); + } + // Nose and tail end caps. + for (const end of [stations[0], stations[stations.length - 1]]) + worldQuad(top(end, -1), top(end, 1), bottom(end, 1), bottom(end, -1), ply); + // Cracks and chips in the grip, as the board takes damage. + for (const crack of boardCondition(player.boardObject || balls[player.skateBoardId ?? 1]).cracks) { + const c = Math.cos(crack.angle), s = Math.sin(crack.angle); + const a = at(crack.along - c * crack.length / 2, -4.4 + lift(crack.along), crack.across - s * crack.length / 2); + const b = at(crack.along + c * crack.length / 2, -4.4 + lift(crack.along), crack.across + s * crack.length / 2); + worldCapsule(a.x, a.y, a.z, b.x, b.y, b.z, Math.max(.6, 1.6 * cameraScale()), [214, 176, 124]); + } + drawBoardRunningGear(player, at, nearSide, + photoThemeActive ? [232, 112, 34] : [30, 32, 40]); } function drawBall(ball) { @@ -15295,7 +18943,7 @@ function drawBall(ball) { }; if (skateboard) { drawSkateboard({ x: ball.x, y: ball.y + skateAxleDrop + skateWheelRadius, - z: ball.z, skatePitch: ball.rotation, skateSpin: ball.skateSpin || 0 }); + z: ball.z, spin:ball.spatialSpin?{angle:ball.yaw}:null, skatePitch: ball.rotation, skateSpin: ball.skateSpin || 0, boardObject: ball }); return; } if (beach) { @@ -15914,10 +19562,11 @@ function drawDummyPopLine(titleY, titleSize, transitionInk) { typeWrite(line, x, y, size, ...ink); } +const titlePrompt = () => freeskateRequested() ? "freeskate" : "start"; function titleButtonRect() { const compact = compactLayout(); const textSize = compact ? 64 : 60; - const textWidth = handleWidth("start", textSize); + const textWidth = handleWidth(titlePrompt(), textSize); const width = Math.min(viewWidth() - 48, compact ? 320 : 360); const height = 112; return { x: viewCenterX() - width / 2, @@ -16063,7 +19712,7 @@ function drawTitleScreen(t, ink, transitionAge = -1) { } } - const prompt = "start"; + const prompt = titlePrompt(); const button = titleButtonRect(); const hovered = Boolean(pointer) && pointInRect(pointer, button); if (globalThis.__oskiewarTouch) { @@ -16252,6 +19901,11 @@ function drawStatusPiano(x, y, lit) { } function drawHudStatusTray(clock, ink, unixMs) { + const hudPreviousDepth=triangleDepth; + drawParkSupply(); + drawUnderPipe(); + drawWaterSplashes(); + triangleDepth=hudPreviousDepth; const tray = hudStatusTray(clock); const statusCell = statusCellSize(); // Debug is global state, so its large indicator owns bottom-center rather than @@ -16279,6 +19933,13 @@ function drawHudStatusTray(clock, ink, unixMs) { top + statusCell / 2 + 2, scale, agents); } } + if(freeskateActive()){ + const safe=hudSafeRect(),run=runtime(),fps=run.frameMs?Math.round(1000/run.frameMs):Math.round(displayFps||0); + const old=triangleDepth;triangleDepth=hudDepth; + if(debugHitboxes)seatHudText(fps+' FPS',safe.left+12,safe.top+12,28,[245,240,247]); + if(freeskateSecond && !players[1].dummy)seatHudText('P1 '+players[0].score+' : '+players[1].score+' P2',safe.left+12,safe.top+50,25,[238,229,247]); + triangleDepth=old; + } if (!tray) return; const lit = typeof capabilities === "function" && unixMs - (capabilities().midiPulse || 0) < 140; @@ -16332,7 +19993,10 @@ function spectatorQrBox() { // Where the bare frame rate shows with the overlay off: the console, in a // fight. The debug read-out itself never asks which screen it is on. -const bareFrameRateShown = () => nativeTrianglePass && shellMode === "GAME"; +// @jeffrey, 2026-09-26: "fps shouldn't appear unless we are in debug view" — +// the bare console read-out from 2026-09-20 is retired; the number lives +// behind the debug toggle everywhere. +const bareFrameRateShown = () => false; function drawDebugPerformance(ink) { // The wordmark screen used to hide this row, but the title is a running // fight with a frame budget of its own — debug mode reads the machine, not @@ -16344,7 +20008,7 @@ function drawDebugPerformance(ink) { // playing lets still show fps in hud". One short word, so the read-out // costs the frame it measures almost nothing. const bare = !debugHitboxes; - if (bare) return; + if (bare && (freeskateActive() || !bareFrameRateShown())) return; const metaSize = debugReadoutMetaSize(); const run = runtime(); // Every line waits for a real measurement. The read-out used to answer with @@ -16379,8 +20043,14 @@ function drawDebugPerformance(ink) { // The bottom-left corner belongs to a fighter's nameplate, so the read-out // stacks upward from just above it instead of printing across a handle. The // ammo row keeps its own lane a stat card further up, well clear of this. - const lane = playerHandleLayout(players[0], 0); - let y = lane.y - metaSize - 6; + // Top right, clear of the nameplates and the debug dump that fill the + // bottom-left corner — it used to print there, under both. And the rate + // is the console's real one: the paint counter said 60 while the host was + // measuring 38 Hz on a 26 ms frame. + const hostRate = frameMs ? Math.round(1000 / frameMs) + " fps" : rate; + const safeTop = hudSafeRect(); + const lane = { x: 0, y: safeTop.top + metaSize + 40 }; + let y = lane.y; // One line of proof per debug toggle: the console renders this read-out // where no devtools can confirm it, so the Device Portal log gets told the // row was actually drawn, with what, and where. @@ -16390,11 +20060,13 @@ function drawDebugPerformance(ink) { " | lane=" + Math.round(lane.x) + "," + Math.round(y) + " session=" + sessionName); } - for (const [index, label] of [rate + surface, timing].entries()) { + for (const [index, label] of [hostRate + surface, timing].entries()) { if (!label) continue; const size = index ? debugReadoutTimingSize() : metaSize; - typeWrite(label, lane.x, y, size, ...ink); - y -= size + 5; + const x = safeTop.right - handleWidth(label, size); + typeWrite(label, x + 2, y + 3, size, ...contrastShadow(ink)); + typeWrite(label, x, y, size, ...ink); + y += size + 5; } } @@ -16641,12 +20313,6 @@ function drawDetachedPart(fragment) { Math.abs(second.x) + margin > 30000 || Math.abs(second.y) + margin > 30000 || Math.hypot(second.x - first.x, second.y - first.y) > 30000) return; - if (photoThemeActive) { - // Ownership changes when a limb is hit; its material keeps its source color. - const seat = fragment.color[1] > fragment.color[0] ? 1 : 0; - photoLimb({x1:first.x,y1:first.y,x2:second.x,y2:second.y,width}, seat); - return; - } filledCapsule(first.x, first.y, second.x, second.y, width + 3, [9, 12, 22]); drawPaletteCapsule({ x1: first.x, y1: first.y, x2: second.x, y2: second.y, width, part: fragment.part }, fragment.colors, @@ -16719,7 +20385,30 @@ function drawTitleHeadDoor(t, ink, suppressed) { typeWrite(label, left, top, size, ...glow); } +// The console's post pass blurs on the GPU, where the frame has room: camera +// motion blur across this frame's travel, and a tilt-shift band that keeps the +// fighters sharp and softens the street above and the water below. The HUD +// stays sharp in the shader. __oskiewarPost = false turns both off. +let postCameraX = null, postCameraY = null; +function steerPostEffects() { + if (!nativePostEffects) return; + const on = globalThis.__oskiewarPost !== false && shellMode === "GAME" && !selecting; + if (!on) { postCameraX = null; nativePostEffects(.5, 1, .2, 0, 0, 0); return; } + const scale = cameraScale(); + const moveX = postCameraX === null ? 0 : (cameraCenter - postCameraX) * scale * .6; + const moveY = postCameraY === null ? 0 : (cameraCenterY - postCameraY) * scale * .6; + postCameraX = cameraCenter; postCameraY = cameraCenterY; + let focus = 0, count = 0; + for (const p of activePlayers()) if (p.alive) { + focus += projectPoint(p.x, p.y - 80, p.z || 0).y; count++; + } + const focusY = count ? clamp(focus / count / viewHeight, .15, .85) : .55; + nativePostEffects(focusY, .16, .24, 4, clamp(moveX, -24, 24), clamp(moveY, -24, 24)); +} + function gamePaint() { + governFigureLod(runtime().monotonicUs); + steerPostEffects(); syncGameView(); globalThis.__oskiewarLocalVersus = localVersusActive(); const run = runtime(); @@ -16741,12 +20430,20 @@ function gamePaint() { // rate, because the host's profile numbers never made it off the Xbox. globalThis.__oskiewarDisplayFps = displayFps; if (lastPaintAt > 0 && run.monotonicUs > lastPaintAt) { - const sample = clamp(1000000 / (run.monotonicUs - lastPaintAt), 1, 240); + const sample = clamp(gameSpeed * 1000000 / (run.monotonicUs - lastPaintAt), 1, 240); displayFps = displayFps ? lerp(displayFps, sample, .12) : sample; } lastPaintAt = run.monotonicUs; const t = (run.monotonicUs - startedAt) / 1000000; - if (typeof ac === "function") acFeed = ac(); + // The feed is a native object graph (fighters, moods, the signed-in + // player) rebuilt on every call; a sign-in or a mood is news at one hertz. + // The age test is written so a null stamp and a clock that stepped back + // (a rollback session's origin) both read as "due". + const acFeedAge = run.monotonicUs - acFeedAt; + if (hostAc && !(acFeedAge >= 0 && acFeedAge < 1000000)) { + acFeed = hostAc(); + acFeedAt = run.monotonicUs; + } syncSignedInFighter(); const localNation = typeof capabilities === "function" ? String(capabilities().country || "").toUpperCase() : ""; @@ -16832,7 +20529,7 @@ function gamePaint() { // The intro deliberately owns its lens: wide title, two face portraits, // then a pullback. Final-frame containment would widen every portrait until // both fighters fitted, erasing the zoom story it was meant to protect. - if (!inRoundIntro && (cinematicAge < 0 || cinematicAge >= 1.45)) + if (!parkSupply.ko && !inRoundIntro && (cinematicAge < 0 || cinematicAge >= 1.45)) containFighters(t); cameraDoll.prepare(); const { left: spanLeft, right: spanRight, @@ -16849,9 +20546,14 @@ function gamePaint() { // the padded-room look. const groundNear = reelGroundCamera() ? Math.min(worldNear, cameraDoll.position.z - 400) : worldNear; - drawTerrainBackWall(spanLeft, spanRight, worldFar, ground); - drawTerrainSurface(spanLeft, spanRight, groundNear, worldFar, ground); - drawTerrainFrontWall(spanLeft, spanRight, groundNear, ground); + // Indoors each layer wears its own colour: the ramps' tan skin, their + // plywood structure in the foreground, and the hall behind (see + // `hallPalette`), so the playable surface is the thing that reads. + const hall = indoorSkate() ? hallPalette() : null; + drawTerrainBackWall(spanLeft, spanRight, worldFar, hall ? hall.structure : ground); + drawTerrainSurface(spanLeft, spanRight, groundNear, worldFar, hall ? hall.ramp : ground); + drawTerrainFrontWall(spanLeft, spanRight, groundNear, hall ? hall.structure : ground); + drawDecals(hall ? hall.ramp : ground); drawSkateParkFeatures(ground); // No grass in vacuum. The blades were the tower's lawn and the cube kept // them out of habit; on a hull they read as moss on a spaceship. @@ -16873,6 +20575,8 @@ function gamePaint() { ? mixColor(platformColor, [196, 224, 255], .62) : mixColor(platformColor, [26, 24, 34], .42); if (platformsEnabled()) for (const ledge of activeLedges()) { + // The glass roof and the funboxes draw themselves (`drawIndoorHall`). + if (ledge.glass || ledge.cube) continue; if (ledge.right < spanLeft || ledge.left > spanRight) continue; if (ledge.y < spanTop || ledge.y > spanBottom) continue; const ledgeLeft = Math.max(ledge.left, spanLeft); @@ -16901,7 +20605,7 @@ function gamePaint() { if (renderFlags.shadows !== false) { for (const player of activePlayers()) if (player.alive || roundResult || deathCinematic) { - if (renderFlags.poseShadows !== false) drawPoseShadow(player, t, shadowInk); + if (renderFlags.poseShadows !== false && !consoleHost()) drawPoseShadow(player, t, shadowInk); drawSpotShadow(player.x, player.y, player.z, player.ducking ? 52 : 64, shadowInk); } @@ -17007,6 +20711,11 @@ function gamePaint() { ...activePlayers().map((item) => ({ kind: "player", item, x: item.x, y: item.y, z: item.z })), ]; + if(freeskateActive())for(const item of parkKids){ + const p=projectPoint(item.x,item.y-90,item.z); + if(p.x>-150 && p.x-200 && p.y dot3({ x: item.x - cameraDoll.position.x, y: item.y - cameraDoll.position.y, @@ -17014,10 +20723,21 @@ function gamePaint() { }, viewDirection); renderables.sort((a, b) => depth(b) - depth(a)); for (const renderable of renderables) { + const center=projectPoint(renderable.x,renderable.y-80,renderable.z),margin=Math.max(90,260*cameraScale()); + if(center.x < -margin || center.x>viewWidth()+margin || center.y < -margin || center.y>viewHeight+margin)continue; triangleDepth = projectPoint(renderable.x, renderable.y, renderable.z).z; + // A fighter is drawn flat at one depth. Taken at their feet — the middle + // of the floor — the near half of the floor was closer than that, and + // from a raised lens it cut their legs off at the shins. Standing them at + // the floor's near edge keeps the whole body in front of the ground they + // are standing on. + if (renderable.kind === "player") + triangleDepth = Math.min(triangleDepth, + projectPoint(renderable.x, renderable.y, worldNear + 2).z); if (renderable.kind === "bullet") drawBullet(renderable.item); else if (renderable.kind === "grenade") drawGrenade(renderable.item); else if (renderable.kind === "ball") drawBall(renderable.item); + else if (renderable.kind === "monowheel") drawMonowheel(renderable.item); else if (renderable.kind === "detached") drawDetachedPart(renderable.item); else { drawDiveMotion(renderable.item, t); @@ -17030,8 +20750,7 @@ function gamePaint() { // It must remain visible through fighter bodies without cutting across the // title, controls, command notation, names, clock, or other HUD furniture. triangleDepth = -1.4; - drawDebugHitboxes(players[0], t); - if (!survivalActive()) drawDebugHitboxes(players[1], t); + for(const p of activePlayers()){drawDebugHitboxes(p,t);if(debugHitboxes)drawAxeHitbox(p,t);} for (const player of players) drawBotScene(player); drawBallHitboxes(); drawSafeZones(); @@ -17058,7 +20777,11 @@ function gamePaint() { // self-play and marketing reels have no learner to serve. if (!replayOven && !selfPlay && renderFlags.keys !== false) drawControlLegend(titleInk); - if (freeskateActive()) drawFreeskateSpeed(); + if (freeskateActive() && shellMode === "GAME") { + drawFreeskateSpeed(titleInk); + if(!freeskateActive())drawTrickWindows(); + drawFreeskateMenu(titleInk); + } const resultUiReady = cinematicAge < 0 || cinematicAge >= 1.1; // A reel opens on the matchup. Both names, both palettes, stacked up top // where the fighters are not — a stranger scrolling past should know who is @@ -17104,8 +20827,7 @@ function gamePaint() { const replayLabel = "REPLAY " + frame + "/" + instantReplay.frames.length; typeWrite(replayLabel, viewCenterX() - replayLabel.length * 10, 820, 30, ...titleInk); - drawCenteredKeycapRun(replayControlKeys(instantReplay.paused), - 940, 19, inputPads[0]?.down || [], titleInk); + // Watch-only: no control hints under a replay. } else { const result = resultCardText(); // The round's outcome, said plainly and large: a small mark up in the @@ -17140,7 +20862,7 @@ function gamePaint() { if (!survivalActive() && matchHud && !reelMinimal && shellMode === "GAME" && ((roundResult && resultUiReady) || (!roundResult && introAge >= roundIntroDurationUs()))) { - const hudPlayers = spatialHudPlayers(); + const hudPlayers = freeskateActive() ? activePlayers() : spatialHudPlayers(); for (let side = 0; side < hudPlayers.length; side++) { const player = hudPlayers[side]; drawPlayerHandle(player, t, side); @@ -17300,6 +21022,7 @@ function paint() { } function act() {} function leave() { + if(motorRunning && typeof oscillatorStop==='function')oscillatorStop(); try { roundViewerStop?.(); roundViewerStop = null; @@ -17308,3 +21031,691 @@ function leave() { captureClientError("leave", error); } } + +// Seat park vehicles and timed supply delivery, reset together after a KO. +const monowheel={active:false,x:0,y:0,z:0,vx:0,vy:0,safeUntil:0}; +const parkSupply={nextAt:0,drone:null,drop:null,ko:null}; +function resetMonowheel(){Object.assign(monowheel,{active:true,x:tileCenterX(37),y:floorY,z:0,vx:0,vy:0,safeUntil:0});} +function monowheelFrame(p){ + const pitch=p.skatePitch||0,c=Math.cos(pitch),s=Math.sin(pitch); + return (x,y=0,z=0)=>({x:p.x+c*x-s*y,y:p.y-24+s*x+c*y,z:(p.z||0)+z}); +} +function riderContact(p,y){ + if(!p.onewheel)return skateContact(p.x,y,p.z); + const floor=surfaceYAt(p.x,y-2,p.z); + return {y:floor,pitch:Math.atan2(surfaceYAt(p.x+8,y-2,p.z)-surfaceYAt(p.x-8,y-2,p.z),16),left:true,right:true}; +} +function updateMonowheel(dt,now){ + if(!freeskateActive()||!monowheel.active)return; + const m=monowheel,oldY=m.y; + m.vy+=1800*dt;m.x=clamp(m.x+m.vx*dt,worldLeft+60,worldRight-60);m.y+=m.vy*dt;m.vx*=Math.exp(-2*dt); + const ledge=ledgeCrossed(m.x,oldY-1,m.y,0,0,m.z); + const floor=ledge?ledge.y:surfaceYAt(m.x,oldY-2,m.z); + if(m.y>=floor){m.y=floor;m.vy=0;} + for(const p of activePlayers())if(p.alive&&!p.dummy&&!p.skateboard&&!isHeadOnly(p)&&now>=m.safeUntil&&Math.abs(p.x-m.x)<45&&Math.abs(p.y-m.y)<40&&Math.abs((p.z||0)-m.z)<35){ + resetSkate(p);p.onewheel=true;p.skateboard=true;p.skateVx=m.vx;p.skatePitch=0;p.y=m.y;m.active=false;break; + } +} +function drawMonowheel(p){ + const at=spunSkateFrame(monowheelFrame(p),p),rubber=[24,25,30],rim=p.wheelTurbo?[234,171,255]:[184,186,193],rail=p.wheelTurbo?[173,65,255]:[205,65,117]; + for(let i=0;i<12;i++){ + const a=i*Math.PI/6,b=(i+1)*Math.PI/6; + const v=(t,z,r=24)=>at(Math.cos(t)*r,Math.sin(t)*r,z); + worldQuad(v(a,-13),v(b,-13),v(b,13),v(a,13),i%2?rubber:[38,39,45]); + for(const z of [-13,13]){const center=at(0,0,z);worldTriangle(center,v(a,z),v(b,z),rubber);worldTriangle(at(0,0,z*1.01),v(a,z*1.01,10),v(b,z*1.01,10),rim);} + } + for(const side of [-1,1]){ + const a=side*20,b=side*60; + worldQuad(at(a,-4,-19),at(b,-8,-19),at(b,-8,19),at(a,-4,19),p.wheelTurbo?[102,35,163]:[32,34,39]); + for(const z of [-19,19])worldQuad(at(a,-4,z),at(b,-8,z),at(b,-2,z),at(a,2,z),rail); + worldQuad(at(b,-8,-14),at(b,-8,14),at(b,-4,14),at(b,-4,-14),side>0?[237,247,251]:[249,62,62]); + } +} +function resetParkSupply(now){ + let smg=gunPickups.find(p=>p.seatSmg);if(!smg){smg={seatSmg:true,startsActive:false,cycle:false};gunPickups.push(smg);} + Object.assign(smg,{kind:'RUBBER SMG',amount:30,x:tileCenterX(hallCols-2),y:floorY-halfpipeRadius-70,z:0,active:true}); + axePickup.active=true;axePickup.x=tileCenterX(3);axePickup.y=floorY-halfpipeRadius-65;for(const p of players)p.axeHeld=false; + bottomGlass.fill(false);for(const p of players)p.underPipe=false; + parkSupply.nextAt=now+30000000*gameSpeed;parkSupply.drone=null;parkSupply.drop=null;parkSupply.ko=null;turboParticles.length=0; + for(const cube of hallCubes){cube.health=3;cube.broken=false;cube.hitAt=0;} +} +function updateParkSupply(dt,now){ + if(!freeskateActive())return; + if(parkSupply.ko){ + if(!parkSupply.ko.settled){ + const alive=activePlayers().filter(p=>p.alive),winner=alive.length===1?alive[0]:null; + parkSupply.ko.winner=winner?winner.pad:-1;parkSupply.ko.settled=true; + for(const p of activePlayers()){p.vx=p.vy=p.skateVx=0;p.resultReaction=p===winner?'DANCE':'WOE';p.resultReactionAt=now;} + emitSignal(winner?'roundwin':'tie',winner?winner.pad:-1,0,0);playDrum('clap',1,0); + } + if(now>=parkSupply.ko.until){const paired=freeskateSecond && !players[1].dummy,scores=players.map(p=>p.score);beginFreeskate(now);updateFreeskatePlayers(paired,now);players.forEach((p,i)=>p.score=scores[i]);} + return; + } + if(axePickup.active)for(const p of activePlayers())if(p.alive&&availableArm(p)&&Math.abs(p.x-axePickup.x)<65&&Math.abs(p.y-(axePickup.y+65))<150){p.axeHeld=true;p.itemArm=availableArm(p);axePickup.active=false;break;} + // Drone arrives before the scheduled drop; its package is a heal, not a weapon. + parkSupply.drone=null;parkSupply.drop=null; + for(const c of hallCubes){ + if(c.broken||now-(c.hitAt||0)<300000)continue; + for(const p of activePlayers())if(p.alive&&Math.abs(p.x-c.x)cubeTop(c)-80&&p.y<(c.baseY??floorY)+30&&(p.attackKind||Math.abs(p.skateVx||0)>650)){ + c.health=(c.health??3)-1;c.hitAt=now; + if(c.health<=0){c.broken=true;spawnImpact({x:c.x,y:cubeTop(c)+40,z:0,life:.5,duration:.5,explosion:true,death:false});} + break; + } + } +} +function drawParkSupply(){ + if(!freeskateActive())return; + if(axePickup.active){const p=projectPoint(axePickup.x,axePickup.y,0),t=projectPoint(axePickup.x+30,axePickup.y-130,0);const old=triangleDepth;triangleDepth=p.z;drawBigAxe(p.x,p.y,t.x,t.y,cameraScale());triangleDepth=old;} + const d=parkSupply.drone; + if(d){ + worldCapsule(d.x-65,d.y,0,d.x+65,d.y,0,Math.max(2,12*cameraScale()),[63,70,87]); + for(const x of [-65,65])worldQuad({x:d.x+x-25,y:d.y-8,z:-23},{x:d.x+x+25,y:d.y-8,z:-23},{x:d.x+x+25,y:d.y-8,z:23},{x:d.x+x-25,y:d.y-8,z:23},[176,190,214]); + } + const p=parkSupply.drop; + if(p){worldQuad({x:p.x-22,y:p.y-22,z:-8},{x:p.x+22,y:p.y-22,z:-8},{x:p.x+22,y:p.y+22,z:-8},{x:p.x-22,y:p.y+22,z:-8},[100,230,164]); + worldCapsule(p.x-12,p.y,-9,p.x+12,p.y,-9,Math.max(2,7*cameraScale()),[248,255,250]);worldCapsule(p.x,p.y-12,-9,p.x,p.y+12,-9,Math.max(2,7*cameraScale()),[248,255,250]);} + if(parkSupply.ko){const text=!parkSupply.ko.settled?'KO':parkSupply.ko.winner<0?'TIE':'PLAYER '+(parkSupply.ko.winner+1)+' WINS';const old=triangleDepth;triangleDepth=hudDepth;typeWrite(text,viewCenterX()-handleWidth(text,44)/2,95,44,255,225,118);triangleDepth=old;} +} + +const bottomGlass=Array(indoorHalfpipe.floorTo-indoorHalfpipe.floorFrom).fill(false); +const tunnelBottom=()=>floorY+2060; +const bottomPaneAt=x=>Math.floor((x-gridLeft)/tileSize)-10; +function updateUnderPipe(p){ + if(!indoorSkate())return; + if(!p.underPipe && pondAt(p.x) && p.y>floorY+260){p.underPipe=true;resetSkate(p);} + +} +function playerFloor(p,x){ + if(p.underPipe)return tunnelBottom(); + const i=bottomPaneAt(x); + if(indoorSkate() && i>=0 && i=0&&ifloorY+50){p.underPipe=true;resetSkate(p);} + if(!p.underPipe)return; + p.x=clamp(p.x,worldLeft+65,gridLeft+(indoorCols-1)*tileSize-30); + const ceiling=inside?floorY:terrainFloorAt(p.x)+80; + const head= isHeadOnly(p)?45:170; + if(!pondAt(p.x) && p.y-head[tx+ux*a*scale+px*b*scale,ty+uy*a*scale+py*b*scale]; + for(const side of [-1,1]){const a=at(-25,side*6),b=at(-45,side*52),c=at(22,side*58),d=at(8,side*5); + screenTriangle(...a,...b,...c,177,192,207);screenTriangle(...a,...c,...d,208,223,234); + filledCapsule(...b,...c,Math.max(1,3*scale),[244,251,255]);} +} + +const bubbleNotes=[]; +function playBubbleSound(p,pop=false){ + const now=runtime().monotonicUs,base=pop?620:230; + for(let i=0;i<4;i++)bubbleNotes.push({at:now+i*18000,hz:base*(pop?Math.pow(.68,i):Math.pow(1.4,i))}); +} +function updateBubbleAudio(now){ + for(let i=bubbleNotes.length-1;i>=0;i--)if(now>=bubbleNotes[i].at){playSine(bubbleNotes[i].hz,.035);bubbleNotes.splice(i,1);} + for(const p of activePlayers())if(p.swimming && now>=(p.nextBubbleAt||0)){p.nextBubbleAt=now+900000;playBubbleSound(p,false);} + if(globalThis.__oskiewarPostFxNative && typeof gameSignal==='function'){ + const p=activePlayers()[0];gameSignal('post-motion',0,clamp((p?.vx||0)/6000,-1,1),clamp((p?.vy||0)/6000,-1,1)); + gameSignal('post-water',0,activePlayers().some(p=>p.swimming)?1:0,.56); + } +} + +const waterSplashes=[]; +function spawnWaterSplash(p,y){ + for(let i=0;i<10;i++){const a=(i+.5)/10*Math.PI;waterSplashes.push({x:p.x,y,z:p.z||0,vx:Math.cos(a)*(100+Math.min(400,Math.abs(p.vy)*.15)),vy:-Math.sin(a)*(170+Math.min(450,Math.abs(p.vy)*.18)),life:.7});} + if(waterSplashes.length>80)waterSplashes.splice(0,waterSplashes.length-80); + playBubbleSound(p,true); +} +function updateWaterSplashes(dt){for(let i=waterSplashes.length-1;i>=0;i--){const p=waterSplashes[i];p.life-=dt;if(p.life<=0){waterSplashes.splice(i,1);continue;}p.x+=p.vx*dt;p.y+=p.vy*dt;p.vy+=850*dt;}} +function drawWaterSplashes(){drawTurboParticles();for(const p of waterSplashes){const a=projectPoint(p.x,p.y,p.z);const old=triangleDepth;triangleDepth=a.z;filledDisc(a.x,a.y,Math.max(1,4*cameraScale()*p.life/.7),[187,236,252]);triangleDepth=old;}} + +let motorFrequency=220,motorRunning=false; +function updateMotorAudio(dt){ + if(typeof oscillator!=='function')return; + const p=activePlayers().find(p=>p.alive&&p.onewheel); + if(!p){if(motorRunning&&typeof oscillatorStop==='function')oscillatorStop();motorRunning=false;return;} + const speed=clamp(Math.abs(p.skateVx||0)/3000,0,1); + motorFrequency+=(220+speed*900-motorFrequency)*(1-Math.exp(-dt*6)); + oscillator(motorFrequency,.018+speed*.055);motorRunning=true; +} +function axeFrame(p,t){ + if(!p.axeHeld || !p.alive || isHeadOnly(p) || !availableArm(p))return null; + const g=runnerWorldGeometry(p,t),arm=g.segments.find(b=>b.part===itemHand(p)&&b.role?.endsWith('forearm'))||g.segments.find(b=>b.role?.endsWith('forearm')); + if(!arm)return null; + const hand={x:arm.x2,y:arm.y2,z:arm.z2??p.z??0}; + let dx=arm.x2-arm.x1,dy=-Math.abs(arm.y2-arm.y1),dz=(arm.z2||0)-(arm.z1||0); + const length=Math.hypot(dx,dy,dz)||1;const up={x:dx/length,y:dy/length,z:dz/length}; + const yaw=p.spin?.angle||0,side={x:Math.cos(yaw),y:0,z:Math.sin(yaw)}; + const dot=up.x*side.x+up.z*side.z; + side.x-=up.x*dot;side.y-=up.y*dot;side.z-=up.z*dot; + const norm=Math.hypot(side.x,side.y,side.z)||1;side.x/=norm;side.y/=norm;side.z/=norm; + const depth={x:up.y*side.z-up.z*side.y,y:up.z*side.x-up.x*side.z,z:up.x*side.y-up.y*side.x}; + const at=(a,b=0,c=0)=>({x:hand.x+up.x*a+side.x*b+depth.x*c,y:hand.y+up.y*a+side.y*b+depth.y*c,z:hand.z+up.z*a+side.z*b+depth.z*c}); + return {hand,up,side,depth,at,center:at(105),half:[38,58,15]}; +} +function axeBoxHits(frame,a,b=a,radius=0){ + let lo=0,hi=1; + const axes=[frame.up,frame.side,frame.depth]; + for(let i=0;i<3;i++){ + const u=axes[i],c=frame.center; + const start=(a.x-c.x)*u.x+(a.y-c.y)*u.y+((a.z||0)-c.z)*u.z; + const delta=(b.x-a.x)*u.x+(b.y-a.y)*u.y+((b.z||0)-(a.z||0))*u.z; + const size=frame.half[i]+radius; + if(Math.abs(delta)<.00001){if(Math.abs(start)>size)return false;continue;} + const x=(-size-start)/delta,y=(size-start)/delta; + lo=Math.max(lo,Math.min(x,y));hi=Math.min(hi,Math.max(x,y));if(lo>hi)return false; + } + return true; +} +function updateAxeHits(now){ + const t=(now-startedAt)/1e6; + for(const owner of activePlayers()){ + const frame=axeFrame(owner,t);if(!frame)continue; + owner.axeHitAt ||= {}; + for(const target of [...activePlayers(),...parkKids]){ + if(target===owner || !target.alive || now<(owner.axeHitAt[target.pad]||0))continue; + if(Math.abs(target.x-frame.center.x)>300 || Math.abs(target.y-frame.center.y)>360 || Math.abs((target.z||0)-frame.center.z)>250)continue; + const g=runnerWorldGeometry(target,t); + if(axeBoxHits(frame,g.head,g.head,g.head.radius)){ + owner.axeHitAt[target.pad]=now+350000;if(target.civilian)popCivilianHead(target,owner,g,now);else killPlayer(target,owner.pad,now,'AXE KO');continue; + } + for(let i=0;i[h.x+x*r*face,h.y+y*r]; + const points=[at(-.95,-.5),at(-.65,-1.03),at(.1,-1.16),at(.72,-.85),at(.91,-.36),at(.48,.64),at(.25,.4),at(.1,.1),at(-.45,-.4)]; + for(let i=1;i=0 && age<100000)return held; + const speed=Math.hypot(p.vx,p.vy)*gameSpeed; + const idle=speed<30 && p.grounded && !p.spin; + const readout={at:now,idle, + measure:idle?Math.round(p.heartRate||68)+' bpm':p.spin?Math.round(spinRpm(p))+' rpm':Math.round(mph(speed))+' mph', + verb:idle?(p.heartDanger>.25?'on edge':'resting'):p.wheelTurbo?'super turbo':statusVerb(p,speed)[0], + item:p.gunAmmo?'SMG '+p.gunAmmo:p.axeHeld?'AXE':p.onewheel?'MONOWHEEL':p.skateboard?'SKATEBOARD':''}; + seatHudReadouts.set(p,readout); + return readout; +} +function drawSeatPlayerHud(ink){ + drawSeatFirstPerson(); + const safe=hudSafeRect(),old=triangleDepth,now=runtime().monotonicUs;triangleDepth=hudDepth; + for(const p of activePlayers()){ + if(p.dummy)continue; + const i=p.pad,{idle,measure,verb,item}=seatHudReadout(p,now); + const accent=p.wheelTurbo?[209,129,255]:i?[174,161,255]:[255,144,188]; + const x=i?safe.right-360:safe.left+12,y=safe.bottom-112; + seatHudText(measure,x,y,54,accent); + if(idle)drawSeatHeart(x+handleWidth(measure,54)+28,y+29,p,accent); + seatHudText(verb,x,y+58,30,[249,242,248]); + if(item)seatHudText(item,x,y-36,25,accent); + } + triangleDepth=old; +} +function drawSeatAction(p){ + if(parkSupply.ko || !p.alive)return; + const now=runtime().monotonicUs; + const text=p.wheelTurbo?'SUPER TURBO':p.spin?'SPIN':now-(p.lastButtonAt||0)<850000?p.lastButton:''; + if(!text || ['NONE','LEFT','RIGHT','UP','DOWN'].includes(text))return; + const at=projectPoint(p.x,p.y,p.z||0),size=32; + at.y+=28; + const old=triangleDepth;triangleDepth=hudDepth; + const width=handleWidth(text,size),x=clamp(at.x-width/2,14,viewWidth()-width-14),y=clamp(at.y,14,viewHeight-size-30); + // CSS palette: violet, gold, springgreen, deepskyblue, hotpink, lightskyblue. + const ink=p.wheelTurbo?[238,130,238]:p.spin?[255,215,0]:/DASH/.test(text)?[0,255,127]:/JUMP/.test(text)?[0,191,255]:p.pad===0?[255,105,180]:[135,206,250]; + typeWrite(text,x+3,y+3,size,9,12,24); + typeWrite(text,x,y,size,...ink);triangleDepth=old; +} + +function drawAxeHitbox(p,t){ + const f=axeFrame(p,t);if(!f)return; + const corners=[];for(let a=0;a<2;a++)for(let b=0;b<2;b++)for(let c=0;c<2;c++)corners.push(f.at(105+(a?38:-38),b?58:-58,c?15:-15)); + for(let i=0;i<8;i++)for(const bit of [1,2,4])if(!(i&bit)){ + const a=corners[i],b=corners[i|bit];hudWorldLine(a.x,a.y,a.z,b.x,b.y,b.z,3,[255,48,64]); + } +} + +function captureQuadMesh(draw){ + const mesh={vertices:[],faces:[],projected:[],capsules:[]},lookup=new Map(),original=worldQuad,originalCapsule=worldCapsule; + const meshScale=cameraScale(); + worldCapsule=(...args)=>{args[6]/=meshScale;mesh.capsules.push(args);}; + const vertex=p=>{const key=p.x+','+p.y+','+p.z;let i=lookup.get(key);if(i===undefined){i=mesh.vertices.length;lookup.set(key,i);mesh.vertices.push({...p});mesh.projected.push({});}return i;}; + worldQuad=(a,b,c,d,color)=>{ + const abx=b.x-a.x,aby=b.y-a.y,abz=b.z-a.z,acx=c.x-a.x,acy=c.y-a.y,acz=c.z-a.z; + const nx=aby*acz-abz*acy,ny=abz*acx-abx*acz,nz=abx*acy-aby*acx,n=Math.hypot(nx,ny,nz)||1; + mesh.faces.push({ids:[vertex(a),vertex(b),vertex(c),vertex(d)],color:color.slice(),normal:[nx/n,ny/n,nz/n],lit:[]}); + }; + try{draw();}finally{worldQuad=original;worldCapsule=originalCapsule;} + quadMeshBounds(mesh);return mesh; +} +// Bounds at capture, over vertices and capsule ends alike, so every view can +// reject a mesh before projecting it — the inset used to read a field only +// the web fallback ever filled. +function quadMeshBounds(mesh){ + const b={minX:Infinity,maxX:-Infinity,minY:Infinity,maxY:-Infinity,minZ:Infinity,maxZ:-Infinity}; + const grow=(x,y,z)=>{if(xb.maxX)b.maxX=x;if(yb.maxY)b.maxY=y;if(zb.maxZ)b.maxZ=z;}; + for(const p of mesh.vertices)grow(p.x,p.y,p.z); + for(const a of mesh.capsules||[]){grow(a[0],a[1],a[2]);grow(a[3],a[4],a[5]);} + mesh.bounds=b.minX===Infinity?null:b; +} +// The native handle for a captured mesh: uploaded on first use, freed when the +// mesh is recaptured. −1 means the shell has no retained meshes (or refused +// the upload) and the caller takes the sceneMesh or JS path. +function meshHandle(mesh){ + if(!nativeRetainedMeshes)return -1; + if(mesh.nativeHandle===undefined){const b=nativeMeshBuffers(mesh);mesh.nativeHandle=nativeMeshUpload(b.vertices,b.faces,b.capsules);} + return mesh.nativeHandle; +} +function releaseQuadMesh(mesh){ + if(mesh&&mesh.nativeHandle>=0&&nativeMeshFree)nativeMeshFree(mesh.nativeHandle); + if(mesh)mesh.nativeHandle=-1; +} +function drawQuadMesh(mesh){ + if(!mesh)return; + if(nativeRetainedMeshes){ + const handle=meshHandle(mesh); + if(handle>=0){nativeMeshDraw(handle,mainNativeCamera(),clipView?0:cameraScale());return;} + } + if(nativeSceneMesh){ + if(!clipView){const scale=cameraScale();for(const a of mesh.capsules||[])worldCapsule(a[0],a[1],a[2],a[3],a[4],a[5],a[6]*scale,a[7],a[8]);} + const buffers=nativeMeshBuffers(mesh);nativeSceneMesh(buffers.vertices,buffers.faces,mainNativeCamera());return; + } + if(!mesh.bounds && mesh.vertices.length){ + const v=mesh.vertices;mesh.bounds={minX:Math.min(...v.map(p=>p.x)),maxX:Math.max(...v.map(p=>p.x)),minY:Math.min(...v.map(p=>p.y)),maxY:Math.max(...v.map(p=>p.y)),minZ:Math.min(...v.map(p=>p.z)),maxZ:Math.max(...v.map(p=>p.z))}; + } + if(mesh.bounds){ + const b=mesh.bounds,corners=[]; + for(const x of [b.minX,b.maxX])for(const y of [b.minY,b.maxY])for(const z of [b.minZ,b.maxZ])corners.push(cameraDoll.toView({x,y,z})); + if(corners.every(p=>p.z>=cameraNear)){ + const projected=corners.map(p=>cameraDoll.projectView(p)); + if(projected.every(p=>p.x<0)||projected.every(p=>p.x>viewWidth())||projected.every(p=>p.y<0)||projected.every(p=>p.y>viewHeight))return; + } + } + const meshScale=cameraScale(); + if(!clipView)for(const args of mesh.capsules||[])worldCapsule(args[0],args[1],args[2],args[3],args[4],args[5],args[6]*meshScale,args[7],args[8]); + if(cameraDoll.dirty)cameraDoll.prepare(); + const v=cameraDoll.view,cam=cameraDoll.position,scale=v.orthoScale,perspective=cameraDoll.perspective; + for(let i=0;i=cameraNear; + } + for(const f of mesh.faces){ + const [ia,ib,ic,id]=f.ids,a=mesh.projected[ia],b=mesh.projected[ib],c=mesh.projected[ic],d=mesh.projected[id]; + if(a.near&&b.near&&c.near&&d.near&&((a.x<0&&b.x<0&&c.x<0&&d.x<0)||(a.x>stageRight&&b.x>stageRight&&c.x>stageRight&&d.x>stageRight)||(a.y<0&&b.y<0&&c.y<0&&d.y<0)||(a.y>viewHeight&&b.y>viewHeight&&c.y>viewHeight&&d.y>viewHeight)))continue; + const n=f.normal,k=.72+Math.max(0,-n[0]*globalLight.x-n[1]*globalLight.y-n[2]*globalLight.z)*.28; + const color=f.lit;for(let i=0;i<3;i++)color[i]=Math.round(f.color[i]*k); + if(a.near&&b.near&&c.near&&d.near&&bandContains(a)&&bandContains(b)&&bandContains(c)&&bandContains(d)){ + projectedTriangle(a,b,c,color);projectedTriangle(a,c,d,color); + }else{worldTriangle(mesh.vertices[ia],mesh.vertices[ib],mesh.vertices[ic],color);worldTriangle(mesh.vertices[ia],mesh.vertices[ic],mesh.vertices[id],color);} + } +} + +function updateHeavyWheelHits(now){ + for(const p of activePlayers())if(p.alive&&p.onewheel&&Math.abs(p.skateVx)>1500&&now>=(p.wheelHitAt||0)){ + for(const target of activePlayers())if(target!==p&&target.alive&&Math.abs(p.x-target.x)<85&&Math.abs(p.y-target.y)<150){ + p.wheelHitAt=now+500000;applyBodyHit(target,0,p.x,p.pad,now,Math.abs(p.skateVx)*1.25,330,true);p.skateVx*=.65;break; + } + } +} +// Host snapshots are immutable within a lifecycle call. Crossing QuickJS's +// native bridge for every strand, capsule and HUD label needlessly rebuilds +// the same capability object. Refresh at every sim/paint boundary. +if(typeof capabilities==='function'){ + const nativeCapabilities=capabilities;let cached=null; + capabilities=()=>cached||(cached=nativeCapabilities()); + const previousSim=sim,previousPaint=paint; + sim=function(){cached=null;try{return previousSim();}finally{cached=null;}}; + paint=function(){cached=null;try{return previousPaint();}finally{cached=null;}}; +} +// The clock too: one host read per paint and one per simulated frame. The +// frame is the unit, not the sim() call — a rollback resimulates several +// frames inside one sim(), each under its own netClockUs, and each must read +// its own time. Inside gameSim the snapshot also pins monotonicUs for the +// whole tick, so a pose, a deadline and a hitbox never disagree by a +// microsecond's drift between two reads. +{ + const liveRuntime=runtime,previousPaint=paint,previousGameSim=gameSim;let snapshot=null; + runtime=function(){return snapshot||liveRuntime();}; + paint=function(){snapshot=liveRuntime();try{return previousPaint();}finally{snapshot=null;}}; + gameSim=function(){snapshot=liveRuntime();try{return previousGameSim();}finally{snapshot=null;}}; +} + +function cameraPlayers(){return freeskateActive() && players[1].dummy?[players[0]]:activePlayers();} + +function drawSpinArms(player,t,geometry,front,color,outline){ + const saved=triangleDepth; + const segments=geometry.segments.filter(s=>/arm$/.test(s.role||'') && ((s.depthb.depth-a.depth); + for(const s of segments){ + triangleDepth=saved+(front?-.03:.015); + const width=s.width,dx=s.x2-s.x1,dy=s.y2-s.y1,length=Math.hypot(dx,dy)||1; + const nx=-dy/length,ny=dx/length; + filledCapsule(s.x1,s.y1,s.x2,s.y2,width+2,outline); + filledCapsule(s.x1,s.y1,s.x2,s.y2,width,mixColor(color,[30,24,42],.22)); + filledCapsule(s.x1+nx*width*.16,s.y1+ny*width*.16,s.x2+nx*width*.16,s.y2+ny*width*.16,width*.57,color); + } + triangleDepth=saved; +} + +const parkKids=[]; +function resetParkKids(){ + parkKids.length=0; + if(!indoorSkate())return; + const skin=[[255,214,194],[198,139,104],[118,78,61],[239,185,142],[160,111,90],[255,222,199],[213,160,122],[144,96,76]]; + const inks=[[237,105,119],[84,183,172],[244,179,67],[129,139,222],[180,105,183],[92,159,208],[216,134,81],[149,184,95]]; + for(let i=0;i<8;i++){ + const kid=JSON.parse(JSON.stringify(players[0])); + const x=tileCenterX(13+i*7); + Object.assign(kid,{pad:i+2,name:['MICA','ASH','FERN','KIT','ROBIN','JUNE','SKY','RIO'][i], + civilian:true,bodyScale:.83+(i%4)*.07,hairVariant:i%3,pantsColor:i%2?inks[(i+3)%8]:null, + alive:true,dummy:false,npc:true,bot:false,remote:false,skin:'pastel',emo:i%3===1, + x,y:terrainFloorAt(x),z:(i%3-1)*125,vx:0,vy:0,vz:0,spawnX:x,grounded:true, + color:skin[i],shirtColor:inks[i],skirtColor:inks[(i+3)%8],accent:inks[(i+5)%8], + hairColor:[[33,26,29],[94,54,35],[184,133,71],[47,35,63]][i%4],shoeColor:inks[(i+2)%8], + heartRate:62+(i*7%19),heartPhase:(i*.173)%1,breathPhase:(i*.317)%1,motionClock:i*1.7, + hair:null,skirtCloth:null,rig:null,trucks:null,spin:null,skateboard:false,onewheel:false, + axeHeld:false,swordHeld:false,gunAmmo:0,grenadeAmmo:0,heldBall:-1,heldPlayer:-1,grabbedBy:-1, + removedParts:[],partDamage:{},previous:[],lastTap:{},lastRelease:{},directionChanges:[], + headBustedAt:0,frozenGeometry:null,replayGeometry:null,fallenBodyGeometry:null, + attackKind:'',attackUntil:0,resultReaction:null,underPipe:false,swimming:false, + patrolDirection:i%2?1:-1,patrolMin:tileCenterX(11+i*7),patrolMax:tileCenterX(16+i*7)}); + parkKids.push(kid); + } +} +function updateParkKids(dt,now){ + for(let i=crowdNotes.length-1;i>=0;i--)if(now>=crowdNotes[i].at){playSine(crowdNotes[i].hz,.045);crowdNotes.splice(i,1);} + for(const kid of parkKids){ + if(kid.headless){ + const h=kid.looseHead;h.vy+=1100*dt;h.x+=h.vx*dt;h.y+=h.vy*dt;h.z=clamp(h.z+h.vz*dt,worldNear+30,worldFar-30); + const floor=terrainFloorAt(h.x)-h.radius; + if(h.y>floor){h.y=floor;h.vy=-Math.abs(h.vy)*.35;h.vx*=Math.exp(-dt*3);h.vz*=Math.exp(-dt*3);} + continue; + } + kid.z=Math.sin(now/3500000+kid.pad*1.2)*140; + if(kid.x>=kid.patrolMax)kid.patrolDirection=-1; + if(kid.x<=kid.patrolMin)kid.patrolDirection=1; + const danger=activePlayers().some(p=>!p.dummy && p.alive && Math.abs(p.x-kid.x)<230 && Math.abs(p.y-kid.y)<240 && (Math.abs(p.vx)>250 || p.spin)); + if(danger && now>=(kid.nextStartleAt||0)){ + kid.startledUntil=now+900000;kid.nextStartleAt=now+3000000; + if(now>=crowdVoiceAt){crowdVoiceAt=now+350000;for(let i=0;i<5;i++)crowdNotes.push({at:now+i*35000,hz:680+kid.pad*35+Math.sin(i*.8)*330});} + } + kid.ducking=now<(kid.startledUntil||0);kid.crouchBlend+=(Number(kid.ducking)-(kid.crouchBlend||0))*Math.min(1,dt*14); + kid.facing=kid.patrolDirection;kid.vx=kid.ducking?0:kid.patrolDirection*95*(.92+(kid.pad%5)*.045)*(1+Math.sin((kid.breathPhase||0)*Math.PI*2)*.06); + const previous=kid.x;kid.x+=kid.vx*dt;kid.y=terrainFloorAt(kid.x); + resolveCubeSides(kid,previous); + if(kid.wallPress)kid.patrolDirection*=-1; + kid.grounded=true;kid.inputX=kid.patrolDirection; + // Idle park visitors do not target or attack the playable seats. + kid.walkSince ||= now;kid.stance='WALK'; + } +} + +const crowdNotes=[];let crowdVoiceAt=0; +const turboParticles=[]; +function updateWheelTurbo(dt,now){ + for(const p of activePlayers()){ + if(!p.onewheel || !p.alive){p.wheelTurbo=false;p.wheelChargeAt=0;continue;} + const speed=Math.abs(p.skateVx||0); + if(speed<2200){p.wheelTurbo=false;p.wheelChargeAt=0;} + if(!p.wheelTurbo){ + if(speed>=2940){ + p.wheelChargeAt ||= now; + if(now-p.wheelChargeAt>=1000000*gameSpeed){p.wheelTurbo=true;p.lastButton='SUPER TURBO';p.lastButtonAt=now;playDrum('whoosh',.6,panPlayer(p));} + }else p.wheelChargeAt=0; + } + if(p.wheelTurbo){ + if(now>=(p.nextTurboTone||0)){playSine(motorFrequency*2,.11);p.nextTurboTone=now+90000;} + if(now>=(p.nextTurboParticle||0)){ + p.nextTurboParticle=now+30000; + turboParticles.push({x:p.x,y:p.y-20,z:p.z||0,vx:-Math.sign(p.skateVx)*180,vy:-60-(now%130),life:.45}); + } + } + } + for(let i=turboParticles.length-1;i>=0;i--){const p=turboParticles[i];p.life-=dt;if(p.life<=0){turboParticles.splice(i,1);continue;}p.x+=p.vx*dt;p.y+=p.vy*dt;} + if(turboParticles.length>48)turboParticles.splice(0,turboParticles.length-48); +} +function drawTurboParticles(){ + const saved=triangleDepth; + for(const p of turboParticles){const a=projectPoint(p.x,p.y,p.z);triangleDepth=a.z;const r=Math.max(1,9*cameraScale()*p.life/.45);filledDisc(a.x,a.y,r,[165,67,247]);filledDisc(a.x,a.y,r*.45,[236,196,255]);} + triangleDepth=saved; +} + +function popCivilianHead(kid,owner,g,now){ + kid.headless=true;kid.alive=false;kid.frozenGeometry=g;kid.vx=0;kid.attackKind=''; + kid.looseHead={...g.head,vx:Math.sign(kid.x-owner.x||1)*350,vy:-430,vz:(kid.pad%2?1:-1)*100}; + playDrum('block',.6,panPlayer(owner)); +} +function drawCivilianDebris(kid){ + const old=triangleDepth,g=kid.frozenGeometry; + for(const b of g.segments){ + if(b.hitboxOnly)continue; + const y=kid.y-10; + const a=projectPoint(kid.x+(kid.y-b.y1)*.75,y+(b.x1-kid.x)*.15,kid.z); + const c=projectPoint(kid.x+(kid.y-b.y2)*.75,y+(b.x2-kid.x)*.15,kid.z); + triangleDepth=Math.min(a.z,c.z)-.005; + filledCapsule(a.x,a.y,c.x,c.y,Math.max(2,b.width*cameraScale()),b.role==='torso'?kid.shirtColor:isLegRole(b.role)?kid.pantsColor||kid.color:kid.color); + } + const h=kid.looseHead,p=projectPoint(h.x,h.y,h.z),r=h.radius*cameraScale();triangleDepth=p.z-.006; + filledDisc(p.x,p.y,r+1,[24,20,30]);filledDisc(p.x,p.y,r,kid.color); + drawFace({...kid,dummy:true},{x:p.x,y:p.y,radius:r},kid.color,0); + triangleDepth=old; +} + +const cityBlocks=new Map(); +function drawCityStreet(){ + if(!indoorSkate())return; + const span=720,first=Math.max(0,Math.floor((cameraCenter-cameraWidth*1.4-gridLeft)/span)),last=Math.min(Math.ceil(hallCols*tileSize/span),Math.ceil((cameraCenter+cameraWidth*1.4-gridLeft)/span)); + for(let i=first;ibuildCityBlock(i,span))); + drawQuadMesh(cityBlocks.get(i)); + } +} +function buildCityBlock(i,span){ + const x=gridLeft+i*span,r=x+span,z=worldFar+8,y=floorY; + const plane=(l,r,near,far,height,color)=>worldQuad({x:l,y:height,z:near},{x:r,y:height,z:near},{x:r,y:height,z:far},{x:l,y:height,z:far},color); + plane(x,r,z,z+160,y,[178,175,166]); + plane(x,r,z+160,z+680,y+12,[57,61,70]); + plane(x,r,z+680,z+820,y,[166,164,159]); + worldQuad({x,y,z:z+160},{x:r,y,z:z+160},{x:r,y:y+16,z:z+160},{x,y:y+16,z:z+160},[223,217,199]); + for(let k=0;k<4;k++){ + plane(x+k*180,x+k*180+2,z,z+160,y-1,[124,124,124]); + plane(x+k*180+24,x+k*180+118,z+409,z+415,y+11,[244,214,133]); + } + const height=600+(i%4)*140,front=z+820,back=front+180,l=x+24,rr=r-24; + const color=[[144,118,107],[115,136,147],[146,142,127],[112,115,133]][i%4]; + worldQuad({x:l,y:y-height,z:front},{x:rr,y:y-height,z:front},{x:rr,y,z:front},{x:l,y,z:front},color); + worldQuad({x:rr,y:y-height,z:front},{x:rr,y:y-height,z:back},{x:rr,y,z:back},{x:rr,y,z:front},mixColor(color,[20,25,35],.25)); + plane(l,rr,front,back,y-height,[187,178,165]); + for(let row=0;row<3;row++)for(let col=0;col<4;col++){ + const wx=l+35+col*155,wy=y-220-row*150; + worldQuad({x:wx,y:wy-95,z:front-1},{x:wx+90,y:wy-95,z:front-1},{x:wx+90,y:wy,z:front-1},{x:wx,y:wy,z:front-1},(row+col+i)%4?[53,72,88]:[237,210,144]); + } + // Recessed storefront, door, and a shallow colored awning. + worldQuad({x:l+35,y:y-155,z:front-2},{x:rr-35,y:y-155,z:front-2},{x:rr-35,y:y-5,z:front-2},{x:l+35,y:y-5,z:front-2},[46,70,81]); + plane(l+20,rr-20,front-80,front,y-160,[[153,76,81],[71,122,116],[180,136,74]][i%3]); +} + +// The P1 view is the renderer run a second time: a doll at the rider's eye +// looking the way they face, a viewport that is the inset's rectangle, a +// depth window in front of the stage and behind the HUD. The park meshes are +// the same handles drawn with this camera; the riders and the crowd are the +// same drawRunner at the size this lens gives them. @jeffrey, 2026-09-26: +// "make sure the secondary camera uses the real renderer". +const seatInsetDoll = new FightCamDoll(); +seatInsetDoll.perspective = 1; +seatInsetDoll.depthBase = -1.46; +seatInsetDoll.depthSlope = .000002; +function aimSeatInsetDoll(rect) { + const rider = players[0], yaw = rider.spin?.angle || 0, facing = rider.facing || 1; + const fx = Math.cos(yaw) * facing, fz = Math.sin(yaw) * facing; + const eyeY = rider.y - (isHeadOnly(rider) ? 35 : rider.ducking ? 90 : 160); + seatInsetDoll.position = { x: rider.x, y: eyeY, z: rider.z || 0 }; + // A little downward tilt, the same lean the first cut of this view had. + seatInsetDoll.target = { x: rider.x + fx * 100, y: eyeY + 12, z: (rider.z || 0) + fz * 100 }; + seatInsetDoll.roll = 0; + seatInsetDoll.viewport = { centerX: rect.x + rect.w * .5, centerY: rect.y + rect.h * .5, focal: rect.w * .68 }; + seatInsetDoll.width = stageRight - stageLeft; + seatInsetDoll.dirty = true; +} +function drawSeatFirstPerson(){ + if(!freeskateActive() || shellMode!=='GAME')return; + const old=triangleDepth,w=Math.min(320,viewWidth()*.23),h=w*.5625; + const rect={x:viewWidth()-w-30,y:30,w,h}; + triangleDepth=-1.44;screenRect(rect.x-4,rect.y-4,w+8,h+8,[31,24,41]); + screenRect(rect.x,rect.y,w,h,[151,182,206]); + aimSeatInsetDoll(rect); + withRenderView(seatInsetDoll, rect, () => { + const rider=players[0],t=(runtime().monotonicUs-startedAt)/1e6; + for(const mesh of [pipeSurfaceMesh,pipeWallMesh,hallMesh,...(rider.underPipe?[waterMesh]:[]),...cityBlocks.values()]) + drawQuadMesh(mesh); + for(const kid of [...activePlayers(),...parkKids]){ + if(kid===rider || kid.headless)continue; + const seen=seatInsetDoll.toView({x:kid.x,y:kid.y-85,z:kid.z||0}); + if(seen.z<20||seen.z>2200||Math.abs(seen.x)>seen.z)continue; + // cameraScale() is pixels per world unit; through this lens that is the + // focal length over the figure's own distance. + seatInsetDoll.width=(stageRight-stageLeft)*seen.z/seatInsetDoll.view.focal;seatInsetDoll.dirty=true; + triangleDepth=projectPoint(kid.x,kid.y,kid.z||0).z; + drawRunner(kid,t,false); + } + }); + triangleDepth=-1.472;screenRect(rect.x,rect.y+h-3,w,3,[255,145,194]); + typeWrite('P1 VIEW',rect.x+9,rect.y+7,16,250,239,249); + triangleDepth=old; +} + +let mainNativeCameraAt=-1,mainNativeCameraBuffer=null; +function nativeMeshBuffers(mesh){ + if(!mesh.nativeBuffers)mesh.nativeBuffers={vertices:new Float32Array(mesh.vertices.flatMap(p=>[p.x,p.y,p.z])),faces:new Float32Array(mesh.faces.flatMap(f=>[...f.ids,...f.color,...f.normal])), + // Edge capsules as the shell reads them: endpoints, world width, colour, depth bias. + capsules:new Float32Array((mesh.capsules||[]).flatMap(a=>[a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7][0],a[7][1],a[7][2],a[8]??-.004]))}; + return mesh.nativeBuffers; +} +const viewNativeCameraBuffer=new Float32Array(27); +function nativeCameraFor(doll,buffer,minX,minY,maxX,maxY){ + if(doll.dirty||!doll.view)doll.prepare();const v=doll.view,p=doll.position,m=buffer; + m[0]=p.x;m[1]=p.y;m[2]=p.z;m[3]=v.right.x;m[4]=v.right.y;m[5]=v.right.z;m[6]=v.up.x;m[7]=v.up.y;m[8]=v.up.z;m[9]=v.forward.x;m[10]=v.forward.y;m[11]=v.forward.z; + m[12]=v.centerX;m[13]=v.centerY;m[14]=v.orthoScale;m[15]=v.focal;m[16]=doll.perspective;m[17]=cameraNear; + m[18]=minX;m[19]=minY;m[20]=maxX;m[21]=maxY;m[22]=doll.depthBase;m[23]=doll.depthSlope;m[24]=globalLight.x;m[25]=globalLight.y;m[26]=globalLight.z; + return m; +} +function mainNativeCamera(){ + if(clipView)return nativeCameraFor(cameraDoll,viewNativeCameraBuffer,clipView.x,clipView.y,clipView.x+clipView.w,clipView.y+clipView.h); + const now=runtime().monotonicUs; + if(now!==mainNativeCameraAt || cameraDoll.dirty){ + if(!mainNativeCameraBuffer)mainNativeCameraBuffer=new Float32Array(27); + nativeCameraFor(cameraDoll,mainNativeCameraBuffer,0,0,viewWidth(),viewHeight);mainNativeCameraAt=now; + } + return mainNativeCameraBuffer; +} + +function updateSeatHeartbeat(dt,now){ + const realDt=dt/Math.max(.1,gameSpeed); + for(const p of [...activePlayers(),...parkKids]){ + if(p.dummy || !p.alive){p.heartRate=0;p.breathPhase=0;continue;} + let danger=0; + for(const other of activePlayers()){ + if(other===p || !other.alive || other.dummy)continue; + const distance=Math.hypot(other.x-p.x,other.y-p.y,(other.z||0)-(p.z||0)); + const armed=other.axeHeld||other.gunAmmo||other.swordHeld||other.attackKind; + if(p.civilian && !armed && Math.abs(other.vx)<250 && !other.spin)continue; + danger=Math.max(danger,clamp(1-distance/1200,0,1)*(armed?1:.45)); + } + for(const b of balls)if(b.active && Math.hypot(b.vx,b.vy)>800){ + const distance=Math.hypot(b.x-p.x,b.y-(p.y-70),(b.z||0)-(p.z||0));danger=Math.max(danger,clamp(1-distance/700,0,1)); + } + for(const b of bullets)if(b.owner!==p.pad){const distance=Math.hypot(b.x-p.x,b.y-(p.y-90));danger=Math.max(danger,clamp(1-distance/950,0,1));} + danger=Math.max(danger,Math.min(1,(p.hit||0)*2)); + const rest=62+(p.pad*7%19),effort=Math.min(1,Math.hypot(p.vx,p.vy)/1800),target=rest+danger*85+effort*25; + p.heartRate=(p.heartRate||rest)+(target-(p.heartRate||rest))*(1-Math.exp(-realDt*(target>(p.heartRate||rest)?1.8+(p.pad%3)*.2:.23+(p.pad%4)*.04))); + p.heartDanger=danger;p.heartPhase=((p.heartPhase ?? (p.pad*.173)%1)+realDt*p.heartRate/60)%1; + p.breathRate=11+(p.pad%5)+danger*13+effort*12; + p.breathPhase=((p.breathPhase ?? (p.pad*.317)%1)+realDt*p.breathRate/60)%1; + p.motionClock=(p.motionClock ?? now/1e6+p.pad*1.7)+realDt*(.8+p.heartRate/300); + } +} +function drawSeatHeart(x,y,p,color){ + const phase=p.heartPhase||0,pulse=Math.max(0,1-phase/.15)+.6*Math.max(0,1-Math.abs(phase-.23)/.1),r=10+pulse*3; + filledDisc(x-r*.48,y-r*.32,r*.65,color);filledDisc(x+r*.48,y-r*.32,r*.65,color); + screenTriangle(x-r*1.1,y-r*.08,x+r*1.1,y-r*.08,x,y+r*1.25,...color); +} diff --git a/xbox/live/social/manifest.json b/xbox/live/social/manifest.json index d1d64dc4ac..8128873c48 100644 --- a/xbox/live/social/manifest.json +++ b/xbox/live/social/manifest.json @@ -1,7 +1,7 @@ { "format": "ac.oskiewar.social-preview", "version": 2, - "build": "72de345660958247", + "build": "d47706af9357b4a5", "theme": "photorealistic", "imageWidth": 1200, "imageHeight": 630, diff --git a/xbox/live/social/oskiewar-title.jpg b/xbox/live/social/oskiewar-title.jpg index bff6b0795ad29287712ecc4c85eabfb58b382e38..118bef7f2830ce62b5ec2e4443bec3533b2e8201 100644 GIT binary patch literal 78677 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

Udxyj}A=6w&}$2_S%^m9?~Bx$!=!J4a^!(Z{= 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

*BKGzf>Ln%}lnx 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 P!NS~Q?ZQ+R20lvw)F+JE literal 476117 zcmZQzU{FXasVvAW&d+6FU}6B#nZ@}=iDk)#xdkSM3=AAgbMy1d7#J9Ga?3JO7*GK7 z3kC-M1q_S~AcT-%L@>cDG`<5^5GTRJz`%Z?q$n|)fq@~WBpYleGm>hkY5WV2#2`$l z41~jg<|qaRkiAS77#LU~3RF^4N{Sg67-Uj&ic26uAa8)oWr6Bt_sC7jOaz5dZVK2P zP-P&>hJk_M14HN$5Su|aBPFK@%wk|*D9cPqg|R_&SY}FUzDHtSN=_rGnIe^n>JiN{ez7AYNkITwIcr!@$6>ySStn79k)tt3i^6S5XH*d(80jK%)r6Gz|8od;$Y7PMh4c5*N;zwoG4I`SX=;g z0?1h+NhL*)@Z|#~Be3Zb#UbXGXBAEx`g3=1iUP|TZZ6BrX9qIbf(+{EWAXPoJ z%_B8^!SWX&cYxK&6qghygL4F=)P&||Q2t>2Qe0A81(gF)6$}i=Pctw`ZDU|yJ;%VH zV#~n5$jZRLwupg2qL6_>&7XmRb1MS_!!rg3JzoX}&aVs%+U^Vt9B&vHSZ*;esE0Bz zFx+Qg;8@APpr63Nz%i47fkTvmfngy7gN^_L1D7cS18WQe1G@$TgZ3H*2F`Q_28I_5 z3~WIR4C;{#3~XN*7?__iFz9G9FtGPCFfi&cFtAB6Fz6;SFmPEgFtFZXU|=}Qz@Syl zz`%Zsfq~VZfq_+vfkEps0|WCN1_mZ}1_q{U3=D$d3=E7585kJD7#J8?7#KvX7#J86 z7#J8q#qoLu24#K*2Bu{U42;bT3=9_-7`P5GFfdMGU|{;iz`)4Nz##aTfq}7$fq^lL zfq~&J1B0YBw9I}u}&tWVpdsMk`FRaCM6N98I-^nd=ksj zV3ijG0|Q4|QEDm!yER8{N@58E1JgP-*8l%k-En=n_t{O4?bCE_DBM(j_a0QkDd;LB z=NF|a7@Cz9|8>w&8L{G7x*z5JqdeUL4B86~+n3c3pU z1tppJdBs)=$%#pc$+m_HMX71F#tJE^Njdq+*|vsO237_NiFt`RmBp#H1{H=@1{H>e zh6=fd~T|(p+ZSfYEDjOv8|zkMTJF5a*3^hLULiQt${*HYGO)NeqO4r zk)e*Ep+Z_>aY=kZadu{bts%^S!h-nxw6x;X5?fs(g_4Y-)WnoxTT6wU{QT_1jMT)G zc$k=>LUB%JawwWb6eVWnrKZGZ=9LsBg4CoHCFZ6U+Zrn*#TQf-CFW+P*cvG$#V4jD7L?c;DkQ}x zWhNGbEXgcNO$LdSr)H*SlqA_2D&!ZW=EbMy7uXsoKm-eHjTEv|D>L&-Y>i9}pv?H( z%sg8oQ-$K>)V$Q>(h^$}0|l_{pdc+uEzYntP$)`{hkF+!UzBW{T$HAen^aPi3i4KR zQJSrhv7UiKA;>ef26|=&3WWtAgTZuSg{_&TLSaF1Nos+ui9%*Ud{JUaX1=YVo{51% zVxg^}6(}|t8W#ORqaSGJuH25~q9n7CM%h)(Fx|KP`9!XWczrrf*3J+E79tEX37{+!je+Iq5x z6K_+=+1J%!M(osr`OlD-D(pP42km>+?T#c^?aeI|@`(2WSKfJEG^gm4f*}gsHcMld@PZLUfm~6d&ou{?(!36);jiuS8 z*36ZA3)IdokE=SD$oYG>Oh4D`XA4iWX|gikwfuR0YCw;?!i2)KKMk?E;&;P~bT(g% zyKD8zVOGiC;KL!i^dDW`_dKe*KG1Pf%^XcxyL(-`nKx&ubN-rqdB@WIMFk1eQS#!dw)+E}-|x0P{W-v2?5#4FWGI986*bX)H#Uba-MFi;fp79N(}bKqQ6XOa zfy*3^KArXaN?4QR8(ogb948-dL81Z8y_r{Wcn(7_40re zyFNi}hvoA)j@E5IaX?PAH*SU4o_~MeJkGk3a8saoj)a^n-;bQ41-t$pudq{8 zE4uaD>GqY%b7#L=F7U{r%!gUhLi+racg*J3r<-3>aTe&^RPpyOgTA!8nc?1pR&PZ& zEHmg&xwq)$m!5XkOCSGV+F#~nXu895$;vCInb;S6GG3D)bZoibweY@`FBMk{A3c52 zIjp7JeY(bks~fr*V&bkaUYE$(GlT8_J_8?T&V3hUkC`w(aulqeZzZkxLqJBQkfFAp z>4&vri){9aM+hjjG+2RfpBBLugcK2W5I&5=u-TytWC$8-gFuoyD zIOFKG>Mv2Iavy{E6Rm3{E%yI@KXoZva=L8izD}#{jUkHhX-a&BChP}peC3$ju;)Sk z#uEwiTX_z={{5m;Wk;9e*51hsvy^r@-ZV9TRjksa@XTlS=l3fYJB!WSvY)qS>lWws zxC6XmWoxyz?c4bwMf>%#gJ*WVuKd+(GpWmX<$V?@(TWMrxtSgx{-kJKq4aAD=dIUV z^93^Mzp56mx$!N~Y}3wL&p9+g^^Lx;+cGe$?qjfLoKZb%OMV1f>5ESyM6dg+8P)b@?#yfy4U7zP}%=EO3l%nU)D8Xa`n{fs!z%p z758vHSjziPPmUqg{vKDg$EVD~4O)9+N+J5ZmsckdwwVU&JTga=gZcLZl4%*W(B9E5X(W`35CKN#TUF)T9xE2za)rH z={$=RgOh}7oc+D|AJ2GQxn01lljgkBLc^i3B%rHn#lb06jL#46yp-N%-1X2$WleE( zy4C|7<5xv#-_M(QJYQ-N5%4(Uw$m~LljWyZt8#6QwLX-YEnEFmXOH%-qjfJ#l_M6+ za94ly>c&%>ZC8DM=H`C>xwhF;nfLmXUFkmCCziNBlV2aOSnZ<5stE1h zib?t5xnI^i{?7b_!(VIW@%hzXUVPPB_M&;w_KN$y=L#(DckT9#PK)yXDU+0xx$WXq z{V6vZ-8igSoIiW4)X<5t>p9@Q_}s=!%jXW0PTWmrt4S$Ns|`yLUcm zf1PjESm^i}_DOomoNCIkdQ#;(A?exliMRFHuyC z?#Z{jqvo~8``|a%eIYCFY&rb(aGR+y{aN|V;nmrjs=d++;&-qSf}m?NSxlmA-S zJU-UBnR}y6qs`2@9`p7GIDK)C&`iIh`E%x%HI2=sd__q;^*$@!T`G9I_!HZn_jwyc z#Clm{zUWM?%$hK3`gMsTRyIbS++p%&zij_Ley!{wwnIUnY}Un^=k-$!Ee-ZK%fDD3 zy6N^i(Qtl)gDY}!e|i0{;5wh8Sb4U$)N=ObX*t!s%a4VGrzlu_%Osa2mbcLD7c(4_IOEuD#+B|dpna~1<|LYrGg+h<%$Qmx;?L3daqh7f5XpXg0$$~RV{uc+uV3= zFr1%QGP&`z@9U2zZ*sA!%{SXq6fr~9I&s4>#ge`CoST+?lHgcct?A@m&dn7q$8vD@ z>eno%U;bGC?J~1Zj=g);%}3>or<6`J{hgU~Jdb?}S4HTt{Cd?TE40>C^=jJk9lf}K zCHURME3P{Gm%naU{Ur6h{;~(X2Zbd|Caz((D%$%yDC7UF%#5Hean8;5lAp9MsU3HD z$EmYcF4gqzg;RXOH!jB*uHKwpws)^+_MauJ3#7^=!gIe@im(@d?67vsj#=BiKU%L* zyCk-wS(Aw&;qCI}5zaP79E%U$n9_Bou~lJ#zfo4tfpD$9C+X1+YmRcAPtm(^xkYr| zR>687#Vmaq7K;-+nC$w> z;%b&>ijP(4_J+E)jqI1QzVeu__kA2(#(yqdW6u1{|MOF(?F(_gJx%G;asN%5_+MRc z+dW5zCtd5jjOc_FFRGGq{C-!h{kdfArpsqdc63(d9qm@CTv^-}_Fo~>?nzqUEwQ6z z_Z)VAo%B*hn^!T_^98qXgXKxalW)T=r)4bHxH9ohq3+VHUuu~euBr#@*ssW9p)O&u za+l7c>)v1PD(%deJH@W>@PhQKr+S|sTs|+iRDQ;fycA2}dtvDh%Is~VH!i*?ADevX z=Yxdy9nAMKt}Ol`BJHfO=8fHe$Y~3j#;J!ca#D`1a&z>IPu$xsA|5w=3 zPc`^o*X)FbjKjBNE-tIxs9kjD+1h`96VIG5Uv>G$)9q;%NmY|p3+*xCUahuL*WkOD z`nLGz1z&eJGH_Svh&VRN&M=(P;4yKkpSaOvwEHmF)rv-Q;jxWxu%SL6)GI3U-!m7tNqYe6S>T4)!KJkC(cP& z|EPWT`ekM%+H5yi9ws_2M-DXs;BjbC0RIx!uY2!UNfl#lLK)JJmONNpGA| zVf(ehYL;ub<8|Hr=-s!ylR1!FErjp7VPB+Pg42 zqDrtU^WO3&#fk4GFtI-6mj1r{=q~pEvzn~p?)*t~Zem-r!|3_RJNr}mwQUQQMtuGTWC_yt%jb{G4_9;%o`aZZs?qf1b3y z_wwvX%)P9I|HTe%Id8erE$T-6#)TIQ8fRHpM_-#4z-_jnsJ{3_=K<$O9$H(xXB>|H zQ@QWKnd=7cTy_+{?DYF+c*)Ka4`|Y(A)GCBkZV##C;HX2X#KUo;;n z%QJeEdt98Sd!2up#sOQIs8L-n!r;dcl2-9s!t7WD`|Riw9?SMQ zyfWl?_5EpVznEM&Z_dlu{S~2JKHiz@mVRCG@$9F<(mguYj-F%^iVOKRdy?^of6tiS zwO)ArApQEKh|QN=WTyDNJNhqJQSMMod&Te0A59%4hx*Ey>lf)CP4o}>$1G_+Zvpca zu6=o`wv%3E8oDrT}Kh4A!m93m45SuA=ma{$9`o*=$#|qpP*5}^;6mPMlw0_C#V2!Lt zvg%S{PIrY~{ax49EwN*=RL1^~aqkbEHLX~kc6z7eB$o7^%~~zdd898+57Ogc10I{D8!x&5zXdSWkzZn*xNrB5z=N=;W@tOaWpI72Jo+z7V$yrNZocMF_)r0dVk7X}9`+?QWz+m$( zjmIwE0_vuoyX_P?CEDZZX_g~d78fq;6j*+`%kI#%DR1p|WXk^7a$iSUG3(QT$Op`u zJ|1~_^zpPV%Qa#RIkzs&j#W$TvRFj?_oN#pB!^XHyV=5KiRF>{;2KfAKyGgSL4&F1(0^VoA} zM$N6pO#4N1;@&ZveeqhR`&a8qs@AeYOYUFDx|O$JN#@2?>3xfX9y9*_x>Nt|rN6sx z$uJ(|y!`d5=MF7vfsUFBRtLJ-yuN&y%=VBuGxFQI4>uMZe`Q<5J?xG#8>`Afp+hPwG= z&L4~WwPzn%6}By8;pNG97VqBEd2b7A=fwGo&rjaoFQ;8mn&9W7vDftXM~}9LTPxPf zWO;r%xU^lMb@{~;jn;|>)UT=sm)<>lPu6j3o@97Int2=&w@}Dc7c^-Zu_<3@!Nex4vr~6eM>z|1_?o(E5 z__L9TpX8uzDK(M>_2;$mqo zk*C@>tDI!uEtr}(Wp2vbZ+#|H-k!f}HGj_U3%*G@$FG+PTl6J=?mj9i;=|0z7Hsxw z)8~we!q0!)LN6}8G^_md!zA96x<8hlZ5@x*lUKhjY`U`T;>_60rJ>)R_8ET;5(wO{ zEx5tAv-_l(hPq>U((?Uv@d?om1PALhf^gSJp`v>PH>Vc`ynO@G^#hKlBg891Nc-LlR8G0!fIu54TF+19r*v_5F- zYlq$X^+Y;6go*3zpA!O-60bscU5%39n0TJYRZ{QV+_*y+GvjeR<<~3vKQj-O=vt4{A_xZJmC`bO~4Am5PsZPd;j4mi{O2@?W<0 z$8FQpHGi2ezyDhJaKR3xl=(+Zx4Ll8mQyN?(H0KZNwEIT&$4dCd`lLmj2ry5Gj=Rs z`>lSXTZu27K_KhLr`*W8rAN*^_xoEMXyf?#z4LDC1ri-o5?#;f`0%=2=*)D$MPy!H zcxSJV$HgZug>ULZS{u2Wn2Q5fg&JR(@`trJS%A@XQi3sq_N{Agjx*n05zQyOJ=LDw z!|qkn#a$V{u6ie(d+>kr)!B1q8hv=MN&ZN|ydv>$4y&29a%u`(y?Qvs8jA6}^$kDSXlDJhPI*nVQW`_jlvCMu3y)=oZWMp@!=W@l$-SrXV53r6_O)K! zg*|bu2L%5g*gk9JftW={zZ&ldn|b-;3TxK?_j)o?9(JzZI*%YmH(Dl z6_xH??fv=xnt67s=e%*9%lA0eS;E3^w!pm)XLzI@2AG>#@=yHq=~RhL|0m&v7oGX{ zMCpDz^8Fg$r0QvVPP3Zoq)gIp>1`_hw8+|U_mS=MG=)wz+v`g*|91N?nyVCMx-6nf zMcKjrhtZ1PmwpHw_@VLO>hUYKTHd~2)0MueXUw^rb};vcgv@uvhSfHcO&@-mVNjK= zVIzL;b^Xyr3oI6xz4X5VmhX8d1?%eSUDhlkGiYVdDo`GWIP-6rb> zWZr%GeN&u%lgyo4!BgMgI>{^Q@%rer$RmwG8b4QFuvv4tnZsO^f4*bokblCH^*2`SSgzkEb;AszeJ!39A1%*I%A<<jRB9&rguLKJ#XfLi7TY zHw`~aLzkN#S3D>6Y5o11&Rt#eE=^v3BjrAr$nZ&c^Dm|C~sz^FO;44V#2b3Ng}KX zR`xuTFP4{w_rHo-qI;ObUM*1m--lY~rPusy%Zw{Z&NM;*qt1zE&ql^(q7UGe(tR+s8aHs2zoFL=i_*;MqJdCalo$vb$a^7@xg z>lY@9{A|nmn6fvd@cH74f|e~;RZrKu73Ou{R=@bEOIf#5E6;D1SM~WV(#u-Uz1bI% zTXlar^F04~>X%=g*9_2a>@i#X^I~B4#y>@itm`i1XwT*`)tXrA?>^mIB$fMC`R_$Z z$8E1J7u^17<0%K-+b55?U;FDRY_Lcv)?m(F*_$Qns{j4hF+Scr^AMNLhqv#xvaWZZ zav<6AsCqfab}UwG(ryURQo|>pS~L)<{uE zH;0vV))twWHdoJiyYjeOIcG92_*-SXK_t4$H9fuUqfOmTS1EyN3PC?v6O7;-n&VspNLO`xCE&H_!i= z;HMv)CA{qL{rK(cd-pDxD`A$TW28{MUe{~#-{_YtKYl4#-!+SBo2Pbgv+9F3clUD! zseBdBL!0~6~TMEuBv}q4(wwQhG;06{~ zzhgajHq!r5VBcGF7f9<<2dMEY!jZGm; z0@E^_B6}E|g=hY8pY>mk>)5%bD`Mx(pGCiU|D~{zb;{MC*Ap{zbj!7?rj;%JX&Tem zQ2R_zYTpL4=*JhDn%*#~D5d-g+8eFN&og)Fzir>PO=ae;3Z5`|nWb;<;$(sO(Od7O z3Hwf7bE@!Sn!DeIZ%_NoJOZ9_m@@|O)#^-Ftbb-2p!DUziS43xb1zO&`}cUtWgn&8 zHEG#jWbf+;Cb6|e9O7bEIIzI>R+PV&M%>dglg~>mHe)$d5oyG?^!0tEjC4t-jn^i9wrlp>o2ni%5R zs(f{l&;B%Yc@Vnt-oP0J6s+3P&Jw^M)N zcWv!c5-}|EqL|FC+wZb?DWGP~vo}5T-2MlSeI@#CYj?kQ{I4k5a_as0@J`n$HFKuF z{(owf_)Zq?rJ?(d?UHm;yCpA}+IrjPpyxu_Wa-0hb1u)f;C>Qi!d}C2OgN`ZccZSr z4t*!X55jd%8!H9xPkpQRDQcnOF_sG}iu_c09o%&<#+=exTWdO7MB6uKLaYf-*oqJP z3QlcgvzY4cy1q~)L#BWKG?p-qx}LlzH$6M}yIwyze7fiv|M~Nu^A6}|KVx9!z#oc;0MzlSU2 zx6GQr`;5QkOLWn0he;t9`3s&JZ{H>UPReIm_eYKB5*S1TYZ{~;3lXeuG^UdIR==2{-e(E9& z>LGnkem>w!xW#da|I=HegyS;~p5_&s5xMgBO?T0QXZv}|&b~8$_TR25-RS*+O}9=M z^89;o)%ESs{GNwL{QEuCFM8Mgp4P4Qf#*HH$Ty?^A0)4JtuX$7NS#MgPv@A`A)h`O z^#j>$z5o6-`o~QuVD5T$(A{sxKXotvJx8a>G0kz1;`(T=W;|n4)K%Zp!h63;Gi)}U z#S_Y+#_+ym=ewy36!n_6TTHdNDeM!Hi?b{T+yC9vxv%`5xy95uP zl$>xyOib|nK_Rgbh1&NewMXt;-j~e&E4ydg ziL|AwI3;Zi;*K{L@bVh1$v%Gg&*^{D7?Oikk4dmc`uhd5x_CA`&f#~kJ)*j&LwAKW z|Hu5sC03J@l&&o~X_Q`aW$F{@m##)D+(UObRcl+!P{`iV^{4i*mA@h1;^M2{x|x=< zyW~%^c4ph%@M&VzLZ;=mvX&1IuD+_7Gpu;D5Z_0;Q zu@hH(AG~0EE_(K%|AyR?yIQ;**<<7+-lSdnTd-_F^1kbLd}iieozEwJ*7`T6@Z=fU z*FRi!yPER&U|zyxg&jpJ+TYhb{bBOJn>|Ruu{?Kk%30|*8m9N1p3I-PXE{4ZUyla+ zbTfTN3B^Xc_MB$ksrl(@Sww(0Rpua_o?cCoMb*G3&CdA#{-uGXjT8pRY{zK(c z$4(bqnRNUA{FK!^Cr=+pxM8LB%5%S`^D$53^Rt4SquuY;{P}(8!MZgJCZ`spFLFG% z?y&HRrueuwx(3&#xxUE%chWoBTkGPhPP^z_a5GS9DSpKbQHWxGB1+;v=g!US*o z*gE&PYW&S^+Rr1$X8lh2C9_D+yUy>+KQLxIin{s3N+H3+s`9%-;-c&NzY|%+4}J4D z3y4?s7khW_>a4%Vk3MB}n0?*N((C<=)s7P#yk!b{KA7dQO;`JL>c8{!I8CnynLH+M z-kixdobJw8_&nWhSB3qtZ}RR2G>AUTvt-8h+n>57-roM`C7a3Z z>E9m+|E-_u7X0oAcy0KHCwy2T4x*Cv-1jH1o~Auqo@I zY1!80kCvJ$Puf_^w0rW*TBC4_IR2?c1ygO)*ZWO-C_6pFV|VT%nK!~g4tv+!T4S?C zK=66LN_^kf!i@(HNj#D5yrSKqX!`YZ{l?8j``6`$vnNQ`d<$6bKfTjmm)*EG`A36C zzlqbWU+Z{Yo~}A^qwU(9Eh|m#KTdlcvHo)0-&e^Nj`Ke&d#3R%?96@`+cTuY4hFOd3ql<1^F(0dUnxi&&J?@SLZ#I0~Hq7RD?>tUQyICr=~bt zXOqkQ@|`!-#ZTv5=VM*}^T+m38@Ys;Nm9Qo9aVVSbyehy91mZqd)&veH?Ly9Oj6U< z^c|DF{ovOudU2xpdV$Q>7ZXy=((*p-iY_QiyONxE+4}e$9km>d_r(qu=1h?@=AC+f z(dP&A-e1j@V^}PIZr}R#jjWCjLOB*6Tfmq;t-ISm^e2y_6zh8q@#8Or{-*$>mxteYuV-zEbbG0W^iy6 za|8tIPpFPop2MlmzQS7L;iiQh*G#zQeW(lYmYN?ee0}1BRVyPx6OEI0ojp+%_Pb5% zU+fBV75^<0?t#U&^Zseq9$J`h_aq|VvG6wM%WwEok~sJNS@=p_qVKxi z{FeLq$L6f>jXbpIrUIk7UbJ}L$LVV{X9TfNW0-iA-DX!BtD)MxB^!iXyEa~5SXb0g z820_>Kb=>r*$M-;S4b8eOWQc9xarjdPAlm&rl&c+?_8gj-B+6#y5`i5Li2a$j_7uo zynXxVYMiN zS$ir+=Iz}h{?_}}@IDcCzjlvDnXmTo-i_B^6gtN2>oDYe<@x=?&Kb{t-|i@wyy;$& z=0{iWPwRioJ-a7Uck_A1vulC`tG+3Cu2oXCTa?jmu3=?;!dZCo99w~;8GhSS3R}LZ zdvfbYTh)I$E_~={KF{NljX#iv;nDLgG8MlSO&(3_@Zn~4OupKsci^jZoSY|z zqSds0K5u?-&t;z1xiNm}4;?kmI`2Qn1r|;IG~Muc^!78$&uqEtHeu4vzsDMQSNWa3 zy>rVMp3=V?6WCwQ_Z{RBOMUcB=8KzTev;^ABEQh+eJzG5 zHzH)Mg&nWFe|pqP^u+_e!meMRFTXH8{d?2XeR}eyb28^<&g!uc6jYk>_;1Fdl-3=y zt<|Qfx&QdA5LmHd%CyUigPqeKKYU%Ix%!VD&rKQm5T3OAHZt9>j+RVS$WaM@{%F^e z$C+MYvsNg&tFK|Xv6FY=qfJ*gJ867ot?AmfaPcf*rCm}tu5X|BuJhyj`ujx(&$}(v z_N#kS`Tx-Ru9{k#RZ}nSWzT=7xmuI|C4uh1Ro5K%nY#UcPL~3HS0U$a^VIo>3b8VrDVD+ z(n>zv(q*NbURk&1F2CEYng{ti|0I;$e&f!yo_)fS3sxCck5+b;lsJE4iRhXmFS2Wg zK+5If>Wsr0iLW2Fwr1}*d@Z5>lI{6tFE>1NkePYq{)3ZiwA?jJ$v~0?`f{((W$!~cQpUBd!i}4R?z#odMitCkvUuZf4i3rb;lg0 z`WajDT;Hkk-gdM5T;u+)Cv+Q!k~I zwldYJU%fpHnJzgW^2|TuyyDM0ljdvg*@_#sJ(&5Xf1BzL1&gz}!ndpSa_?MSZK@R! z-`V);bVRrDDY^eoMPklheYi?f*tO@O_eq9Nz6!p(d9u7%c|}*xkY|wi8t|y%?94}Q zc6uxmmd$_9`pf=bOJ_yVwgW=5)$)BSuUp;oJr(wMiK4H0`qLLazj~y;vhH&in0)I@ zuj94gL;F>~-;8VhFLHOLeuMMJj`|mtO%FQ@I`4e_GV|0iwhiCnIrT$bJp5w<{)D6! z%(0#Pj;Hz@$09CIHwni}_NA(8_!KO%lA>1T6w_fEQy_=D%|T*ps~8?0iwvU%T?m6j<+J5SzO>AorBiI;$L;etOBvlcG&Qx9A?_rRf|Lmj&x z9F$9bcm2xrP{)G9MFItTQpIjC&k#x1TrVH#wqx=v|D;Xw&mBLB*`96L&@VIL(XAW% zKZqUvpBJ6cvFqN+s{Ic?*H!*g-8oAqHN7Y{|KE*{e_8)ir)BTGQ>J{gGxULsYMe@h*vn!cM44>KrP@&EatbLGUo$OFQw_r!lN-n-;d>g>7Zor{eQy_A$R zm~buBVae-*AsVUJ*d68jMZa(&#za!lhrT$zM?TXWr6m(g{P^twX^w@qE z*m2mH>FI2>9}Bs{f`0q7c-kzqzT6Y>NH}rVIn%#t@(UNfx^|~PbE;SLyT9d8TkkEN z8!_d>gxcT0*zi?_DurmcC+W?LXH_ z(Wd1eF05jj|Lo{LkNvw6V+u8;PVD|Wbs2N2rG}od{H_aktF9fLW8POIS~<~jZA^K` zlxGD~4maf~sLB7FV_>jl$~2~#D^<3A^b8K4a-Cmjjz#g}@6tP5`}Zn6p8Ub%L0mv| z{ePv~zq-9lVkb-eoaWp--D%aQZBF|+>jOg73oKj(6t<}@c-L8zTeo-8)s1iV*52m6 z)pU>J=5ehi_Cr%`Y#Y|Ow;i9`$i}ZL6ZR|l<$sf@3I(dI#gigluW9koy>;$crTRCy zy-RFN1FmJR|Cqsa>*?}G?;fA5P@DNUF5_o@&$Lrvj3?4XpRBrjQ6$dw`LyI?7EaS< zDt9U$veUiT5$xv~qJ6|L$5btSTY>PU7cYKTKU&ez*0Va2ORr_o{}XoSZJ+)<)^}vi zx4lbw-_(9qwpih2y06*GYe8xGiYKny@815{yFFV?#k_I#AGN?)%U%XFpItO@$NVA( zUVept%g*Up|CzS4dXeMJ36q6ZUA`WFk0bMMUZC6767A>jS?2qy$?h~$IQHuJMAi3m z(u9))|h|TQFlw&SdnGL0Zr2`_DaQ+GfR8>l4_g18Vba8eRR@d zF2tNQ-SNme)Liny9q-`wM_Z3h4UV4K$*}zO;rTg6es{z(MMY}GS0)#4-1Msb@6Uxg zoYhqq0+U0+boYqOY+RjE;OA@B7%cWjT1LD5Pq}$#(cj0*w#5kYE?aa)^S~ELYvV;b zns#>1`T1m7D96M1@3(U@PuvuH^J8eY?xYX82cCX%es^ z?|GQM)^oGAea`$|=j#seHbq@F>a!GFyWzB*c(cL^oipyMczEY#OQ^GHeSacxJO5vE z$Gl~MCZ46fHCNZ%O`hYHcv`n8|HjFyuRa%SO5~7;h&X# zUwxl6hnFOsOSt(|_ZV;BN^#2@j})f6?fBkyq+@GRQ@C~^Yk(!Qi+w>=%3e4eK zx7JA)O}@q&DXzxwK4-==wz6HhE?-#fx$evj-rDzJ@$}VeMR)F=6_H@Du!+$*xV81y z?zWkSKUqFVUns?}FUI$4?l4?z=Xaao z>Tfu?Wu57p>uhHgC4N=pggBEGl##&PH>A#*t4UeM=Ou_2VFT>upm`CH6ZWg zOYdnbD{G3IHXr@j?KW@o%X>GAC7=F&nBu)B@z+|dD=$8$HC6xrw<>nuj=dKask0yC zIdx8@)b;&3y%h)UTnM~l|Nr7Yk*=*)ukX&7vSHR=#rbW*A~^-i)Y&fI*?rX5Gpu{( zh7uqC^ns1VAhhnAgO3R9RZFuSEocMo>`WesWrWtIj zqXH*>_`ELa_LBvzR}-8zvRH){7IF$CJ@#KSx99=`?+P}p@)Nx;^Wu-a6kOhTY1Qe| zk5?F6S-x8G!S#mOD>=PaOx(MoC}&BG|3Uw57RmI(r%l+kEz%7NRj2LIo)~R+=k%eh zHGyxgcwhT0Y+YIN*Wi|oyO;B=j)TvVuHR_qR5`vVQ(a)+_B^Y|6MP#3dvzaY)E+(c z{y^#^vn`9?#&N1UHz}+4%k>!sai)UV#MWe; zcutP(i|TJq1;^fNBi(k7C$#vr4>xp$Wm492cH4cCK<`k3v zPm@pOf6>KIC(!_%ZMm(t&#Rgqb#H9HJ(Fwe;bmrj<22Zv-Hvz_E)H07^VOkWg3I@6 zOkTaOeTLBQImS;lKFr!Y<56lF_YuBlD{|hJUGY`i^S^n1mthTXdLo2`@aBb$y{m7B4iaA@1LGv}qA z9-6gQv$c4ghk!W8o&eta_Kba-vKOXZ3y@z_$@_5iyhWeRg}(aK|4x15lk*KRj0bCi z#WtQQDZ2A_#;Z{M9{Xil%HQ6)9F2Ommi4hS)32EFX_fQU3r$legzgbhTWx5d${;1U zcb!d>sLhKnZ7JCWC5oKl)7}*s&9gfdvg>Ez56rd&+z3+DFQdeT=RhvOd^YyK-l!n`VruzsCBT^QJXPP5=2n{@Kd1!)cG3 zT#DE>U9;4h6dj^>%1G0F)n%^gxrtMs7GBErV4meR;Yan641P&vng2fpX6$F$7S(z2 zv(bqixenU@7}g#Cv}ffRr%NrqKNF(1ZH?+MJFcYq-SLvi<%8V4a=W;OyPFFF zJe)lL&N1MzjDFyp+`{=)|LwDvpX&YZir%<-XfJoX{3YQv%$L-5I?nO!EV_H^y~5na zUDASc;-U`TSi-j7=wDy`L#6_s%~5kdy78Q<+jC9Jd~T^rr+%mN`OQyrrFimo2+K~G zRxvmF%dvRQ>VEcJe1;kaPwf-hVObZM^v=ST@n-zON_lpZ$|s8|tDL@uZ9X@r)c?ZO z^=2BooEiB~J-)TgW%(HhR(vKH?it+;mA(&63vl7@S8a^`lp95XZd zc5r7$(0$D}(jMkFwArLQP8oc%dB2zaw4OR|_`kD3{VNz}Xl${%Z(y}7VkJ|W%H3Iq zRE@7IeR{aQH&)0=OyJ*Up%q6{b!O&wz4wykS2B#hesQ)}sNZZc{hUJ!{8|d5q?=Ev z_UbK5IF}O(rNaYZLW<83mQaw zFJJUuzwPFAUX}Q{JA)oAm^x>^nOBwj(%M5GCgt%Y>%0-IzBlRclY>u0P5*4~6^VE= zQ%C33zqg66V&86PJTqy>!%2P_0Ux(bQL=0<>zSy+RKGJWsgb=-ZQ0inuDJR+lS9pK z9E#udaza+gC%KOMnrD`|&+prt@;_BLjJ@W?1W&2v8l@|CQcYcRs#bho(qa1Nvvu%H z)rIrNy3iAGg*00AIOLAc*gZ0W7+9uua~wbCP~WGwteQavs;x_ zmt7`5by-^W&BNIO&-BI~xW`b}RowdlpXZIVJ5?`SZjMnN5Gfo(5XK`Nsc7 zxcHyajiTe>a`RL_Z=NSFZ*_yS`c-U_MZ*O_yT({K-o?Rtta^2)+{!bS+TQ1XZ`Lo* zWHp6Ir?+uSPW+La=c{{RA!C8;ak+2Wr4JVKUilpVYpMCZjS|WX4-BX3X(=jh<&x8S zvo|HhT)7(Pe_qyz$V} zS3G;2cRpF4(Q>vq>{sN~#bwrarm`-19P_pQ&xr)xntxrJV)acF)925xxb#Yeo#FeZ zDZ*vzZ{3vA_Wu91zRdc&@k~Yf79DZ^tNGjI{r9h$ z4xJ{!ORXb^qDB-$ev+%Jpt&ySSyquv_M`vI6(h_`j1B>LZf-N~20o zWFLxhR9%0)C!Ue1!{)nlRl2>}{XF64OOGsi$?nMzI^%QB{4aIQe+u>0TyB1Mu3fpi zWJa6v^>rc%GbUSJIcmB-B|Kx#T1QTO!*kLi&!4?lY?6EH7Cx_X^?q^b-F}yN7BnTj zoAbR_+4*>~*yPihN9S2xJ9*^9{vh41x-EX+A})w&uwPm46?o01M_767wb;}XKR?(e zN9j2_ovBH2`p?dMIcsX_{Jxv-mT}%*zScFw$$a&t=vcOOVyVkDZp@PYc~RLy=2(XO z^@~qgLn;?fdz4e7sPu|xRU0ymb(*jQG?VRzY_SLm5r>=Nx zIsdVA$}xuMgeUR#P5eAlo=Bz5f1lHJuhiV{_=@5QzXH#!JbC=P(Tq7658j-b`El#n zKA)!7O#Gpiy$_G=G@5&)@ljTd<~j5JV^+nS!Hg$wNsIq;e%AP@ccJP99jC`F{a-(2 zFYYO^ENe%Mr{Zt5=upAZinBc?sizr^Kb(|qcB8=RW}xq?|3AAI1PfWq-YL5g ztGhNz`gZ?4`L*ojhHv%;_3`;)&K3Om?KcX3@n`iU`Wy7|G8t$9?Rl<9*>544bf&-CTzkX8C$T8YPTYmiK|4f6l$# z^lKmMvHm}zs&@*x4$QFG{_2VSn#NawW#2cmT>cX8)x#v|{^{wBLsuWpNc|NTwZ|;F zkI&dPG1q_oa&eWlxf8h56Lc~cJ3W3{@TFiy(xk$r;X$`1Y>Jw1Q@xER=t%#U%I)26 zH-;>-uU=*E%oEV)8KkvXuYcMZMnBaRt7}!}uf2IXIIo1^)4`*UpZIwDymwK1{%_@! zd;8Ya{+W0sTV+oD`+IWpgyxRUx2!VnyhJ)VD@%aY~m8x>|Lo z+TLD$1pW6FqQgyCugva}655J2C%$Bg_T#?lMH~IL&SIarM z`VC8G#H(z$@0hb@fsshmpdCSkHDIC18^<`mV(yHpmRm+4Tq7E*pkLbC0 zzk2??_Pw$5)a45|1T9&?)S)w5Woq&bwWp_+?f$_hwc(dZ-~4j_tR~goW9-J0JQKVA z7d6)QPr1#s^N_}+kBj*ubY5uApEYmt!OQ2bHrZ@m_wubw8>^{)8&VJc|1m}4SGsh1$yV>WRVJ4TJ{0U}juNog5V9{n=UAr5 zv0}4rLJ!xs&wjJag)#Wj6mF&c+h?{nt@gX1+ zt1`PRmbYwL(AX?!QQq0Bs*&2eHQ~ef`s3?x9LZZ|J_~xUi-6g%c_GR>?>zyS3h{|`{~!4$=jlI0l)P3cb zAK&c0&+WEK=lyc&_q!u@&F%lX`S6N0oh70V{x19cZ@J><>iN#QuU3jF`cMCTu1aIk zsn!#h9)1dusx&zI^;GEZ!&+unvm;YXG=HA?SbwK-`o||8JB?N)`#rWfvQs3&=y6tI zOitq};fsQuK9Ma~wkFvxtJ-kvZoSVTvm-S{?h!?bS${bE&S&~;yUcj4{B^^*^gA2# zf3;0LZ@a>)IALk;&3A%}m5%NX(-sq(y2d`^*018nDggn@E^s8x&2+!9OgpghpI|Zb zjw!Q0hp+uGZS(x&VimuZw3&7XnFoZgc)m=ep@?zuJ9W*+S7f)T@var?p4wizy6j$R z@0!p1e;e6<5Ns3Tl@xlkw&eS@a2>-&&dkl9MKkt%EK>A&w(--#-A2`uswBAYx7}*m zBlUrCb@HLdmn<%A>A2%mp!;Xz{0)D*nkENFa(3`{o;Az-U$S*O*NL@7VuxH@B=6@* zE8MQzvo6ri+}KWx6+w;&&})HZlQNlWIHZ>FN}XA{HlK2xAPVM zH7{F)aIe47mOJBHeDkE9rEYB}XQeJPdi(6Slb3axd8KRp=HJW1m5t^xhnk&FdvkP| z-T6u$%YqBW>o@$n9`j#hef0n54mH_kyIxIEGybvkIJ2ng+=RtVPP3{$R?RWU_v(|) zp2YfM+4>7k8acv0f9#AedD~UVQJ=Z#?#p?)lalH9@9|L(ezQFCz3RDHcG%%j6dfK5HHxSZ=-8 zI`h-VsshewnZ-|TJocAcTlpm9t)C)8y02VD(EC5Je{WvScqiPvK5g4cuSG(hg`%g_ z|F;yzDt%}AHM!}RwAlIMwO!s$jo;)P#1AO#SazwjROokv1mneJx@K_v8u+{w^erar4*xRfmsn&=e&iN##^jP|kR zb7!wMOxW;ZbKZ*htA82H7kj>`KJ1e!b?J&&+Rx|C2KCRg8@BeW->6m|Yuo0oxY;@9 zvXoU$`_bktw-#s?806eoabbqGY1;Kk99%xHcg-^q^i3!;d;0F_?=KE67BRjr3tmK} zo?uf{oFutOUh&7*YdgFml@e=jyw4Z>b-8ro{qKBpm$_++{tcX*`{q*aqm<>INl$*& zWwRV~&VE|={N!Efg|9b89iH75R})|}r7QiGoGarMHDk3aLSg>p46=5KyH6OcV$FRz zyZ&8>>iTfw%S-OhH2hWnBY0m!!`jL15gc#l1zw+>ej|U*hol|TPQ;~g?)fGC<9hLZ zi52&^G4i^b|Iu-b^%m0oVbGJ*>#kqJ%;;A=hHaxeFN;)d- z%C>WVO}ckaO3jKtFA6I{rnnZWJm9;`P$RPT&@qn%rp#}eBm}SiVz_;O>xVfrgtytu z4r;xewsW6HfMyCueW`@x$NLgy)Bd|8uCg{w^y=MS zh99x9iI1OtQ8~%_>hL_dQy;6Yn8+MnoBcBI-=!{hZ=Fh~n|^;EdQE?lSruS$#$*4r z=}`v0VL2-lMALVx{onbY_2cuYnu@!ga3-bcFgB=6e(ZekMVjCN?fs8b^rEb-bkA>T zZrgOOcVGPLjHo4A&vPF-$K3Bv-M-q;SpG(;`pfuhkN14#$y>aI{XAP9+hfudv2& zs?v`s{-?d7o$l-`dczkT&(SigFK%Cegt+a!YfBugPqxM`R9h0bVx?`;1jbGep`NpD zw>pzo|5sc4^Z)DlN7sD6TlD(m6=`ViyE6odB9dPBywQH~X8bz4ewI2%AJQWDbiU?{pwrk!Z zSk^py`QlEo%026;Ij@pD0z|1LPLwdIY> z^gPreJVB5EG-}0cC_Y-A{*Ku9Uvdi$T zn0(uS$8UGbG0()T2#4&$`YLJ;`J3K(-#!v@t5MMDm3_3@qQ{eblUcXMJlMB)TkS61 zR+TBiX-+4?XP@}T7P|k`iLd{6EH9OaaS?v&!SE|KOm>DmbISX!Wy@B6m@6TjYWh7z zA?(COYvJ8o=dIjSqL8?+jV#65xFe$Q#-|m(kH2F$mEUuiEq?E>7qQ-L`#+yMy4t6Z>HR|ko4PHc4WiqgTk~~s ze7u;zy=z-mWQbNRKSTSXDOnb4&I$coK7rv&zw5O8OTvYFTMtCfJidPw&;7f6OoHXc z6Rfr$ex-2FSx#}{(TxgOEdQhqochqgSi!AyGK@9%BY)NH)*HXHgimNIaS7)C7McFz zL(I+peAmxq^{>8^c&KD;8H+r_@=GldDIO)aXSKAjF`WCOvZYPAXwIs<`|FZb&v#V1 z-3eyjdH3qO`fx`Pkv}UeI0|=O5E15lw14`#e>Se7o8G;v>0MP6s^R?W%_LQ?35%09 zwQx`NTlo6jrA%#&hflru@AsBGWmtVGBeHvc{4ekF?q(kGRgX65&T&aw!dl!MexO2I zMDEt{Pd8s$`kvd7`z4p5=;xbCzmwOeuG5%w?O~_WNBM2>&pgVG6+AE6_w$L}c~;(S zVx@0(s^~J`^Ks6MYgKm@J!KlOdbZlJ?Lw^w(3tMRhGNIJxbdD{zjg|C8@_&jq~Onvb>hJZQb#A;_#a#NaPl>y4L6Qeth}F}x;yao za~0Jj#kg-*9y+kU<%^s?gD2>vqm5bq$4Ps&EDo7pylD1jbK+^Q+hVs8Zp&{Ln6-RM z`jy^)Px-69r3eP(mdCN?)}49uE@N-Sq^*B$i+*Bj*DfzrSNo6`A~f60CYfFT)0;DH z-meqc+h_mT*6+I}bhAm!K@0z7f16Kfg%}*$s~hO8v&K4dO1;$eb0LiKnYFPMFKRhY zaC(`x1a+_OG2#fepK<7_l60%mrjC90En|gde9U_Odf}}OyY+h?v`Bq6TcFY2 zx26#n4Y@a|hO$gubdYgf`O7{J!cV_chOrFGX zd~SEI`K$kBZski<4A-A4Hm=@Met7=8-Ihn6bH?(t@6$|bE|Pq8e#xolJ4NnY-H^fE zdRN5iw=Bo{^Nym^xN;u-yz|nx{>!b1G_(1~I4MDA^#VtV2!`#qiFjs1_ETR&s*`4@uh zX|mojADkr_0&6Y1XXtG7<`!LJB)Kr!LVcsZU59q9-iq!mZ~0A6eBbdRVXJY#Y=Px5 zyfUn}+9&W$W<46{ex&5-iXP238Ziy)kH)24_^K4D8_{*(?&WO-?O~6(tY%Dm@XyFe zS#MRA_SPvk+h%pIv|vt^P~Y$Nu1axBzkOMf^8d$+D~r}Xcbea-B>mt^{_He&$*ygM z%96F_p>i8O)EcaaOYJ)J=uD&Dqp9X~4=1_!XK?Im^_*)~7`)_2qow@0M{^EtH0eK} zv-)P@cDt?Z{?}AWWd6@QdQG97C2HF|T?@J5q8*DDpH;4(yVLmKtnNpSQ#p6+>GC}O z{@;J^I^Er!_YB@Dp3xJ1xIgE8LimnnpAD=sc58pyU8LS;TKN9XN%gyY>lZvNda6-- zU`I%|#^dRa+f>f+U7jNy>7lS~#)b!r>Mrp=%VLaqW0z#~uHB_7#II}3!b%?^~po9+`PcllMm9^O~;?R`Yn?-koyt^>3?!vc6-}b0f^MResJ6 z^xppJ5X;R=89cr-Hky5(Z@yyY-A~O=d*-Me+4)hE%rBNGJed3$9 z_p_VIj!Vi1^jUgss>;^%={2t@)=X$tU)d;~?&EhO?cp8w9ueLd=^PmcIMs9tpTA2~ zJejcBIq0>4{KUxtkG0-S-_QE^$uhOqv8LOu-1wjDlx$sd<&9aQL(i$dtihkM=U1*- z_;S;t4yR^5^UiM!h1RQc_i9cS{65wCN8*l#>1xX=bSf&fPH`#9y35P%W!%Bx^u$Fc z>5W@TMbq?y+_h?A%GFu-Rj(bGHT~c6AD86J&wo}Cu@f(gvYfbG`)b!e5BcK(Q?|`- z@R=F2I!SHGp`Vq4foe*BBq}O`zE9q;g~h4+w(+Vi!xNiRwnXG>?LG3jr%&}Ar|MLN z2{-JnAIfSY_>(jr%WJZMoBxlKM*PYwVYOGB^6P z;#X-L+w$txzf+z{hOq@}Pj$4p_B`+0o8)vl^+Hw$d`^yevkEJGPGU) zcg$V0bk&Mo3QnvS3t2pwB%M#2aL-D9r`gS-CU(Zf@w>7Fw<5Rc{)2Y&*WU;}IYYtw zPuXSZi8B5=#w|<*k=OUA3apzq|It64UD@w`1uI{vo5ZpGhfTq`OS+-D3LWk9AI&dk zvYgDN_i9qwTFWQL(x-WK_pf1C#(L{X!L!Vty-jcTgglyRpvPFP*u zNR#optv2_zSvy#M{O~TxQCOU|*_B!T?CojsYD{iM;otx9B!nkz7w)~Z_0|;gB^T4x z=artCa>?=Q>&bmlpDSmk1%EfcGL@|*l|Nm)#dXQ-AE!TwHvHY)n#hx&65{{6=ECgF z!bcz4Z`6_MSDaU*#VMfrOm=>{gy7kDr&NZ@Jm7ez>i6OU*9{m)?oN z6?+#w`;#Qx8oIXO*@Pp$s~%0dm^&tnN;>Q-#f)&C(|NA zpKta{S^c;D%KKj1mG`SJdVYLt{r0rt-6kes|2J3e$=I*lWSWyFl>0X2bfEJ}p^dXF z*1H%VxxInsgzBYpsm!;^=6%_kE}g2bGXJrG?a~A6Z**#Eq}@sz|0kz>6+G|q-Swd* z(~Ex9cV8RaEnZnJu6}a+$K5%Wrv#6GNjh^rNNVp6+55T9drxP3UjMRap2W3vpYL%b z=v?vN_WPNRpWB2U?T8tVG(UbcJUe^hXzvNb_eE%xnvkg10dQX}r z{9A5k`_;(Rx_=h_$;wzc#nR?q>f*$LddJ9f=FDYVEw;X5%s=|0^Ip*W$P2$-mlv7U z%g68S-f>=d8t=!pnl|4SK}FXm&Ras|XFPnpeBY%v483xDp4hk?)=t^1b=qe_;<5SX zryb~7;^R2q#3vzCF<_k;T_gHu3fl3;rgBHM;4caGt5n~QHau2f7yIB z@YFT^_1SkZXy#EIjwmv+p(m{(bnxpf7j z9>cDncr~5o^2be2*6D4TEw(67!c`r)aqdy2}c88U10pT9c(aaY9s<2_zH&yJ*vR@8W@Ydv6cJXLZ+di%_Kfj;3E z;*GPPP2D%6Z+FOL)y79(j1^eQ`+Ls_8-7pWsyi%q-B*>}ZP7c9Ii1IRWxs6s^6=D@ ze#t`_|2=FMz1lqKx&GgW|L=Ld*1P`j(v2l-m7HQmo-AAVKlw+u^thIP`&Xp7+KGL7 zn(3~|RT7(YXFuC}e0H(N?{|vXFCYAB`TgYgR?&_Zg(v$Tx3-3BHk3SCm(8TQH&yd` ze2adhPl$D{hh9&I_Q9x(#D6n#*FL&Z*2DI4( z><*}w@39ri{jQc-bW%RrW6>qMm91;bKF*y#?ct`?$JepV70~b6uRZxts-SW9?jv(g z+UaFlzg)OAEcT|JqZ@74ATeDl*X z)cz?|7*?uyU%WHtsYjh<{`zBYzMf_M5g%zPzCCEt?`g}5Po1xEPs+IPtKtabrm6Qc zHXPA=aq-;RSw~VOEB;SmjW06WG0#{+&^ytQBjS_9yL_pOv+6HAxFB|P>mBU{VV`r; zS4u0)S4pgRWiK=1_kvHoU+&$y7*{X#?1KOO2uh3Lx%3m}59dv-H=i|7O?*6W#h$6Q3iG1nJ$-%}u@zZ2-RFHYtz=c& zx$|FU|6kRgn99d&{JY3_Y1goA^Qe(o!Xn|`_aj%vES*t&@alMP!}wv|ihT>jr^ z;eNcVpz-;3t)+WU#->L9wXqYii}7>lGZ6D(o3gRiRPG~S z?&)XNp z_~R>NdG%euq}?aBt9xC@{v>7Vl#^(0V_;Ppu)6iF)BOYcZ`c)Y4*&X1M%c|d@Ab|j z2ep*XT)$spR(09p#dZeXwkX!yiL8&4xS4FfHeYHDxvLz;ZyfJ6Pk3FFmFG0>YZ>{^ zu0>6FFA`w1!>Chs`e)Admy`6wHd?ov1a+FWJ$(LEPe&T3&=H1~jLQ=464PVk+#jT26MZN8hEVK4P-d;7J9 z#eMG+`mA|R=*7g%F#2eJ6N$xZ+cprGq>_zyLb10m_>>MkKNRpXP2{0zQN;Rx|98!Ugo|X(-&@fIVbvL z)+vpZ;kS>>ef07ZL-VxjuV#5RSsncH%$Z}7fk}Y*BQ2p{A?2$N);y~4<-TCI(dVh< z+;tI`44asDESuWfrlf!DLCp7$4|rK^BQ|`Vw#c%{%ZGPed^2Ov>+TL?bMZ})Mgkn^ zrx}CzxE!Z_l{;W8a$rB-E5YJZe9Uf^Qq7%32DVdV7C+Ea31xie;~#hWDAU>N7M|0c zFL3q!TA9}{Ow!hhU z$=t_pqK%A$ z(M%H`m_2zom*v&tQ&KDEX1%>?f929YG56gYn6p#oweP-MrhP?}<=?yeeruQR$&v^z z3tM$>rTVdH3e_`0H}VFhC9djl5}1%B{8sO6bNahejVI#!)*fAS+UZTl?`EFdr^*wS zb980yy#A(K(4g9;{pAtOTQSQo%-p?jZc9W(`|iTCOqo*-_na#Z{J&dkW|9@dqo=1l zxevM>-}~vjn(VCge3lah*z6vCN-$da(rtN+(K2zxZAu@uh=f+!lq{c|E^Te6X|C@6 z@KvG9wEInx`_I2|`1F@oBFjvS=Y{0XXKd5WezkJ6$ZcTDp1>u^@l^8T)=53*R{Xvz z<@;{+;uR9h*kUer3LB)XVPXDO{pC+W%Eps7Rvx-l^y+q6UvKoZ&#QkcmQE8osrE}> zrK6=QDtN&L-J>BFQazgzoMzs;z^4(vh$C!kWlQ3$L!Wo?8&~c8r#Or4g+xov{!RIp zMR!&9*PnI%;^&g}J*B`X$!>Ga`up0;)J&byJI-9-tv&uW{@c&^z{T}it^SXvHALQQ zlHm|Mbl_Q-^xl2Xe$D01^fjz4K9gkTG+~C;LIk zV9(kLE;&DbPgQ|w+xL7s_ice+Vj64lT0Tdc)m_`PU)XPW;}*S1o9pi-OV^pVO}++2 zaVmX1AiTIPYnD&&N1tDlMI5RB$4r>($hX!WAVSaw8P|^plUfntz#^ zYV7?#t?1{vpnJ>Z-c516I_J#f$&*&Dxc~A?io0~SPydFOtjv>^%;dZ2=$GL>Cs6I{ zrt{P8=e|k)yL9Jo$xHF)!<2tnJv*EB)zkEE*wp%pe=aPat@p}RENj~|`Eco@-!Db{ zx0sf%(*Cu7t$nC)iEU$~?2A>dhR@6wzAU-y%^mba;q#>VbNYF%gnTFtpd=~is^q^g8&(qtg4jijySk2G4nC<-WrZz*r{cFC!M$goG z*}3lAwB%-@uH6->NeJZ!1*`Uec|zFhG%E@~=nxzk1waUo3R@WsD%xdEE`tksGfYy*ln6 zHzP#s*~XJ~oO?^$UuM2Lc#}IYWnpLg`MqzMA6RrtKCgVc>Q1Lb(7N0e{6agfsdzoP zfBM(=X^tUPw+^wWyuGNLB`Lq@JI|e;bLXDtchv}H5DvDGC}cRAdm}+Q;zAa4=c89k z^|SSSmn1H2-6-*J_8TFcoj3Pe{>q%1elOxukB@k^uJo3RL3NVSE1xFk{DH#6eIog}O!ul_PP@-0LsAns*ISnrN<$+a0W8QCviPkWZ8H1n_2rs?HE_eK7C zrttq(cqD4VWb%~DXQNa7vN-qXW}ju>zBkp{@4NBb(vU5?;A{0+wQyF}-A-FWb}jMU za`b*AlULbAANhG<&A&y3MApkY)vFmT6bp#mzPPL9cz}6-Zg=;Ns}}D+t&D!e9lcz< zc>QIc7r*(~$}DTEeX1qAAJq4+J0a6Jwa!Ob96#i z<9Wr7HBE8-e_zYpy<=-pAz{-nI}Z}~=k zpC%~1)Y!=JYK4)m-x`E=B`*Veh!Qtw{9bo$4}c=s&} zPx7MmC#KIhsk%*CK6~*Ofu2=6wuw!R?b*J4UfLdw6!Fq@zwJu{@?PhcH*P#1^Tfx! ziBB!)?51k*@Z*I9Mpn9NZ`DV%Eh2@V=m5A5;%#MA%jwMFWtJ3X| z&MTA1w7a$9hrR|d^}dM?daJ+VK~0f=B-7W2yX&twK8uOGrS~cKSvC9p>%qw`NjD4^ ztXH}};}0MAhfSNmo?(6~zG}}A_leSpHl{r_{}sA|QlG4F8HEhd?HU5%&yS0-;6~j`^rd^%3zfE!Lg*%Jc`a=5_M(x-TDrvB15eF-e zvnT%|&Lw{inMXX%EH#{;bY%90mPMMml9~~0uT)Q8XGoW^ouk2CuV{FVspo(Kld@5_ zQhux*Ux!P&c}}5DEoZ|SnH@KL8FzJ8i}~|7o(S_Q+2nsBeLhdXw{s^hG;n|MU9W!V zGq;V9&D4hv&&@sNud}^NF!${1_@n3e`(LHX-z+ORcx`#$>mJjc`x{;-vc8i3szfouX!Bw}u?Yj14@7~Z5SI+xQl^PGZ_a80$ zQ}_J$43o3&Cz&O;ZGXsj=KscfC!{7;b3E`Bk(Lpxn*OPzr+>++zYAtZXjxXae>>^= zZAn6G)rZimKU3x^Tk{G&4Qes=2)3GV*Zr!^N_l~$)42bMJ^UcQrnj)lW?5ps)}qQs z>EGnfMz%Cu_>j+26Z#^gr7t6QN{+;P6yK5Uy$n1)Gx{>34KM#Yg;LOu& z(}GutuIJiT|LZ_Y%@ObA3$*uFw7ro$Jh}M>AJf~sX}%qMTYUTPiL*{?>r^>bIpwx% z{@j*D8K>6RJ-5GcTg%JlP*s8r%frcwnb`i6yj*eR&b!XA?w_q^zfKZg_9J}vJhu*A zv$xGsAv)h`>KQESLQ8zh`)5x*xPHgyJJ&P4pP!HUC6a3tAFnTQRkyNTHU0nR?R%F5 zy(w_Gz?b&rgj7VM^UQV8K{Vof%Wj{O+9pwQR>bd){q|Volz`qK{;zs;?`uV$>*#W#9mYQr#+#DNmRI~HE6Eu zOQGDa>IGb)D>>#f9aL4bKH-)7*(7B3qzGZIeSxbUNFI8kb8@0+?d7wl_dHTrU$Cag6j41$<>>hbN7YvShq-N z+e?T3+5Tf5cdF%b-|V{crjHbNa@H8Ft(R3-*vTO#a_*yMWSt_@l23oq&dccg)XjE_ z{WD*M`PnFI;C}A} zRl~1~KRU%#1%A`+-rKd*WMj^R5dXKVl?9W0Ce+_>Iw;3JJ!3_g8K>c4dA&4I<~FNc zM(Z`V{p0mdTO)q6QgYe%cjbN7CMwysvOMKeo&Wbbxmda{t_kLK-uEW8Rr}ZTW9RxM zc+Wc>742VpPx6?|HtpTJlM?2hV@%k%A^1`7RQ@RwpBikFd?BD@&BFb#+Q7;$gGE52 zPA%i5Ymsc+-%ZjYRs0VWmmg6*@Rvu6%T_rbWZu!H$L?Gy*Ma{wKt1gFq znA0zECF=JNquQDSTYfb&XH47kfF<=2%jSYSnUbkpd+#K__#r&ACGMT!=UWl4u3xWB zY~jgrT$ui5)79Q?hfkTymE=?Y%$VPC=2EtjCikZmr&Xoa+>Gs8HItL|?kUH=T8W8$ zmowKDNnJ`jaK~oPl>;+&oG@gpm@&n*WK;XPDb0?4PDc#xi9fj zTHF@MS(FEU|CKg-ag~5xxaEcIa~XI$W-sWNsye6HUWH%(rq_*~9#8bYDgXccB|_D! zGbM}dOWm3Ls=TNF)Ur3UeaYE;ewD6s&9A_#dyZ=)9LuxP=i@D6yiPxVzo$e9zdCl~@_muY^JfPpd(v$zhmi@AgQa*`isnq_fOce&Oi{Z!u9j5>u( zENl6_lnz|3J9^jrJ|ow$r-qyQdOH7>eiD3h>we<7(5dXRa+Qn7IZ5oj!9VbIn2@*LnV1^G$u9 zT~g{4u7Ab<CFbk1Kx9_v*(D0Xg)|b zn6-CPozb7V37apZ@4t56rr)J(J7EiYa6C~8KW7hm+K$yH#sYgVK|%jS>W%WJfbDfQ_BGMlZr9a#^wMwykR^QI& zHpgt=N8vt{1V0+HRgH_w&XhrOgdoF-bYrHoP?%$B(Jr zD!pYcUXhv-v-s4ct=XK;R_z=7&#*sEQ{sQ%{-Gu%V3vv6`SiZKfiO*gn0+o`3ee6zc+#J&NcQ6hBaaw zH_z$M)fD$$cJKUVPM+;EHWa*G@4DrYq3~m;A01^P=Vui!oVn`$kF}n?g-RNCck9$2 z;%!gm4vVlT&0S{8$2Y~;(^q`K^0JWS%lQv3=GstUe~~3(ahktWe|^b=*7wUes}7io z&EqTDxpjs(yV#74YY)BAa_v)-)&sR~p)OPn9Z(*0F!27iB-!`I3`N(a&Y^ zYg2tpt%5RMR0T`hf1P!R-Q^8WT$}St`)=0LDmxwR-^{wRi!V#!l8W@r#`-@e6Q?hF z@H@;qwEEC?w=X`w&$e;*aqatMyeVljo7wjSTjsk)O-WJ{f?oYzd}@R4wyfx#5%#kt zhb4VpVkBIq&9GyEz}XXtvNtxb{^BQ{;N`1a%l0K=#=dffR{Pl&0#`qt;@aFhvHh({ z@}mA{sWbALDsFuKpg;F%q#V=4$}@gB7h=vTe&+wWdUovD$At?uZ?DhTxr{?$LsHg# z!SIQP=0?t&XT-AE%G;jVd8cfmPo|ajH4FNnXBFR$LuYC~tR4MMtHAGc)G|`w5YiKEcYp zlS>%$pL712yRopMz$`*ZfLAs_yUxxwxScz`XhI@a)$?h_n%~-fPv^YGU$Op&#JtQ6 zEay4$|5qLAo_yoip68eEu8zs})H=Vq=V)M?ONoh1@#co|%)DboIotZy-z_$KXxwr- zE%II6{gA&Y<&U{mC_bK1xRI-z<>LL&^e>!gvO3Q1kI8s7hzP05nKiG;mzxo&!c>~t zlqPU4ML{}}ed3NeC3P!JcfJb^U=Er1FvM@hs%4J62kxGbDUX{_Eb{J3U&e~tTm7Ct z@YS2JbjL!*zXvXO&HKChZ~E4^-&B6j61$^UMUKK95e&fi$yW(fK z9XpT?h-`}qq?^dr|KK1I4<4#vIL-pAX>CNAvvvNgm;#bv; z*45h#uDoe`8EneF*=>&Jo=0y_y{li(zd(hX?X+|2@>i>@jtITDv?zN+y~|4`Zm}i) zS zpYkRS=8oi_lLf5BO$?Lx?VMM5e>1;ue);R0)4r5x%cy*dSapBty302H(<1+tTATE* zJLJfqvtfHni{HXl-Jkpq<95FKnNxo8)bs;ej?L!LHg^gZVqetv>}`QqQ>PN#+~Xq@mXhUf0=wM^v>cDpleUfjuLoc8a< z`QIKn#|^vQIqZ4s<9l*l^up~64)?E4dUQGDOGEXCDu|Te2kagz;!>i)pj}!PC1kq}#IKoBQ(z>NW@6_O=-u_Pe(rx?OqiY*$&k zsMrMu;?++XoLV~jw!pQU4tLJ&oEq>@|3_Kq-Y=~8)0gl!Pn{~~!_1>|>0{pS-uOG` z;!K&;9_o)_5Ss|<(Vr# ze0}0%7RPp!&A(k^tGN1+Y0@+2-EO1CD-ZYHU3+-zpH{pwx(;H0xzgO+!bY0Z<6G=+J# zYLlnjeO&QWzIQWoWw~q)r~8)NZnZVR=Vte=Svt*yQIx-QQSTPGb#|MiMnexKCU?r_WhW!>^o#^`!=|I#!S-4!=hI4~xzTgtrE z;K;|v8BFe4yPNOqE9Kf0@wjz)^8ZCY#c%z(GIJlprqA;0bN63g+uU&C(i@3wb}1_# zNtN|1*}jG=So;3HtsA9g#Y~&-$y{-(*o|eD!|5oEo$sXoq)g>>w4WvU;py$EoNXep z2VKN`+wle-Rm z`Pa0u(QS*asbEj_-m+I_k}D#Ewm;V`sE8_Py&9=(74`g}dB=oK1^0t?x=GX8>d%P; z+WYSLP+R=Cqn)Ml<-$`jYp2O9lvp$UNdKOElVf~cv!}c3FZXOepLr>^cK`I}pFeH7 zxzh4PcW~vI<8G2}dnWH|d_8f`)1rAQr}y2wWXsB)U}W;y^+fo(qF_zGm3cpEmP(h_ ze{+mGyt$0MaZB)n>6!J+H-ujA;!IPMPGn(qN>Xc?`RJ)}ZARAR!*k>Or|VerO}RTG zEr)GOk-)|6Oj+0eJPG37oY5L7Dp;IswDivu?f<5s6H?`K6P7HR+PeM=+m+YHJD2B4 zM!adhQD!9Idr-Uo!@QgKlM0MCciRhJDbguvxZ5^E?`7=51WW(8@T$A+5i|Bp-gJ-e z^taW|ZhYOb-+RM03#K(S68t}=^}iDe@|^hX;<;uwvC`i5`#L8|JTBI5)6;o#t**pb ze2UQHsrwDGXW1P0J>;~n=69)=ij?7Z>;GF1eF@~3_$ia%XPB%v$275!$FJ3yb1Ikm zvAI_yAFkc^a`BdxrJJo|I#++*{46T!_92C^J+qY8<^Ff#&Sy_8h+0`XJ0fI*N`cqz zg-og~7s@}IWD1ENSj=7Z`|uXmw@-F2GcgO13kZEQ;YXXc|G#x{T5DHNP}*?r2WLuG z#e$fy&Z+A^@aq?N9oK*0?Xg7CO3VK~kADBg%PvAXr>l>-?{l6sJzY5V&FWvR9esYz zuYS&RoXPj~s~C^**4Hby=v+J7{kQl+wR83NsX33Bc8NsYyB8`n&41AzzFm(NDOE+s zTnk-P_XjjeldaEg$@Ux7t;N|FxTo$-Zv)@=eDlH5z;o`JTIA_bnDqHkppb z>3U{C66dG;M&F+>ZAO{?^XYd=jh5cBKdpI<`^DjIf5pgp(VeTWH1&(EU^Y8&FW8Tz zfTtz3^27`FAmt;QTU--fEoOdPKjoCtPoYEGnL8iK`M#Q5`eXl-9}|l_DxSTVf8>7T z`PSQ(MkbflvtP@qvg#&=ugNc&zUtN)mt(wp1CH#vaAwnI!Bg4qUKsp4T7RKnOH#7v zP5HeNb%$pw8(lA$njtQ1wXgGNmyT0p(<}x3#mfF}2Rp7Vo_kP7gLk$PQ`=;rD_>4I zX8Wc-b{1p4UiT{Ne#};OPVkLPbnWBG79(8Ri7e9IE*U|Oe3$~c%CAw;IuiR9f^!m`HBI`vx-#&2E#Z3K{ z9I5Z*DPO+r()2QaH@ofp&kMS8Pp-IgM7~&amdLl2UiI1Dze9di`aMePo^koGH_Pmc zmD5-kT_`FKdl|U4<*VY_tX(r6D{MP^*uqzATi}*YE$_aVS||8q?fY4LsY_DJ`dU)H z^3ihf+B?mP{`(u5^#7&W>sTtzy}xrI-+=^%>YNuwS9%sMl;oI`ZsI%NJP!>g{ur*~C9uI%zmKHzSpwsP^waN$+@ch^6dJac>b zp}yNLNd^LQA5801p5vx-BYd)#fy04&H#odl%?i@Ym+jebU%+;8NsY0w;HynvPiOzI zvYz_=we;r(wbSws6Ei9z%Fa)n_a`A}uexzzW!;mIH~lI$4gHf&&$iF0X0By--g``S znV*ru>)Hyg>Geso56tDxdDz{5V7mQf8<*Xe0(JFw>|LR+J!Q_!r9NlbW+`heFm`2o zoxgq7I;|g~Y(~!dB|CjTtE+!p{dBT)dYa#y2(jNahqgv;k*WUsYP(#oZ_VYq6Wc86 zWD~pjlIuV{T2D?!>4yF#gXJ*fy`+|S&@s0U&PQL$o;p>SD{QtHEn96L< z&Ea2p>Ohb{-({nVN0Sa2{OLY@mislk-uI(fULQ;QQqB24dhw`Uc_hZ1xne_k=6BQC z-@NZxUk>_zWOm1cRZNj==dy3Stgjc$;dE75_-^X_d-4t;i#p;L`b}Uq*J|FxU$m~@ zNb#x3vu)ZgdS_QGsZV|S^6S2%EB%$zEbPCn?M$kaYuKq!dS^}V^R4Q+zSdI;E(9*% zlCsjC_1fq5t83<|?{5E?x3iT?=EdGsvlCj=V|RA3w|+m+lJZ?n?Z@Knc~)$yJSW!8 zie0Oe_;{^O=M1CTwl0MiKR9%(MSnV*>%4h5=ev<;jbiej8}^I>%}-nVC5$o_-q>2o zuvouDJHLllPU*e1&|^;Nwj!r8E*6F9U;O)1Ex7IXG}|Z0mYgd7xL)Mp`;LeGUb7Q& z6W8oD-E{A;{+(MJ#bV5t%B0n=Ke$ygJ37!aQPSvR-ugzy9~b3tu|T zn-y6rXTCBxed@__|Ap=E9d3o?rI>3w`na8OHs;>*-^IU|it?&Ey{(#Jrtl-jkG=nu$+oRm_g{Qh zwf8{0ab#PJ6l>cley*dd<5yb#^SyYiGWk^|d+AZt&76*$mP>CPHq2Z(*<@b%dESEm z{tMwW}<-oCiC@x_}RQ+K=jacbF%9zHCcBYq^5L4y6~ zn^)rZoF*;%)v;1F&`mVG*O@(khx#&|%Lo5Fm@c_++V4~EQ;iK{*YB{>{`og)Ny~}n zcdjL`6nL^{9-nLZHQVe?pZ_+21ufgou^CuRtW`FBFK;1cyzWfGB#p>PH**|$Qe1+4 zIgUIOtFzX(vDj~3>m=B-A(ZJ%#Ns(zsZ&Dw`#a>6tDHU3%q?vT9CPzx&#o}9Q#h@$ zrvGyEnfo~_i&8tPDxb$rn!#H&Td!)xORhP~YwdsReiLoeT2OK2*%OgI&$%z1%92(` zM@W=hTQt|8>(bm;abmZ0eH$9vH%1n;bScO#-}-dzNB17f@OkV_>-|iYh&h*th&

tfkk;oAF4jz{j{D4V;vu{(chU9TWtv(1vu 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ν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

v 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 z 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 -- 2.51.2