Project

tormenta20

0.0
The project is in a healthy, maintained state
Ruby library providing ActiveRecord models backed by a bundled SQLite database with spells, classes, origins, deities, powers, equipment, races and conditions from the Tormenta20 system.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 0

Runtime

 Project Readme

Tormenta20

Ruby npm CI Coverage Ruby Docs Docs License

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

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 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.