feat: fumaça do cano + tranco e cápsulas mais fortes no tiro - #405
feat: fumaça do cano + tranco e cápsulas mais fortes no tiro#405EmersonGarrido wants to merge 32 commits into
Conversation
Aproveita a ideia de um FPS de referência (fumaça, cápsulas voando, tranco por tiro) reusando a infra que já existe — sem lib nova, zero alocação por tiro: - fumaça do cano por tiro em _flash(): GPUParticles via _tintFx (compartilha uTime/uScale do puff; em quality:low degrada pro puff branco, sem draw call novo). Menor/mais perto na 1a pessoa pra não virar blob na lente (padrão R7.6). - tranco de tela mais perceptível: _shotRecoil sobe o teto/ganho de st.sh (0.013/0.16 -> 0.020/0.22) e _updatePlayer aplica um roll leve no eixo Z reusando o mesmo st.sh decadente (freq 61 vs 78 do pitch) => "tremida", não só punch vertical. Vale pra mouse e toque; respeita ?gunfeel=0 e ADS. - cápsulas mais visíveis: geo maior (0.016x0.05, 8 seg), brass com metalness 1.0 + emissive leve, arco um pouco maior e ttl 1.6s -> 2.2s. - _fxTune ganha campo smoke pra tunar/desligar a fumaça via dev tooling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Emerson Garrido <emersongarrido.dev@gmail.com> Agent: Claude Code
|
@EmersonGarrido is attempting to deploy a commit to the rubenmarcus' projects Team on Vercel. A member of the Team first needs to authorize it. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
csbrasil-bot classificationNote @EmersonGarrido abriu 9 arquivo(s) · +369 −23, base main. O que mudou
Labels
|
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- jogo (1):
game.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
pente fino passado: nenhum achado que eu defenda em voz alta
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
main_js["main.js"] --> game_js["game.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — de plantão: vi, registrei, hora no relógio 🕵️ |
…ado) Investigação com régua no navegador REAL (Edge headed) provou: o caminho de tiro executa sem exceção e RENDERIZA (cápsulas ejetam, muzzle flash dispara, fumaça aparece como nuvem) — não era bug de código nem de cache (URL versionada ?v=<hash> de conteúdo serve o código novo). O buraco era só na quality:'low' (perfil da máquina fraca do dono): _tintFx devolvia o puffFx BEGE e minúsculo, então a fumaça sumia justamente onde ele testa. - _muzzleSmokeFx agora é GPUParticles CINZA dedicado (não cai no puff bege em low); 1 draw call, ring buffer 64, compartilha uTime/uScale do puff (anima sem tick). - _flash: baforadas maiores/mais numerosas (fp 3x0.2, mundo 4x0.32) pra ler como fumaça mesmo na low. Nota medida: em mapa branco (Havan) fumaça clara é naturalmente de baixo contraste; manter modesta pra não tapar a própria mira. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Emerson Garrido <emersongarrido.dev@gmail.com> Agent: Claude Code
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- jogo (1):
game.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
pente fino passado: nenhum achado que eu defenda em voz alta
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
main_js["main.js"] --> game_js["game.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — nada fora do normal no meu turno 🕵️ |
…ergear (#411) * feat(ci): autofix conserta o mecânico, com lista de permissão e sem mergear MEDIDO nos últimos 29 PRs: nenhum bot deste repositório jamais commitou um conserto. Quem conserta é sempre uma pessoa. O #405 está vermelho por `DOCS1: documentação DESATUALIZADA`, cujo conserto é `npm run docs` mais um commit - trabalho sem julgamento nenhum que hoje devolve o PR para o autor. O autofix roda em `pull_request_target`, o único gatilho que enxerga secret em PR de fork (é a mesma regra que a WSEC1 passou a guardar), regenera os blocos derivados e empurra o commit. A TRAVA é o que torna isso aceitável: `autofix_allowlist.py` só libera arquivo GERADO, e o commit sai da saída dela - nunca de um `git add -A`. Encostou em qualquer outro caminho, o bot aborta e comenta. Sem a lista, o primeiro conserto errado reescreve o mapa de um colaborador e ninguém repara; com ela, o pior caso é regenerar uma doc que já era derivada. `.github/` está entre os PROIBIDOS de propósito: um bot que edita o workflow que o governa amplia a própria permissão num commit. E as ferramentas que rodam são restauradas da BASE antes de executar - PR nenhum reescreve o gerador e faz o bot executar o que ele mandar. Duas saídas sem push, porque vermelho que o autor não entende é o dano que este trabalho inteiro está atacando: fork com "allow edits by maintainers" desligado recebe o comando por comentário, e sem `CSBRASIL_BOT_TOKEN` o job avisa e sai verde em vez de reprovar. A régua AF1/AF2/AF3 guarda as três condições - escrita só depois da trava, lista sem caminho de código, e o bot NÃO mergeia (deixar pronto e fechar são coisas diferentes). Os quatro mutantes mordem. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Agent: Claude Code * fix(ci): bot marca `pronto-pra-merge` em vez de mergear sozinho (#412) A intenção declarada dos bots é autocorreção e autorrevisão para deixar o PR PRONTO - não fechar o assunto. Só que o `csbrasil-bot-automerge` chamava `gh pr merge --squash --delete-branch --auto`, e era a ÚNICA coisa que um bot deste repositório fazia sozinho: justamente a que não devia. O passo agora aplica a etiqueta `pronto-pra-merge` e comenta por que o PR está pronto. Quando o PR deixa de ser elegível, a etiqueta sai - senão ela vira um carimbo velho que ninguém confere. O botão de merge continua humano. A AF4 estende a régua do autofix para o repositório inteiro: nenhum workflow pode chamar `gh pr merge`. Ela ignora linha de comentário de propósito, para que o comentário que explica por que a chamada saiu possa citá-la. O mutante `automerge-volta` recoloca a chamada e reprova. Fora do alcance deste repositório: o Esbirro, que repetiu o mesmo alerta de `bundle-em-dia` a cada 30 minutos por 17 horas na issue #393 sem nunca agir, vive em `game3/bots/vigia-prod/plantao.mjs`. Dar ação a ele é trabalho de lá. Agent: Claude Code Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> --------- Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* fix(ci): quem bloqueia o PR é o build do CI, não a Vercel
MEDIDO nos últimos 29 PRs: a Vercel reprovou 13 dos 14 PRs vindos de fork, sempre
com `Authorization required to deploy.` - proteção de fork da própria Vercel, que
nenhum commit do colaborador resolve. Nos PRs de casa o vermelho era build de
verdade, uma vez porque o `fetch-decals.sh` não baixou o acervo (196 de 197
decalques faltando) num soluço de rede.
O `ci.yml` já constrói o site em `pull_request`: o portão que importa existe e é
esse. A régua nova guarda as três condições que deixam a Vercel sair do caminho
crítico sem perder cobertura:
DG1 o CI constrói no PR - sem isso, tirar a Vercel do bloqueio deixaria o PR sem
nenhuma prova de que o site compila;
DG2 nenhum `curl` do caminho do build corre sem `--retry`. `set -e` mais curl sem
retry transforma soluço de rede em PR vermelho, e o autor não tem o que
consertar - mesmo dano do portão que não pode medir;
DG3 a etiqueta que autoriza o preview de fork é criada por quem depende dela.
A DG3 achou código morto: o job `preview` do preview-bot já sabe publicar pela CLI
da Vercel depois de conferir permissão do ator e SHA aprovado, mas dispara em
`labeled` com `preview-autorizado` - e essa etiqueta NUNCA existiu no repositório.
O bot pedia um rótulo que ninguém tinha como aplicar. Agora o próprio workflow a
cria.
Os dois ajustes que sobram são de painel da Vercel e não cabem no repositório;
ficaram escritos no PROD-READINESS.md, com o que medir.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Claude Code
* feat(ci): autofix conserta o mecânico, com lista de permissão e sem mergear (#411)
* feat(ci): autofix conserta o mecânico, com lista de permissão e sem mergear
MEDIDO nos últimos 29 PRs: nenhum bot deste repositório jamais commitou um
conserto. Quem conserta é sempre uma pessoa. O #405 está vermelho por
`DOCS1: documentação DESATUALIZADA`, cujo conserto é `npm run docs` mais um
commit - trabalho sem julgamento nenhum que hoje devolve o PR para o autor.
O autofix roda em `pull_request_target`, o único gatilho que enxerga secret em PR
de fork (é a mesma regra que a WSEC1 passou a guardar), regenera os blocos
derivados e empurra o commit.
A TRAVA é o que torna isso aceitável: `autofix_allowlist.py` só libera arquivo
GERADO, e o commit sai da saída dela - nunca de um `git add -A`. Encostou em
qualquer outro caminho, o bot aborta e comenta. Sem a lista, o primeiro conserto
errado reescreve o mapa de um colaborador e ninguém repara; com ela, o pior caso
é regenerar uma doc que já era derivada.
`.github/` está entre os PROIBIDOS de propósito: um bot que edita o workflow que
o governa amplia a própria permissão num commit. E as ferramentas que rodam são
restauradas da BASE antes de executar - PR nenhum reescreve o gerador e faz o bot
executar o que ele mandar.
Duas saídas sem push, porque vermelho que o autor não entende é o dano que este
trabalho inteiro está atacando: fork com "allow edits by maintainers" desligado
recebe o comando por comentário, e sem `CSBRASIL_BOT_TOKEN` o job avisa e sai
verde em vez de reprovar.
A régua AF1/AF2/AF3 guarda as três condições - escrita só depois da trava, lista
sem caminho de código, e o bot NÃO mergeia (deixar pronto e fechar são coisas
diferentes). Os quatro mutantes mordem.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Agent: Claude Code
* fix(ci): bot marca `pronto-pra-merge` em vez de mergear sozinho (#412)
A intenção declarada dos bots é autocorreção e autorrevisão para deixar o PR
PRONTO - não fechar o assunto. Só que o `csbrasil-bot-automerge` chamava
`gh pr merge --squash --delete-branch --auto`, e era a ÚNICA coisa que um bot
deste repositório fazia sozinho: justamente a que não devia.
O passo agora aplica a etiqueta `pronto-pra-merge` e comenta por que o PR está
pronto. Quando o PR deixa de ser elegível, a etiqueta sai - senão ela vira um
carimbo velho que ninguém confere. O botão de merge continua humano.
A AF4 estende a régua do autofix para o repositório inteiro: nenhum workflow
pode chamar `gh pr merge`. Ela ignora linha de comentário de propósito, para que
o comentário que explica por que a chamada saiu possa citá-la. O mutante
`automerge-volta` recoloca a chamada e reprova.
Fora do alcance deste repositório: o Esbirro, que repetiu o mesmo alerta de
`bundle-em-dia` a cada 30 minutos por 17 horas na issue #393 sem nunca agir, vive
em `game3/bots/vigia-prod/plantao.mjs`. Dar ação a ele é trabalho de lá.
Agent: Claude Code
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
---------
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
---------
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
… pode ter (#408) * fix(ci): classify não reprova PR de fork por secret que o gatilho não pode ter MEDIDO nos últimos 29 PRs: `classify` vermelho em 11 dos 14 vindos de FORK e em 0 dos 15 de casa. A causa não era o código de ninguém. Num PR de fork, os gatilhos `pull_request_review` e `pull_request_review_comment` rodam SEM os secrets do repositório - regra do GitHub - e o guard de identidade saía com erro. A prova é o mesmo PR, o mesmo commit, dois runs: `pull_request_target` fecha em 22s com sucesso e aplica o rótulo; `pull_request_review` morre em 4s com `GH_TOKEN` vazio. O rótulo estava certo o tempo todo; o vermelho que o colaborador via era de um run que nunca teve chance. Mesma regra que o #402 deu ao portão de autoria em clone raso: portão que não pode medir não vota. O job ganha um `if:` que o restringe aos gatilhos que enxergam secret. Para não perder o motivo pelo qual os gatilhos de review existem - reclassificar DEPOIS que o CodeRabbit comenta, o defeito da #240 - entra um sweep de meia em meia hora que roda no contexto base e reclassifica os PRs abertos por `workflow_dispatch`, caminho que tem token. O classify já dedupe rótulo e comentário, então repetir não polui o PR. A régua nova (WSEC1) varre os 14 workflows e reprova a combinação que causou isto: guard de secret junto de gatilho cego, sem `if:` que exclua o caso de fork. Os dois mutantes mordem - tirar o `if:` do classify e pôr um gatilho cego no preview-bot. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Agent: Claude Code * fix(ci): quem bloqueia o PR é o build do CI, não a Vercel (#409) * fix(ci): quem bloqueia o PR é o build do CI, não a Vercel MEDIDO nos últimos 29 PRs: a Vercel reprovou 13 dos 14 PRs vindos de fork, sempre com `Authorization required to deploy.` - proteção de fork da própria Vercel, que nenhum commit do colaborador resolve. Nos PRs de casa o vermelho era build de verdade, uma vez porque o `fetch-decals.sh` não baixou o acervo (196 de 197 decalques faltando) num soluço de rede. O `ci.yml` já constrói o site em `pull_request`: o portão que importa existe e é esse. A régua nova guarda as três condições que deixam a Vercel sair do caminho crítico sem perder cobertura: DG1 o CI constrói no PR - sem isso, tirar a Vercel do bloqueio deixaria o PR sem nenhuma prova de que o site compila; DG2 nenhum `curl` do caminho do build corre sem `--retry`. `set -e` mais curl sem retry transforma soluço de rede em PR vermelho, e o autor não tem o que consertar - mesmo dano do portão que não pode medir; DG3 a etiqueta que autoriza o preview de fork é criada por quem depende dela. A DG3 achou código morto: o job `preview` do preview-bot já sabe publicar pela CLI da Vercel depois de conferir permissão do ator e SHA aprovado, mas dispara em `labeled` com `preview-autorizado` - e essa etiqueta NUNCA existiu no repositório. O bot pedia um rótulo que ninguém tinha como aplicar. Agora o próprio workflow a cria. Os dois ajustes que sobram são de painel da Vercel e não cabem no repositório; ficaram escritos no PROD-READINESS.md, com o que medir. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Agent: Claude Code * feat(ci): autofix conserta o mecânico, com lista de permissão e sem mergear (#411) * feat(ci): autofix conserta o mecânico, com lista de permissão e sem mergear MEDIDO nos últimos 29 PRs: nenhum bot deste repositório jamais commitou um conserto. Quem conserta é sempre uma pessoa. O #405 está vermelho por `DOCS1: documentação DESATUALIZADA`, cujo conserto é `npm run docs` mais um commit - trabalho sem julgamento nenhum que hoje devolve o PR para o autor. O autofix roda em `pull_request_target`, o único gatilho que enxerga secret em PR de fork (é a mesma regra que a WSEC1 passou a guardar), regenera os blocos derivados e empurra o commit. A TRAVA é o que torna isso aceitável: `autofix_allowlist.py` só libera arquivo GERADO, e o commit sai da saída dela - nunca de um `git add -A`. Encostou em qualquer outro caminho, o bot aborta e comenta. Sem a lista, o primeiro conserto errado reescreve o mapa de um colaborador e ninguém repara; com ela, o pior caso é regenerar uma doc que já era derivada. `.github/` está entre os PROIBIDOS de propósito: um bot que edita o workflow que o governa amplia a própria permissão num commit. E as ferramentas que rodam são restauradas da BASE antes de executar - PR nenhum reescreve o gerador e faz o bot executar o que ele mandar. Duas saídas sem push, porque vermelho que o autor não entende é o dano que este trabalho inteiro está atacando: fork com "allow edits by maintainers" desligado recebe o comando por comentário, e sem `CSBRASIL_BOT_TOKEN` o job avisa e sai verde em vez de reprovar. A régua AF1/AF2/AF3 guarda as três condições - escrita só depois da trava, lista sem caminho de código, e o bot NÃO mergeia (deixar pronto e fechar são coisas diferentes). Os quatro mutantes mordem. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Agent: Claude Code * fix(ci): bot marca `pronto-pra-merge` em vez de mergear sozinho (#412) A intenção declarada dos bots é autocorreção e autorrevisão para deixar o PR PRONTO - não fechar o assunto. Só que o `csbrasil-bot-automerge` chamava `gh pr merge --squash --delete-branch --auto`, e era a ÚNICA coisa que um bot deste repositório fazia sozinho: justamente a que não devia. O passo agora aplica a etiqueta `pronto-pra-merge` e comenta por que o PR está pronto. Quando o PR deixa de ser elegível, a etiqueta sai - senão ela vira um carimbo velho que ninguém confere. O botão de merge continua humano. A AF4 estende a régua do autofix para o repositório inteiro: nenhum workflow pode chamar `gh pr merge`. Ela ignora linha de comentário de propósito, para que o comentário que explica por que a chamada saiu possa citá-la. O mutante `automerge-volta` recoloca a chamada e reprova. Fora do alcance deste repositório: o Esbirro, que repetiu o mesmo alerta de `bundle-em-dia` a cada 30 minutos por 17 horas na issue #393 sem nunca agir, vive em `game3/bots/vigia-prod/plantao.mjs`. Dar ação a ele é trabalho de lá. Agent: Claude Code Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> --------- Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> --------- Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * Merge da main (alpha.175) na pilha de CI, e liga o que ela citava sem definir Dos 8 arquivos em conflito, 7 eram gerados. O único de verdade era o package.json - e ele quase me pegou: resolvendo pela linha do `check:`, fiquei com a lista de um lado e PERDI as DEFINIÇÕES do outro. `eval:wfsecret`, `eval:deploygate` e `eval:autofix` viraram nome órfão de uma vez. Um nome órfão mata o npm em "missing script" e TODOS os passos depois dele param de rodar - o portão pararia no meio sem ninguém perceber. Foi o segundo caso do dia: o #372 citava `eval:gelo` no `check:fast` sem nunca ter definido o script, com a régua existindo em disco e desligada. Conflito de `package.json` é o mais comum que existe aqui, porque todo PR que acrescenta régua mexe na mesma linha - então isto vai se repetir. Daí a PI: todo passo citado nos dois portões tem de estar definido (PI1) e toda régua tem de apontar para arquivo que existe (PI2). 97 citações conferidas. Os dois mutantes mordem, e ela reprova o #372 de verdade, não só o caso sintético. As três réguas desta pilha também receberam o padrão do #416, que entrou na main depois delas: prova que não morde é vermelho, não aviso. Agent: Claude Opus 5 (Claude Code) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Commit-grande: merge da main na pilha de CI — 21 dos 24 arquivos são bloco gerado re-derivado Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> --------- Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
🤖 autofix: o conserto encostou em arquivo fora da lista de permissão, então não commitei nada. Rode |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão. Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão. Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão. Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 preview no ar → https://csbrasil-7j3id4se3-rubenmarcus-projects.vercel.app |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- docs (7):
ARCH.generated.md,README.md,STATUS.md,arquitetura.md… - jogo (1):
game.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
pente fino passado: nenhum achado que eu defenda em voz alta
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
main_js["main.js"] --> game_js["game.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRWarning Classe drift de gerados: bloco gerado desatualizado. Não consegui commitar (o PR vem de fork). Conserto: npm run docs && npm run arch
Vermelho: Rabo do log: — nada fora do normal no meu turno 🕵️ |
- Tecla B cicla: 1ª pessoa -> 3ª SOCOM (cintura pra cima) -> ombro colado - Reusa buildCharacterModel dos bots (grip procedural: mount RightHand + IK + curl) - Corpo cai na morte (ctrl.die), visivel ate em 1ª pessoa; some no respawn - Em 3ª pessoa, tiro/fumaca saem do OLHO (_eyeWorld/_aimOrigin), nao da camera - Doc da pega de arma no Blender: docs/RIG-PEGA-ARMA.md Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Emerson Garrido <emersongarrido.dev@gmail.com> Agent: Claude Code
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão. Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 preview no ar → https://csbrasil-amrpcfer5-rubenmarcus-projects.vercel.app |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- docs (8):
ARCH.generated.md,README.md,STATUS.md,RIG-PEGA-ARMA.md… - jogo (1):
game.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
nada aqui que quebre amanhã. amanhã é outro diff
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
main_js["main.js"] --> game_js["game.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— todo bug confessa no diff, eu só faço o interrogatório 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — de plantão: vi, registrei, hora no relógio 🕵️ |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 preview no ar → https://csbrasil-gfmfa5im8-rubenmarcus-projects.vercel.app |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- docs (8):
ARCH.generated.md,README.md,STATUS.md,RIG-PEGA-ARMA.md… - jogo (1):
game.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
nada aqui que quebre amanhã. amanhã é outro diff
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
main_js["main.js"] --> game_js["game.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — nada fora do normal no meu turno 🕵️ |
O quê
Aproxima o feel de disparo do jogo de uma referência em Three.js (fumaça saindo do cano, cápsulas voando, tranco de tela por tiro) reusando a infra que já existe — sem lib nova e mantendo a regra de zero alocação por tiro.
Mudanças (só
public/js/game.js)_flash(), 2–3 baforadas cinza subindo/à frente na boca (_muzzleWorld), viaGPUParticlescriado com_tintFx(0x8a8a8a, …). CompartilhauTime/uScaledopuffFx(anima sem tick novo) e emquality:'low'o_tintFxdevolve o puff branco → sem sistema/draw-call novo. Menor e mais perto na 1ª pessoa pra não virar blob na lente (padrão R7.6). Escala por_fxTune.smoke(novo campo)._shotRecoilsobe teto/ganho dost.sh(0.013/0.16 → 0.020/0.22);_updatePlayeraplica um roll leve no eixo Z reusando o mesmost.shdecadente numa frequência diferente do pitch (61 vs 78) → lê como "tremida", não só punch vertical. Vale pra mouse e toque (câmera finaliza num ponto só). Respeita?gunfeel=0(roll só existe no caminho do spring) e ADS (já reduz 32%)._casingGeomaior (0.016×0.05, 8 seg), brass commetalness:1.0+ emissive leve, arco um pouco maior (up 1.7→2.0) e vida1.6s → 2.2s.Por que é barato
Reaproveita
GPUParticles,_tintFx,_muzzleWorld,_flash,_shotRecoil,_ejectCasinge_fxTune. Custo: +1 draw call (partículas de fumaça, ring-buffer), sem alocação por tiro. Cápsulas e tranco já existiam — aqui só foram amplificados; a fumaça do cano é o único efeito novo.Como testar
npm run dev→ atirar de rifle/pistola: baforada cinza dissipando na boca.?gunfeel=0volta ao comportamento antigo.?quality=low: fumaça cai pro puff branco, sem engasgo.🤖 Generated with Claude Code