Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
9c1678b
Adicionado o mapa Treta no Vietnan
usantos Aug 19, 2026
898a140
Merge upstream/main em Treta no Vietnã
usantos Aug 19, 2026
ca86bb4
Atualiza Treta no Vietnã para alpha.159
usantos Aug 19, 2026
3d3e75b
Merge da main em map/treta-no-vietnan (resolve conflitos)
rubenmarcus Aug 21, 2026
94c4bc9
Merge da main (alpha.173) em 375: conflito só de arquivo gerado
rubenmarcus Aug 22, 2026
4c64a1d
Merge da main (alpha.175) em map/treta-no-vietnan
rubenmarcus Aug 22, 2026
330b996
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
8048a60
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
87f4af6
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
06c4b98
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
2a83a5e
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
3b5e635
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
76fe2cf
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
c61818c
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
eb94e5e
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
e486fad
Merge branch 'main' of https://github.com/corosolto/client into map/t…
csbrasil-BOT Aug 22, 2026
2fb1719
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
bdf3065
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
97583de
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
0ade419
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
a697489
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
cdc045b
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
f54376e
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
b2653b0
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
d052a20
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
4c078d8
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
3c552e0
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
41f01d0
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
b5e58ef
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
9f7ca17
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
1492f73
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
702963f
Merge da base (autofix)
csbrasil-BOT Aug 23, 2026
7caa462
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 23, 2026
4beb947
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 23, 2026
019a156
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 24, 2026
018b2af
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ARCH.generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ Números atuais das zonas, do quality gate e do `package.json`:

| Zona | O que é | Tamanho medido | Regra |
|---|---|---|---|
| `public/` | o **jogo** | 44 arquivos `.js`, 32.001 linhas · Three.js `r160` vendorizado | ES modules servidos crus, **zero build**, sem dependência de runtime |
| `public/` | o **jogo** | 45 arquivos `.js`, 32.554 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** | 201 scripts em `tools/eval/`, 55 em `tools/` | node puro: sobe o jogo real sem browser |
| `tools/` | o **arnês** | 202 scripts em `tools/eval/`, 55 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.

Expand Down
15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,17 @@ contra bots, direto na aba. Sem download, sem instalação, sem cadastro.

