尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗RPG por turnos em pixel art onde cada golpe é decidido no pedra, papel e tesoura. Você é o Caçador: atravesse a Floresta Maldita, invada a mansão, derrote Kastle e depois enfrente o Reino das Sombras até Morgana, a Rainha Banshee.
Campanha
Corridas
Arena dos Caçadores (multiplayer online)
Ranqueada (troféus), Casual, 2x2, Chefe Cooperativo, Torneio Relâmpago (4 a 8 caçadores) e Rei da Arena
Só jogadores de verdade (sem bots); dá para assistir as partidas de quem está online
Deck de 8 cartas (16 cartas, limite por raridade), 6 caçadores, histórico dos poderes do adversário
Avatar com o rosto de um caçador ou desenhado no Ateliê (editor de pixel art 16x16), com moldura
Missões diárias, Ecto, loja de molduras e expressões, temporadas mensais com recompensas
Trilha sonora composta em partituras Scrimshaw, tocada ao vivo
Funciona no navegador, no desktop e no celular
O jogo é estático (HTML + ES modules, sem build). Basta servir a pasta:
npm run dev
Depois abra http://localhost:5173. (O tools/devserver.py desativa o cache para você ver as mudanças na hora.)
Testes das regras do jogo:
npm test
Multiplayer local: veja server/README.md.
| Tecla | Ação |
|---|---|
1 2 3 | Estaca, Aspirador, Cruz |
A / S / B | Armas / Loja / Monstruário |
Tab ou toque no monstro | Trocar de alvo |
Esc | Pausar / fechar |
index.html telas (DOM) por cima do canvas 1280x720
styles/ CSS por área (base, componentes, telas, batalha, multiplayer)
src/
main.js monta serviços, interface e cenas
config/ dados do jogo: armas, monstros, itens, fases, balanceamento
domain/ regras puras e testáveis (batalha, IA, atributos, campanha, corridas, saves, monstruário)
core/ motor: loop e cenas, renderizador pixel-perfect, tweens, partículas, áudio, música
world/ personagens animados, efeitos, cenários laterais e palco de batalha em perspectiva
scenes/ Menu, Mapa, História, Diálogo, Batalha (campanha e corridas), Resultado,
Arena (lobby), Duelo (1x1/2x2/espectador) e Chefe Cooperativo
ui/ HUD da batalha, cartas, modais (saves, opções, monstruário, oficina, relíquias,
desafio do dia, deck, missões, loja, arena), toasts
net/ cliente Socket.io do multiplayer
vendor/scrimshaw/ motor de partituras Scrimshaw (Apache 2.0)
assets/
sprites/ SVGs 64x64 gerados (personagens, inimigos, ícones, efeitos, UI, tiles)
fonts/ fonte pixel JokenPixel (gerada)
music/ trilha sonora em partituras .scrim
audio/ efeito de impacto
tools/
sprites/ gerador das sprites (pixel art desenhada em código)
font/ gerador da fonte JokenPixel
music/ verificador das partituras (node tools/music/check.mjs)
server/ servidor multiplayer (Node + Socket.io, deploy no Render)
tests/ testes do domínio (node --test)
legacy/pygame/ versão original em Python/Pygame
A regra principal: domain/ não conhece tela nenhuma. A batalha (domain/battle.js) decide o que acontece
e devolve um resultado; a cena (scenes/BattleScene.js) só anima esse resultado. O "modo" da batalha
(scenes/battleModes.js) diz se é uma fase da campanha ou uma corrida, sem a cena precisar saber.
Melhorias, relíquias e dificuldade são modificadores (domain/loadout.js) que viram um único objeto de
atributos lido pela batalha. As corridas (domain/run.js) usam geradores com semente e registram cada jogada,
então o servidor refaz a corrida do Desafio do Dia com o mesmo código (server/src/shared.js).
Todas as sprites seguem o padrão 64x64 px (animações são folhas horizontais de frames 64x64) e são desenhadas em código com uma paleta única, então o jogo inteiro tem o mesmo estilo. Para alterar ou criar arte:
tools/sprites/art/ (hunter.mjs, enemies.mjs, icons.mjs, fx.mjs, ui.mjs, tiles.mjs)npm run assets (gera os SVGs, o bundle.json e o manifesto src/config/sprites.generated.js)A fonte JokenPixel (com acentos do português) é desenhada em tools/font/glyphs.mjs.
Use tamanhos múltiplos de 8px (16, 24, 32...) para ela ficar nítida.
Cada música é um texto em assets/music/*.scrim (formato Scrimshaw: vozes, padrões e play/loop).
O jogo compila a partitura e toca com os instrumentos sintetizados do Scrimshaw, então as músicas
pesam poucos KB. Para compor ou testar, cole o arquivo no editor do
Scrimshaw Jukebox e confira com
node tools/music/check.mjs.
Cada tela diz a sua trilha (music() em scenes/); o jogo troca ao entrar na tela e mostra um aviso
discreto "Tocando: nome da música" (dá para desligar em Opções). Janelas com trilha própria, como o
Ateliê, tocam por cima da tela e devolvem a música dela ao fechar. O botão de nota no canto de cima à
direita, presente em todas as telas, liga e desliga só a música (a escolha fica salva).
| Arquivo | Onde toca |
|---|---|
menu | menu principal |
mapa | mapa |
conto | histórias e diálogos |
batalha | batalhas do Ato I e o começo das corridas |
sombras | batalhas do Ato II |
chefe | chefes |
rainha | Morgana |
lobby / duelo | Arena e duelos online |
atelie | Ateliê (editor de avatar) |
vitoria / derrota | vinhetas de resultado |
vercel.json). legacy/, tools/, tests/ e server/ ficam fora do deploy.server/ como raiz.
O endereço fica em src/config/multiplayer.js. Detalhes em server/README.md.MIT — veja LICENSE.