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-libs
No Dockerfile da sua aplicação:
RUN apt-get install --no-install-recommends -y libsqlite3-0
Instalação
Ruby (Bundler):
# Gemfile
gem 'tormenta20'
bundle install
Node.js / TypeScript:
npm install tormenta20
Uso 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
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 install
Construir 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 docs
Estrutura 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 compilado
Testes
# Ruby
bin/test
# TypeScript
npm test
Contributing
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.