From 2687d87b8fcbf59c91eb43cb1ad19097e76b106a Mon Sep 17 00:00:00 2001 From: Ruben Marcus <8454267+rubenmarcus@users.noreply.github.com> Date: Fri, 21 Aug 2026 05:28:55 +0100 Subject: [PATCH 01/25] =?UTF-8?q?feat(regua):=20fauna-shots=20=E2=80=94=20?= =?UTF-8?q?a=20fauna=20esta=20viva=20na=20PARTIDA,=20nao=20so=20no=20regis?= =?UTF-8?q?tro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recupera do /Users/ruben/game4 a regua escrita em 19/08 e a adapta a este repo (17 mapas contra os 12 de la, lista vinda de MAPS em vez de literal, alvo do tiro escolhido em tempo de execucao — coordenada literal apodrece a cada remanejo de fauna e viraria vermelho pelo motivo errado). POR QUE: o ambience-registry-check roda em node puro e prova REGISTRO, mas nasce com fallback procedural — ele nao sabe dizer se o GLB carregou, se o mixer anda ou se o bicho reage. Mesma classe de furo do decal de grafite (12,7% real x 334 no probe). Esta abre o jogo (?auto=), espera `live` e mede FS1 gltf carregado, FS2 clipTime avancando, FS3 reacao a um tiro real por Game._fireHitscan, FS4 PNG. DUAS LICOES PAGAS AQUI, as duas por mutante: - FS2 comparava o snapshot INTEIRO e ficava verde com os mixers congelados, porque bicho anda por codigo (x,z mudam sozinhos). Quem expos foi o mutante `congela`. - Janela fixa de 1,5 s reprovava upa_24h, fy_campomorro e loja_h com +0,00s: no headless um mapa pesado quase nao apresenta quadro, e mixer so anda em quadro apresentado. Hoje sonda ate 8 s e passa no primeiro avanco. MEDIDO: 17/17 mapas, FS1/FS2/FS3 verdes. Mutantes `congela` e `surdo` mordem. FS5 e EVIDENCIA SEM LIMIAR e ja achou divida real: tatu, barata e papagaio (a "fauna 2" inteira) nascem estaticos porque tatu_campo.glb, barata_urbana.glb e papagaio_poleiro.glb tem ZERO clipe no arquivo — e o tatu, por estar em QUADS sem clipe, cai fora dos dois ramos de ambientlife.js:274-285 e nao ganha mixer nenhum. A AR4 cobra que essas especies EXISTAM e passa verde. Sem limiar porque o conserto e ASSET NOVO, nao codigo: virar portao pintaria o CI por divida que ele nao resolve. Fora do check:fast de proposito — exige browser e servidor (npm run eval:serve). Agent: Claude Opus 5 Co-Authored-By: Claude Opus 5 Signed-off-by: Ruben Marcus <8454267+rubenmarcus@users.noreply.github.com> --- SCRIPTS.md | 4 + package.json | 1 + tools/eval/fauna-shots.mjs | 196 +++++++++++++++++++++++++++++++++++++ 3 files changed, 201 insertions(+) create mode 100644 tools/eval/fauna-shots.mjs diff --git a/SCRIPTS.md b/SCRIPTS.md index 126d0ced..d6e7f77c 100644 --- a/SCRIPTS.md +++ b/SCRIPTS.md @@ -689,6 +689,10 @@ npm run eval:simclock BUG-57 (dono, 17/08): "precisamos disso em todos os mapas". Varre o REGISTRO em node puro: AR1 todo mapa devolve ambience, AR2 população mínima por bioma (interno = só rato), AR3 fauna fora de sólido, AR4 espécie-chave por bioma (v2.1: gato/galinha/vaca + vida 1: tatu/barata/papagaio), AR5 nenhuma pomba em modo flight, AR6 todo mapa devolve sound (vida 1, plans/22). A irmã eval:ambience (browser) mede qualidade em 3 mapas; esta garante que mapa novo não nasce morto. Mutantes: sem-ambience|fauna-em-solido|sem-gato|pomba-voa-de-novo|sem-som|sem-fauna2. +## `eval:fauna-shots` + +O par de TELA do `eval:ambience-registry`. O registry roda em node puro e prova que o mapa DEVOLVE fauna — mas com fallback procedural: ele não sabe dizer se o GLB carregou, se o mixer anda ou se o bicho reage. É a mesma classe de furo do decal de grafite (12,7% real x 334 no probe). Esta abre o jogo de verdade (`?auto=`), espera `live` e mede: FS1 `report().gltf` (todo animal veio de GLB, zero fallback), FS2 a soma dos `clipTime` AVANÇA (animação rodando), FS3 um tiro real por `Game._fireHitscan` leva o alvo a flee/takeoff em 700 ms, FS4 PNG antes/depois como evidência. FS5 imprime as espécies SEM mixer — evidência, SEM limiar: medido em 20/08, tatu/barata/papagaio nascem estáticos porque `tatu_campo.glb`, `barata_urbana.glb` e `papagaio_poleiro.glb` têm ZERO clipe no arquivo, e o conserto é asset novo, não código. Lista de mapas vem de `MAPS` (mapa novo entra sozinho) e o alvo é escolhido em tempo de execução (coordenada literal apodrece a cada remanejo de fauna). DUAS LIÇÕES PAGAS AQUI: a primeira versão comparava o snapshot INTEIRO e ficava verde com os mixers congelados, porque bicho anda por código — quem expôs foi o mutante `congela`; e a segunda usava janela fixa de 1,5 s, que reprovava upa_24h/campomorro/loja_h com +0,00s porque no headless um mapa pesado quase não apresenta quadro e mixer só anda em quadro apresentado — hoje sonda até 8 s e passa no primeiro avanço. EXIGE BROWSER E SERVIDOR (`npm run eval:serve`), então é passo de pré-deploy e não de check:fast. `--mutante=congela` (FS2) e `--mutante=surdo` (FS3) provam que morde. Estado 20/08: 17/17 mapas, FS1/FS2/FS3 verdes. + ## `eval:mapanovo` O PORTÃO DE MAPA NOVO — uma régua só para as cláusulas estruturais dos 10 mapas, varrendo o REGISTRO e não uma lista à mão. Nasceu do dono em 12/08 ('os 5 mapas novos estão low poly e injogáveis'): o gl-shots tinha lista LITERAL parada em 5 enquanto o jogo foi para 10, então escadão/campo/lajes/córrego/mansão nunca passaram por captura nenhuma — mapa que não é fotografado não é criticado, e o que não é criticado regride calado. ORT1 ortogonalidade (≥20 ângulos distintos E ≥15% de massa fora da grade, só na classe `organico`: favela é autoconstrução, mas salão de piscina e estacionamento de loja são ortogonais DE VERDADE e ficam isentos por referência); ALT1 h90 ≥ 9 m; SUP1/SUP2 cor chapada, com os tetos LIDOS do fonte do corrego-superficie-check (fonte única — dois limiares para o mesmo conceito é o instrumento discordando de si); JOG1/JOG2 consumidos do map_check.json; COB1/COB2 cobertura de captura, que é a cláusula-meta cuja ausência causou tudo isso. Não saber medir custa o mesmo que estar errado: texel-check mudo, map_check.json ausente OU MAIS VELHO que os fontes de mapa, e mapa que não constrói ficam VERMELHOS. Dívida de hoje (28 entradas, medidas e nomeadas) mora na tabela DIVIDA do próprio arquivo e AVISA em vez de reprovar; vermelho fora dela reprova. `--simular-novo=` ignora a dívida daquele mapa e responde 'se ele chegasse hoje, entrava?' — medido, fy_campomorro reprova em ORT1/SUP1/SUP2. FORA DO check:fast DE PROPÓSITO: ele consome o map_check.json e o `eval:map-new` do próprio check:fast reescreve esse JSON com só 5 mapas (map-check.mjs:153), então a ordem deixaria o portão vermelho por contabilidade, não por defeito — ele exige `node tools/eval/map-check.mjs all` antes e é passo de rodada/pré-deploy. `--mutante=grade-perfeita|teto-baixo|tudo-chapado|texel-ausente|corpo-dentro|mapcheck-velho|registro-fora-de-forma|bateria-fixa` provam que morde, um por cláusula. diff --git a/package.json b/package.json index b973f2f9..798297df 100644 --- a/package.json +++ b/package.json @@ -147,6 +147,7 @@ "eval:lajes-authored": "node tools/eval/lajes-authored-check.mjs", "eval:lajes-spatial": "node tools/eval/lajes-spatial-check.mjs", "eval:ambience": "node tools/eval/ambience-check.mjs", + "eval:fauna-shots": "node tools/eval/fauna-shots.mjs", "eval:mansao-water": "node tools/eval/mansao-water-check.mjs", "eval:mansao-garden": "node tools/eval/mansao-garden-check.mjs", "eval:look": "node tools/eval/look-check.mjs", diff --git a/tools/eval/fauna-shots.mjs b/tools/eval/fauna-shots.mjs new file mode 100644 index 00000000..2b278c18 --- /dev/null +++ b/tools/eval/fauna-shots.mjs @@ -0,0 +1,196 @@ +/* fauna-shots.mjs — A FAUNA ESTÁ VIVA NA PARTIDA REAL? (BUG-57) + * + * Port da régua escrita no /game4 em 19/08, adaptada ao registro DESTE repo + * (17 mapas, fauna 2 com tatu/barata/papagaio) na recuperação de 20/08. + * + * POR QUE EXISTE — a irmã `ambience-registry-check.mjs` roda em node puro e prova + * REGISTRO: que o mapa devolve `ambience`, com população e sem bicho dentro de + * parede. Mas ela nasce com fallback procedural, então NÃO prova nenhuma das três + * coisas que o dono realmente vê na tela: que o GLB carregou, que o mixer anda, e + * que o bicho FOGE do tiro. Régua que mede o registro e cala sobre a tela é a + * classe de furo do decal de grafite (12,7% real x 334 no probe). + * + * O QUE MEDE (jogo de verdade, ?auto=, estado `live`) + * FS1 report().gltf === true (todo animal veio de GLB, nenhum em fallback) + * e counts.total > 0 + * FS2 a soma dos `clipTime` dos mixers AVANÇA = animação rodando. Duas lições + * pagas aqui, nesta ordem: + * (a) compara SÓ o clipTime. A primeira versão comparava o snapshot inteiro e + * ficava VERDE com os mixers congelados, porque bicho anda por código (x,z + * mudam sozinhos). Quem expôs isso foi o mutante `congela` — mantenha-o. + * (b) espera POR AVANÇO, não por relógio de parede. Janela fixa de 1,5 s + * reprovava upa_24h, fy_campomorro e loja_h com +0,00s: no headless com + * swiftshader um mapa pesado entrega pouquíssimo quadro, e o mixer só anda + * em quadro apresentado. Agora sonda até 8 s e passa no primeiro avanço — + * congelado nunca avança, então o mutante continua mordendo. + * FS3 um tiro REAL por `Game._fireHitscan` (o MESMO caminho do jogo, não um + * `onShot` chamado na mão) perto do alvo leva o estado dele a flee/takeoff + * dentro de 700 ms + * FS4 captura PNG antes e depois do tiro, com o animal no enquadramento — + * evidência para o A/B, sem limiar + * FS5 espécies SEM mixer, por mapa — evidência, SEM LIMIAR de propósito. Medido em + * 20/08: tatu, barata e papagaio (a "fauna 2" inteira) nascem estáticos porque + * `tatu_campo.glb`, `barata_urbana.glb` e `papagaio_poleiro.glb` têm ZERO clipe + * no arquivo — o tatu ainda por cima está em QUADS, então cai fora dos dois + * ramos de `ambientlife.js:274-285` e não ganha mixer nenhum. A AR4 cobra que + * essas espécies EXISTAM e passa verde; ninguém cobrava que elas se mexam. + * Sem limiar porque o conserto é ASSET NOVO, não código: virar portão aqui + * pintaria o CI de vermelho por uma dívida que o portão não resolve. Quando o + * acervo entregar clipe pra elas, isto vira cláusula. + * + * LISTA DE MAPAS: vem de `MAPS` do harness, não de literal. Mapa novo entra na + * cobrança sozinho (foi assim que o gl-shots deixou 5 mapas sem captura). + * ALVO: escolhido em tempo de execução, o animal mais próximo do jogador — as + * coordenadas literais da versão original apodreceram junto com os mapas. + * Mapa que não declara fauna é contado e IMPRESSO como 'sem fauna', nunca calado. + * + * EXIGE BROWSER E SERVIDOR (`npm run eval:serve`) — é passo de pré-deploy, não + * de check:fast. + * + * USO + * BASE=http://127.0.0.1:8123 node tools/eval/fauna-shots.mjs [outDir] + * ONLY=quebrada,fy_corrego node tools/eval/fauna-shots.mjs + * node tools/eval/fauna-shots.mjs --mutante=congela # FS2 tem que ficar vermelha + * node tools/eval/fauna-shots.mjs --mutante=surdo # FS3 tem que ficar vermelha + */ +import { execSync } from 'node:child_process'; +import { mkdirSync, writeFileSync } from 'node:fs'; +import { pathToFileURL } from 'node:url'; +import { MAPS } from './harness.mjs'; + +const OUT = process.argv.find((a) => !a.startsWith('--') && a !== process.argv[0] && a !== process.argv[1]) || '/tmp/fauna-shots'; +const BASE = process.env.BASE || 'http://127.0.0.1:8123'; +const ONLY = process.env.ONLY ? new Set(process.env.ONLY.split(',')) : null; +const MUTANTE = (process.argv.find((a) => a.startsWith('--mutante=')) || '').split('=')[1] || null; +const conhecidos = new Set(['congela', 'surdo']); +if (MUTANTE && !conhecidos.has(MUTANTE)) throw new Error(`mutante desconhecido: ${MUTANTE}`); + +mkdirSync(OUT, { recursive: true }); +const gRoot = execSync('npm root -g').toString().trim(); +const _pw = await import(pathToFileURL(`${gRoot}/playwright/index.js`).href); +const chromium = _pw.chromium || _pw.default?.chromium; +const browser = await chromium.launch({ + executablePath: process.env.CHROME_BIN || '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', + args: ['--use-angle=swiftshader', '--enable-unsafe-swiftshader', '--headless=new', '--mute-audio', '--no-sandbox'], +}); + +const mapas = Object.keys(MAPS).filter((id) => !ONLY || ONLY.has(id)); +const resultados = []; +for (const mapa of mapas) { + const page = await browser.newPage({ viewport: { width: 1500, height: 1000 } }); + const erros = []; + page.on('pageerror', (e) => erros.push(e.message)); + try { + /* sem nav=1: o modo navegável pula o preload da partida (main.js `if (!navOnly)`) + e a fauna nasceria em fallback procedural — esconderia justo o que a FS1 mede */ + await page.goto(`${BASE}/?debug=1&map=${mapa}&auto=P,mst`, { waitUntil: 'domcontentloaded', timeout: 180000 }); + await page.waitForFunction(() => window.__game && window.__game.state === 'live', null, { timeout: 300000 }); + await page.waitForTimeout(2500); + + /* posiciona o jogador a ~4,5 m do animal mais próximo e olha pra ele. + Escolha em tempo de execução: coordenada literal por mapa apodrece a cada + remanejo de fauna e vira régua vermelha pelo motivo errado. */ + const alinhou = await page.evaluate(() => { + const g = window.__game, amb = g?.world?.ambience; + if (!amb || !Array.isArray(amb.animals) || !amb.animals.length) return { ok: false, semFauna: true }; + const p = g.player.pos; + let alvo = null, melhor = Infinity; + for (const a of amb.animals) { + const d = Math.hypot(a.root.position.x - p.x, a.root.position.z - p.z); + if (d < melhor) { melhor = d; alvo = a; } + } + p.set(alvo.root.position.x - 3.2, alvo.root.position.y + 1.7, alvo.root.position.z + 3.2); + const dx = alvo.root.position.x - p.x, dy = alvo.root.position.y + 0.4 - p.y, dz = alvo.root.position.z - p.z; + g.player.yaw = Math.atan2(dx, dz); + g.player.pitch = Math.atan2(dy, Math.hypot(dx, dz)); + g.camera.position.copy(p); + return { ok: true, id: alvo.id, tipo: alvo.type, distanciaOriginal: +melhor.toFixed(1) }; + }); + if (!alinhou.ok) { + resultados.push({ mapa, semFauna: true, erros }); + console.log(`${mapa.padEnd(17)} SEM FAUNA (o registro não devolveu animais — caso da AR1)`); + await page.close(); + continue; + } + await page.waitForTimeout(1200); + + /* MUTANTE congela: para os mixers. A FS2 tem que ficar vermelha — se não ficar, + ela está comparando outra coisa (posição de bicho andando, p.ex.) e não animação. */ + if (MUTANTE === 'congela') { + await page.evaluate(() => { + const amb = window.__game.world.ambience; + for (const a of amb.animals) if (a.mixer) a.mixer.update = () => {}; + }); + } + + /* FS1+FS2: report + snapshot antes/depois de 1,5 s de jogo */ + const antes = await page.evaluate(() => { + const amb = window.__game.world.ambience; + const snap = amb.snapshot(); + const semMixer = [...new Set(amb.animals.filter((a) => !a.mixer).map((a) => a.type))]; + return { report: amb.report(), snap: JSON.stringify(snap), clip: snap.reduce((t, a) => t + a.clipTime, 0), semMixer }; + }); + let meio = antes.clip, esperou = 0; + while (esperou < 8000) { + await page.waitForTimeout(500); esperou += 500; + meio = await page.evaluate(() => window.__game.world.ambience.snapshot().reduce((t, a) => t + a.clipTime, 0)); + if (meio > antes.clip + 0.02) break; + } + await page.screenshot({ path: `${OUT}/${mapa}-1-parado.png`, timeout: 60000 }); + + /* FS3: tiro REAL pelo caminho do jogo, 1,5 m ao lado do animal (é susto, não caça). + Re-posiciona NA MESMA tacada: em partida viva os bots matam o jogador e o + respawn o leva pra longe — tiro do spawn não chega perto do bicho. */ + const reacao = await page.evaluate(async ({ idAlvo, mutante }) => { + const THREE = await import('three'); + const g = window.__game, amb = g.world.ambience; + const a = amb.animals.find((x) => x.id === idAlvo); + if (!a) return { achou: false }; + const p = g.player.pos; + p.set(a.root.position.x - 3.2, a.root.position.y + 1.7, a.root.position.z + 3.2); + g.camera.position.copy(p); + /* MUTANTE surdo: o mundo perde o gancho de tiro. FS3 tem que ficar vermelha. */ + if (mutante === 'surdo') amb.onShot = () => {}; + const dir = a.root.position.clone().add(new THREE.Vector3(1.5, 0.2, 1.5)).sub(p).normalize(); + g._fireHitscan(g.player, p.clone(), dir, 12, true, 'AK', 'ak', false); + return { achou: true, id: a.id, estadoAntes: a.state }; + }, { idAlvo: alinhou.id, mutante: MUTANTE }); + await page.waitForTimeout(700); + const depois = await page.evaluate(() => JSON.stringify(window.__game.world.ambience.snapshot())); + await page.screenshot({ path: `${OUT}/${mapa}-2-apos-tiro.png`, timeout: 60000 }); + + const fs1 = antes.report.gltf && antes.report.counts.total > 0; + /* Limiar de EPSILON, não de proporção: a pergunta é binária (mixer anda ou não anda). + Limiar proporcional viraria régua instável por máquina lenta; congelado dá 0,000 exato. */ + const fs2 = meio > antes.clip + 0.02; + const alvoDepois = JSON.parse(depois).find((s) => s.id === reacao.id); + /* no auto= os BOTS também atiram: se o bicho JÁ estava fugindo do tiro de um bot, + o estado pós-tiro continua válido — fugir de tiro é exatamente o contrato */ + const jaEmFuga = ['flee', 'takeoff'].includes(reacao.estadoAntes); + const fs3 = reacao.achou && alvoDepois && (['flee', 'takeoff'].includes(alvoDepois.state) + || (jaEmFuga && ['recover', 'fly', 'walk'].includes(alvoDepois.state))); + resultados.push({ mapa, fs1, fs2, fs3, semMixer: antes.semMixer, alvo: alinhou, clipAntes: +antes.clip.toFixed(3), clipDepois: +meio.toFixed(3), report: antes.report, tiro: reacao, estadoPos: alvoDepois?.state, erros }); + console.log(`${mapa.padEnd(17)} FS1(gltf)=${fs1 ? 'ok' : 'FALHA'} FS2(anim)=${fs2 ? 'ok' : 'FALHA'} FS3(reacao)=${fs3 ? 'ok' : 'FALHA'} [${antes.report.counts.total} bichos, ${antes.report.triangles} tris, alvo ${alinhou.tipo}, clip +${(meio - antes.clip).toFixed(2)}s em ${(esperou / 1000).toFixed(1)}s]`); + } catch (e) { + resultados.push({ mapa, fatal: e.message.split('\n')[0], erros }); + console.log(`${mapa.padEnd(17)} FATAL: ${e.message.split('\n')[0]}`); + } + await page.close(); +} +writeFileSync(`${OUT}/_fauna.json`, JSON.stringify(resultados, null, 2)); +await browser.close(); + +const medidos = resultados.filter((r) => !r.semFauna && !r.fatal); +const semFauna = resultados.filter((r) => r.semFauna); +const fatais = resultados.filter((r) => r.fatal); +const f1 = medidos.filter((r) => !r.fs1).length, f2 = medidos.filter((r) => !r.fs2).length, f3 = medidos.filter((r) => !r.fs3).length; +const estaticas = [...new Set(medidos.flatMap((r) => r.semMixer || []))]; +console.log(`\nFS5 especies SEM mixer (evidencia, sem limiar): ${estaticas.length ? estaticas.join(', ') : 'nenhuma'}`); +console.log(`\n${medidos.length}/${mapas.length} mapas medidos · ${semFauna.length} sem fauna · ${fatais.length} fatais`); +console.log(`FS1 gltf carregado: ${f1 ? `${f1} FALHA` : 'todos'} · FS2 animação: ${f2 ? `${f2} FALHA` : 'todos'} · FS3 reação ao tiro: ${f3 ? `${f3} FALHA` : 'todos'}`); +if (MUTANTE) { + const alvoMut = MUTANTE === 'congela' ? f2 : f3; + console.log(alvoMut ? `MUTANTE ${MUTANTE}: régua MORDEU (${alvoMut} vermelhas) ✓` : `MUTANTE ${MUTANTE}: NÃO MORDEU — a régua não mede o que diz medir ✗`); + process.exit(alvoMut ? 0 : 1); +} +process.exit(f1 || f2 || f3 || fatais.length ? 1 : 0); From 7403b5fb46bf655ddbde15358302f7c5f69cb088 Mon Sep 17 00:00:00 2001 From: Ruben Marcus <8454267+rubenmarcus@users.noreply.github.com> Date: Fri, 21 Aug 2026 05:29:57 +0100 Subject: [PATCH 02/25] =?UTF-8?q?perf(preload):=20a=20partida=20carrega=20?= =?UTF-8?q?o=20elenco=20DELA=20=E2=80=94=2063=20GLBs=20viram=209?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A REGUA VEIO PRIMEIRO e nasceu vermelha: tools/eval/preload-roster-check.mjs mede o preload BLOQUEANTE (janela do goto ate `window.__game` existir, porque o Game so e construido depois do await do preload) e acusou 63 GLBs de personagem baixados antes de o jogador ver qualquer coisa, numa partida que poe 8 bonecos em campo. O DEFEITO: main.js chamava preloadCharacterAssets([...GLB_CHARS]) — os 62 personagens do jogo inteiro, bloqueando. Os 54 sobrando sao bytes, decode e VRAM que o jogador espera olhando a tela "CARREGANDO MODELOS 3D…". O CONSERTO: - game.js ganha pickMatchRoster()/matchRosterIds() exportados e aceita `matchRoster` pronto. Sortear duas vezes daria elencos diferentes e o preload erraria o alvo EM SILENCIO, que e o defeito pior — por isso main.js sorteia UMA vez e passa. - main.js preloada so o roster e traz os outros 54 em segundo plano DEPOIS do `live`. A primeira versao soltava a carga tardia junto da contagem regressiva: roubava banda e decode do primeiro segundo jogavel e a PL1 continuava em 62. - _switchTeam prefere quem ja tem GLB em memoria. Sem isso, a tecla M poria um boneco de caixa procedural em campo: trocar espera por feiura e pior que a espera. MEDIDO (quebrada, headless): 63 -> 9 GLBs no bloqueante. PL1/PL2/PL3 verdes. Mutantes sao kill-switches REAIS do jogo, nao monkey-patch de teste: ?preloadall=1 (PL1 vermelha) e ?preloadlazy=0 (PL3 vermelha) — ambos mordem. Duas correcoes de percurso na propria regua: a PL2 incluia o JOGADOR, que e 1a pessoa e nao tem malha (game.js:654), e a PL3 tinha limiar de TEMPO sobre carga assincrona — instavel por construcao, hoje sonda ate completar. E o guarda do intervalo testava um estado 'over' que nao existe no Game: trocado por identidade da partida + teto de tentativas. O porque inteiro (e o texto do equilibrio de times, que saiu do game.js junto com a funcao) foi para docs/LICOES.md §15 — o `eval:comentario` limita comentario novo a 2 linhas em public/js e src, e a regra e essa: historico vai pro docs, o comentario aponta. check:fast: 87/96, as MESMAS 9 falhas de antes desta branch (confirmado stashando o diff e re-rodando) — divida pre-existente, nao regressao. Agent: Claude Opus 5 Co-Authored-By: Claude Opus 5 Signed-off-by: Ruben Marcus <8454267+rubenmarcus@users.noreply.github.com> --- SCRIPTS.md | 4 + docs/LICOES.md | 37 ++++++++ package.json | 1 + public/js/game.js | 84 ++++++++++-------- public/js/main.js | 32 ++++++- tools/eval/preload-roster-check.mjs | 131 ++++++++++++++++++++++++++++ 6 files changed, 251 insertions(+), 38 deletions(-) create mode 100644 tools/eval/preload-roster-check.mjs diff --git a/SCRIPTS.md b/SCRIPTS.md index d6e7f77c..8b5ac598 100644 --- a/SCRIPTS.md +++ b/SCRIPTS.md @@ -693,6 +693,10 @@ BUG-57 (dono, 17/08): "precisamos disso em todos os mapas". Varre o REGISTRO em O par de TELA do `eval:ambience-registry`. O registry roda em node puro e prova que o mapa DEVOLVE fauna — mas com fallback procedural: ele não sabe dizer se o GLB carregou, se o mixer anda ou se o bicho reage. É a mesma classe de furo do decal de grafite (12,7% real x 334 no probe). Esta abre o jogo de verdade (`?auto=`), espera `live` e mede: FS1 `report().gltf` (todo animal veio de GLB, zero fallback), FS2 a soma dos `clipTime` AVANÇA (animação rodando), FS3 um tiro real por `Game._fireHitscan` leva o alvo a flee/takeoff em 700 ms, FS4 PNG antes/depois como evidência. FS5 imprime as espécies SEM mixer — evidência, SEM limiar: medido em 20/08, tatu/barata/papagaio nascem estáticos porque `tatu_campo.glb`, `barata_urbana.glb` e `papagaio_poleiro.glb` têm ZERO clipe no arquivo, e o conserto é asset novo, não código. Lista de mapas vem de `MAPS` (mapa novo entra sozinho) e o alvo é escolhido em tempo de execução (coordenada literal apodrece a cada remanejo de fauna). DUAS LIÇÕES PAGAS AQUI: a primeira versão comparava o snapshot INTEIRO e ficava verde com os mixers congelados, porque bicho anda por código — quem expôs foi o mutante `congela`; e a segunda usava janela fixa de 1,5 s, que reprovava upa_24h/campomorro/loja_h com +0,00s porque no headless um mapa pesado quase não apresenta quadro e mixer só anda em quadro apresentado — hoje sonda até 8 s e passa no primeiro avanço. EXIGE BROWSER E SERVIDOR (`npm run eval:serve`), então é passo de pré-deploy e não de check:fast. `--mutante=congela` (FS2) e `--mutante=surdo` (FS3) provam que morde. Estado 20/08: 17/17 mapas, FS1/FS2/FS3 verdes. +## `eval:preload-roster` + +A PARTIDA CARREGA O ELENCO QUE ELA USA, NÃO O ELENCO INTEIRO. O `main.js` chamava `preloadCharacterAssets([...GLB_CHARS])` antes de construir o Game — os 62 personagens do jogo, BLOQUEANDO, para pôr 8 bonecos em campo. Medido no arnês: 63 GLBs de personagem baixados antes de o jogador ver qualquer coisa; hoje, 9. PL1 conta os GLBs do preload BLOQUEANTE (janela: do goto até `window.__game` existir) contra um teto de 12 — contar até o `live` mediria junto a carga tardia e daria 62 mesmo com o conserto no lugar, que foi o que aconteceu na primeira medição. PL2 cobra o RESULTADO NA CENA: zero bot sem malha GLB — cortar o preload e deixar boneco de caixa em campo é trocar espera por feiura, que é pior que a espera (só bot: o jogador é 1ª pessoa e não tem malha, e incluí-lo pintava a régua de vermelho por engano). PL3 cobra que o elenco restante CHEGUE em 10 s, porque a tecla M deixa o jogador virar qualquer personagem da facção inimiga e preload enxuto sem carga tardia quebraria a troca de time em silêncio. Os mutantes são os kill-switches reais do jogo, não monkey-patch de teste: `?preloadall=1` (`--mutante=todos`, PL1 vermelha) e `?preloadlazy=0` (`--mutante=sem-lazy`, PL3 vermelha). EXIGE BROWSER E SERVIDOR — passo de pré-deploy. + ## `eval:mapanovo` O PORTÃO DE MAPA NOVO — uma régua só para as cláusulas estruturais dos 10 mapas, varrendo o REGISTRO e não uma lista à mão. Nasceu do dono em 12/08 ('os 5 mapas novos estão low poly e injogáveis'): o gl-shots tinha lista LITERAL parada em 5 enquanto o jogo foi para 10, então escadão/campo/lajes/córrego/mansão nunca passaram por captura nenhuma — mapa que não é fotografado não é criticado, e o que não é criticado regride calado. ORT1 ortogonalidade (≥20 ângulos distintos E ≥15% de massa fora da grade, só na classe `organico`: favela é autoconstrução, mas salão de piscina e estacionamento de loja são ortogonais DE VERDADE e ficam isentos por referência); ALT1 h90 ≥ 9 m; SUP1/SUP2 cor chapada, com os tetos LIDOS do fonte do corrego-superficie-check (fonte única — dois limiares para o mesmo conceito é o instrumento discordando de si); JOG1/JOG2 consumidos do map_check.json; COB1/COB2 cobertura de captura, que é a cláusula-meta cuja ausência causou tudo isso. Não saber medir custa o mesmo que estar errado: texel-check mudo, map_check.json ausente OU MAIS VELHO que os fontes de mapa, e mapa que não constrói ficam VERMELHOS. Dívida de hoje (28 entradas, medidas e nomeadas) mora na tabela DIVIDA do próprio arquivo e AVISA em vez de reprovar; vermelho fora dela reprova. `--simular-novo=` ignora a dívida daquele mapa e responde 'se ele chegasse hoje, entrava?' — medido, fy_campomorro reprova em ORT1/SUP1/SUP2. FORA DO check:fast DE PROPÓSITO: ele consome o map_check.json e o `eval:map-new` do próprio check:fast reescreve esse JSON com só 5 mapas (map-check.mjs:153), então a ordem deixaria o portão vermelho por contabilidade, não por defeito — ele exige `node tools/eval/map-check.mjs all` antes e é passo de rodada/pré-deploy. `--mutante=grade-perfeita|teto-baixo|tudo-chapado|texel-ausente|corpo-dentro|mapcheck-velho|registro-fora-de-forma|bateria-fixa` provam que morde, um por cláusula. diff --git a/docs/LICOES.md b/docs/LICOES.md index 4f34642c..7c806762 100644 --- a/docs/LICOES.md +++ b/docs/LICOES.md @@ -212,10 +212,47 @@ assado do grafite e para qualquer lista que um gerador reescreva. --- +## 15. Preload carrega o que a cena usa, e quem corta a espera responde pela cena + +`main.js` chamava `preloadCharacterAssets([...GLB_CHARS])` antes de construir o +Game: **62 personagens, bloqueando**, para pôr 8 bonecos em campo. Medido pela +`eval:preload-roster`: 63 GLBs baixados antes de o jogador ver qualquer coisa. + +Três coisas que o conserto ensinou, e que valem para qualquer preload desta base: + +- **Quem preloada tem que saber o que a cena vai usar.** O elenco é sorteado por + `pickMatchRoster` (game.js) e passado pronto ao Game em `matchRoster`. Sortear + DUAS vezes daria elencos diferentes e o preload erraria o alvo **em silêncio** + — a classe de defeito da lição 5. +- **Carga tardia espera a cena ficar de pé.** Soltar o resto junto da contagem + regressiva rouba banda e decode do primeiro segundo jogável, e a régua continuou + vermelha em 62 igual a antes do conserto. Hoje espera o `live`. +- **Quem corta a espera responde pelo que aparece.** `_switchTeam` (tecla M) + sorteava qualquer personagem da facção; com preload enxuto isso poria um boneco + de caixa procedural em campo. Trocar espera por feiura é pior que a espera — + hoje o sorteio prefere quem tem GLB em memória. É a cláusula PL2. + +Resultado: 63 → 9 GLBs no preload bloqueante. Régua, cláusulas e mutantes +(`?preloadall=1`, `?preloadlazy=0`) em `SCRIPTS.md`, `eval:preload-roster`. + +### Equilíbrio de times (o que já morava no `game.js`) + +`cycle` devolve `[]` quando o pool é VAZIO — `pool[i % 0]` é NaN → undefined e o +`.filter(Boolean)` limpa tudo. Uma facção sem personagens suficientes produzia um +time MENOR **sem nenhum aviso** (jogador sozinho contra 8). Hoje as facções têm +8-9 personagens e a conta fecha — medido, enumerando as 16 combinações +facção×inimigo × teamSize 1..8: todas dão N vs N. O bug é LATENTE: basta uma +facção entrar com 1 personagem para ele voltar, de novo em silêncio. `roster` +fecha isso: SEMPRE devolve `want` combatentes (repetir personagem é aceitável; +time menor não é) e AVISA no console quando repetiu ou recorreu ao elenco geral. + +--- + ## Como usar este arquivo - **Antes de escrever régua:** leia 1, 2, 3, 4. - **Antes de mexer em asset ou build:** leia 5, 11, 12, 14. +- **Antes de mexer em preload ou em quem entra na cena:** leia 15. - **Antes de gerar arte com pessoa real:** leia 9. - **Quando o portão estiver verde e o dono disser que está errado:** leia 1 e 3. Esse caso é o mais importante desta base, e o mais mal resolvido. diff --git a/package.json b/package.json index 798297df..1d17dbd3 100644 --- a/package.json +++ b/package.json @@ -148,6 +148,7 @@ "eval:lajes-spatial": "node tools/eval/lajes-spatial-check.mjs", "eval:ambience": "node tools/eval/ambience-check.mjs", "eval:fauna-shots": "node tools/eval/fauna-shots.mjs", + "eval:preload-roster": "node tools/eval/preload-roster-check.mjs", "eval:mansao-water": "node tools/eval/mansao-water-check.mjs", "eval:mansao-garden": "node tools/eval/mansao-garden-check.mjs", "eval:look": "node tools/eval/look-check.mjs", diff --git a/public/js/game.js b/public/js/game.js index b6df0def..75205b57 100644 --- a/public/js/game.js +++ b/public/js/game.js @@ -2,7 +2,7 @@ import * as THREE from 'three'; import { MAPS, resolveMapId } from './maps.js'; import { buildCharacter, poseCharacter, byId, CHARACTERS, buildRifle, charWeapon } from './characters.js'; -import { buildCharacterModel } from './glbchars.js'; +import { buildCharacterModel, hasModel } from './glbchars.js'; import { weaponModel, weaponCFG, ONE_HANDED, WEAPON_IDS, PISTOLS, gripPoints } from './weapons.js'; import { buildFPArms, poseToWeapon, FP_OFF } from './fparms.js'; import { VM_FRAME } from './vmattach.js'; @@ -556,8 +556,44 @@ function rollBotSkill(mul = 1) { // APRENDER quem é perigoso em vez de morrer pra 8 bots visualmente idênticos). function botTier(skill) { return skill < 0.75 ? 'ruim' : skill < 1.05 ? 'medio' : skill < 1.4 ? 'bom' : 'muitobom'; } +/* Sorteio do elenco da partida. Extraído do construtor para o `main.js` preloadar só + quem joga; equilíbrio de times e o porquê inteiro em docs/LICOES.md §15. */ +export function pickMatchRoster({ playerFaction, enemyFaction, playerCharId, teamSize }) { + // Rotação aleatória do pool por partida: sem ela só os 8 primeiros do time viravam + // bots (personagens no fim da lista, ex.: canarinho/proerd, nunca apareciam). + const cycle = (pool, n) => { + const r = pool.length ? (Math.random() * pool.length) | 0 : 0; + return Array.from({ length: Math.max(0, n) }, (_, i) => pool[(i + r) % pool.length]).filter(Boolean); + }; + const roster = (pool, want, quem, fallback) => { + let src = pool; + if (!src.length) { + src = fallback.filter(Boolean); + console.warn(`[times] ${quem}: facção sem personagens disponíveis — completando com o elenco geral (o time NÃO pode ficar menor)`); + } + if (!src.length) return []; + if (src.length < want) console.warn(`[times] ${quem}: ${src.length} personagem(ns) para ${want} vaga(s) — vai REPETIR personagem para os dois lados ficarem iguais`); + const out = cycle(src, want); + while (out.length < want) out.push(src[out.length % src.length]); // rede de segurança + return out.slice(0, want); + }; + // aliados vêm da FACÇÃO do jogador (P/B/U/C); inimigos da facção inimiga escolhida. + const allyDefs = roster(CHARACTERS.filter((c) => c.team === playerFaction && c.id !== playerCharId), + teamSize - 1, `aliados (${playerFaction})`, CHARACTERS.filter((c) => c.id !== playerCharId)); + const enemyDefs = roster(CHARACTERS.filter((c) => c.team === enemyFaction), + teamSize, `inimigos (${enemyFaction})`, CHARACTERS); + return { allyDefs, enemyDefs }; +} + +/* Ids que a partida REALMENTE usa — o que o `main.js` manda pro `preloadCharacterAssets`. + Inclui o personagem do jogador: ele não tem malha de corpo (1ª pessoa), mas os braços + FP e a prévia da tela de fim saem do mesmo template. */ +export function matchRosterIds(roster, playerCharId) { + return [...new Set([playerCharId, ...roster.allyDefs.map((d) => d.id), ...roster.enemyDefs.map((d) => d.id)].filter(Boolean))]; +} + export class Game { - constructor({ renderer, textures, sfx, settings, playerCharId, playerTeam, playerFaction, enemyFaction, nickname, mapId, ctf, roundsMax, testMode = false, onQuit, onMatchEnd, onTrainingFrames, recordTraining = false }) { + constructor({ renderer, textures, sfx, settings, playerCharId, playerTeam, playerFaction, enemyFaction, nickname, mapId, ctf, roundsMax, matchRoster = null, testMode = false, onQuit, onMatchEnd, onTrainingFrames, recordTraining = false }) { this._ctfOpt = ctf; this.renderer = renderer; this.sfx = sfx; @@ -699,39 +735,11 @@ export class Game { // dano do bot contra o JOGADOR agora depende da dificuldade escolhida no menu (antes era // 0.85 fixo — o seletor não mudava nada além do sorteio de skill). this._botDmgPlayer = BOT_FAIR ? (BOT_DMG_BY_DIFF[diffKey(this.settings)] ?? 0.72) : BOT_DMG_PLAYER; - // Rotação aleatória do pool por partida: sem ela só os 8 primeiros do time viravam - // bots (personagens no fim da lista, ex.: canarinho/proerd, nunca apareciam). - const cycle = (pool, n) => { - const r = pool.length ? (Math.random() * pool.length) | 0 : 0; - return Array.from({ length: Math.max(0, n) }, (_, i) => pool[(i + r) % pool.length]).filter(Boolean); - }; - /* ===== EQUILÍBRIO DE TIMES (garantia numérica, não boa-fé) ===== - PORQUÊ: `cycle` devolve [] quando o pool é VAZIO — `pool[i % 0]` é NaN → undefined e o - `.filter(Boolean)` limpa tudo. Ou seja, uma facção sem personagens suficientes produzia - um time MENOR **sem nenhum aviso** (jogador sozinho contra 8). Hoje as 4 facções têm - 8-9 personagens e a conta fecha — medido, enumerando as 16 combinações facção×inimigo - × teamSize 1..8: todas dão N vs N. O bug é LATENTE: basta a 5ª facção entrar com 1 - personagem (ou o único personagem dela ser o escolhido pelo jogador) pra ele voltar, - de novo em silêncio. `roster` fecha isso: SEMPRE devolve `want` combatentes (repetir - personagem é aceitável — o `cycle` já repetia; time menor não é) e AVISA no console - quando teve que repetir ou recorrer ao elenco geral. */ - const roster = (pool, want, quem, fallback) => { - let src = pool; - if (!src.length) { - src = fallback.filter(Boolean); - console.warn(`[times] ${quem}: facção sem personagens disponíveis — completando com o elenco geral (o time NÃO pode ficar menor)`); - } - if (!src.length) return []; - if (src.length < want) console.warn(`[times] ${quem}: ${src.length} personagem(ns) para ${want} vaga(s) — vai REPETIR personagem para os dois lados ficarem iguais`); - const out = cycle(src, want); - while (out.length < want) out.push(src[out.length % src.length]); // rede de segurança - return out.slice(0, want); - }; - // aliados vêm da FACÇÃO do jogador (P/B/U/C); inimigos da facção inimiga escolhida. - const allyDefs = roster(CHARACTERS.filter(c => c.team === this.playerFaction && c.id !== playerCharId), - teamSize - 1, `aliados (${this.playerFaction})`, CHARACTERS.filter(c => c.id !== playerCharId)); - const enemyDefs = roster(CHARACTERS.filter(c => c.team === this.enemyFaction), - teamSize, `inimigos (${this.enemyFaction})`, CHARACTERS); + // `matchRoster` chega pronto do main.js (que preloada por ele); sem ele, sorteia aqui + // pela MESMA função — sortear duas vezes erraria o preload calado. docs/LICOES.md §15. + const { allyDefs, enemyDefs } = matchRoster || pickMatchRoster({ + playerFaction: this.playerFaction, enemyFaction: this.enemyFaction, playerCharId, teamSize, + }); const mkBot = (def, team, i) => { const wpn = this._botWeapon(); const c = buildCharacterModel(def, { weaponId: wpn }) || buildCharacter(def); @@ -2530,7 +2538,11 @@ export class Game { const swapBot = candidates[(Math.random() * candidates.length) | 0]; if (swapBot) { swapBot.team = oldTeam; - const defs = CHARACTERS.filter(c => c.team === oldFaction && c.id !== p.def.id); + // Prefere quem já tem GLB: com preload por roster, sorteio cego poria boneco de caixa + // em campo (cláusula PL2). Sem ninguém carregado, volta ao cego. docs/LICOES.md §15. + const todos = CHARACTERS.filter(c => c.team === oldFaction && c.id !== p.def.id); + const comModelo = todos.filter(c => hasModel(c.id)); + const defs = comModelo.length ? comModelo : todos; const newDef = defs[(Math.random() * defs.length) | 0]; swapBot.def = newDef; swapBot.name = newDef.name; this.scene.remove(swapBot.mesh.group); diff --git a/public/js/main.js b/public/js/main.js index 40f8825d..d02cf6f6 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -10,7 +10,7 @@ import { MAPS, MAP_IDS, DEFAULT_MAP, resolveMapId, mapaDaSessao } from './maps.j import { PALETA } from './paleta.js'; import { setHavanCarSeed } from './map_havan.js'; import { Sfx } from './audio.js'; -import { Game, confirmGate, CONFIRM_MAX_MS } from './game.js'; +import { Game, confirmGate, CONFIRM_MAX_MS, pickMatchRoster, matchRosterIds } from './game.js'; import { VERSION } from './version.js'; import { LANG, translateDom, tr, frase } from './i18n.js'; import { enableLightBloom } from './bloom.js'; @@ -1065,10 +1065,17 @@ async function _startGame(team, charId, enemyFaction) { // load in parallel and are optional — the map renders fine if they're missing. // sorteia os carros da Havan desta partida ANTES do preload (seleção = props do mapa) setHavanCarSeed((Math.random() * 1e9) | 0); + // Preload só do elenco desta partida (era o jogo inteiro: 63 GLBs pra 8 bonecos). + // Kill-switches ?preloadall=1 e ?preloadlazy=0 são os mutantes. docs/LICOES.md §15. + const _qs = new URLSearchParams(location.search); + const _preloadAll = _qs.get('preloadall') === '1'; + const _teamSize = Math.max(1, Math.min(8, settings.bots || 4)); + const _roster = pickMatchRoster({ playerFaction: faction, enemyFaction: enemyFac, playerCharId: charId, teamSize: _teamSize }); + const _rosterIds = matchRosterIds(_roster, charId); try { if (!navOnly) { await Promise.all([ - preloadCharacterAssets([...GLB_CHARS]), + preloadCharacterAssets(_preloadAll ? [...GLB_CHARS] : _rosterIds), preloadMapProps([...MAP_PROPS, ...((MAPS[currentMap] && MAPS[currentMap].props) || [])]), // + props do mapa (Havan: carros/estátua) preloadAmbientLife((MAPS[currentMap] && MAPS[currentMap].ambience) || []), preloadFPArms(), // braços FP dedicados (falha → fallback procedural, sem bloquear) @@ -1080,6 +1087,7 @@ async function _startGame(team, charId, enemyFaction) { renderer, textures, sfx, settings, playerCharId: charId, playerTeam: side, playerFaction: faction, enemyFaction: enemyFac, mapId: currentMap, nickname: $('nick-input').value, testMode, + matchRoster: _roster, // sorteado acima, antes do preload — o Game NÃO re-sorteia ctf: matchMode === 'ctf', // o modo agora é 100% escolha do jogador (ctfMode só define o PADRÃO ao trocar de mapa) roundsMax: matchRounds(), onMatchEnd: recordMatchStats, @@ -1087,6 +1095,26 @@ async function _startGame(team, charId, enemyFaction) { onTrainingFrames: sendTrainingFrames, }); window.__game = game; + // Resto do elenco em segundo plano: serve à tecla M. Falha calada de propósito — é + // disponibilidade, não requisito da partida. docs/LICOES.md §15. + if (!navOnly && !_preloadAll && _qs.get('preloadlazy') !== '0') { + const resto = [...GLB_CHARS].filter((id) => !_rosterIds.includes(id)); + // Espera o `live`: baixar na contagem regressiva rouba o primeiro segundo jogável. + if (resto.length) { + const solta = () => { + const ocioso = window.requestIdleCallback || ((f) => setTimeout(f, 1200)); + ocioso(() => preloadCharacterAssets(resto).catch(() => {})); + }; + // Guarda de vazamento: sai por identidade da partida e por teto — não existe estado + // 'over' no Game (boot|countdown|live|roundEnd|matchEnd). + const meuJogo = game; + let tentativas = 0; + const espera = setInterval(() => { + if (window.__game !== meuJogo || ++tentativas > 240) { clearInterval(espera); return; } + if (meuJogo.state === 'live') { clearInterval(espera); solta(); } + }, 250); + } + } submitted = false; telemetrySent = false; // partida nova = uma linha nova de telemetria _matchEventSent = false; // partida nova = um evento rico novo (feat/telemetria) diff --git a/tools/eval/preload-roster-check.mjs b/tools/eval/preload-roster-check.mjs new file mode 100644 index 00000000..3f3bb736 --- /dev/null +++ b/tools/eval/preload-roster-check.mjs @@ -0,0 +1,131 @@ +/* preload-roster-check.mjs — A PARTIDA CARREGA O ELENCO QUE ELA USA, NÃO O ELENCO INTEIRO. + * + * POR QUE EXISTE — `main.js` chama `preloadCharacterAssets([...GLB_CHARS])` antes de + * construir o Game: os 62 personagens do jogo inteiro, BLOQUEANDO, para uma partida + * que põe 9 bonecos em campo (jogador + 8 bots). Os outros 53 GLBs são bytes, decode + * e VRAM que o jogador espera sem ver nada — a tela "CARREGANDO MODELOS 3D…" existe + * só por causa disso. + * + * O QUE ELA NÃO PODE DEIXAR PASSAR — cortar o preload é fácil; cortar E deixar bot de + * caixa procedural em campo é trocar espera por feiura, que é pior. Por isso a PL2 + * cobra o resultado na cena, não a intenção no código. E a tecla M deixa o jogador + * virar QUALQUER personagem da facção inimiga: preload enxuto sem carga tardia + * quebraria a troca de time em silêncio — é o que a PL3 cobra. + * + * O QUE MEDE (jogo real, ?auto=, rede de verdade) + * PL1 GLBs de personagem baixados no preload BLOQUEANTE <= TETO (12). + * Janela: do goto até `window.__game` existir — o Game só é construído depois + * do `await Promise.all([...])` do preload, então tudo que entra antes disso é + * exatamente o que o jogador espera olhando a tela de carregamento. Contar até + * o `live` mediria junto a carga tardia e daria 62 mesmo com o conserto no lugar + * (foi o que aconteceu na primeira medição). Estado antes do conserto: 63. + * PL2 todo BOT em campo tem malha GLB — zero boneco procedural. Só bot: o jogador + * é primeira pessoa e não tem malha de corpo (game.js:654 — o `player` não + * carrega `mesh`), então incluí-lo pintava a régua de vermelho por engano. + * PL3 o elenco restante CHEGA (a troca de time pela tecla M continua possível). + * Sonda até 60 s e passa assim que completa — janela fixa de 10 s reprovou a + * primeira medição com 10/62 por disputa de CPU com outra régua rodando junto, + * e isso é afirmação sobre DESEMPENHO de download, que não é o contrato aqui. + * O contrato é existência: sem carga tardia o número nunca sai do lugar, que é + * o que o mutante `sem-lazy` prova. + * + * MUTANTES (kill-switches reais do jogo, não monkey-patch de teste) + * --mutante=todos abre com ?preloadall=1 → volta ao preload do elenco inteiro + * → PL1 tem que ficar VERMELHA + * --mutante=sem-lazy abre com ?preloadlazy=0 → sem carga tardia + * → PL3 tem que ficar VERMELHA + * + * EXIGE BROWSER E SERVIDOR (`npm run eval:serve`) — passo de pré-deploy, não de check:fast. + * + * USO + * BASE=http://127.0.0.1:8123 node tools/eval/preload-roster-check.mjs + * node tools/eval/preload-roster-check.mjs --mutante=todos + */ +import { execSync } from 'node:child_process'; +import { pathToFileURL } from 'node:url'; + +const BASE = process.env.BASE || 'http://127.0.0.1:8123'; +const MAPA = process.env.MAPA || 'quebrada'; +const TETO = parseInt(process.env.TETO || '12', 10); +const MUTANTE = (process.argv.find((a) => a.startsWith('--mutante=')) || '').split('=')[1] || null; +const conhecidos = new Set(['todos', 'sem-lazy']); +if (MUTANTE && !conhecidos.has(MUTANTE)) throw new Error(`mutante desconhecido: ${MUTANTE}`); + +const gRoot = execSync('npm root -g').toString().trim(); +const _pw = await import(pathToFileURL(`${gRoot}/playwright/index.js`).href); +const chromium = _pw.chromium || _pw.default?.chromium; +const browser = await chromium.launch({ + executablePath: process.env.CHROME_BIN || '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', + args: ['--use-angle=swiftshader', '--enable-unsafe-swiftshader', '--headless=new', '--mute-audio', '--no-sandbox'], +}); +const page = await browser.newPage({ viewport: { width: 1280, height: 800 } }); +const erros = []; +page.on('pageerror', (e) => erros.push(e.message)); + +/* Conta pedido de GLB de personagem NA REDE. Medir a rede e não um contador do + próprio módulo é a diferença entre provar o que o jogador espera e acreditar no + que o código diz que faz (a lição do decal de grafite). */ +const CHAR_GLB = /\/models\/characters\/([a-z0-9-]+)\.glb/; +const pedidos = []; +page.on('request', (r) => { + const m = CHAR_GLB.exec(r.url()); + if (m) pedidos.push({ id: m[1], t: Date.now() }); +}); + +const extra = MUTANTE === 'todos' ? '&preloadall=1' : MUTANTE === 'sem-lazy' ? '&preloadlazy=0' : ''; +const t0 = Date.now(); +await page.goto(`${BASE}/?debug=1&map=${MAPA}&auto=P,mst${extra}`, { waitUntil: 'domcontentloaded', timeout: 180000 }); +/* fim da janela bloqueante: o Game acabou de ser construído (main.js: `window.__game = game` + é a linha seguinte ao preload). Sondagem de 50 ms contra um preload de segundos — a folga + é irrelevante, e a carga tardia só solta depois do `live`, bem mais adiante. */ +await page.waitForFunction(() => !!window.__game, null, { timeout: 300000, polling: 50 }); +const bloqueante = pedidos.length; +const tBloq = Date.now(); +await page.waitForFunction(() => window.__game && window.__game.state === 'live', null, { timeout: 300000 }); +const tLive = Date.now(); +const noLive = pedidos.length; + +const cena = await page.evaluate(() => { + const g = window.__game; + return { + bots: g.bots.length, + procedurais: g.bots.filter((b) => !b.mesh?.isGLB).map((b) => b.def?.id || b.name), + ids: [g.playerCharId, ...g.bots.map((b) => b.def?.id)].filter(Boolean), + }; +}); + +/* PL3: sonda até completar. A régua cobra que a carga tardia EXISTA, não que ela seja + rápida — por isso espera generosa e saída no primeiro sucesso. */ +const conta = () => page.evaluate(async () => { + const m = await import('/js/glbchars.js'); + let prontos = 0; + for (const id of m.GLB_CHARS) if (m.hasModel(id)) prontos++; + return { prontos, total: m.GLB_CHARS.size }; +}); +let tarde = await conta(), esperou = 0; +while (tarde.prontos < tarde.total && esperou < 60000) { + await page.waitForTimeout(2000); esperou += 2000; + tarde = await conta(); +} +await browser.close(); + +const pl1 = bloqueante <= TETO; +const pl2 = cena.procedurais.length === 0; +const pl3 = tarde.prontos === tarde.total; + +console.log(`\nmapa ${MAPA}${MUTANTE ? ` [mutante: ${MUTANTE}]` : ''}`); +console.log(` espera bloqueante: ${((tBloq - t0) / 1000).toFixed(1)}s · ate 'live': ${((tLive - t0) / 1000).toFixed(1)}s (evidencia do A/B, sem limiar — headless nao e maquina de jogador)`); +console.log(` PL1 GLBs no bloqueante (<= ${TETO}): ${bloqueante} ${pl1 ? 'OK' : 'FALHOU'} [ate o 'live', com a carga tardia: ${noLive}]`); +console.log(` PL2 bots sem GLB (== 0): ${cena.procedurais.length} de ${cena.bots} ${pl2 ? 'OK' : 'FALHOU'}${cena.procedurais.length ? ` [${cena.procedurais.join(', ')}]` : ''}`); +console.log(` elenco da partida (${cena.ids.length}): ${cena.ids.join(', ')}`); +console.log(` PL3 elenco carregado (${tarde.total}/${tarde.total}): ${tarde.prontos} em ${(esperou / 1000).toFixed(0)}s ${pl3 ? 'OK' : 'FALHOU'}`); +if (erros.length) console.log(` erros de pagina: ${erros.length}\n - ${erros.slice(0, 3).join('\n - ')}`); + +if (MUTANTE) { + const alvo = MUTANTE === 'todos' ? !pl1 : !pl3; + console.log(alvo ? `\nMUTANTE ${MUTANTE}: regua MORDEU ✓` : `\nMUTANTE ${MUTANTE}: NAO MORDEU — a regua nao mede o que diz medir ✗`); + process.exit(alvo ? 0 : 1); +} +const falhas = [!pl1 && 'PL1', !pl2 && 'PL2', !pl3 && 'PL3'].filter(Boolean); +console.log(falhas.length ? `\nPRELOAD-ROSTER: ${falhas.join(' ')} vermelha(s)` : '\nPRELOAD-ROSTER: verde'); +process.exit(falhas.length ? 1 : 0); From 0bb19c3d1a51ee0e9f3f8b212e47aa9920ad502a Mon Sep 17 00:00:00 2001 From: Ruben Date: Fri, 21 Aug 2026 11:07:25 +0100 Subject: [PATCH 03/25] feat(tela-04): duas colunas na escolha de mapa e varredura do i18n (#401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(tela-04): duas colunas na escolha de mapa e varredura do i18n A tela 04 vira LISTA + FICHA em vez de cartaz: ficha à esquerda com texto menor e mais respiro (nome 72px -> 44px, corpo 14px/1.8, gap 20px) e o acervo à direita rolando na vertical, só miniaturas. A preview em tela cheia sai do palco; o fica no DOM porque o render e a sonda de tela leem o src pra saber qual mapa está em foco. O idioma vinha misturado: o dicionário casa a string PT EXATA, então "04 · ESCOLHA DO MAPA" nunca batia com a chave "ESCOLHA DO MAPA", e parágrafo quebrado em duas linhas no HTML chegava com \n no meio. Um auditor sobre o index.astro achou 119 sobras; entram ~110 chaves novas (tela 04, aria-labels, perfil, configurações, como-jogar, HUD, placar, rodapé, tela de erro e as 6 fichas de mapa novas), tr()/translateDom() ganham índice por espaço normalizado, e MATA-MATA e o title do cartaz passam a atravessar tr(). Nome de mapa, personagem e facção seguem PT nos dois idiomas - é sabor, decisão do dono. A UIR4 travava a geometria antiga (.ms-head left/top/width fixos, faixa de 196px): passa a descrever as duas colunas e a rolagem vertical. O mutante mapa-strip-fixa não tinha mais o que morder e vira três que mordem o layout novo: mapa-acervo-deitado, mapa-sem-duas-colunas e mapa-acervo-nao-rola. Co-Authored-By: Claude Opus 5 Signed-off-by: rubenmarcus Agent: Claude Code * fix(tela-04): acervo em grade de dois, card quadrado e o palco de volta Ajuste pedido sobre a primeira versão: o acervo continua rolando em pé, mas em DUAS colunas - uma coluna só deixava o card panorâmico e pedia rolagem longa demais para 12 mapas. A altura do card sai da proporção (4/3) e não de um px fixo, senão a arte volta a achatar quando a faixa estica. A faixa cresce de 420px para 520px para caber os dois cards legíveis; abaixo de 1180px a grade volta a uma coluna. A preview do mapa em foco volta a ser o palco. Quem paga por ela é o scrim: sem os dois gradientes, ficha e grade somem em cima de mapa claro - a Piscina é o caso. A UIR4 passa a cobrar a grade de dois, a proporção do card e a existência dos gradientes; entram os mutantes `mapa-card-achatado` e `mapa-palco-sem-scrim`, e o `mapa-acervo-deitado` acompanha a redação nova. Co-Authored-By: Claude Opus 5 Signed-off-by: rubenmarcus Agent: Claude Code * feat(tela-04): aba TODOS por partidas jogadas, ficha no cabeçalho, acervo em grade A tela vira três faixas: CABEÇALHO (abas, ficha do mapa em foco e opções da partida), ACERVO (a grade, dona do corpo inteiro) e RODAPÉ (VOLTAR num canto, CONTINUAR no outro). A ficha e os controles saíram de dentro do corpo porque a tela existe para mostrar o acervo, e ele estava espremido numa faixa lateral. A grade decide o número de colunas pela largura real, com teto de três: 3×360+2×14 cabe no max-width de 1180, 4×360+3×14 não - os dois números são um par, mexer num sem o outro solta uma quarta coluna. O palco passa a ser o WALLPAPER do setup. A preview do mapa em foco já está no card selecionado, e repetida em tela cheia brigava com a grade; o `` segue no DOM porque é dele que a sonda de tela lê qual mapa está em foco. TODOS volta a ser o acervo INTEIRO (o #368 tinha fundido TODOS e OFICIAIS numa aba só) e passa a ordenar por partidas jogadas, com OFICIAIS em aba própria. O número sai de `picks_daily`, o contador que o /api/pick alimenta desde 06/08 e que ninguém lia: entra `GET /api/map-plays`, que soma por mapa com service_role - a tabela é RLS-fechada e o navegador não a alcança. A resposta nunca derruba a tela: sem banco, sem tabela ou sem rede sai `{plays:{}}` com 200, a ordem cai para a do catálogo e o crachá de partidas some. Zero partidas é AUSÊNCIA de medida, não medida de zero. A UIR4 acompanha: três abas, ordenação com desempate estável, ficha e opções dentro do cabeçalho, grade elástica com teto de três, palco no wallpaper e a guarda da rota. Dez mutantes cobrem cada decisão, incluindo `mapa-plays-inventado` (que faz o zero virar "0 partidas") e `mapa-todos-sem-ranking`. Co-Authored-By: Claude Opus 5 Signed-off-by: rubenmarcus Agent: Claude Code * fix(mapas): thumbs do Ubiracy voltam a ser o mapa, não print de partida velho_oeste, penitenciaria e parque_treta chegaram como screenshot de gameplay - arma na frente, HUD e o "VALENDO!" no meio do quadro. Regeradas pelo mesmo g2ui-map-previews que já esconde HUD, viewmodel, bots e drops. A pose ficou registrada em POSES porque nenhum dos três é fotogênico sozinho: do spawn a câmera olha para FORA do mapa nos três, e a nível do olho o cartaz vira 60% de céu. A varredura de meio giro mostrou que yaw 3,14 de [0,30,-35] com pitch -0,55 é o único enquadramento que pega o mapa inteiro. Co-Authored-By: Claude Opus 5 Signed-off-by: rubenmarcus Agent: Claude Code * fix(tela-04): cabeçalho numa linha de três colunas e o wallpaper do menu principal O cabeçalho era uma PILHA de quatro faixas (kicker, abas, descrição da categoria e depois a ficha) e empurrava a grade para baixo da dobra. Vira uma linha só de três colunas: navegação | ficha do mapa em foco | opções da partida. A coluna da navegação tem 300px porque abaixo disso TODOS/OFICIAIS/COMUNIDADE quebram em duas linhas. Abaixo de 1120px de viewport as opções descem para uma segunda linha, e abaixo de 820px tudo empilha. O palco usava o wallpaper do SETUP; passa a usar o do MENU PRINCIPAL, e pintado pela mesma regra e não por números parecidos: borrão `cover` desfocado por baixo, arte inteira em `contain` por cima e a variante 3:2 na mesma faixa de proporção. Copiar o valor em vez da regra era como as duas telas divergiam. A UIR4 cobra a linha de três colunas, a ordem `ms-head` → `ms-nav` na marcação e as três regras do wallpaper; entram `mapa-header-empilhado` (a linha volta a ser pilha) e `mapa-palco-wall-do-setup` (o palco volta a divergir do menu). Co-Authored-By: Claude Opus 5 Signed-off-by: rubenmarcus Agent: Claude Code --------- Signed-off-by: rubenmarcus Co-authored-by: Claude Opus 5 --- ARCH.generated.md | 4 +- README.md | 4 +- STATUS.md | 2 +- docs/docs/arquitetura.md | 4 +- docs/docs/comecando.md | 4 +- .../current/arquitetura.md | 4 +- .../current/comecando.md | 4 +- public/img/map-previews/parque_treta.jpg | Bin 19124 -> 42020 bytes public/img/map-previews/penitenciaria.jpg | Bin 35084 -> 30927 bytes public/img/map-previews/velho_oeste.jpg | Bin 55117 -> 52437 bytes public/js/i18n.js | 128 +++++++++++++- public/js/main.js | 50 +++++- public/style.css | 160 ++++++++++++------ src/pages/api/map-plays.ts | 45 +++++ src/pages/index.astro | 104 +++++++----- tools/eval/ARCH.md | 2 +- tools/eval/g2ui-map-previews.mjs | 7 + tools/eval/redesign-check.mjs | 113 +++++++++++-- 18 files changed, 498 insertions(+), 137 deletions(-) create mode 100644 src/pages/api/map-plays.ts diff --git a/ARCH.generated.md b/ARCH.generated.md index dee215c7..5e90da88 100644 --- a/ARCH.generated.md +++ b/ARCH.generated.md @@ -8,8 +8,8 @@ Números atuais das zonas, do quality gate e do `package.json`: | Zona | O que é | Tamanho medido | Regra | |---|---|---|---| -| `public/` | o **jogo** | 44 arquivos `.js`, 31.744 linhas · Three.js `r160` vendorizado | ES modules servidos crus, **zero build**, sem dependência de runtime | -| `src/` | o **site** | 18 páginas `.astro`, 20 rotas `/api` · Astro `^7.1.1` | framework é bem-vindo; `service_role` só no servidor | +| `public/` | o **jogo** | 44 arquivos `.js`, 31.900 linhas · Three.js `r160` vendorizado | ES modules servidos crus, **zero build**, sem dependência de runtime | +| `src/` | o **site** | 18 páginas `.astro`, 21 rotas `/api` · Astro `^7.1.1` | framework é bem-vindo; `service_role` só no servidor | | `tools/` | o **arnês** | 192 scripts em `tools/eval/`, 54 em `tools/` | node puro: sobe o jogo real sem browser | **Não existe `public/index.html`.** O HTML do jogo é `src/pages/index.astro`, servido na rota `/`. Servir `public/` estaticamente entrega os arnêses visuais, **não o jogo** — é a pegadinha que custa a primeira hora de todo mundo. diff --git a/README.md b/README.md index 450d98f4..d42e39d2 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,9 @@ contra bots, direto na aba. Sem download, sem instalação, sem cadastro. | O que | Quanto | Onde confere | |---|---:|---| -| Código do jogo | 31.744 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` | +| Código do jogo | 31.900 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` | | `game.js` | **6.838** linhas | `wc -l public/js/game.js` | -| `main.js` | 2.646 linhas | `wc -l public/js/main.js` | +| `main.js` | 2.680 linhas | `wc -l public/js/main.js` | | Armas com GLB | 26 | `git ls-files 'public/models/weapons/*.glb' \| wc -l` | | GLBs de personagem | 45 | `git ls-files 'public/models/characters/*.glb' \| wc -l` | | Props em GLB | 108 | `git ls-files 'public/models/props/*.glb' \| wc -l` | diff --git a/STATUS.md b/STATUS.md index c83ccadc..a787b221 100644 --- a/STATUS.md +++ b/STATUS.md @@ -4,7 +4,7 @@ - **Versão:** `2.0.0-alpha.169` - **Conteúdo jogável:** 5 facções, 44 personagens, 12 mapas e 26 armas com GLB -- **Código do jogo:** 31.744 linhas em 44 módulos JavaScript +- **Código do jogo:** 31.900 linhas em 44 módulos JavaScript - **Automação:** 117 comandos npm, 192 scripts de avaliação e 54 scripts de pipeline > Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `package.json · CHARACTERS · MAPS · public/models/weapons · public/js · tools/` diff --git a/docs/docs/arquitetura.md b/docs/docs/arquitetura.md index a7a92770..b022566c 100644 --- a/docs/docs/arquitetura.md +++ b/docs/docs/arquitetura.md @@ -63,14 +63,14 @@ Tamanho dos arquivos que o `gen-arch.mjs` indexa — bloco gerado, regenerado po | Arquivo | Linhas | |---|---:| | `public/js/game.js` | 6.838 | -| `public/js/main.js` | 2.646 | +| `public/js/main.js` | 2.680 | | `public/js/characters.js` | 1.068 | | `public/js/glbchars.js` | 837 | | `public/js/vmattach.js` | 628 | | `public/js/weapons.js` | 344 | | `public/js/springs.js` | 260 | -Total de `public/js/`: **31.744 linhas em 44 arquivos**. O índice símbolo→linha, com a tabela de conflito, é outro bloco gerado: `tools/eval/ARCH.md` (`npm run arch`). +Total de `public/js/`: **31.900 linhas em 44 arquivos**. O índice símbolo→linha, com a tabela de conflito, é outro bloco gerado: `tools/eval/ARCH.md` (`npm run arch`). > Bloco gerado por `node tools/gen-docs.mjs`. Fonte: ``git ls-files public/js/*.js | xargs wc -l`` diff --git a/docs/docs/comecando.md b/docs/docs/comecando.md index 4c210a5a..4524028d 100644 --- a/docs/docs/comecando.md +++ b/docs/docs/comecando.md @@ -39,9 +39,9 @@ esta página envelhecia no primeiro commit — ver | O que | Quanto | Onde confere | |---|---:|---| -| Código do jogo | 31.744 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` | +| Código do jogo | 31.900 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` | | `game.js` | **6.838** linhas | `wc -l public/js/game.js` | -| `main.js` | 2.646 linhas | `wc -l public/js/main.js` | +| `main.js` | 2.680 linhas | `wc -l public/js/main.js` | | Armas com GLB | 26 | `git ls-files 'public/models/weapons/*.glb' \| wc -l` | | GLBs de personagem | 45 | `git ls-files 'public/models/characters/*.glb' \| wc -l` | | Props em GLB | 108 | `git ls-files 'public/models/props/*.glb' \| wc -l` | diff --git a/docs/i18n/en/docusaurus-plugin-content-docs/current/arquitetura.md b/docs/i18n/en/docusaurus-plugin-content-docs/current/arquitetura.md index dcd0fc31..7d8953a8 100644 --- a/docs/i18n/en/docusaurus-plugin-content-docs/current/arquitetura.md +++ b/docs/i18n/en/docusaurus-plugin-content-docs/current/arquitetura.md @@ -70,14 +70,14 @@ Size of the files `gen-arch.mjs` indexes — a generated block, regenerated by | File | Lines | |---|---:| | `public/js/game.js` | 6,838 | -| `public/js/main.js` | 2,646 | +| `public/js/main.js` | 2,680 | | `public/js/characters.js` | 1,068 | | `public/js/glbchars.js` | 837 | | `public/js/vmattach.js` | 628 | | `public/js/weapons.js` | 344 | | `public/js/springs.js` | 260 | -Total in `public/js/`: **31,744 lines in 44 files**. The symbol-to-line index lives in `tools/eval/ARCH.md`. +Total in `public/js/`: **31,900 lines in 44 files**. The symbol-to-line index lives in `tools/eval/ARCH.md`. > Block generated by `node tools/gen-docs.mjs`. Source: ``wc -l public/js/*.js`` diff --git a/docs/i18n/en/docusaurus-plugin-content-docs/current/comecando.md b/docs/i18n/en/docusaurus-plugin-content-docs/current/comecando.md index e759b1af..79278b3f 100644 --- a/docs/i18n/en/docusaurus-plugin-content-docs/current/comecando.md +++ b/docs/i18n/en/docusaurus-plugin-content-docs/current/comecando.md @@ -41,9 +41,9 @@ this page was aging at the very first commit — see | What | How much | Where to check | |---|---:|---| -| Game code | 31,744 lines in 44 files | `git ls-files public/js/*.js \| xargs wc -l` | +| Game code | 31,900 lines in 44 files | `git ls-files public/js/*.js \| xargs wc -l` | | `game.js` | **6,838** lines | `wc -l public/js/game.js` | -| `main.js` | 2,646 lines | `wc -l public/js/main.js` | +| `main.js` | 2,680 lines | `wc -l public/js/main.js` | | Weapons with GLB | 26 | `git ls-files 'public/models/weapons/*.glb' \| wc -l` | | Character GLBs | 45 | `git ls-files 'public/models/characters/*.glb' \| wc -l` | | Props in GLB | 108 | `git ls-files 'public/models/props/*.glb' \| wc -l` | diff --git a/public/img/map-previews/parque_treta.jpg b/public/img/map-previews/parque_treta.jpg index 0ccf5a23609a42219ef8659d32d98c08393a65fa..5ab549806fe9399d469052ef9cc2415df82f9b2b 100644 GIT binary patch literal 42020 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