| O que | Quanto | Onde confere |
|---|---:|---|
| Código do jogo | 32.001 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| Código do jogo | 32.554 linhas em 45 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| `game.js` | **6.910** linhas | `wc -l public/js/game.js` |
| `main.js` | 2.698 linhas | `wc -l public/js/main.js` |
| `main.js` | 2.702 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` |
| Clipes de animação versionados | 573 | `git ls-files public/models/anims \| wc -l` |
| Personagens jogáveis | 44, em 5 facções | array `CHARACTERS` de `characters.js` |
| Mapas no registro | 12 | objeto `MAPS` de `maps.js` |
| Mapas no registro | 13 | objeto `MAPS` de `maps.js` |
| Arnêses visuais em HTML | 15 | `git ls-files 'public/*.html' \| wc -l` |
| Scripts do arnês | 201 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts do arnês | 202 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts de pipeline | 55 | `git ls-files 'tools/*.mjs' \| wc -l` |
| Tarefas de entrada escritas | 26 | `git ls-files 'docs/issues/[0-9]*.md' \| wc -l` |
| Versão | `2.0.0-alpha.184` | `public/js/version.js` e `package.json` (batem) |
Expand Down Expand Up @@ -89,7 +89,7 @@ arquitetura): `cd docs && npm install && npm start` → <http://localhost:3000/d
| Camada | Ferramenta | Versão |
|---|---|---|
| Motor 3D (WebGL) | **Three.js**, vendorizado | `r160` |
| Jogo | ES modules vanilla, **zero build** | 44 arquivos |
| Jogo | ES modules vanilla, **zero build** | 45 arquivos |
| Site | **Astro** com SSR | `^7.1.1` |
| Hospedagem | adapter **Vercel** | `^11.0.6` |
| Banco | **Postgres gerenciado** (RLS; schema privado, fora do repo) | `^2.110.7` |
Expand Down Expand Up @@ -279,7 +279,7 @@ projeto.
| Regra | Valor | Constante |
|---|---|---|
| Facções · personagens | 5 · 44 (B 9 · C 9 · E 8 · F 9 · U 9) | `CHARACTERS` |
| Mapas no menu | 122 abrem em rodadas, **10 em captura** | `MAPS` / `ctfMode` |
| Mapas no menu | 133 abrem em rodadas, **10 em captura** | `MAPS` / `ctfMode` |
| Respawn | 2,2 s | `RESPAWN_DELAY` |
| Round | 99 s, 3 vitórias | `ROUND_TIME` / `ROUNDS_TO_WIN` |
| Captura | alvo = **todas as bandeiras do mapa**, 2 rodadas (rede de segurança 480 s) | `capsToWin = ctfPts.length` / `CTF_ROUNDS_TO_WIN` |
Expand Down Expand Up @@ -318,8 +318,9 @@ Os mapas registrados, e em que modo cada um abre:
| `parque_treta` | Parque da Treta | **captura** | `map_parque.js` | 402 |
| `velho_oeste` | Velho Oeste da Treta | **captura** | `map_velho_oeste.js` | 433 |
| `penitenciaria` | Penitenciária da Treta | **captura** | `map_penitenciaria.js` | 247 |
| `treta_vietnan` | Treta no Vietnã | rodadas | `map_treta_vietnan.js` | 547 |

**12 mapas registrados** — 2 abrem em rodadas e 10 em captura. `ctfMode` **abre** o mapa em captura, não prende: o jogador troca no menu (é a `MOD1`). Há 14 arquivos `map_*.js` em `public/js/` — arquivo no disco **não** implica mapa jogável.
**13 mapas registrados** — 3 abrem em rodadas e 10 em captura. `ctfMode` **abre** o mapa em captura, não prende: o jogador troca no menu (é a `MOD1`). Há 15 arquivos `map_*.js` em `public/js/` — arquivo no disco **não** implica mapa jogável.

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `objeto MAPS de public/js/maps.js`

Expand Down
6 changes: 3 additions & 3 deletions STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<!-- BEGIN:GERADO:status_atual — não edite à mão, rode `npm run docs` -->

- **Versão:** `2.0.0-alpha.184`
- **Conteúdo jogável:** 5 facções, 44 personagens, 12 mapas e 26 armas com GLB
- **Código do jogo:** 32.001 linhas em 44 módulos JavaScript
- **Automação:** 124 comandos npm, 201 scripts de avaliação e 55 scripts de pipeline
- **Conteúdo jogável:** 5 facções, 44 personagens, 13 mapas e 26 armas com GLB
- **Código do jogo:** 32.554 linhas em 45 módulos JavaScript
- **Automação:** 124 comandos npm, 202 scripts de avaliação e 55 scripts de pipeline

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `package.json · CHARACTERS · MAPS · public/models/weapons · public/js · tools/`

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/arquitetura.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,14 @@ Tamanho dos arquivos que o `gen-arch.mjs` indexa — bloco gerado, regenerado po
| Arquivo | Linhas |
|---|---:|
| `public/js/game.js` | 6.910 |
| `public/js/main.js` | 2.698 |
| `public/js/main.js` | 2.702 |
| `public/js/characters.js` | 1.068 |
| `public/js/glbchars.js` | 844 |
| `public/js/vmattach.js` | 628 |
| `public/js/weapons.js` | 346 |
| `public/js/springs.js` | 260 |

Total de `public/js/`: **32.001 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/`: **32.554 linhas em 45 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``

