tormenta20
v0.3.0
Published
TypeScript/JavaScript library with data about the Brazilian TTRPG Tormenta20 — spells, classes, origins, deities, powers, equipment, races and conditions.
Maintainers
Readme
Tormenta20
Uma biblioteca Ruby, TypeScript e Python com dados do RPG de mesa brasileiro Tormenta20.
Inclui um banco de dados SQLite pré-populado com magias, classes, origens, divindades, poderes, equipamentos, raças e condições do sistema T20. Todos os registros expõem referências de livro e página via bookReference() / book_reference.
Dependências do Sistema
A biblioteca usa SQLite3. Em ambientes Linux (incluindo Docker):
# Debian/Ubuntu
apt-get install libsqlite3-0
# Alpine
apk add sqlite-libsNo Dockerfile da sua aplicação:
RUN apt-get install --no-install-recommends -y libsqlite3-0Instalação
Ruby (Bundler):
# Gemfile
gem 'tormenta20'bundle installNode.js / TypeScript:
npm install tormenta20Uso Rápido
Ruby:
require 'tormenta20'
Tormenta20.magias.arcanas.by_circle("3")
Tormenta20.classes.conjuradores.all
Tormenta20.poderes.poderes_concedidos.all
Tormenta20.racas.find('anao').book_reference # => "T20 - EJA, p. 20"TypeScript / JavaScript:
import { Magia, Classe, Poder, Raca } from 'tormenta20'
Magia.arcanas().all()
Classe.conjuradores().all()
Poder.poderesConcedidos().all()
Raca.find('anao')?.bookReference() // => { formatted: "T20 - EJA, p. 20", ... }Modelos
| Model | Descrição | Qtd | Ruby | TypeScript |
|-------|-----------|-----|------|------------|
| Magia | Magias arcanas, divinas e universais | 198 | docs/ruby/magias.md | docs/ts/magias.md |
| Classe | Classes de personagem | 14 | docs/ruby/classes.md | docs/ts/classes.md |
| Origem | Origens de personagem | 35 | docs/ruby/origens.md | docs/ts/origens.md |
| Divindade | Deuses do Panteão | 20 | docs/ruby/divindades.md | docs/ts/divindades.md |
| Poder | Poderes (origem, concedido, tormenta, classe, raça) | 518 | docs/ruby/poderes.md | docs/ts/poderes.md |
| Raca | Raças jogáveis | 18 | docs/ruby/racas.md | docs/ts/racas.md |
| Condicao | Condições de status | 35 | docs/ruby/condicoes.md | docs/ts/condicoes.md |
| Arma | Armas | — | docs/ruby/armas.md | docs/ts/armas.md |
| Armadura | Armaduras | — | docs/ruby/armaduras.md | docs/ts/armaduras.md |
| Escudo | Escudos | 2 | docs/ruby/escudos.md | docs/ts/escudos.md |
| Item | Itens gerais | — | docs/ruby/itens.md | docs/ts/itens.md |
| MaterialEspecial | Materiais especiais | 6 | docs/ruby/materiais_especiais.md | docs/ts/materiais_especiais.md |
| Melhoria | Melhorias mágicas | — | docs/ruby/melhorias.md | docs/ts/melhorias.md |
| Regra | Regras e dados de referência | 14 | docs/ruby/regras.md | docs/ts/regras.md |
| Livro | Livros indexados | 1 | docs/ruby/livros.md | docs/ts/livros.md |
| IndiceRemissivo | Entradas do índice remissivo | 1098 | docs/ruby/indice_remissivo.md | docs/ts/indice_remissivo.md |
Development
Pré-requisitos
- Ruby >= 3.0.0
- Node.js >= 18
- Bundler
Setup
git clone https://github.com/LuanGB/tormenta20.git
cd tormenta20
bundle install
npm installConstruir o Banco de Dados
O arquivo db/tormenta20.sqlite3 é gerado a partir dos JSONs em src/json/:
# Ruby
rake build_db
# Build completo (inclui build_db)
rake build
# TypeScript (compila dist/ + docs)
npm run build
npm run docsEstrutura do Projeto
tormenta20/
├── src/
│ ├── json/ # Dados fonte em JSON
│ ├── ruby/ # Código Ruby (ActiveRecord models)
│ └── ts/ # Código TypeScript
├── docs/
│ ├── ruby/ # Referência da API Ruby
│ └── ts/ # Referência da API TypeScript
├── db/
│ ├── schema.sql
│ └── tormenta20.sqlite3 # Gerado por rake build_db
└── dist/ # Build TypeScript compiladoTestes
# Ruby
bin/test
# TypeScript
npm testContributing
Bug reports e pull requests são bem-vindos em https://github.com/LuanGB/tormenta20.
License
Disponível como open source sob os termos da MIT License.
Aviso Legal
Tormenta20 é uma marca registrada da Jambô Editora. Esta biblioteca é um projeto de fã não oficial e não é afiliada, endossada ou patrocinada pela Jambô Editora.
