tormenta20 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +27 -0
- data/README.md +203 -12
- data/Rakefile +9 -0
- data/db/schema.sql +382 -0
- data/db/seeds.rb +377 -0
- data/db/tormenta20.sqlite3 +0 -0
- data/docs/armaduras.md +72 -0
- data/docs/armas.md +95 -0
- data/docs/classes.md +105 -0
- data/docs/divindades.md +77 -0
- data/docs/escudos.md +49 -0
- data/docs/itens.md +59 -0
- data/docs/magias.md +157 -0
- data/docs/materiais_especiais.md +50 -0
- data/docs/melhorias.md +55 -0
- data/docs/origens.md +61 -0
- data/docs/poderes.md +98 -0
- data/docs/regras.md +51 -0
- data/examples/database_usage.rb +155 -0
- data/src/json/classes/arcanista.json +86 -0
- data/src/json/classes/barbaro.json +85 -0
- data/src/json/classes/bardo.json +91 -0
- data/src/json/classes/bucaneiro.json +96 -0
- data/src/json/classes/cacador.json +96 -0
- data/src/json/classes/cavaleiro.json +87 -0
- data/src/json/classes/clerigo.json +82 -0
- data/src/json/classes/druida.json +88 -0
- data/src/json/classes/guerreiro.json +90 -0
- data/src/json/classes/inventor.json +100 -0
- data/src/json/classes/ladino.json +96 -0
- data/src/json/classes/lutador.json +90 -0
- data/src/json/classes/nobre.json +100 -0
- data/src/json/classes/paladino.json +93 -0
- data/src/json/deuses/aharadak.json +26 -0
- data/src/json/deuses/allihanna.json +26 -0
- data/src/json/deuses/arsenal.json +28 -0
- data/src/json/deuses/azgher.json +28 -0
- data/src/json/deuses/hyninn.json +28 -0
- data/src/json/deuses/kallyadranoch.json +28 -0
- data/src/json/deuses/khalmyr.json +27 -0
- data/src/json/deuses/lena.json +28 -0
- data/src/json/deuses/lin_wu.json +28 -0
- data/src/json/deuses/marah.json +28 -0
- data/src/json/deuses/megalokk.json +28 -0
- data/src/json/deuses/nimb.json +27 -0
- data/src/json/deuses/oceano.json +26 -0
- data/src/json/deuses/sszzaas.json +28 -0
- data/src/json/deuses/tanna_toh.json +28 -0
- data/src/json/deuses/tenebra.json +26 -0
- data/src/json/deuses/thwor.json +27 -0
- data/src/json/deuses/thyatis.json +26 -0
- data/src/json/deuses/valkaria.json +30 -0
- data/src/json/deuses/wynna.json +25 -0
- data/src/json/equipamentos/armaduras/leves/armadura_acolchoada.json +15 -0
- data/src/json/equipamentos/armaduras/leves/armadura_de_couro.json +13 -0
- data/src/json/equipamentos/armaduras/leves/couraca.json +13 -0
- data/src/json/equipamentos/armaduras/leves/couro_batido.json +13 -0
- data/src/json/equipamentos/armaduras/leves/gibao_de_peles.json +13 -0
- data/src/json/equipamentos/armaduras/pesadas/armadura_completa.json +19 -0
- data/src/json/equipamentos/armaduras/pesadas/brunea.json +17 -0
- data/src/json/equipamentos/armaduras/pesadas/cota_de_malha.json +17 -0
- data/src/json/equipamentos/armaduras/pesadas/loriga_segmentada.json +17 -0
- data/src/json/equipamentos/armaduras/pesadas/meia_armadura.json +17 -0
- data/src/json/equipamentos/armas/exoticas/chicote.json +23 -0
- data/src/json/equipamentos/armas/exoticas/corrente_de_espinhos.json +23 -0
- data/src/json/equipamentos/armas/exoticas/espada_bastarda.json +19 -0
- data/src/json/equipamentos/armas/exoticas/katana.json +19 -0
- data/src/json/equipamentos/armas/exoticas/machado_anao.json +19 -0
- data/src/json/equipamentos/armas/exoticas/machado_taurico.json +17 -0
- data/src/json/equipamentos/armas/exoticas/rede.json +41 -0
- data/src/json/equipamentos/armas/fogo/mosquete.json +21 -0
- data/src/json/equipamentos/armas/fogo/pistola.json +21 -0
- data/src/json/equipamentos/armas/marciais/alabarda.json +17 -0
- data/src/json/equipamentos/armas/marciais/alfange.json +17 -0
- data/src/json/equipamentos/armas/marciais/arco_longo.json +22 -0
- data/src/json/equipamentos/armas/marciais/besta_pesada.json +21 -0
- data/src/json/equipamentos/armas/marciais/cimitarra.json +17 -0
- data/src/json/equipamentos/armas/marciais/espada_longa.json +17 -0
- data/src/json/equipamentos/armas/marciais/florete.json +17 -0
- data/src/json/equipamentos/armas/marciais/gadanho.json +17 -0
- data/src/json/equipamentos/armas/marciais/lanca_montada.json +20 -0
- data/src/json/equipamentos/armas/marciais/machadinha.json +19 -0
- data/src/json/equipamentos/armas/marciais/machado_de_batalha.json +17 -0
- data/src/json/equipamentos/armas/marciais/machado_de_guerra.json +17 -0
- data/src/json/equipamentos/armas/marciais/mangual.json +21 -0
- data/src/json/equipamentos/armas/marciais/marreta.json +17 -0
- data/src/json/equipamentos/armas/marciais/martelo_de_guerra.json +17 -0
- data/src/json/equipamentos/armas/marciais/montante.json +17 -0
- data/src/json/equipamentos/armas/marciais/picareta.json +17 -0
- data/src/json/equipamentos/armas/marciais/tridente.json +22 -0
- data/src/json/equipamentos/armas/simples/adaga.json +21 -0
- data/src/json/equipamentos/armas/simples/arco_curto.json +21 -0
- data/src/json/equipamentos/armas/simples/azagaia.json +20 -0
- data/src/json/equipamentos/armas/simples/besta_leve.json +21 -0
- data/src/json/equipamentos/armas/simples/bordao.json +17 -0
- data/src/json/equipamentos/armas/simples/clava.json +17 -0
- data/src/json/equipamentos/armas/simples/espada_curta.json +17 -0
- data/src/json/equipamentos/armas/simples/foice.json +17 -0
- data/src/json/equipamentos/armas/simples/funda.json +23 -0
- data/src/json/equipamentos/armas/simples/lanca.json +19 -0
- data/src/json/equipamentos/armas/simples/maca.json +17 -0
- data/src/json/equipamentos/armas/simples/pique.json +17 -0
- data/src/json/equipamentos/armas/simples/tacape.json +17 -0
- data/src/json/equipamentos/escudos/escudo_leve.json +22 -0
- data/src/json/equipamentos/escudos/escudo_pesado.json +22 -0
- data/src/json/equipamentos/itens/alimentacao/batata_valkariana.json +14 -0
- data/src/json/equipamentos/itens/alimentacao/gorad_quente.json +12 -0
- data/src/json/equipamentos/itens/alimentacao/macarrao_de_yuvalin.json +12 -0
- data/src/json/equipamentos/itens/alimentacao/prato_do_aventureiro.json +13 -0
- data/src/json/equipamentos/itens/alimentacao/racao_de_viagem.json +14 -0
- data/src/json/equipamentos/itens/alimentacao/refeicao_comum.json +9 -0
- data/src/json/equipamentos/itens/alimentacao/sopa_de_peixe.json +13 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/baga_de_fogo.json +17 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/dente_de_dragao.json +17 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/essencia_abissal.json +22 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/liquen_lilas.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/musgo_purpura.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/ossos_de_monstro.json +17 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/po_de_cristal.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/po_de_giz.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/ramo_verdejante.json +16 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/saco_de_sal.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/seixo_de_ambar.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/catalisadores/terra_de_cemiterio.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/acido.json +19 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/balsamo_restaurador.json +16 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/bomba.json +30 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/cosmetico.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/elixir_do_amor.json +23 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/essencia_de_mana.json +16 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/fogo_alquimico.json +27 -0
- data/src/json/equipamentos/itens/alquimicos/preparados/po_do_desaparecimento.json +18 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/beladona.json +22 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/bruma_sonolenta.json +21 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/cicuta.json +22 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/essencia_de_sombra.json +20 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/nevoa_toxica.json +22 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/peconha_comum.json +24 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/peconha_concentrada.json +22 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/peconha_potente.json +22 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/po_de_lich.json +23 -0
- data/src/json/equipamentos/itens/alquimicos/venenos/riso_de_nimb.json +21 -0
- data/src/json/equipamentos/itens/animais/alforje.json +11 -0
- data/src/json/equipamentos/itens/animais/cao_de_caca.json +18 -0
- data/src/json/equipamentos/itens/animais/cavalo.json +20 -0
- data/src/json/equipamentos/itens/animais/cavalo_de_guerra.json +17 -0
- data/src/json/equipamentos/itens/animais/estabulo.json +10 -0
- data/src/json/equipamentos/itens/animais/ponei.json +21 -0
- data/src/json/equipamentos/itens/animais/ponei_de_guerra.json +18 -0
- data/src/json/equipamentos/itens/animais/trobo.json +14 -0
- data/src/json/equipamentos/itens/aventura/agua_benta.json +23 -0
- data/src/json/equipamentos/itens/aventura/algemas.json +35 -0
- data/src/json/equipamentos/itens/aventura/arpeu.json +18 -0
- data/src/json/equipamentos/itens/aventura/bandoleira_de_pocoes.json +15 -0
- data/src/json/equipamentos/itens/aventura/barraca.json +14 -0
- data/src/json/equipamentos/itens/aventura/corda.json +26 -0
- data/src/json/equipamentos/itens/aventura/espelho.json +10 -0
- data/src/json/equipamentos/itens/aventura/lampiao.json +19 -0
- data/src/json/equipamentos/itens/aventura/mochila.json +12 -0
- data/src/json/equipamentos/itens/aventura/mochila_de_aventureiro.json +14 -0
- data/src/json/equipamentos/itens/aventura/oleo.json +19 -0
- data/src/json/equipamentos/itens/aventura/organizador_de_pergaminhos.json +14 -0
- data/src/json/equipamentos/itens/aventura/pe_de_cabra.json +18 -0
- data/src/json/equipamentos/itens/aventura/saco_de_dormir.json +13 -0
- data/src/json/equipamentos/itens/aventura/simbolo_sagrado.json +15 -0
- data/src/json/equipamentos/itens/aventura/tocha.json +28 -0
- data/src/json/equipamentos/itens/aventura/vara_de_madeira.json +12 -0
- data/src/json/equipamentos/itens/esotericos/bolsa_de_po.json +17 -0
- data/src/json/equipamentos/itens/esotericos/cajado_arcano.json +20 -0
- data/src/json/equipamentos/itens/esotericos/cetro_elemental.json +22 -0
- data/src/json/equipamentos/itens/esotericos/costela_de_lich.json +18 -0
- data/src/json/equipamentos/itens/esotericos/dedo_de_ente.json +21 -0
- data/src/json/equipamentos/itens/esotericos/luva_de_ferro.json +17 -0
- data/src/json/equipamentos/itens/esotericos/medalhao_de_prata.json +16 -0
- data/src/json/equipamentos/itens/esotericos/orbe_cristalino.json +15 -0
- data/src/json/equipamentos/itens/esotericos/tomo_hermetico.json +17 -0
- data/src/json/equipamentos/itens/esotericos/varinha_arcana.json +15 -0
- data/src/json/equipamentos/itens/ferramentas/alaude_elfico.json +16 -0
- data/src/json/equipamentos/itens/ferramentas/colecao_de_livros.json +16 -0
- data/src/json/equipamentos/itens/ferramentas/equipamento_de_viagem.json +19 -0
- data/src/json/equipamentos/itens/ferramentas/estojo_de_disfarces.json +18 -0
- data/src/json/equipamentos/itens/ferramentas/flauta_mistica.json +17 -0
- data/src/json/equipamentos/itens/ferramentas/gazua.json +18 -0
- data/src/json/equipamentos/itens/ferramentas/instrumento_musical.json +20 -0
- data/src/json/equipamentos/itens/ferramentas/instrumentos_de_oficio.json +21 -0
- data/src/json/equipamentos/itens/ferramentas/luneta.json +15 -0
- data/src/json/equipamentos/itens/ferramentas/maleta_de_medicamentos.json +17 -0
- data/src/json/equipamentos/itens/ferramentas/sela.json +19 -0
- data/src/json/equipamentos/itens/ferramentas/tambor_das_profundezas.json +17 -0
- data/src/json/equipamentos/itens/servicos/conducao.json +19 -0
- data/src/json/equipamentos/itens/servicos/curandeiro.json +9 -0
- data/src/json/equipamentos/itens/servicos/estadia.json +42 -0
- data/src/json/equipamentos/itens/servicos/magia.json +23 -0
- data/src/json/equipamentos/itens/servicos/mensageiro.json +10 -0
- data/src/json/equipamentos/itens/veiculos/balao_goblin.json +34 -0
- data/src/json/equipamentos/itens/veiculos/canoa.json +18 -0
- data/src/json/equipamentos/itens/veiculos/carroca.json +20 -0
- data/src/json/equipamentos/itens/veiculos/carruagem.json +21 -0
- data/src/json/equipamentos/itens/veiculos/veleiro.json +11 -0
- data/src/json/equipamentos/itens/vestuario/andrajos_de_aldeao.json +16 -0
- data/src/json/equipamentos/itens/vestuario/bandana.json +14 -0
- data/src/json/equipamentos/itens/vestuario/botas_reforcadas.json +15 -0
- data/src/json/equipamentos/itens/vestuario/camisa_bufante.json +14 -0
- data/src/json/equipamentos/itens/vestuario/capa_esvoacante.json +14 -0
- data/src/json/equipamentos/itens/vestuario/capa_pesada.json +14 -0
- data/src/json/equipamentos/itens/vestuario/casaco_longo.json +15 -0
- data/src/json/equipamentos/itens/vestuario/chapeu_arcano.json +15 -0
- data/src/json/equipamentos/itens/vestuario/enfeite_de_elmo.json +15 -0
- data/src/json/equipamentos/itens/vestuario/farrapos_de_ermitao.json +16 -0
- data/src/json/equipamentos/itens/vestuario/gorro_de_ervas.json +14 -0
- data/src/json/equipamentos/itens/vestuario/luva_de_pelica.json +14 -0
- data/src/json/equipamentos/itens/vestuario/manopla.json +15 -0
- data/src/json/equipamentos/itens/vestuario/manto_camuflado.json +20 -0
- data/src/json/equipamentos/itens/vestuario/manto_eclesiastico.json +14 -0
- data/src/json/equipamentos/itens/vestuario/robe_mistico.json +14 -0
- data/src/json/equipamentos/itens/vestuario/sapatos_de_camurca.json +14 -0
- data/src/json/equipamentos/itens/vestuario/tabardo.json +14 -0
- data/src/json/equipamentos/itens/vestuario/traje_da_corte.json +19 -0
- data/src/json/equipamentos/itens/vestuario/traje_de_viajante.json +13 -0
- data/src/json/equipamentos/itens/vestuario/veste_de_seda.json +14 -0
- data/src/json/equipamentos/municoes/balas.json +13 -0
- data/src/json/equipamentos/municoes/flechas.json +13 -0
- data/src/json/equipamentos/municoes/pedras.json +14 -0
- data/src/json/equipamentos/municoes/virotes.json +14 -0
- data/src/json/itens_superiores/materiais_especiais/aco_rubi.json +44 -0
- data/src/json/itens_superiores/materiais_especiais/adamante.json +35 -0
- data/src/json/itens_superiores/materiais_especiais/gelo_eterno.json +33 -0
- data/src/json/itens_superiores/materiais_especiais/madeira_tollon.json +31 -0
- data/src/json/itens_superiores/materiais_especiais/materia_vermelha.json +51 -0
- data/src/json/itens_superiores/materiais_especiais/mitral.json +38 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/ajustada.json +11 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/delicada.json +15 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/espinhosa.json +15 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/espinhoso.json +11 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/polida.json +13 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/reforcada.json +13 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/selada.json +14 -0
- data/src/json/itens_superiores/melhorias/armaduras_escudos/sob_medida.json +13 -0
- data/src/json/itens_superiores/melhorias/armas/atroz.json +11 -0
- data/src/json/itens_superiores/melhorias/armas/certeira.json +11 -0
- data/src/json/itens_superiores/melhorias/armas/cruel.json +11 -0
- data/src/json/itens_superiores/melhorias/armas/equilibrada.json +11 -0
- data/src/json/itens_superiores/melhorias/armas/harmonizada.json +13 -0
- data/src/json/itens_superiores/melhorias/armas/injecao_alquimica.json +14 -0
- data/src/json/itens_superiores/melhorias/armas/macica.json +12 -0
- data/src/json/itens_superiores/melhorias/armas/mira_telescopica.json +16 -0
- data/src/json/itens_superiores/melhorias/armas/precisa.json +12 -0
- data/src/json/itens_superiores/melhorias/armas/pungente.json +11 -0
- data/src/json/itens_superiores/melhorias/esotericos/canalizador.json +11 -0
- data/src/json/itens_superiores/melhorias/esotericos/energetico.json +12 -0
- data/src/json/itens_superiores/melhorias/esotericos/harmonizado.json +16 -0
- data/src/json/itens_superiores/melhorias/esotericos/poderoso.json +11 -0
- data/src/json/itens_superiores/melhorias/esotericos/vigilante.json +11 -0
- data/src/json/itens_superiores/melhorias/ferramentas_vestuario/aprimorado.json +15 -0
- data/src/json/itens_superiores/melhorias/geral/banhado_a_ouro.json +17 -0
- data/src/json/itens_superiores/melhorias/geral/cravejado_de_gemas.json +12 -0
- data/src/json/itens_superiores/melhorias/geral/discreto.json +13 -0
- data/src/json/itens_superiores/melhorias/geral/macabro.json +12 -0
- data/src/json/itens_superiores/melhorias/geral/material_especial.json +13 -0
- data/src/json/origens/acolito.json +11 -0
- data/src/json/origens/amigo_dos_animais.json +11 -0
- data/src/json/origens/amnesico.json +10 -0
- data/src/json/origens/aristocrata.json +11 -0
- data/src/json/origens/artesao.json +11 -0
- data/src/json/origens/artista.json +11 -0
- data/src/json/origens/assistente_de_laboratorio.json +11 -0
- data/src/json/origens/batedor.json +11 -0
- data/src/json/origens/capanga.json +11 -0
- data/src/json/origens/charlatao.json +11 -0
- data/src/json/origens/circense.json +11 -0
- data/src/json/origens/criminoso.json +11 -0
- data/src/json/origens/curandeiro.json +11 -0
- data/src/json/origens/eremita.json +11 -0
- data/src/json/origens/escravo.json +11 -0
- data/src/json/origens/estudioso.json +11 -0
- data/src/json/origens/fazendeiro.json +11 -0
- data/src/json/origens/forasteiro.json +11 -0
- data/src/json/origens/gladiador.json +11 -0
- data/src/json/origens/guarda.json +11 -0
- data/src/json/origens/herdeiro.json +11 -0
- data/src/json/origens/heroi_campones.json +11 -0
- data/src/json/origens/marujo.json +11 -0
- data/src/json/origens/mateiro.json +11 -0
- data/src/json/origens/membro_de_guilda.json +11 -0
- data/src/json/origens/mercador.json +11 -0
- data/src/json/origens/minerador.json +11 -0
- data/src/json/origens/nomade.json +11 -0
- data/src/json/origens/pivete.json +11 -0
- data/src/json/origens/refugiado.json +11 -0
- data/src/json/origens/seguidor.json +11 -0
- data/src/json/origens/selvagem.json +11 -0
- data/src/json/origens/soldado.json +11 -0
- data/src/json/origens/taverneiro.json +11 -0
- data/src/json/origens/trabalhador.json +11 -0
- data/src/json/poderes/habilidades_unicas_de_origem/a_prova_de_tudo.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/agua_no_feijao.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/alpinista_social.json +9 -0
- data/src/json/poderes/habilidades_unicas_de_origem/amigo_especial.json +16 -0
- data/src/json/poderes/habilidades_unicas_de_origem/antigo_mestre.json +15 -0
- data/src/json/poderes/habilidades_unicas_de_origem/busca_interior.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/confissao.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/coracao_heroico.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/cultura_exotica.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/desejo_de_liberdade.json +12 -0
- data/src/json/poderes/habilidades_unicas_de_origem/detetive.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/dom_artistico.json +10 -0
- data/src/json/poderes/habilidades_unicas_de_origem/escavador.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/esforcado.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/esse_cheiro.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/estoico.json +16 -0
- data/src/json/poderes/habilidades_unicas_de_origem/frutos_do_trabalho.json +19 -0
- data/src/json/poderes/habilidades_unicas_de_origem/gororoba.json +12 -0
- data/src/json/poderes/habilidades_unicas_de_origem/heranca.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/influencia_militar.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/lembrancas_graduais.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/medico_de_campo.json +12 -0
- data/src/json/poderes/habilidades_unicas_de_origem/membro_da_igreja.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/mochileiro.json +9 -0
- data/src/json/poderes/habilidades_unicas_de_origem/negociacao.json +12 -0
- data/src/json/poderes/habilidades_unicas_de_origem/palpite_fundamentado.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/pao_e_circo.json +11 -0
- data/src/json/poderes/habilidades_unicas_de_origem/passagem_de_navio.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/punguista.json +15 -0
- data/src/json/poderes/habilidades_unicas_de_origem/quebra_galho.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/rede_de_contatos.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/sangue_azul.json +12 -0
- data/src/json/poderes/habilidades_unicas_de_origem/truque_de_magica.json +14 -0
- data/src/json/poderes/habilidades_unicas_de_origem/vendedor_de_carcacas.json +13 -0
- data/src/json/poderes/habilidades_unicas_de_origem/vida_rustica.json +13 -0
- data/src/json/poderes/poderes_concedidos/afinidade_com_a_tormenta.json +14 -0
- data/src/json/poderes/poderes_concedidos/almejar_o_impossivel.json +13 -0
- data/src/json/poderes/poderes_concedidos/anfibio.json +13 -0
- data/src/json/poderes/poderes_concedidos/apostar_com_o_trapaceiro.json +12 -0
- data/src/json/poderes/poderes_concedidos/armas_da_ambicao.json +12 -0
- data/src/json/poderes/poderes_concedidos/arsenal_das_profundezas.json +14 -0
- data/src/json/poderes/poderes_concedidos/astucia_da_serpente.json +14 -0
- data/src/json/poderes/poderes_concedidos/ataque_piedoso.json +13 -0
- data/src/json/poderes/poderes_concedidos/aura_de_medo.json +17 -0
- data/src/json/poderes/poderes_concedidos/aura_de_paz.json +18 -0
- data/src/json/poderes/poderes_concedidos/aura_restauradora.json +13 -0
- data/src/json/poderes/poderes_concedidos/bencao_do_mana.json +10 -0
- data/src/json/poderes/poderes_concedidos/caricia_sombria.json +26 -0
- data/src/json/poderes/poderes_concedidos/centelha_magica.json +13 -0
- data/src/json/poderes/poderes_concedidos/compreender_os_ermos.json +17 -0
- data/src/json/poderes/poderes_concedidos/conhecimento_enciclopedico.json +13 -0
- data/src/json/poderes/poderes_concedidos/conjurar_arma.json +19 -0
- data/src/json/poderes/poderes_concedidos/coragem_total.json +11 -0
- data/src/json/poderes/poderes_concedidos/cura_gentil.json +10 -0
- data/src/json/poderes/poderes_concedidos/curandeira_perfeita.json +15 -0
- data/src/json/poderes/poderes_concedidos/dedo_verde.json +14 -0
- data/src/json/poderes/poderes_concedidos/descanso_natural.json +10 -0
- data/src/json/poderes/poderes_concedidos/dom_da_esperanca.json +15 -0
- data/src/json/poderes/poderes_concedidos/dom_da_imortalidade.json +8 -0
- data/src/json/poderes/poderes_concedidos/dom_da_profecia.json +6 -0
- data/src/json/poderes/poderes_concedidos/dom_da_ressurreicao.json +8 -0
- data/src/json/poderes/poderes_concedidos/dom_da_verdade.json +15 -0
- data/src/json/poderes/poderes_concedidos/escamas_draconicas.json +13 -0
- data/src/json/poderes/poderes_concedidos/escudo_magico.json +12 -0
- data/src/json/poderes/poderes_concedidos/espada_justiceira.json +13 -0
- data/src/json/poderes/poderes_concedidos/espada_solar.json +16 -0
- data/src/json/poderes/poderes_concedidos/extase_da_loucura.json +12 -0
- data/src/json/poderes/poderes_concedidos/familiar_ofidico.json +13 -0
- data/src/json/poderes/poderes_concedidos/farsa_do_fingidor.json +14 -0
- data/src/json/poderes/poderes_concedidos/fe_guerreira.json +20 -0
- data/src/json/poderes/poderes_concedidos/forma_de_macaco.json +20 -0
- data/src/json/poderes/poderes_concedidos/fulgor_solar.json +18 -0
- data/src/json/poderes/poderes_concedidos/furia_divina.json +20 -0
- data/src/json/poderes/poderes_concedidos/golpista_divino.json +14 -0
- data/src/json/poderes/poderes_concedidos/habitante_do_deserto.json +14 -0
- data/src/json/poderes/poderes_concedidos/inimigo_de_tenebra.json +14 -0
- data/src/json/poderes/poderes_concedidos/kiai_divino.json +13 -0
- data/src/json/poderes/poderes_concedidos/liberdade_divina.json +12 -0
- data/src/json/poderes/poderes_concedidos/manto_da_penumbra.json +14 -0
- data/src/json/poderes/poderes_concedidos/mente_analitica.json +16 -0
- data/src/json/poderes/poderes_concedidos/mente_vazia.json +16 -0
- data/src/json/poderes/poderes_concedidos/mestre_dos_mares.json +18 -0
- data/src/json/poderes/poderes_concedidos/olhar_amedrontador.json +14 -0
- data/src/json/poderes/poderes_concedidos/palavras_de_bondade.json +14 -0
- data/src/json/poderes/poderes_concedidos/percepcao_temporal.json +17 -0
- data/src/json/poderes/poderes_concedidos/pesquisa_abencoada.json +15 -0
- data/src/json/poderes/poderes_concedidos/poder_oculto.json +21 -0
- data/src/json/poderes/poderes_concedidos/presas_primordiais.json +23 -0
- data/src/json/poderes/poderes_concedidos/presas_venenosas.json +16 -0
- data/src/json/poderes/poderes_concedidos/rejeicao_divina.json +13 -0
- data/src/json/poderes/poderes_concedidos/reparar_injustica.json +13 -0
- data/src/json/poderes/poderes_concedidos/sangue_de_ferro.json +13 -0
- data/src/json/poderes/poderes_concedidos/sangue_ofidico.json +14 -0
- data/src/json/poderes/poderes_concedidos/servos_do_dragao.json +24 -0
- data/src/json/poderes/poderes_concedidos/sopro_do_mar.json +25 -0
- data/src/json/poderes/poderes_concedidos/sorte_dos_loucos.json +13 -0
- data/src/json/poderes/poderes_concedidos/talento_artistico.json +14 -0
- data/src/json/poderes/poderes_concedidos/teurgista_mistico.json +11 -0
- data/src/json/poderes/poderes_concedidos/tradicao_de_lin_wu.json +14 -0
- data/src/json/poderes/poderes_concedidos/transmissao_da_loucura.json +17 -0
- data/src/json/poderes/poderes_concedidos/tropas_duyshidakk.json +24 -0
- data/src/json/poderes/poderes_concedidos/urro_divino.json +13 -0
- data/src/json/poderes/poderes_concedidos/visao_nas_trevas.json +10 -0
- data/src/json/poderes/poderes_concedidos/voz_da_civilizacao.json +10 -0
- data/src/json/poderes/poderes_concedidos/voz_da_natureza.json +18 -0
- data/src/json/poderes/poderes_concedidos/voz_dos_monstros.json +11 -0
- data/src/json/poderes/poderes_concedidos/zumbificar.json +18 -0
- data/src/json/poderes/poderes_da_tormenta/anatomia_insana.json +12 -0
- data/src/json/poderes/poderes_da_tormenta/antenas.json +18 -0
- data/src/json/poderes/poderes_da_tormenta/armamento_aberrante.json +14 -0
- data/src/json/poderes/poderes_da_tormenta/articulacoes_flexiveis.json +15 -0
- data/src/json/poderes/poderes_da_tormenta/asas_insetoides.json +17 -0
- data/src/json/poderes/poderes_da_tormenta/carapaca.json +12 -0
- data/src/json/poderes/poderes_da_tormenta/corpo_aberrante.json +13 -0
- data/src/json/poderes/poderes_da_tormenta/cuspir_enxame.json +20 -0
- data/src/json/poderes/poderes_da_tormenta/dentes_afiados.json +19 -0
- data/src/json/poderes/poderes_da_tormenta/desprezar_a_realidade.json +21 -0
- data/src/json/poderes/poderes_da_tormenta/empunhadura_rubra.json +13 -0
- data/src/json/poderes/poderes_da_tormenta/fome_de_mana.json +11 -0
- data/src/json/poderes/poderes_da_tormenta/larva_explosiva.json +17 -0
- data/src/json/poderes/poderes_da_tormenta/legiao_aberrante.json +19 -0
- data/src/json/poderes/poderes_da_tormenta/maos_membranosas.json +18 -0
- data/src/json/poderes/poderes_da_tormenta/membros_estendidos.json +12 -0
- data/src/json/poderes/poderes_da_tormenta/membros_extras.json +27 -0
- data/src/json/poderes/poderes_da_tormenta/mente_aberrante.json +20 -0
- data/src/json/poderes/poderes_da_tormenta/olhos_vermelhos.json +12 -0
- data/src/json/poderes/poderes_da_tormenta/pele_corrompida.json +13 -0
- data/src/json/poderes/poderes_da_tormenta/sangue_acido.json +13 -0
- data/src/json/poderes/poderes_da_tormenta/visco_rubro.json +15 -0
- data/src/json/regras/alcances.json +33 -0
- data/src/json/regras/carga.json +47 -0
- data/src/json/regras/critico.json +32 -0
- data/src/json/regras/dinheiro_inicial.json +27 -0
- data/src/json/regras/empunhaduras.json +22 -0
- data/src/json/regras/habilidades_armas.json +37 -0
- data/src/json/regras/itens_superiores.json +19 -0
- data/src/json/regras/limites_uso.json +22 -0
- data/src/json/regras/moedas.json +32 -0
- data/src/json/regras/passos_dano.json +20 -0
- data/src/json/regras/proficiencias.json +32 -0
- data/src/json/regras/propositos_armas.json +37 -0
- data/src/json/regras/tipos_dano.json +25 -0
- data/src/json/regras/venenos.json +45 -0
- data/src/ruby/tormenta20/database.rb +224 -0
- data/src/ruby/tormenta20/models/arma.rb +123 -0
- data/src/ruby/tormenta20/models/armadura.rb +96 -0
- data/src/ruby/tormenta20/models/base.rb +19 -0
- data/src/ruby/tormenta20/models/classe.rb +134 -0
- data/src/ruby/tormenta20/models/divindade.rb +98 -0
- data/src/ruby/tormenta20/models/escudo.rb +59 -0
- data/src/ruby/tormenta20/models/item.rb +61 -0
- data/src/ruby/tormenta20/models/magia.rb +226 -0
- data/src/ruby/tormenta20/models/material_especial.rb +52 -0
- data/src/ruby/tormenta20/models/melhoria.rb +52 -0
- data/src/ruby/tormenta20/models/origem.rb +71 -0
- data/src/ruby/tormenta20/models/poder.rb +120 -0
- data/src/ruby/tormenta20/models/regra.rb +47 -0
- data/src/ruby/tormenta20/seeder.rb +267 -0
- data/src/ruby/tormenta20/version.rb +1 -1
- data/src/ruby/tormenta20.rb +169 -7
- data/src/schema/magia.schema.json +277 -0
- data/src/schema/tormenta20.sql +433 -0
- data/tasks/jsonlint.rb +6 -4
- data/tools/pdf_extractor/README.md +171 -0
- data/tools/pdf_extractor/__init__.py +17 -0
- data/tools/pdf_extractor/pdf_extractor.py +441 -0
- data/tools/pdf_extractor/pipeline.py +450 -0
- data/tools/pdf_extractor/prompts.py +789 -0
- data/tools/pdf_extractor/requirements.txt +4 -0
- metadata +488 -12
- data/src/ruby/open_struct_json.rb +0 -35
- data/src/ruby/tormenta20/classes.rb +0 -0
- data/src/ruby/tormenta20/equipment.rb +0 -0
- data/src/ruby/tormenta20/magias.rb +0 -35
- data/src/ruby/tormenta20/origins.rb +0 -0
- data/src/ruby/tormenta20/races.rb +0 -0
data/docs/divindades.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Divindades
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.divindades`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome da divindade |
|
|
11
|
+
| `title` | String | Titulo/epiteto |
|
|
12
|
+
| `description` | String | Descricao |
|
|
13
|
+
| `beliefs_objectives` | String | Crencas e objetivos |
|
|
14
|
+
| `holy_symbol` | String | Simbolo sagrado |
|
|
15
|
+
| `energy` | String | Tipo de energia: `positiva`, `negativa`, `qualquer` |
|
|
16
|
+
| `preferred_weapon` | String | Arma preferida |
|
|
17
|
+
| `devotees` | Hash | Devotos tipicos (races, classes) |
|
|
18
|
+
| `granted_powers` | Array | Lista de poderes concedidos |
|
|
19
|
+
| `obligations_restrictions` | String | Obrigacoes e restricoes |
|
|
20
|
+
|
|
21
|
+
## Scopes (Filtros)
|
|
22
|
+
|
|
23
|
+
### Por Tipo de Energia
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
Tormenta20.divindades.energia_positiva # Deuses de energia positiva
|
|
27
|
+
Tormenta20.divindades.energia_negativa # Deuses de energia negativa
|
|
28
|
+
Tormenta20.divindades.energia_qualquer # Deuses de energia neutra
|
|
29
|
+
Tormenta20.divindades.by_energy("positiva")
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Metodos de Instancia
|
|
33
|
+
|
|
34
|
+
```ruby
|
|
35
|
+
divindade = Tormenta20.divindades.find("khalmyr")
|
|
36
|
+
|
|
37
|
+
divindade.races # Racas devotas
|
|
38
|
+
# => ["humano", "anao"]
|
|
39
|
+
|
|
40
|
+
divindade.classes # Classes devotas
|
|
41
|
+
# => ["paladino", "guerreiro"]
|
|
42
|
+
|
|
43
|
+
divindade.to_h # Converte para Hash completo
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Exemplos
|
|
47
|
+
|
|
48
|
+
```ruby
|
|
49
|
+
# Listar todas as divindades
|
|
50
|
+
Tormenta20.divindades.all.each do |d|
|
|
51
|
+
puts "#{d.name} - #{d.title} (#{d.energy})"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Divindades de energia positiva
|
|
55
|
+
Tormenta20.divindades.energia_positiva.each do |d|
|
|
56
|
+
puts "#{d.name}: #{d.granted_powers.join(', ')}"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Buscar divindade especifica
|
|
60
|
+
khalmyr = Tormenta20.divindades.find("khalmyr")
|
|
61
|
+
puts khalmyr.name # => "Khalmyr"
|
|
62
|
+
puts khalmyr.title # => "O Deus da Justica"
|
|
63
|
+
puts khalmyr.preferred_weapon # => "Espada longa"
|
|
64
|
+
puts khalmyr.granted_powers # Lista de poderes concedidos
|
|
65
|
+
|
|
66
|
+
# Divindades que concedem um poder especifico
|
|
67
|
+
Tormenta20.divindades.select do |d|
|
|
68
|
+
d.granted_powers&.include?("cura_pelas_maos")
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Agrupar por tipo de energia
|
|
72
|
+
Tormenta20.divindades.group(:energy).count
|
|
73
|
+
# => {"positiva"=>12, "negativa"=>6, "qualquer"=>2}
|
|
74
|
+
|
|
75
|
+
# Divindades adoradas por uma raca
|
|
76
|
+
Tormenta20.divindades.select { |d| d.races.include?("elfo") }
|
|
77
|
+
```
|
data/docs/escudos.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Escudos
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.escudos`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome do escudo |
|
|
11
|
+
| `price` | String | Preco |
|
|
12
|
+
| `defense_bonus` | Integer | Bonus de defesa |
|
|
13
|
+
| `armor_penalty` | Integer | Penalidade de armadura |
|
|
14
|
+
| `weight` | String | Peso/espacos |
|
|
15
|
+
| `properties` | Array | Propriedades especiais |
|
|
16
|
+
| `description` | String | Descricao |
|
|
17
|
+
|
|
18
|
+
## Scopes (Filtros)
|
|
19
|
+
|
|
20
|
+
Este modelo nao possui scopes especificos. Use queries ActiveRecord padrao.
|
|
21
|
+
|
|
22
|
+
## Metodos de Instancia
|
|
23
|
+
|
|
24
|
+
```ruby
|
|
25
|
+
escudo = Tormenta20.escudos.first
|
|
26
|
+
|
|
27
|
+
escudo.to_h # Converte para Hash completo
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Exemplos
|
|
31
|
+
|
|
32
|
+
```ruby
|
|
33
|
+
# Listar todos os escudos
|
|
34
|
+
Tormenta20.escudos.all.each do |e|
|
|
35
|
+
puts "#{e.name}: +#{e.defense_bonus} Defesa, -#{e.armor_penalty} penalidade"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Buscar escudo especifico
|
|
39
|
+
escudo = Tormenta20.escudos.find("escudo_leve")
|
|
40
|
+
puts escudo.name # Nome
|
|
41
|
+
puts escudo.defense_bonus # Bonus de defesa
|
|
42
|
+
puts escudo.armor_penalty # Penalidade
|
|
43
|
+
|
|
44
|
+
# Escudo com maior bonus
|
|
45
|
+
Tormenta20.escudos.order(defense_bonus: :desc).first
|
|
46
|
+
|
|
47
|
+
# Escudos ordenados por preco
|
|
48
|
+
Tormenta20.escudos.order(:price)
|
|
49
|
+
```
|
data/docs/itens.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Itens
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.itens`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome do item |
|
|
11
|
+
| `category` | String | Categoria do item |
|
|
12
|
+
| `price` | String | Preco |
|
|
13
|
+
| `weight` | String | Peso/espacos |
|
|
14
|
+
| `description` | String | Descricao |
|
|
15
|
+
| `effects` | Array | Efeitos do item |
|
|
16
|
+
|
|
17
|
+
## Scopes (Filtros)
|
|
18
|
+
|
|
19
|
+
### Por Categoria
|
|
20
|
+
|
|
21
|
+
```ruby
|
|
22
|
+
Tormenta20.itens.by_category("alquimico")
|
|
23
|
+
Tormenta20.itens.by_category("ferramenta")
|
|
24
|
+
Tormenta20.itens.by_category("vestuario")
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Metodos de Instancia
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
item = Tormenta20.itens.first
|
|
31
|
+
|
|
32
|
+
item.to_h # Converte para Hash completo
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Exemplos
|
|
36
|
+
|
|
37
|
+
```ruby
|
|
38
|
+
# Listar todos os itens
|
|
39
|
+
Tormenta20.itens.all.each do |i|
|
|
40
|
+
puts "#{i.name}: #{i.price}"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Itens de uma categoria
|
|
44
|
+
Tormenta20.itens.by_category("alquimico").each do |i|
|
|
45
|
+
puts "#{i.name}: #{i.description}"
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Buscar item especifico
|
|
49
|
+
item = Tormenta20.itens.find("corda")
|
|
50
|
+
puts item.name # Nome
|
|
51
|
+
puts item.price # Preco
|
|
52
|
+
puts item.description # Descricao
|
|
53
|
+
|
|
54
|
+
# Itens ordenados por nome
|
|
55
|
+
Tormenta20.itens.order(:name)
|
|
56
|
+
|
|
57
|
+
# Agrupar itens por categoria
|
|
58
|
+
Tormenta20.itens.group(:category).count
|
|
59
|
+
```
|
data/docs/magias.md
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Magias (Spells)
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.magias`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome da magia |
|
|
11
|
+
| `type` | String | Tipo: `arcana`, `divina`, `universal` |
|
|
12
|
+
| `circle` | String | Circulo (1-5) |
|
|
13
|
+
| `school` | String | Escola de magia |
|
|
14
|
+
| `execution` | String | Tempo de execucao |
|
|
15
|
+
| `execution_details` | String | Detalhes da execucao |
|
|
16
|
+
| `range` | String | Alcance |
|
|
17
|
+
| `duration` | String | Duracao |
|
|
18
|
+
| `duration_details` | String | Detalhes da duracao |
|
|
19
|
+
| `description` | String | Descricao completa |
|
|
20
|
+
| `counterspell` | String | Contramagia |
|
|
21
|
+
| `enhancements` | Array | Aprimoramentos disponiveis |
|
|
22
|
+
| `effects` | Array | Efeitos da magia |
|
|
23
|
+
|
|
24
|
+
### Atributos de Alvo
|
|
25
|
+
|
|
26
|
+
| Atributo | Tipo | Descricao |
|
|
27
|
+
|----------|------|-----------|
|
|
28
|
+
| `target_amount` | Integer | Quantidade de alvos |
|
|
29
|
+
| `target_up_to` | Boolean | Ate X alvos |
|
|
30
|
+
| `target_type` | String | Tipo de alvo |
|
|
31
|
+
|
|
32
|
+
### Atributos de Efeito
|
|
33
|
+
|
|
34
|
+
| Atributo | Tipo | Descricao |
|
|
35
|
+
|----------|------|-----------|
|
|
36
|
+
| `effect` | String | Efeito principal |
|
|
37
|
+
| `effect_shape` | String | Forma do efeito |
|
|
38
|
+
| `effect_dimention` | String | Dimensao |
|
|
39
|
+
| `effect_size` | String | Tamanho |
|
|
40
|
+
| `effect_other_details` | String | Outros detalhes |
|
|
41
|
+
| `area_effect` | String | Efeito de area |
|
|
42
|
+
| `area_effect_details` | String | Detalhes da area |
|
|
43
|
+
|
|
44
|
+
### Atributos de Resistencia
|
|
45
|
+
|
|
46
|
+
| Atributo | Tipo | Descricao |
|
|
47
|
+
|----------|------|-----------|
|
|
48
|
+
| `resistence_effect` | String | Efeito da resistencia |
|
|
49
|
+
| `resistence_skill` | String | Pericia para resistencia |
|
|
50
|
+
|
|
51
|
+
### Atributos de Custo Extra
|
|
52
|
+
|
|
53
|
+
| Atributo | Tipo | Descricao |
|
|
54
|
+
|----------|------|-----------|
|
|
55
|
+
| `extra_costs_material_component` | String | Componente material |
|
|
56
|
+
| `extra_costs_material_cost` | String | Custo do componente |
|
|
57
|
+
| `extra_costs_pm_debuff` | Integer | Debuff de PM |
|
|
58
|
+
| `extra_costs_pm_sacrifice` | Integer | Sacrificio de PM |
|
|
59
|
+
|
|
60
|
+
## Scopes (Filtros)
|
|
61
|
+
|
|
62
|
+
### Por Tipo
|
|
63
|
+
|
|
64
|
+
```ruby
|
|
65
|
+
Tormenta20.magias.arcanas # Magias arcanas
|
|
66
|
+
Tormenta20.magias.divinas # Magias divinas
|
|
67
|
+
Tormenta20.magias.universais # Magias universais
|
|
68
|
+
Tormenta20.magias.by_type("arcana")
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Por Circulo
|
|
72
|
+
|
|
73
|
+
```ruby
|
|
74
|
+
Tormenta20.magias.by_circle("1") # Magias do 1o circulo
|
|
75
|
+
Tormenta20.magias.by_circle("5") # Magias do 5o circulo
|
|
76
|
+
Tormenta20.magias.do_circulo("3") # Alias em portugues
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Por Escola
|
|
80
|
+
|
|
81
|
+
```ruby
|
|
82
|
+
Tormenta20.magias.by_school("evoc") # Evocacao
|
|
83
|
+
Tormenta20.magias.by_school("abjur") # Abjuracao
|
|
84
|
+
Tormenta20.magias.by_school("adiv") # Adivinhacao
|
|
85
|
+
Tormenta20.magias.by_school("conv") # Convocacao
|
|
86
|
+
Tormenta20.magias.by_school("encan") # Encantamento
|
|
87
|
+
Tormenta20.magias.by_school("ilus") # Ilusao
|
|
88
|
+
Tormenta20.magias.by_school("necro") # Necromancia
|
|
89
|
+
Tormenta20.magias.by_school("trans") # Transmutacao
|
|
90
|
+
Tormenta20.magias.da_escola("evoc") # Alias em portugues
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Combinando Filtros
|
|
94
|
+
|
|
95
|
+
```ruby
|
|
96
|
+
# Magias arcanas do 3o circulo
|
|
97
|
+
Tormenta20.magias.arcanas.by_circle("3")
|
|
98
|
+
|
|
99
|
+
# Magias divinas de necromancia
|
|
100
|
+
Tormenta20.magias.divinas.by_school("necro")
|
|
101
|
+
|
|
102
|
+
# Magias universais do 1o circulo de abjuracao
|
|
103
|
+
Tormenta20.magias.universais.by_circle("1").by_school("abjur")
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Metodos de Classe
|
|
107
|
+
|
|
108
|
+
```ruby
|
|
109
|
+
Tormenta20.magias.todas # Todas as magias (alias para .all)
|
|
110
|
+
Tormenta20.magias.arcanas_list # Lista de arcanas
|
|
111
|
+
Tormenta20.magias.divinas_list # Lista de divinas
|
|
112
|
+
Tormenta20.magias.universais_list # Lista de universais
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Metodos de Instancia
|
|
116
|
+
|
|
117
|
+
```ruby
|
|
118
|
+
magia = Tormenta20.magias.find("bola_de_fogo")
|
|
119
|
+
|
|
120
|
+
magia.target_info # Hash com info do alvo
|
|
121
|
+
# => { amount: 1, up_to: false, type: "criatura" }
|
|
122
|
+
|
|
123
|
+
magia.effect_details_info # Hash com detalhes do efeito
|
|
124
|
+
# => { shape: "esfera", size: "6m" }
|
|
125
|
+
|
|
126
|
+
magia.resistence_info # Hash com info de resistencia
|
|
127
|
+
# => { effect: "reduz", skill: "Reflexos" }
|
|
128
|
+
|
|
129
|
+
magia.extra_costs_info # Hash com custos extras
|
|
130
|
+
# => { material_component: "enxofre", material_component_cost: "T$ 10" }
|
|
131
|
+
|
|
132
|
+
magia.to_h # Converte para Hash completo
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Exemplos
|
|
136
|
+
|
|
137
|
+
```ruby
|
|
138
|
+
# Buscar magia especifica
|
|
139
|
+
bola_de_fogo = Tormenta20.magias.find("bola_de_fogo")
|
|
140
|
+
puts bola_de_fogo.name # => "Bola de Fogo"
|
|
141
|
+
puts bola_de_fogo.circle # => "3"
|
|
142
|
+
puts bola_de_fogo.school # => "evoc"
|
|
143
|
+
|
|
144
|
+
# Listar todas as magias de cura
|
|
145
|
+
Tormenta20.magias.where("name LIKE ?", "%Cura%").each do |m|
|
|
146
|
+
puts "#{m.name} (#{m.type}, #{m.circle}o circulo)"
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Magias arcanas ordenadas por circulo
|
|
150
|
+
Tormenta20.magias.arcanas.order(:circle, :name).each do |m|
|
|
151
|
+
puts "#{m.circle}o - #{m.name}"
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Contar magias por escola
|
|
155
|
+
Tormenta20.magias.group(:school).count
|
|
156
|
+
# => {"evoc"=>25, "abjur"=>15, ...}
|
|
157
|
+
```
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Materiais Especiais
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.materiais_especiais`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome do material |
|
|
11
|
+
| `description` | String | Descricao |
|
|
12
|
+
| `applicable_to` | Array | Tipos de item aplicaveis |
|
|
13
|
+
| `price_modifier` | String | Modificador de preco |
|
|
14
|
+
| `effects` | Array | Efeitos do material |
|
|
15
|
+
|
|
16
|
+
## Scopes (Filtros)
|
|
17
|
+
|
|
18
|
+
Este modelo nao possui scopes especificos. Use queries ActiveRecord padrao.
|
|
19
|
+
|
|
20
|
+
## Metodos de Instancia
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
material = Tormenta20.materiais_especiais.first
|
|
24
|
+
|
|
25
|
+
material.to_h # Converte para Hash completo
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Exemplos
|
|
29
|
+
|
|
30
|
+
```ruby
|
|
31
|
+
# Listar todos os materiais especiais
|
|
32
|
+
Tormenta20.materiais_especiais.all.each do |m|
|
|
33
|
+
puts "#{m.name}: #{m.description}"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Buscar material especifico
|
|
37
|
+
adamante = Tormenta20.materiais_especiais.find("adamante")
|
|
38
|
+
puts adamante.name # => "Adamante"
|
|
39
|
+
puts adamante.price_modifier # Modificador de preco
|
|
40
|
+
puts adamante.applicable_to # Tipos de item aplicaveis
|
|
41
|
+
puts adamante.effects # Efeitos
|
|
42
|
+
|
|
43
|
+
# Materiais aplicaveis a armas
|
|
44
|
+
Tormenta20.materiais_especiais.select do |m|
|
|
45
|
+
m.applicable_to&.include?("arma")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Materiais ordenados por nome
|
|
49
|
+
Tormenta20.materiais_especiais.order(:name)
|
|
50
|
+
```
|
data/docs/melhorias.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Melhorias
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.melhorias`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome da melhoria |
|
|
11
|
+
| `description` | String | Descricao |
|
|
12
|
+
| `applicable_to` | Array | Tipos de item aplicaveis |
|
|
13
|
+
| `price` | String | Preco/custo |
|
|
14
|
+
| `effects` | Array | Efeitos da melhoria |
|
|
15
|
+
|
|
16
|
+
## Scopes (Filtros)
|
|
17
|
+
|
|
18
|
+
Este modelo nao possui scopes especificos. Use queries ActiveRecord padrao.
|
|
19
|
+
|
|
20
|
+
## Metodos de Instancia
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
melhoria = Tormenta20.melhorias.first
|
|
24
|
+
|
|
25
|
+
melhoria.to_h # Converte para Hash completo
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Exemplos
|
|
29
|
+
|
|
30
|
+
```ruby
|
|
31
|
+
# Listar todas as melhorias
|
|
32
|
+
Tormenta20.melhorias.all.each do |m|
|
|
33
|
+
puts "#{m.name}: #{m.price}"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Buscar melhoria especifica
|
|
37
|
+
melhoria = Tormenta20.melhorias.find("afiada")
|
|
38
|
+
puts melhoria.name # Nome
|
|
39
|
+
puts melhoria.description # Descricao
|
|
40
|
+
puts melhoria.price # Preco
|
|
41
|
+
puts melhoria.applicable_to # Tipos de item aplicaveis
|
|
42
|
+
|
|
43
|
+
# Melhorias para armas
|
|
44
|
+
Tormenta20.melhorias.select do |m|
|
|
45
|
+
m.applicable_to&.include?("arma")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Melhorias para armaduras
|
|
49
|
+
Tormenta20.melhorias.select do |m|
|
|
50
|
+
m.applicable_to&.include?("armadura")
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Melhorias ordenadas por preco
|
|
54
|
+
Tormenta20.melhorias.order(:price)
|
|
55
|
+
```
|
data/docs/origens.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Origens
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.origens`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome da origem |
|
|
11
|
+
| `description` | String | Descricao da origem |
|
|
12
|
+
| `items` | Array | Itens iniciais |
|
|
13
|
+
| `benefits` | Hash | Beneficios (skills, powers) |
|
|
14
|
+
| `unique_power` | Hash | Poder unico da origem |
|
|
15
|
+
|
|
16
|
+
## Scopes (Filtros)
|
|
17
|
+
|
|
18
|
+
```ruby
|
|
19
|
+
# Origens que possuem poder unico
|
|
20
|
+
Tormenta20.origens.with_unique_power
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Metodos de Instancia
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
origem = Tormenta20.origens.find("soldado")
|
|
27
|
+
|
|
28
|
+
origem.skills # Pericias treinadas pela origem
|
|
29
|
+
# => ["Fortitude", "Luta"]
|
|
30
|
+
|
|
31
|
+
origem.powers # Poderes concedidos pela origem
|
|
32
|
+
# => ["Proficiencia"]
|
|
33
|
+
|
|
34
|
+
origem.to_h # Converte para Hash completo
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Exemplos
|
|
38
|
+
|
|
39
|
+
```ruby
|
|
40
|
+
# Listar todas as origens
|
|
41
|
+
Tormenta20.origens.all.each do |o|
|
|
42
|
+
puts "#{o.name}: #{o.skills.join(', ')}"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Origens com poder unico
|
|
46
|
+
Tormenta20.origens.with_unique_power.each do |o|
|
|
47
|
+
puts "#{o.name}: #{o.unique_power['name']}"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Buscar origem especifica
|
|
51
|
+
soldado = Tormenta20.origens.find("soldado")
|
|
52
|
+
puts soldado.name # => "Soldado"
|
|
53
|
+
puts soldado.description # Descricao completa
|
|
54
|
+
puts soldado.items # Itens iniciais
|
|
55
|
+
|
|
56
|
+
# Origens que concedem uma pericia especifica
|
|
57
|
+
Tormenta20.origens.select { |o| o.skills.include?("Furtividade") }
|
|
58
|
+
|
|
59
|
+
# Contar origens com poder unico
|
|
60
|
+
Tormenta20.origens.with_unique_power.count
|
|
61
|
+
```
|
data/docs/poderes.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Poderes
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.poderes`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome do poder |
|
|
11
|
+
| `type` | String | Tipo do poder |
|
|
12
|
+
| `description` | String | Descricao |
|
|
13
|
+
| `effects` | Array | Efeitos do poder |
|
|
14
|
+
| `prerequisites` | Array | Pre-requisitos |
|
|
15
|
+
| `origin_id` | String | ID da origem associada (se aplicavel) |
|
|
16
|
+
| `deities` | Array | Divindades que concedem (se aplicavel) |
|
|
17
|
+
|
|
18
|
+
## Tipos de Poder
|
|
19
|
+
|
|
20
|
+
| Tipo | Descricao |
|
|
21
|
+
|------|-----------|
|
|
22
|
+
| `habilidade_unica_origem` | Habilidades unicas de origem |
|
|
23
|
+
| `poder_concedido` | Poderes concedidos por divindades |
|
|
24
|
+
| `poder_tormenta` | Poderes da Tormenta |
|
|
25
|
+
| `poder_classe` | Poderes de classe |
|
|
26
|
+
| `poder_geral` | Poderes gerais |
|
|
27
|
+
| `poder_combate` | Poderes de combate |
|
|
28
|
+
| `poder_destino` | Poderes de destino |
|
|
29
|
+
| `poder_magia` | Poderes de magia |
|
|
30
|
+
|
|
31
|
+
## Scopes (Filtros)
|
|
32
|
+
|
|
33
|
+
### Por Tipo
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
Tormenta20.poderes.habilidades_unicas # Habilidades unicas de origem
|
|
37
|
+
Tormenta20.poderes.poderes_concedidos # Poderes concedidos por divindades
|
|
38
|
+
Tormenta20.poderes.poderes_tormenta # Poderes da Tormenta
|
|
39
|
+
Tormenta20.poderes.poderes_classe # Poderes de classe
|
|
40
|
+
Tormenta20.poderes.poderes_gerais # Poderes gerais
|
|
41
|
+
Tormenta20.poderes.by_type("poder_combate")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Por Origem
|
|
45
|
+
|
|
46
|
+
```ruby
|
|
47
|
+
Tormenta20.poderes.by_origin("soldado") # Poderes da origem Soldado
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Por Divindade
|
|
51
|
+
|
|
52
|
+
```ruby
|
|
53
|
+
Tormenta20.poderes.by_deity("khalmyr") # Poderes concedidos por Khalmyr
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Metodos de Instancia
|
|
57
|
+
|
|
58
|
+
```ruby
|
|
59
|
+
poder = Tormenta20.poderes.find("ataque_poderoso")
|
|
60
|
+
|
|
61
|
+
poder.to_h # Converte para Hash completo
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Exemplos
|
|
65
|
+
|
|
66
|
+
```ruby
|
|
67
|
+
# Listar todos os poderes
|
|
68
|
+
Tormenta20.poderes.all.each do |p|
|
|
69
|
+
puts "#{p.name} (#{p.type})"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Poderes concedidos por divindades
|
|
73
|
+
Tormenta20.poderes.poderes_concedidos.each do |p|
|
|
74
|
+
puts "#{p.name}: #{p.deities&.join(', ')}"
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Poderes da Tormenta
|
|
78
|
+
Tormenta20.poderes.poderes_tormenta.each do |p|
|
|
79
|
+
puts "#{p.name}: #{p.description}"
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Habilidades unicas de uma origem especifica
|
|
83
|
+
Tormenta20.poderes.habilidades_unicas.by_origin("soldado").each do |p|
|
|
84
|
+
puts p.name
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Poderes com pre-requisitos
|
|
88
|
+
Tormenta20.poderes.where.not(prerequisites: nil).each do |p|
|
|
89
|
+
puts "#{p.name}: requer #{p.prerequisites}"
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Contar poderes por tipo
|
|
93
|
+
Tormenta20.poderes.group(:type).count
|
|
94
|
+
# => {"poder_concedido"=>50, "habilidade_unica_origem"=>35, ...}
|
|
95
|
+
|
|
96
|
+
# Buscar poderes por nome
|
|
97
|
+
Tormenta20.poderes.where("name LIKE ?", "%Furia%")
|
|
98
|
+
```
|
data/docs/regras.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Regras
|
|
2
|
+
|
|
3
|
+
Acesso: `Tormenta20.regras`
|
|
4
|
+
|
|
5
|
+
## Atributos
|
|
6
|
+
|
|
7
|
+
| Atributo | Tipo | Descricao |
|
|
8
|
+
|----------|------|-----------|
|
|
9
|
+
| `id` | String | Identificador unico |
|
|
10
|
+
| `name` | String | Nome da regra/tabela |
|
|
11
|
+
| `description` | String | Descricao |
|
|
12
|
+
| `data` | Hash | Dados estruturados da regra |
|
|
13
|
+
|
|
14
|
+
## Scopes (Filtros)
|
|
15
|
+
|
|
16
|
+
Este modelo nao possui scopes especificos. Use queries ActiveRecord padrao.
|
|
17
|
+
|
|
18
|
+
## Metodos de Instancia
|
|
19
|
+
|
|
20
|
+
```ruby
|
|
21
|
+
regra = Tormenta20.regras.first
|
|
22
|
+
|
|
23
|
+
regra.to_h # Converte para Hash completo
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Exemplos
|
|
27
|
+
|
|
28
|
+
```ruby
|
|
29
|
+
# Listar todas as regras
|
|
30
|
+
Tormenta20.regras.all.each do |r|
|
|
31
|
+
puts "#{r.name}: #{r.description}"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Buscar regra especifica
|
|
35
|
+
pericias = Tormenta20.regras.find("pericias")
|
|
36
|
+
puts pericias.name # => "Pericias"
|
|
37
|
+
puts pericias.description # Descricao
|
|
38
|
+
puts pericias.data # Dados estruturados (Hash)
|
|
39
|
+
|
|
40
|
+
# Acessar dados de uma regra
|
|
41
|
+
condicoes = Tormenta20.regras.find("condicoes")
|
|
42
|
+
condicoes.data.each do |key, value|
|
|
43
|
+
puts "#{key}: #{value}"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Buscar regras por nome
|
|
47
|
+
Tormenta20.regras.where("name LIKE ?", "%combate%")
|
|
48
|
+
|
|
49
|
+
# Regras ordenadas por nome
|
|
50
|
+
Tormenta20.regras.order(:name)
|
|
51
|
+
```
|