Expand Down
5 changes: 3 additions & 2 deletions docs/docs/colaborar.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ O número abaixo não é retórica, e não é escrito à mão: sai de `git short

{/* BEGIN:GERADO:pessoas — não edite à mão, rode `npm run docs` */}

**11 identidades de autoria humana** assinam commit no histórico **desta branch**: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `daeeseD`, `matheusgb`, `Maná Soares`, `daltonfontes`. O resto dos commits é assinado por agentes de IA. Branch não é repositório: quem contribuiu num ramo que esta branch não contém **não aparece aqui**.
**12 identidades de autoria humana** assinam commit no histórico **desta branch**: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `daeeseD`, `matheusgb`, `Maná Soares`, `daltonfontes`, `usantos`. O resto dos commits é assinado por agentes de IA. Branch não é repositório: quem contribuiu num ramo que esta branch não contém **não aparece aqui**.

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `git shortlog -sn --no-merges (descontando autores que são agentes)`

Expand Down Expand Up @@ -260,8 +260,9 @@ O registro, gerado do `MAPS` de `public/js/maps.js`:
| `parque_treta` | Parque da Treta | **captura** | `map_parque.js` | 402 |
| `velho_oeste` | Velho Oeste da Treta | **captura** | `map_velho_oeste.js` | 433 |
| `penitenciaria` | Penitenciária da Treta | **captura** | `map_penitenciaria.js` | 247 |
| `treta_vietnan` | Treta no Vietnã | rodadas | `map_treta_vietnan.js` | 547 |

**12 mapas registrados** — 2 abrem em rodadas e 10 em captura. `ctfMode` **abre** o mapa em captura, não prende: o jogador troca no menu (é a `MOD1`). Há 14 arquivos `map_*.js` em `public/js/` — arquivo no disco **não** implica mapa jogável.
**13 mapas registrados** — 3 abrem em rodadas e 10 em captura. `ctfMode` **abre** o mapa em captura, não prende: o jogador troca no menu (é a `MOD1`). Há 15 arquivos `map_*.js` em `public/js/` — arquivo no disco **não** implica mapa jogável.

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `objeto MAPS de public/js/maps.js`

Expand Down
13 changes: 7 additions & 6 deletions docs/docs/comecando.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,17 @@ esta página envelhecia no primeiro commit — ver

| O que | Quanto | Onde confere |
|---|---:|---|
| Código do jogo | 32.001 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| Código do jogo | 32.554 linhas em 45 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| `game.js` | **6.910** linhas | `wc -l public/js/game.js` |
| `main.js` | 2.698 linhas | `wc -l public/js/main.js` |
| `main.js` | 2.702 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` |
| Clipes de animação versionados | 573 | `git ls-files public/models/anims \| wc -l` |
| Personagens jogáveis | 44, em 5 facções | array `CHARACTERS` de `characters.js` |
| Mapas no registro | 12 | objeto `MAPS` de `maps.js` |
| Mapas no registro | 13 | objeto `MAPS` de `maps.js` |
| Arnêses visuais em HTML | 15 | `git ls-files 'public/*.html' \| wc -l` |
| Scripts do arnês | 201 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts do arnês | 202 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts de pipeline | 55 | `git ls-files 'tools/*.mjs' \| wc -l` |
| Tarefas de entrada escritas | 26 | `git ls-files 'docs/issues/[0-9]*.md' \| wc -l` |
| Versão | `2.0.0-alpha.184` | `public/js/version.js` e `package.json` (batem) |
Expand All @@ -66,7 +66,7 @@ E as regras de partida que mais mudam de lugar, todas lidas das constantes de
| Regra | Valor | Constante |
|---|---|---|
| Facções · personagens | 5 · 44 (B 9 · C 9 · E 8 · F 9 · U 9) | `CHARACTERS` |
| Mapas no menu | 122 abrem em rodadas, **10 em captura** | `MAPS` / `ctfMode` |
| Mapas no menu | 133 abrem em rodadas, **10 em captura** | `MAPS` / `ctfMode` |
| Respawn | 2,2 s | `RESPAWN_DELAY` |
| Round | 99 s, 3 vitórias | `ROUND_TIME` / `ROUNDS_TO_WIN` |
| Captura | alvo = **todas as bandeiras do mapa**, 2 rodadas (rede de segurança 480 s) | `capsToWin = ctfPts.length` / `CTF_ROUNDS_TO_WIN` |
Expand Down Expand Up @@ -233,8 +233,9 @@ Os mapas registrados hoje, e em que modo cada um abre:
| `parque_treta` | Parque da Treta | **captura** | `map_parque.js` | 402 |
| `velho_oeste` | Velho Oeste da Treta | **captura** | `map_velho_oeste.js` | 433 |
| `penitenciaria` | Penitenciária da Treta | **captura** | `map_penitenciaria.js` | 247 |
| `treta_vietnan` | Treta no Vietnã | rodadas | `map_treta_vietnan.js` | 547 |

**12 mapas registrados** — 2 abrem em rodadas e 10 em captura. `ctfMode` **abre** o mapa em captura, não prende: o jogador troca no menu (é a `MOD1`). Há 14 arquivos `map_*.js` em `public/js/` — arquivo no disco **não** implica mapa jogável.
**13 mapas registrados** — 3 abrem em rodadas e 10 em captura. `ctfMode` **abre** o mapa em captura, não prende: o jogador troca no menu (é a `MOD1`). Há 15 arquivos `map_*.js` em `public/js/` — arquivo no disco **não** implica mapa jogável.

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `objeto MAPS de public/js/maps.js`

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/quality-gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ PR (`.github/workflows/ci.yml`).
{/* BEGIN:GERADO:invariantes — não edite à mão, rode `npm run docs` */}