L&tbYxm<|gs}^IGa>}VlmbjqLRG?Bp!p>u9 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 literal 19124 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 diff --git a/public/img/map-previews/penitenciaria.jpg b/public/img/map-previews/penitenciaria.jpg index c00ed230086df1f5e6ad692975356500205b6b54..994d1003b74e61a6ffe4fd11cbb28468e40cc3dd 100644 GIT binary patch literal 30927 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 literal 35084 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

4fbcx@K6J{D+={ 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

) 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 literal 55117 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%0Au6!5}3;Gjwtz%MEE2 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 s.replace(/\s+/g, ' ').trim(); +const DICT_NORM = {}; +for (const k of Object.keys(DICT)) DICT_NORM[norm(k)] = DICT[k]; + export const tr = (s) => { if (LANG !== 'en' || typeof s !== 'string') return s; - return DICT[s] || DICT[s.trim()] || s; + return DICT[s] || DICT[s.trim()] || DICT_NORM[norm(s)] || s; }; /* Frases DINÂMICAS do jogo (game.js/main.js). PT inline como padrão — o jogo nunca @@ -341,13 +462,14 @@ export function translateDom(root) { for (const n of nos) { const t = n.textContent, tt = t.trim(); if (!tt) continue; - const en = DICT[tt]; + const en = DICT[tt] || DICT_NORM[norm(tt)]; if (en) n.textContent = t.replace(tt, en); } for (const el of root.querySelectorAll('[placeholder],[title],[aria-label]')) { for (const a of ['placeholder', 'title', 'aria-label']) { const v = el.getAttribute(a); - if (v && DICT[v.trim()]) el.setAttribute(a, DICT[v.trim()]); + const en = v && (DICT[v.trim()] || DICT_NORM[norm(v)]); + if (en) el.setAttribute(a, en); } } } diff --git a/public/js/main.js b/public/js/main.js index 208e1284..4cbbdee0 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1498,7 +1498,7 @@ function setMapMeta() { function setMapMode() { const m = $('map-mode'); if (m) { - m.textContent = matchMode === 'ctf' ? 'CAPTURE THE FLAG' : 'MATA-MATA'; + m.textContent = matchMode === 'ctf' ? tr('CAPTURE THE FLAG') : tr('MATA-MATA'); m.dataset.mode = matchMode; } const d = $('map-dots'); @@ -1591,7 +1591,8 @@ const MAP_DATA = { upa_24h: '13/08/2026', obras_prefeitura: '13/08/2026', }; const CAT_DESC = { - TODOS: 'Mapas oficiais da casa.', + TODOS: 'O acervo inteiro, do mais jogado ao menos jogado.', + OFICIAIS: 'Mapas oficiais da casa.', ARENA: 'Combate fechado e simétrico — o duelo de angulação clássico.', FAVELA: 'Verticalidade de laje, beco e sombra: quem domina o alto dita o round.', CIDADES: 'Marcos do Brasil em escala de treta: concreto, calçada e linha reta.', @@ -1607,22 +1608,45 @@ let mapAutorFiltro = 'TODOS'; function autoresDeComunidade() { return [...new Set(MAP_IDS.filter((id) => catsDe(id).includes('COMUNIDADE')).map(autorDe))].sort(); } +/* Quantas vezes cada mapa foi escolhido, do contador que o /api/pick alimenta desde + 06/08 (picks_daily). Chega TARDE, por rede, e pode nunca chegar: a tela abre sem ele, + e quando chega redesenha. Nada aqui pode depender do número existir. */ +let mapPlays = {}; +const playsDe = (id) => mapPlays[id] || 0; +fetch('/api/map-plays') + .then((r) => (r.ok ? r.json() : null)) + .then((j) => { + if (!j || !j.plays || typeof j.plays !== 'object') return; + mapPlays = j.plays; + if (!$('map-screen')?.classList.contains('hidden')) renderMapScreen(); + }) + .catch(() => { /* sem banco/rede: a tela fica sem a estatística, e é só isso */ }); function visibleMapIds() { - /* A aba TODOS lista só os mapas OFICIAIS — os de comunidade têm a própria aba. "De comunidade" - é pela categoria (a etiqueta do crachá), que coincide com autoria não-oficial. */ - return MAP_IDS.filter((id) => mapCategory === 'TODOS' ? !catsDe(id).includes('COMUNIDADE') : catsDe(id).includes(mapCategory)); + /* TODOS = o acervo inteiro, ordenado do mais jogado pro menos (empate: ordem do catálogo, + que é estável — `sort` sem desempate deixava a lista dançar entre renders). + OFICIAIS e COMUNIDADE são recortes por categoria e mantêm a ordem do catálogo. */ + if (mapCategory === 'TODOS') { + return MAP_IDS.slice().sort((a, b) => playsDe(b) - playsDe(a) || MAP_IDS.indexOf(a) - MAP_IDS.indexOf(b)); + } + if (mapCategory === 'OFICIAIS') return MAP_IDS.filter((id) => !catsDe(id).includes('COMUNIDADE')); + return MAP_IDS.filter((id) => catsDe(id).includes(mapCategory)); } function renderMapScreen() { const img = $('ms-bg-img'); if (!img) return; /* O mapa em foco manda na aba: se não pertence à aba atual, troca pra aba que o contém. Trocas manuais de aba já re-ancoram o mapa antes, então isto não briga com elas. */ if (!visibleMapIds().includes(currentMap)) { - mapCategory = catsDe(currentMap).includes('COMUNIDADE') ? 'COMUNIDADE' : 'TODOS'; + mapCategory = catsDe(currentMap).includes('COMUNIDADE') ? 'COMUNIDADE' : 'OFICIAIS'; } const continuar = $('ms-continue')?.querySelector('span'); if (continuar) continuar.textContent = frase('continuarSetup'); img.decoding = 'async'; // decode fora da thread principal — não trava a UI da tela de mapas img.src = `/img/map-previews/${currentMap}.jpg?v=${VERSION}`; + /* O palco é o MESMO wallpaper do menu principal, não esta preview: a foto do mapa em + foco já está no card selecionado, e em tela cheia ela brigava com a grade. O `src` + acima continua sendo escrito porque é dele que a sonda de tela lê o mapa em foco. */ + const palco = document.querySelector('#map-screen .ms-bg'); + if (palco) { palco.style.setProperty('--wall', HOME_WALL); palco.style.setProperty('--wall-3x2', HOME_WALL_3X2); } $('ms-name').textContent = MAPS[currentMap].name; // separadores da ficha em verde (referência 04): texto continua o mesmo do cartaz $('ms-meta').innerHTML = ($('map-meta').textContent || '').split('·').join('·'); @@ -1637,13 +1661,23 @@ function renderMapScreen() { const desc = $('ms-cat-desc'); if (desc) desc.textContent = CAT_DESC[mapCategory] ? tr(CAT_DESC[mapCategory]) : ''; $('ms-count').textContent = `${tr('MAPA')} ${MAP_IDS.indexOf(currentMap) + 1} ${tr('DE')} ${MAP_IDS.length}`; + /* Estatística de partidas: só aparece quando o número EXISTE. Escrever "0 PARTIDAS" + num mapa que ninguém mediu é afirmar o que não se sabe — sem o contador, o crachá some. */ + const plays = $('ms-plays'); + if (plays) { + const n = playsDe(currentMap); + plays.hidden = !n; + plays.textContent = n ? `${n.toLocaleString('pt-BR')} ${tr(n === 1 ? 'PARTIDA' : 'PARTIDAS')}` : ''; + } const shown = visibleMapIds(); $('ms-strip').style.setProperty('--map-count', shown.length); $('ms-strip').innerHTML = shown.map((id) => ``).join(''); document.querySelectorAll('.ms-tab').forEach((tab) => { const on = tab.dataset.cat === mapCategory; @@ -1659,7 +1693,7 @@ function renderMapScreen() { }); requestAnimationFrame(() => $('ms-strip').querySelector('.ms-thumb.on')?.scrollIntoView({ block: 'nearest', inline: 'center' })); } -mapThumb.title = 'Ver mapa em tela cheia'; +mapThumb.title = tr('Ver mapa em tela cheia'); mapThumb.style.cursor = 'pointer'; mapThumb.onclick = () => { ui.click(); renderMapScreen(); show('map-screen'); }; $('ms-back').onclick = () => { ui.back(); show('main-menu'); }; diff --git a/public/style.css b/public/style.css index b49dd66e..0eeae85a 100644 --- a/public/style.css +++ b/public/style.css @@ -1814,83 +1814,134 @@ html[data-ui="legacy"] #splash-enter{font-family:var(--font)} } /* ============ MAP SCREEN ============ */ -#map-screen{padding:0;justify-content:flex-start;align-items:stretch;background:#08080a; - font-family:var(--aaa-font-body)} -.ms-bg{position:absolute;inset:0;overflow:hidden;border:0;background:#101014} -.ms-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block} +/* Redesign de 21/08, 3ª rodada: a tela é CABEÇALHO + ACERVO + RODAPÉ, em faixas. + O cabeçalho carrega tudo que não é lista (abas, ficha do mapa em foco, opções da + partida) e o corpo inteiro fica para a grade de mapas — que é o que a tela existe + para mostrar. O palco é o WALLPAPER do setup: a foto do mapa em foco já está no card + selecionado, e repetida em tela cheia ela brigava com a grade. */ +#map-screen{padding:0;gap:0;background:#08080a;font-family:var(--aaa-font-body); + display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr); + justify-content:stretch;align-items:stretch;justify-items:stretch} +/* O MESMO wallpaper do menu principal, pintado do MESMO jeito: borrão cobrindo a tela + por baixo e a arte inteira (`contain`) por cima, com a variante 3:2 na mesma faixa de + proporção. Copiar o número e não a regra era como as duas telas divergiam antes. */ +.ms-bg{position:absolute;inset:0;overflow:hidden;border:0;background:var(--bg-900);z-index:0;isolation:isolate} +.ms-bg::before,.ms-bg::after{content:"";position:absolute;pointer-events:none; + background-image:var(--wall);background-position:center;background-repeat:no-repeat} +.ms-bg::before{inset:-24px;z-index:0;background-size:cover;filter:blur(18px) brightness(.48) saturate(.72)} +.ms-bg::after{inset:0;z-index:1;background-size:contain} +@media (min-aspect-ratio:37/25) and (max-aspect-ratio:38/25){ + .ms-bg::before,.ms-bg::after{background-image:var(--wall-3x2,var(--wall))} + .ms-bg::after{background-size:cover} +} +.ms-bg img{display:none} /* o `src` serve à sonda de tela, não ao olho */ .ms-scrim{position:absolute;inset:0;pointer-events:none;z-index:1; - background:linear-gradient(90deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.7) 34%,transparent 62%),linear-gradient(0deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.5) 24%,transparent 44%),repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.05) 3px 4px)} -.ms-kicker{position:absolute;z-index:2;left:32px;top:24px; - font-family:var(--aaa-font-body);font-weight:600;font-size:12px;letter-spacing:4px; + background:linear-gradient(90deg,rgba(8,8,10,.9) 0%,rgba(8,8,10,.72) 46%,rgba(8,8,10,.66) 100%),linear-gradient(0deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.6) 30%,rgba(8,8,10,.88) 100%),repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.05) 3px 4px)} +/* ---- faixa 1: cabeçalho ---- */ +.ms-topbar{position:relative;z-index:2;padding:18px 40px 16px; + border-bottom:1px solid rgba(236,235,230,.1)} +.ms-kicker{font-family:var(--aaa-font-body);font-weight:600;font-size:12px;letter-spacing:4px; color:var(--br-faixa);text-transform:uppercase} -.ms-tabs{position:absolute;z-index:2;top:60px;left:32px;display:flex;gap:24px} -.ms-tab{padding:8px 2px;font:600 15px/1 var(--aaa-font-body);letter-spacing:3px;color:#5c5d63; +.ms-tabs{display:flex;gap:14px;flex-wrap:nowrap} +.ms-tab{padding:6px 2px;font:600 14px/1 var(--aaa-font-body);letter-spacing:3px;color:#5c5d63; background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer} .ms-tab:hover,.ms-tab:focus-visible{color:#ecebe6} .ms-tab.on{font-weight:700;color:#b4d92e;border-bottom-color:#b4d92e} -.ms-head{position:absolute;z-index:2;left:64px;top:130px;width:460px; - display:flex;flex-direction:column;align-items:flex-start;gap:14px;text-align:left} -.ms-tagrow{display:flex;align-items:center;justify-content:flex-start;gap:10px} +.ms-cat-desc{max-width:100%;margin:0;font:400 13px/1.5 var(--aaa-font-body);letter-spacing:.4px;color:#8a8b91} +.ms-author{padding:5px 12px;font:600 11px/1 var(--aaa-font-body);letter-spacing:2px;color:#5c5d63;background:rgba(16,16,20,.7);border:1px solid #2a2b31;border-radius:999px;cursor:pointer;text-transform:uppercase} +.ms-author:hover,.ms-author:focus-visible{color:#ecebe6} +.ms-author.on{color:#2e9ed8;border-color:#2e9ed8} +/* UMA linha, TRÊS colunas: navegação | ficha do mapa em foco | opções da partida. Era + uma pilha de quatro faixas empilhadas, que empurrava a grade para baixo da dobra. */ +.ms-head{display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr) auto; + align-items:start;gap:16px 36px} +.ms-nav{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:10px} +.ms-ficha{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:left} +.ms-tagrow{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap} .ms-cat{font-size:11px;font-weight:700;letter-spacing:3px;padding:3px 10px;border:1px solid} .ms-cat[data-cat="FAVELA"]{color:#e0762a;border-color:rgba(224,118,42,.5)} .ms-cat[data-cat="ARENA"]{color:#8b8c92;border-color:rgba(139,140,146,.5)} .ms-cat[data-cat="CIDADES"]{color:#8258d8;border-color:rgba(130,88,216,.5)}.ms-cat[data-cat="COMUNIDADE"]{color:#2e9ed8;border-color:rgba(46,158,216,.5)} .ms-cat[data-cat="AI"]{color:#d8c02e;border-color:rgba(216,192,46,.5)} -.ms-cat-desc{position:absolute;z-index:2;top:100px;left:32px;max-width:520px;margin:0;font:400 13px/1.5 var(--aaa-font-body);letter-spacing:.4px;color:#8a8b91;pointer-events:none} -.ms-author{padding:5px 12px;font:600 11px/1 var(--aaa-font-body);letter-spacing:2px;color:#5c5d63;background:rgba(16,16,20,.7);border:1px solid #2a2b31;border-radius:999px;cursor:pointer;text-transform:uppercase} -.ms-author:hover,.ms-author:focus-visible{color:#ecebe6} -.ms-author.on{color:#2e9ed8;border-color:#2e9ed8} -.ms-byline{margin:10px 0 0;font:400 13px/1 var(--aaa-font-body);letter-spacing:.6px;color:#8a8b91} +/* o crachá de partidas jogadas — só existe quando o contador respondeu */ +.ms-plays{font-family:var(--font);font-weight:700;font-size:11px;letter-spacing:2px;color:#b4d92e} +.ms-plays[hidden]{display:none} +.ms-byline{margin:0;font:400 12px/1.4 var(--aaa-font-body);letter-spacing:.6px;color:#8a8b91} .ms-byline strong{color:#b9babf;font-weight:600} .ms-badge-oficial{display:inline-block;margin-left:8px;padding:2px 8px;font:700 10px/1 var(--aaa-font-body);letter-spacing:2px;color:#b4d92e;border:1px solid rgba(180,217,46,.5);border-radius:3px;text-transform:uppercase} .ms-badge-comunidade{display:inline-block;margin-left:8px;padding:2px 8px;font:700 10px/1 var(--aaa-font-body);letter-spacing:2px;color:#2e9ed8;border:1px solid rgba(46,158,216,.5);border-radius:3px;text-transform:uppercase} -.ms-count{font-family:var(--font);font-weight:600;font-size:12px;letter-spacing:2px;color:#5c5d63} -.ms-name{font-family:var(--aaa-font-display);font-weight:400;font-size:72px; - line-height:.9;letter-spacing:1px;text-transform:uppercase;color:var(--ink-100); - text-shadow:3px 3px 0 rgba(0,0,0,.5)} -.ms-meta{font-family:var(--font);font-weight:700;font-size:15px;letter-spacing:2px;color:var(--ink-100)} -.ms-meta .ms-sep{color:var(--br-faixa);margin:0 10px} -.ms-desc{font-size:16px;font-weight:400;color:#b9b9be;max-width:380px;line-height:1.5;text-shadow:var(--sh-hud)} -.ms-match-options{display:flex;align-items:flex-end;gap:10px;margin-top:2px;padding:10px 12px; - background:rgba(10,10,12,.66);border-left:2px solid var(--br-faixa);backdrop-filter:blur(8px)} -.ms-match-options label{display:flex;flex-direction:column;gap:5px;min-width:112px; +.ms-count{font-family:var(--font);font-weight:600;font-size:11px;letter-spacing:2px;color:#5c5d63} +.ms-name{margin:0;font-family:var(--aaa-font-display);font-weight:400;font-size:40px; + line-height:1;letter-spacing:1px;text-transform:uppercase;color:var(--ink-100); + text-shadow:2px 2px 0 rgba(0,0,0,.5)} +.ms-meta{margin:0;font-family:var(--font);font-weight:700;font-size:12px;letter-spacing:2.4px;color:var(--ink-100)} +.ms-meta .ms-sep{color:var(--br-faixa);margin:0 8px} +.ms-desc{margin:0;font-size:13px;font-weight:400;color:#b9b9be;max-width:62ch;line-height:1.7} +.ms-match-options{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:0;padding:11px 13px; + background:rgba(16,16,20,.8);border-left:2px solid var(--br-faixa)} +.ms-match-options label{display:flex;flex-direction:column;gap:6px;min-width:112px; font:700 10px/1 var(--aaa-font-body);letter-spacing:2px;color:#8b8c92;text-transform:uppercase} .ms-match-options select{height:32px;padding:0 28px 0 9px;border:1px solid rgba(236,235,230,.2);border-radius:0; background:#111216;color:#ecebe6;font:700 12px/1 var(--aaa-font-body);letter-spacing:1px;cursor:pointer} .ms-match-options select:focus{outline:1px solid var(--br-faixa);border-color:var(--br-faixa)} -.ms-carousel{position:absolute;z-index:2;left:64px;right:64px;bottom:96px;height:124px; - display:flex;align-items:center;gap:14px} -.ms-arrow{width:34px;height:124px;flex:0 0 34px;display:flex;align-items:center;justify-content:center; - background:rgba(13,14,17,.7);border:1px solid #26272d;color:#9a9ba1;font-size:16px;cursor:pointer} -.ms-arrow:hover,.ms-arrow:focus-visible{border-color:#b4d92e;color:#ecebe6} -.ms-viewport{flex:1;min-width:0;overflow:hidden} -.ms-strip{--map-count:1;display:grid;grid-template-columns:repeat(var(--map-count),minmax(0,196px));justify-content:center;gap:12px;width:100%;overflow:visible;scroll-behavior:smooth} +/* ---- faixa 2: o acervo, dono do corpo ---- */ +.ms-body{position:relative;z-index:2;min-height:0;display:grid;padding:18px 40px 10px} +.ms-carousel{min-height:0;display:flex;flex-direction:column;gap:8px} +.ms-arrow{flex:0 0 auto;width:100%;max-width:1180px;margin:0 auto;height:24px;display:flex;align-items:center;justify-content:center; + background:rgba(13,14,17,.7);border:1px solid #26272d;color:#9a9ba1;font-size:11px;line-height:1;cursor:pointer} +.ms-arrow:hover,.ms-arrow:focus-visible{border-color:#b4d92e;color:#ecebe6;background:rgba(13,14,17,.9)} +.ms-viewport{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#33343b transparent} +.ms-viewport::-webkit-scrollbar{width:6px} +.ms-viewport::-webkit-scrollbar-thumb{background:#33343b} +/* a grade cresce com a tela: `auto-fill` decide o número de colunas pela largura real. + O TETO DE 3 sai da conta entre o mínimo do card e o max-width da faixa: 3×360+2×14 cabe + em 1180, 4×360+3×14 não. Mexer num dos dois números sem o outro solta uma 4ª coluna. */ +.ms-strip{--map-count:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));justify-content:stretch;gap:14px;width:100%;max-width:1180px;margin:0 auto;scroll-behavior:smooth} .ms-thumb{position:relative;width:100%;min-width:0;padding:0;display:flex;flex-direction:column;cursor:pointer; - background:#101014;border:1px solid rgba(236,235,230,.12);opacity:.75; + background:rgba(16,16,20,.86);border:1px solid rgba(236,235,230,.12);opacity:.8; font-family:var(--aaa-font-body);text-align:left;text-transform:uppercase; - transition:border-color var(--t) var(--ease),filter var(--t) var(--ease)} -.ms-thumb:hover,.ms-thumb:focus-visible{filter:brightness(1.15)} + transition:border-color var(--t) var(--ease),filter var(--t) var(--ease),opacity var(--t) var(--ease)} +.ms-thumb:hover,.ms-thumb:focus-visible{filter:brightness(1.15);opacity:1} .ms-thumb.on{border:2px solid #b4d92e;opacity:1;box-shadow:0 0 26px rgba(180,217,46,.3)} -.ms-thumb-img{display:block;width:100%;height:96px;object-fit:cover} -.ms-thumb-copy{display:flex;flex-direction:column;gap:1px;padding:6px 10px 8px;background:rgba(10,10,12,.85)} +.ms-thumb-img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover} +.ms-thumb-copy{display:flex;flex-direction:column;gap:3px;padding:8px 11px 10px;background:rgba(10,10,12,.85)} .ms-thumb-name{font-weight:700;font-size:12px;letter-spacing:2px;color:#c9c9cc; white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .ms-thumb.on .ms-thumb-name{color:#b4d92e} +.ms-thumb-sub{display:flex;align-items:center;justify-content:space-between;gap:10px} .ms-thumb-cat{font-weight:600;font-size:9px;letter-spacing:2px} .ms-thumb-cat[data-cat="FAVELA"]{color:#e0762a} .ms-thumb-cat[data-cat="ARENA"]{color:#8b8c92} .ms-thumb-cat[data-cat="CIDADES"]{color:#8258d8} +/* partidas jogadas no card: número seco, sem rótulo — a coluna inteira é a mesma unidade */ +.ms-thumb-plays{font-family:var(--font);font-weight:700;font-size:10px;letter-spacing:1.5px;color:#7d8a52} +.ms-thumb.on .ms-thumb-plays{color:#b4d92e} .ms-diamond{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--br-faixa);transform:rotate(45deg)} -.ms-dashes{position:absolute;z-index:2;left:0;right:0;bottom:74px;display:flex;justify-content:center;gap:6px} +.ms-dashes{flex:0 0 auto;display:flex;justify-content:center;gap:6px} .ms-dashes i{width:18px;height:3px;background:#33343b}.ms-dashes i.on{background:#b4d92e} -.ms-actions{position:absolute;right:64px;bottom:24px;z-index:2} -#map-screen .ms-actions .btn-big{transform:skewX(-8deg);background:linear-gradient(180deg,#cfe84a,#b4d92e);padding:14px 52px;border:0} -#map-screen .ms-actions .btn-big>*{display:block;transform:skewX(8deg);font:400 23px/1 var(--aaa-font-display);letter-spacing:3px;color:#131313;padding:0} -@media(max-height:620px){ - .ms-head{top:112px;gap:7px} - .ms-name{font-size:54px} +/* ---- faixa 3: rodapé, VOLTAR num canto e CONTINUAR no outro ---- */ +.ms-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between; + gap:18px;padding:14px 40px 22px} +.ms-actions{position:static} +#map-screen .ms-actions .btn-big{transform:skewX(-8deg);background:linear-gradient(180deg,#cfe84a,#b4d92e);padding:12px 40px;border:0} +#map-screen .ms-actions .btn-big>*{display:block;transform:skewX(8deg);font:400 20px/1 var(--aaa-font-display);letter-spacing:3px;color:#131313;padding:0} +@media(max-height:780px){ + .ms-topbar{padding:14px 32px 12px;gap:8px} + .ms-body{padding:12px 32px 8px} + .ms-name{font-size:30px} .ms-desc{display:none} - .ms-match-options{padding:7px 9px}.ms-match-options select{height:28px} + .ms-match-options{padding:9px 11px}.ms-match-options select{height:28px} + .ms-foot{padding:10px 32px 14px} +} +@media(max-width:1120px){ + /* a linha de três só sobrevive enquanto as três colunas couberem: abaixo disso as + opções descem para uma segunda linha, e a navegação segue colada na ficha. */ + .ms-head{grid-template-columns:minmax(280px,320px) minmax(0,1fr)} + #ms-match-options{grid-column:1 / -1} +} +@media(max-width:820px){ + .ms-head{grid-template-columns:minmax(0,1fr)} + .ms-strip{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px} } /* ============ CHAR ATTRS (ficha do personagem — mockup tela 03) ============ */ @@ -1949,8 +2000,8 @@ html[data-ui="legacy"] #splash-enter{font-family:var(--font)} .ms-top-player{display:flex;align-items:center;gap:10px;font-family:var(--font);font-weight:700; font-size:var(--fs-200);letter-spacing:var(--tr-2);color:var(--ink-100);text-transform:uppercase} .ms-top-player .pp-avatar{width:34px;height:34px;font-size:12px} -#map-screen .btn-back{top:auto;left:64px;bottom:28px;padding:10px 20px; - font:600 14px/1 var(--aaa-font-body);letter-spacing:2px;color:#c9c9cc; +#map-screen .btn-back{position:static;top:auto;left:auto;bottom:auto;padding:10px 20px; + font:600 13px/1 var(--aaa-font-body);letter-spacing:2px;color:#c9c9cc; background:rgba(10,10,12,.55);border:1px solid rgba(236,235,230,.18)} /* Brasão da facção no TOPO do card (pedido do dono, 06/08) + setas do seletor de mapa @@ -1965,7 +2016,8 @@ html[data-ui="legacy"] #splash-enter{font-family:var(--font)} text-align:center;gap:2px;padding:0 10px} .team-card .team-name{display:block;text-align:center} .team-card .team-slogan{display:block;text-align:center;max-width:26ch} -.ms-arrow{width:52px;height:72px;font-size:34px;line-height:72px;background:rgba(var(--bg-900-rgb),.85); +/* setas do acervo: alvo largo no topo e no pé da coluna vertical (21/08) */ +.ms-arrow{width:100%;height:26px;font-size:12px;line-height:1;background:rgba(var(--bg-900-rgb),.85); border:1px solid var(--line-2);color:var(--am)} .ms-arrow:hover{background:var(--am);color:#141216} /* rodapé do menu: online + links de dev (substitui a frase de sátira) */ @@ -2240,9 +2292,11 @@ html[data-ui="legacy"] #splash-enter{font-family:var(--font)} .weapon-amount{display:none} /* ---------- AJUSTES DO CRÍTICO (14/08) ---------- */ -/* O cabeçalho do mapa segue a caixa de 460px da referência 04. */ -.ms-head{width:460px} -.ms-name{font-size:72px} +/* A ficha do mapa mora no CABEÇALHO desde 21/08 e ocupa a faixa inteira: largura vem do + flex, não de uma caixa fixa de 460px, e o nome encolheu porque divide a linha com as + opções da partida. */ +.ms-head{width:auto;max-width:none} +.ms-name{font-size:40px} /* #3 — valor numérico ao lado da barra de atributo */ .attr{grid-template-columns:92px 1fr auto} .attr b{font-family:var(--font);font-weight:700;font-size:var(--fs-100);color:var(--ink-100);text-align:right} diff --git a/src/pages/api/map-plays.ts b/src/pages/api/map-plays.ts new file mode 100644 index 00000000..238e611a --- /dev/null +++ b/src/pages/api/map-plays.ts @@ -0,0 +1,45 @@ +// GET /api/map-plays - soma por mapa do contador que o /api/pick alimenta (picks_daily, +// kind='mapa'). Colunas em PORTUGUÊS e RLS fechada: só service_role alcança. +import type { APIRoute } from 'astro'; +import { supabaseAdmin } from '../../lib/supabase'; +import { rateLimit } from '../../lib/ratelimit'; + +export const prerender = false; + +const JANELA_DIAS = 365; // "total" na prática: a tabela nasceu em 06/08/2026 + +const resposta = (body: unknown, status = 200) => + new Response(JSON.stringify(body), { + status, + headers: { + 'content-type': 'application/json', + // o número muda devagar e a tela abre muito: quase todo o tráfego morre na borda + 'cache-control': 'public, max-age=0, s-maxage=300, stale-while-revalidate=900', + }, + }); + +export const GET: APIRoute = async ({ request }) => { + // a tela de mapas ordena por este número: falha aqui NUNCA pode derrubar a escolha + if (!supabaseAdmin) return resposta({ plays: {} }); + + const ip = request.headers.get('x-forwarded-for')?.split(',')[0].trim() || 'unknown'; + if (!(await rateLimit(supabaseAdmin, 'map-plays', ip, 60, 60))) return resposta({ plays: {} }, 429); + + const desde = new Date(Date.now() - JANELA_DIAS * 864e5).toISOString().slice(0, 10); + const { data, error } = await supabaseAdmin + .from('picks_daily') + .select('key, n') + .eq('kind', 'mapa') + .gte('dia', desde); + if (error) { + console.error('[api/map-plays]', { error: error.message }); + return resposta({ plays: {} }); + } + + const plays: Record = {}; + for (const linha of (data ?? []) as Array<{ key: string; n: number }>) { + if (typeof linha?.key !== 'string') continue; + plays[linha.key] = (plays[linha.key] || 0) + (Number(linha.n) || 0); + } + return resposta({ plays }); +}; diff --git a/src/pages/index.astro b/src/pages/index.astro index 4259ee5f..0ee01ece 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -795,52 +795,72 @@ window.__GEO_LANG__ = (function () {