Project

tormenta20

0.0
No release in over a year
A Ruby, Node and Python library with data about the Brazilian TTRPG, Tormenta20
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

 Project Readme

Tormenta20

Uma biblioteca Ruby com dados do RPG de mesa brasileiro Tormenta20.

A gem inclui um banco de dados SQLite pré-populado com informações sobre magias, classes, origens, divindades, poderes e equipamentos do sistema Tormenta20.

Installation

Adicione ao Gemfile da sua aplicacao:

gem 'tormenta20'

E execute:

bundle install

Ou instale diretamente:

gem install tormenta20

Usage

A gem ja vem com o banco de dados populado. Basta fazer require e usar:

require 'tormenta20'

# Magias
Tormenta20.magias.count                    # => 198
Tormenta20.magias.arcanas                  # Magias arcanas
Tormenta20.magias.divinas                  # Magias divinas
Tormenta20.magias.by_circle("3")           # Magias do 3o circulo
Tormenta20.magias.by_school('evoc')        # Magias de evocacao
Tormenta20.magias.arcanas.by_circle("1")   # Combinar filtros

# Classes
Tormenta20.classes.all
Tormenta20.classes.conjuradores            # Classes com magia

# Origens
Tormenta20.origens.all
Tormenta20.origens.find('soldado')
Tormenta20.origens.with_unique_power       # Origens com poder unico

# Divindades
Tormenta20.divindades.all
Tormenta20.divindades.energia_positiva     # Deuses de energia positiva
Tormenta20.divindades.energia_negativa     # Deuses de energia negativa

# Poderes
Tormenta20.poderes.all
Tormenta20.poderes.habilidades_unicas      # Habilidades unicas de origem
Tormenta20.poderes.poderes_concedidos      # Poderes concedidos por divindades
Tormenta20.poderes.poderes_tormenta        # Poderes da Tormenta

# Equipamentos
Tormenta20.armas.all
Tormenta20.armas.simples                   # Armas simples
Tormenta20.armas.marciais                  # Armas marciais
Tormenta20.armaduras.all
Tormenta20.armaduras.leves                 # Armaduras leves
Tormenta20.escudos.all

# Itens Superiores
Tormenta20.materiais_especiais.all

# Regras
Tormenta20.regras.all

Query Interface

A gem oferece uma interface de consulta simplificada. Todos os metodos retornam modelos ActiveRecord, permitindo encadeamento de scopes e queries:

# Accessors disponiveis
Tormenta20.origens              # => Tormenta20::Models::Origem
Tormenta20.poderes              # => Tormenta20::Models::Poder
Tormenta20.divindades           # => Tormenta20::Models::Divindade
Tormenta20.classes              # => Tormenta20::Models::Classe
Tormenta20.magias               # => Tormenta20::Models::Magia
Tormenta20.armas                # => Tormenta20::Models::Arma
Tormenta20.armaduras            # => Tormenta20::Models::Armadura
Tormenta20.escudos              # => Tormenta20::Models::Escudo
Tormenta20.itens                # => Tormenta20::Models::Item
Tormenta20.materiais_especiais  # => Tormenta20::Models::MaterialEspecial
Tormenta20.melhorias            # => Tormenta20::Models::Melhoria
Tormenta20.regras               # => Tormenta20::Models::Regra

# Exemplos de queries ActiveRecord
Tormenta20.magias.where(type: 'arcana')
Tormenta20.magias.where(school: 'evoc').order(:name)
Tormenta20.poderes.where("name LIKE ?", "%Furia%")

Models Disponiveis

Model Descricao Quantidade Documentacao
Magia Magias arcanas, divinas e universais 198 docs/magias.md
Classe Classes de personagem 14 docs/classes.md
Origem Origens de personagem 35 docs/origens.md
Divindade Deuses do Panteao 20 docs/divindades.md
Poder Poderes (habilidades unicas, concedidos, tormenta) 129 docs/poderes.md
Arma Armas - docs/armas.md
Armadura Armaduras - docs/armaduras.md
Escudo Escudos 2 docs/escudos.md
Item Itens gerais - docs/itens.md
MaterialEspecial Materiais especiais 6 docs/materiais_especiais.md
Melhoria Melhorias magicas - docs/melhorias.md
Regra Regras e dados de referencia 14 docs/regras.md

Cada link de documentacao contem a lista completa de atributos, scopes, metodos e exemplos de uso.

Exemplos

# Buscar uma magia especifica
bola_de_fogo = Tormenta20.magias.find('bola_de_fogo')
puts bola_de_fogo.name        # => "Bola de Fogo"
puts bola_de_fogo.circle      # => "3"
puts bola_de_fogo.school      # => "evoc"
puts bola_de_fogo.description

# Listar poderes de uma divindade
khalmyr = Tormenta20.divindades.find('khalmyr')
puts khalmyr.name             # => "Khalmyr"
puts khalmyr.granted_powers   # => ["coragem_total", "espada_justiceira", ...]

# Buscar poderes concedidos
Tormenta20.poderes.poderes_concedidos.each do |poder|
  puts "#{poder.name}: #{poder.deities.join(', ')}"
end

# Classe com informacoes de magia
mago = Tormenta20.classes.find('arcanista')
puts mago.initial_hp          # PV inicial
puts mago.mp_per_level        # PM por nivel
puts mago.conjurador?         # => true

# Filtrar magias arcanas do 1o circulo da escola de evocacao
Tormenta20.magias.arcanas.by_circle("1").by_school("evoc").each do |magia|
  puts "#{magia.name} - #{magia.description}"
end

Development

Pre-requisitos

  • Ruby >= 3.0.0
  • Bundler

Setup

git clone https://github.com/LuanGB/tormenta20.git
cd tormenta20
bundle install

Construir o Banco de Dados

O banco de dados SQLite e construido a partir dos arquivos JSON em src/json/:

# Construir apenas o banco
rake build_db

# Build completo da gem (inclui build_db automaticamente)
rake build

Estrutura do Projeto

tormenta20/
├── src/
│   ├── json/                    # Dados em formato JSON
│   │   ├── magias/
│   │   ├── classes/
│   │   ├── origens/
│   │   ├── deuses/
│   │   ├── poderes/
│   │   │   ├── habilidades_unicas_de_origem/
│   │   │   ├── poderes_concedidos/
│   │   │   └── poderes_da_tormenta/
│   │   ├── equipamentos/
│   │   ├── itens_superiores/
│   │   └── regras/
│   └── ruby/                    # Codigo Ruby
│       └── tormenta20/
│           ├── models/          # ActiveRecord models
│           ├── database.rb      # Conexao com banco
│           └── seeder.rb        # Import de dados
├── db/
│   ├── schema.sql              # Schema SQLite
│   ├── seeds.rb                # Script de seed (desenvolvimento)
│   └── tormenta20.sqlite3      # Banco pre-construido (gerado)
└── bin/
    └── build_db                # Script de build do banco

Testes

rake spec

Linting

rake rubocop

Contributing

Bug reports e pull requests sao bem-vindos em https://github.com/LuanGB/tormenta20.

License

Disponivel como open source sob os termos da MIT License.

Aviso Legal

Tormenta20 e uma marca registrada da Jambo Editora. Esta biblioteca e um projeto de fa nao oficial e nao e afiliada, endossada ou patrocinada pela Jambo Editora.