- `tools/eval/invariants.mjs`: **2.275 linhas**, **65 identificadores de invariante declarados** (`put()`), dos quais **28** têm caminho de `skip()` declarado.
- O arnês inteiro são **201 scripts** em `tools/eval/` (`.mjs` + `.py`), mais **55 scripts** de pipeline em `tools/`.
- O arnês inteiro são **202 scripts** em `tools/eval/` (`.mjs` + `.py`), mais **55 scripts** de pipeline em `tools/`.
- Quantas invariantes rodam como **críticas** numa execução **não é derivável do fonte**: depende de qual insumo existe na máquina (o JSON do auditor de viewmodel, um GLB, uma pasta de anims). Esse número só sai rodando o quality gate — e o lugar dele é o cabeçalho do `KNOWN-BUGS.md`, atualizado com saída real.

Reproduza:
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ a partir do `package.json`, do `docs/package.json` e do próprio Three.js vendor
| Camada | Ferramenta | Versão |
|---|---|---|
| Motor 3D (WebGL) | **Three.js**, vendorizado | `r160` |
| Jogo | ES modules vanilla, **zero build** | 44 arquivos |
| Jogo | ES modules vanilla, **zero build** | 45 arquivos |
| Site | **Astro** com SSR | `^7.1.1` |
| Hospedagem | adapter **Vercel** | `^11.0.6` |
| Banco | **Postgres gerenciado** (RLS; schema privado, fora do repo) | `^2.110.7` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,14 @@ Size of the files `gen-arch.mjs` indexes — a generated block, regenerated by
| File | Lines |
|---|---:|
| `public/js/game.js` | 6,910 |
| `public/js/main.js` | 2,698 |
| `public/js/main.js` | 2,702 |
| `public/js/characters.js` | 1,068 |
| `public/js/glbchars.js` | 844 |
| `public/js/vmattach.js` | 628 |
| `public/js/weapons.js` | 346 |
| `public/js/springs.js` | 260 |

Total in `public/js/`: **32,001 lines in 44 files**. The symbol-to-line index lives in `tools/eval/ARCH.md`.
Total in `public/js/`: **32,554 lines in 45 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``

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The number below is not rhetoric, and it is not hand-written: it comes from `git

{/* BEGIN:GERADO:pessoas — não edite à mão, rode `npm run docs` */}

**11 human author identities** sign commits in this branch: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `daeeseD`, `matheusgb`, `Maná Soares`, `daltonfontes`. Automated identities are excluded. A Git author name is not necessarily one unique person.
**12 human author identities** sign commits in this branch: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `daeeseD`, `matheusgb`, `Maná Soares`, `daltonfontes`, `usantos`. Automated identities are excluded. A Git author name is not necessarily one unique person.

> Block generated by `node tools/gen-docs.mjs`. Source: `git shortlog -sn --no-merges (descontando autores que são agentes)`

Expand Down Expand Up @@ -263,8 +263,9 @@ The registry, generated from the `MAPS` of `public/js/maps.js`:
| `parque_treta` | Parque da Treta | **capture** | `map_parque.js` | 402 |
| `velho_oeste` | Velho Oeste da Treta | **capture** | `map_velho_oeste.js` | 433 |
| `penitenciaria` | Penitenciária da Treta | **capture** | `map_penitenciaria.js` | 247 |
| `treta_vietnan` | Treta no Vietnã | rounds | `map_treta_vietnan.js` | 547 |

**12 registered maps** - 2 open in rounds and 10 in capture. `ctfMode` sets the initial mode; it does not lock it. There are 14 `map_*.js` files on disk, so a file alone does **not** make a map playable.
**13 registered maps** - 3 open in rounds and 10 in capture. `ctfMode` sets the initial mode; it does not lock it. There are 15 `map_*.js` files on disk, so a file alone does **not** make a map playable.

> Block generated by `node tools/gen-docs.mjs`. Source: `objeto MAPS de public/js/maps.js`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ this page was aging at the very first commit — see

| What | How much | Where to check |
|---|---:|---|
| Game code | 32,001 lines in 44 files | `git ls-files public/js/*.js \| xargs wc -l` |
| Game code | 32,554 lines in 45 files | `git ls-files public/js/*.js \| xargs wc -l` |
| `game.js` | **6,910** lines | `wc -l public/js/game.js` |
| `main.js` | 2,698 lines | `wc -l public/js/main.js` |
| `main.js` | 2,702 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` |
| Versioned animation clips | 573 | `git ls-files public/models/anims \| wc -l` |
| Playable characters | 44, in 5 factions | `CHARACTERS` array in `characters.js` |
| Maps in the registry | 12 | `MAPS` object in `maps.js` |
| Maps in the registry | 13 | `MAPS` object in `maps.js` |
| Visual harnesses in HTML | 15 | `git ls-files 'public/*.html' \| wc -l` |
| Harness scripts | 201 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Harness scripts | 202 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Pipeline scripts | 55 | `git ls-files 'tools/*.mjs' \| wc -l` |
| Written entry tasks | 26 | `git ls-files 'docs/issues/[0-9]*.md' \| wc -l` |
| Version | `2.0.0-alpha.184` | `public/js/version.js` and `package.json` (match) |
Expand All @@ -68,7 +68,7 @@ And the match rules that move around the most, all read from the constants in
| Rule | Value | Constant |
|---|---|---|
| Factions · characters | 5 · 44 (B 9 · C 9 · E 8 · F 9 · U 9) | `CHARACTERS` |
| Maps in the menu | 12 - 2 open in rounds, **10 in capture** | `MAPS` / `ctfMode` |
| Maps in the menu | 13 - 3 open in rounds, **10 in capture** | `MAPS` / `ctfMode` |
| Respawn | 2.2 s | `RESPAWN_DELAY` |
| Round | 99 s, 3 wins | `ROUND_TIME` / `ROUNDS_TO_WIN` |
| Capture | target = **all flags on the map**, 2 rounds (480 s safety net) | `capsToWin = ctfPts.length` / `CTF_ROUNDS_TO_WIN` |
Expand Down Expand Up @@ -235,8 +235,9 @@ The maps registered today, and which mode each one opens in:
| `parque_treta` | Parque da Treta | **capture** | `map_parque.js` | 402 |
| `velho_oeste` | Velho Oeste da Treta | **capture** | `map_velho_oeste.js` | 433 |
| `penitenciaria` | Penitenciária da Treta | **capture** | `map_penitenciaria.js` | 247 |
| `treta_vietnan` | Treta no Vietnã | rounds | `map_treta_vietnan.js` | 547 |

**12 registered maps** - 2 open in rounds and 10 in capture. `ctfMode` sets the initial mode; it does not lock it. There are 14 `map_*.js` files on disk, so a file alone does **not** make a map playable.
**13 registered maps** - 3 open in rounds and 10 in capture. `ctfMode` sets the initial mode; it does not lock it. There are 15 `map_*.js` files on disk, so a file alone does **not** make a map playable.

> Block generated by `node tools/gen-docs.mjs`. Source: `objeto MAPS de public/js/maps.js`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ PR (`.github/workflows/ci.yml`).
{/* BEGIN:GERADO:invariantes — não edite à mão, rode `npm run docs` */}

- `tools/eval/invariants.mjs`: **2,275 lines**, **65 declared invariant identifiers**, with **28** declared `skip()` paths.
- The harness contains **201 scripts** in `tools/eval/`, plus **55 pipeline scripts** in `tools/`.
- The harness contains **202 scripts** in `tools/eval/`, plus **55 pipeline scripts** in `tools/`.
- The number of critical checks in one run depends on the inputs present on that machine; dated results belong in `KNOWN-BUGS.md`.

```bash
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ from `package.json`, `docs/package.json` and the vendored Three.js itself.
| Layer | Tool | Version |
|---|---|---|
| 3D engine (WebGL) | **Three.js**, vendored | `r160` |
| Game | vanilla ES modules, **zero build** | 44 files |
| Game | vanilla ES modules, **zero build** | 45 files |
| Site | **Astro** with SSR | `^7.1.1` |
| Hosting | **Vercel** adapter | `^11.0.6` |
| Database | **managed Postgres** (RLS; private schema) | `^2.110.7` |
Expand Down
Binary file added public/img/map-previews/treta_vietnan.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading