tormenta20 0.2.1 → 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
|
@@ -0,0 +1,789 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Prompts para extração de entidades do Tormenta 20.
|
|
3
|
+
Cada prompt inclui a estrutura JSON esperada e instruções específicas.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
SYSTEM_PROMPT = """Você é um assistente especializado em extrair dados estruturados do sistema de RPG Tormenta 20.
|
|
7
|
+
|
|
8
|
+
Regras gerais:
|
|
9
|
+
- Use slugs em snake_case para IDs (ex: "bola_de_fogo", "poder_de_arcanista")
|
|
10
|
+
- Referências a outras entidades usam slugs (ex: "powers": ["raio_arcano"])
|
|
11
|
+
- Campos de texto livre mantêm acentos e formatação original
|
|
12
|
+
- Atributos abreviados: for, des, con, int, sab, car
|
|
13
|
+
- Se um campo não existir no texto, use null
|
|
14
|
+
- Retorne APENAS o JSON, sem explicações ou markdown"""
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
PROMPTS = {
|
|
18
|
+
"racas": {
|
|
19
|
+
"instruction": """Extraia os dados da RAÇA a seguir e retorne um JSON válido.
|
|
20
|
+
|
|
21
|
+
Estrutura esperada:
|
|
22
|
+
{
|
|
23
|
+
"id": "slug_da_raca",
|
|
24
|
+
"name": "Nome da Raça",
|
|
25
|
+
"description": "Texto descritivo completo...",
|
|
26
|
+
"attributes": {
|
|
27
|
+
"for": 0,
|
|
28
|
+
"des": 0,
|
|
29
|
+
"con": 0,
|
|
30
|
+
"int": 0,
|
|
31
|
+
"sab": 0,
|
|
32
|
+
"car": 0
|
|
33
|
+
},
|
|
34
|
+
"size": "medio|pequeno|grande|enorme|minusculo",
|
|
35
|
+
"creature_type": "humanoide|construto|monstro|morto_vivo",
|
|
36
|
+
"speed": 9,
|
|
37
|
+
"abilities": [
|
|
38
|
+
{
|
|
39
|
+
"id": "slug_habilidade",
|
|
40
|
+
"name": "Nome da Habilidade",
|
|
41
|
+
"description": "Descrição completa...",
|
|
42
|
+
"effects": [
|
|
43
|
+
{ "type": "tipo_efeito", "value": "valor" }
|
|
44
|
+
],
|
|
45
|
+
"costs": [
|
|
46
|
+
{ "type": "PM", "value": 1 }
|
|
47
|
+
],
|
|
48
|
+
"choices": [
|
|
49
|
+
{ "id": "opcao", "description": "..." }
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
Notas:
|
|
56
|
+
- attributes: só inclua atributos mencionados, os demais são 0
|
|
57
|
+
- Se mencionar "+1 em Três Atributos Diferentes", use "any_three": 1
|
|
58
|
+
- speed padrão é 9 (9m), a menos que especificado
|
|
59
|
+
- creature_type padrão é "humanoide"
|
|
60
|
+
- costs e choices são opcionais, inclua só se existirem
|
|
61
|
+
|
|
62
|
+
TEXTO DA RAÇA:
|
|
63
|
+
""",
|
|
64
|
+
"example": """{
|
|
65
|
+
"id": "hynne",
|
|
66
|
+
"name": "Hynne",
|
|
67
|
+
"description": "Também conhecidos como halflings ou 'pequeninos'...",
|
|
68
|
+
"attributes": { "des": 2, "car": 1, "for": -1 },
|
|
69
|
+
"size": "pequeno",
|
|
70
|
+
"creature_type": "humanoide",
|
|
71
|
+
"speed": 6,
|
|
72
|
+
"abilities": [
|
|
73
|
+
{
|
|
74
|
+
"id": "arremessador",
|
|
75
|
+
"name": "Arremessador",
|
|
76
|
+
"description": "Quando faz um ataque à distância com uma funda ou uma arma de arremesso, seu dano aumenta em um passo.",
|
|
77
|
+
"effects": [{ "type": "damage_step_increase", "value": 1, "condition": "funda_ou_arremesso" }]
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}"""
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
"classes": {
|
|
84
|
+
"instruction": """Extraia os dados da CLASSE a seguir e retorne um JSON válido.
|
|
85
|
+
|
|
86
|
+
Estrutura esperada:
|
|
87
|
+
{
|
|
88
|
+
"id": "slug_da_classe",
|
|
89
|
+
"name": "Nome da Classe",
|
|
90
|
+
"description": "Texto descritivo...",
|
|
91
|
+
"hit_points": {
|
|
92
|
+
"initial": 8,
|
|
93
|
+
"per_level": 2,
|
|
94
|
+
"attribute": "con"
|
|
95
|
+
},
|
|
96
|
+
"mana_points_per_level": 6,
|
|
97
|
+
"skills": {
|
|
98
|
+
"mandatory": ["pericia1", "pericia2"],
|
|
99
|
+
"choose": {
|
|
100
|
+
"amount": 2,
|
|
101
|
+
"from": ["pericia3", "pericia4", ...]
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"proficiencies": ["armaduras_leves", "armas_simples", ...],
|
|
105
|
+
"famous_characters": ["Nome1", "Nome2", ...],
|
|
106
|
+
"class_features": [
|
|
107
|
+
{
|
|
108
|
+
"id": "slug_habilidade",
|
|
109
|
+
"name": "Nome da Habilidade",
|
|
110
|
+
"level": 1,
|
|
111
|
+
"description": "...",
|
|
112
|
+
"choices": [
|
|
113
|
+
{
|
|
114
|
+
"id": "opcao",
|
|
115
|
+
"name": "Nome Opção",
|
|
116
|
+
"description": "...",
|
|
117
|
+
"key_attribute": "int",
|
|
118
|
+
"special_rules": { ... }
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"powers": ["poder1", "poder2", ...]
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
Notas:
|
|
127
|
+
- Não inclua "poder_de_[classe]" nas class_features, é implícito
|
|
128
|
+
- powers: lista de slugs dos poderes disponíveis para a classe
|
|
129
|
+
- proficiencies: armaduras_leves, armaduras_pesadas, escudos, armas_simples, armas_marciais, armas_de_fogo, etc.
|
|
130
|
+
|
|
131
|
+
TEXTO DA CLASSE:
|
|
132
|
+
""",
|
|
133
|
+
"example": ""
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
"origens": {
|
|
137
|
+
"instruction": """Extraia os dados da ORIGEM a seguir e retorne um JSON válido.
|
|
138
|
+
|
|
139
|
+
Estrutura esperada:
|
|
140
|
+
{
|
|
141
|
+
"id": "slug_origem",
|
|
142
|
+
"name": "Nome da Origem",
|
|
143
|
+
"description": "Texto descritivo...",
|
|
144
|
+
"items": [
|
|
145
|
+
{ "id": "slug_item", "name": "Nome do Item" },
|
|
146
|
+
{ "id": "slug_item", "name": "Nome do Item", "value": 300 },
|
|
147
|
+
{ "choose": 1, "from": [{ "id": "item1", "name": "Item 1" }, ...] }
|
|
148
|
+
],
|
|
149
|
+
"benefits": {
|
|
150
|
+
"skills": ["pericia1", "pericia2"],
|
|
151
|
+
"powers": ["poder1", "poder2"],
|
|
152
|
+
"special_choices": [
|
|
153
|
+
{ "type": "poder_de_combate", "choose": 1 }
|
|
154
|
+
],
|
|
155
|
+
"choose": 2
|
|
156
|
+
},
|
|
157
|
+
"unique_power": {
|
|
158
|
+
"id": "slug_poder",
|
|
159
|
+
"name": "Nome do Poder",
|
|
160
|
+
"description": "Descrição completa...",
|
|
161
|
+
"effects": [...]
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
Notas:
|
|
166
|
+
- benefits.choose geralmente é 2
|
|
167
|
+
- special_choices para casos como "um poder de combate a sua escolha"
|
|
168
|
+
- unique_power é o poder exclusivo da origem
|
|
169
|
+
|
|
170
|
+
TEXTO DA ORIGEM:
|
|
171
|
+
""",
|
|
172
|
+
"example": ""
|
|
173
|
+
},
|
|
174
|
+
|
|
175
|
+
"divindades": {
|
|
176
|
+
"instruction": """Extraia os dados da DIVINDADE a seguir e retorne um JSON válido.
|
|
177
|
+
|
|
178
|
+
Estrutura esperada:
|
|
179
|
+
{
|
|
180
|
+
"id": "slug_divindade",
|
|
181
|
+
"name": "Nome",
|
|
182
|
+
"title": "Deus/Deusa de...",
|
|
183
|
+
"description": "Texto descritivo...",
|
|
184
|
+
"beliefs_and_goals": [
|
|
185
|
+
"Crença ou objetivo 1",
|
|
186
|
+
"Crença ou objetivo 2"
|
|
187
|
+
],
|
|
188
|
+
"holy_symbol": "Descrição do símbolo sagrado",
|
|
189
|
+
"channel_energy": "positiva|negativa|qualquer",
|
|
190
|
+
"preferred_weapon": "slug_arma",
|
|
191
|
+
"devotees": {
|
|
192
|
+
"races": ["raca1", "raca2"],
|
|
193
|
+
"classes": ["classe1", "classe2"]
|
|
194
|
+
},
|
|
195
|
+
"granted_powers": ["poder1", "poder2", "poder3", "poder4"],
|
|
196
|
+
"obligations_and_restrictions": [
|
|
197
|
+
{
|
|
198
|
+
"type": "tipo_restricao",
|
|
199
|
+
"description": "Descrição da restrição..."
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
Notas:
|
|
205
|
+
- channel_energy: "positiva", "negativa" ou "qualquer"
|
|
206
|
+
- Humanos e clérigos podem ser devotos de qualquer deus (não precisa listar)
|
|
207
|
+
- granted_powers: sempre 4 poderes concedidos
|
|
208
|
+
|
|
209
|
+
TEXTO DA DIVINDADE:
|
|
210
|
+
""",
|
|
211
|
+
"example": ""
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
"pericias": {
|
|
215
|
+
"instruction": """Extraia os dados da PERÍCIA a seguir e retorne um JSON válido.
|
|
216
|
+
|
|
217
|
+
Estrutura esperada:
|
|
218
|
+
{
|
|
219
|
+
"id": "slug_pericia",
|
|
220
|
+
"name": "Nome da Perícia",
|
|
221
|
+
"key_attribute": "for|des|con|int|sab|car",
|
|
222
|
+
"armor_penalty": true|false,
|
|
223
|
+
"trained_only": true|false,
|
|
224
|
+
"description": "Descrição geral...",
|
|
225
|
+
"uses": [
|
|
226
|
+
{
|
|
227
|
+
"id": "slug_uso",
|
|
228
|
+
"name": "Nome do Uso",
|
|
229
|
+
"cd": 15,
|
|
230
|
+
"trained_only": false,
|
|
231
|
+
"action": "padrao|movimento|completa|reacao|livre|parte_do_movimento",
|
|
232
|
+
"description": "Descrição do uso...",
|
|
233
|
+
"cd_table": [
|
|
234
|
+
{ "condition": "condição", "cd": 10 }
|
|
235
|
+
],
|
|
236
|
+
"effects": [
|
|
237
|
+
{ "on_success": "efeito" },
|
|
238
|
+
{ "on_fail": "efeito" },
|
|
239
|
+
{ "on_fail_by_5": "efeito" }
|
|
240
|
+
]
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
Notas:
|
|
246
|
+
- armor_penalty: true se tiver "Armadura" na linha de atributos
|
|
247
|
+
- trained_only: true se tiver "Treinada" na linha de atributos
|
|
248
|
+
- cd pode ser número ou "teste_oposto"
|
|
249
|
+
- cd_table para CDs variáveis
|
|
250
|
+
|
|
251
|
+
TEXTO DA PERÍCIA:
|
|
252
|
+
""",
|
|
253
|
+
"example": ""
|
|
254
|
+
},
|
|
255
|
+
|
|
256
|
+
"magias": {
|
|
257
|
+
"instruction": """Extraia os dados da MAGIA a seguir e retorne um JSON válido.
|
|
258
|
+
|
|
259
|
+
Estrutura esperada:
|
|
260
|
+
{
|
|
261
|
+
"id": "slug_magia",
|
|
262
|
+
"name": "Nome da Magia",
|
|
263
|
+
"type": "arcana|divina|universal",
|
|
264
|
+
"circle": 1,
|
|
265
|
+
"school": "abjur|adiv|conv|encan|evoc|ilusao|necro|trans",
|
|
266
|
+
"execution": "padrao|movimento|completa|livre|reacao",
|
|
267
|
+
"execution_details": null,
|
|
268
|
+
"range": "pessoal|toque|curto|medio|longo|ilimitado",
|
|
269
|
+
"target": {
|
|
270
|
+
"amount": 1,
|
|
271
|
+
"up_to": null,
|
|
272
|
+
"type": "criatura|objeto|area|voce"
|
|
273
|
+
},
|
|
274
|
+
"effect": "alvo|area|...",
|
|
275
|
+
"effect_details": {
|
|
276
|
+
"shape": "esfera|cone|linha|cubo",
|
|
277
|
+
"dimension": "raio|comprimento",
|
|
278
|
+
"size": "6m"
|
|
279
|
+
},
|
|
280
|
+
"duration": "instantanea|cena|sustentada|1_dia|permanente",
|
|
281
|
+
"duration_details": null,
|
|
282
|
+
"resistance": {
|
|
283
|
+
"effect": "anula|parcial|reduz_metade",
|
|
284
|
+
"skill": "fortitude|reflexos|vontade"
|
|
285
|
+
},
|
|
286
|
+
"extra_costs": null,
|
|
287
|
+
"description": "Descrição completa...",
|
|
288
|
+
"enhancements": [
|
|
289
|
+
{
|
|
290
|
+
"cost": 2,
|
|
291
|
+
"type": "aumenta|muda",
|
|
292
|
+
"description": "Descrição do aprimoramento..."
|
|
293
|
+
}
|
|
294
|
+
],
|
|
295
|
+
"effects": [
|
|
296
|
+
{
|
|
297
|
+
"type": "dano|bonus|cura|condicao",
|
|
298
|
+
"amount": "6d6",
|
|
299
|
+
"damage_type": "fogo|frio|eletricidade|acido|..."
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
Notas:
|
|
305
|
+
- circle: número de 1 a 5
|
|
306
|
+
- school: abjur (abjuração), adiv (adivinhação), conv (convocação), encan (encantamento), evoc (evocação), ilusao (ilusão), necro (necromancia), trans (transmutação)
|
|
307
|
+
- range: curto=6m, medio=30m, longo=90m
|
|
308
|
+
|
|
309
|
+
TEXTO DA MAGIA:
|
|
310
|
+
""",
|
|
311
|
+
"example": ""
|
|
312
|
+
},
|
|
313
|
+
|
|
314
|
+
"poderes": {
|
|
315
|
+
"instruction": """Extraia os dados do PODER a seguir e retorne um JSON válido.
|
|
316
|
+
|
|
317
|
+
Estrutura esperada:
|
|
318
|
+
{
|
|
319
|
+
"id": "slug_poder",
|
|
320
|
+
"name": "Nome do Poder",
|
|
321
|
+
"type": "poder_geral|habilidade_de_classe",
|
|
322
|
+
"sub_type": "poder_de_combate|poder_de_destino|poder_de_magia|poder_de_[classe]",
|
|
323
|
+
"description": "Descrição completa...",
|
|
324
|
+
"requirements": [
|
|
325
|
+
{
|
|
326
|
+
"type": "attr_value|character_lvl|skill_training|feature|power",
|
|
327
|
+
"attr": "for|des|con|int|sab|car",
|
|
328
|
+
"value": 13,
|
|
329
|
+
"skill": "slug_pericia",
|
|
330
|
+
"power": "slug_poder",
|
|
331
|
+
"feature": "slug_habilidade"
|
|
332
|
+
}
|
|
333
|
+
],
|
|
334
|
+
"effects": [
|
|
335
|
+
{
|
|
336
|
+
"type": "tipo_efeito",
|
|
337
|
+
"value": "valor",
|
|
338
|
+
"description": "descrição se necessário"
|
|
339
|
+
}
|
|
340
|
+
],
|
|
341
|
+
"costs": [
|
|
342
|
+
{ "type": "PM", "value": 1 },
|
|
343
|
+
{ "type": "acao", "value": "movimento" }
|
|
344
|
+
]
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
Notas:
|
|
348
|
+
- requirements pode ser null se não houver pré-requisitos
|
|
349
|
+
- effects pode ser null se o efeito for puramente descritivo
|
|
350
|
+
- costs pode ser null se não houver custo
|
|
351
|
+
|
|
352
|
+
TEXTO DO PODER:
|
|
353
|
+
""",
|
|
354
|
+
"example": ""
|
|
355
|
+
},
|
|
356
|
+
|
|
357
|
+
# ===========================================
|
|
358
|
+
# EQUIPAMENTO
|
|
359
|
+
# ===========================================
|
|
360
|
+
|
|
361
|
+
"armas": {
|
|
362
|
+
"instruction": """Extraia os dados da ARMA a seguir e retorne um JSON válido.
|
|
363
|
+
|
|
364
|
+
Estrutura esperada:
|
|
365
|
+
{
|
|
366
|
+
"id": "slug_arma",
|
|
367
|
+
"name": "Nome da Arma",
|
|
368
|
+
"category": "simples|marcial|exotica|fogo",
|
|
369
|
+
"type": "corpo_a_corpo|distancia|arremesso",
|
|
370
|
+
"price": 10,
|
|
371
|
+
"damage": "1d8",
|
|
372
|
+
"damage_type": "corte|perfuracao|impacto",
|
|
373
|
+
"critical": "19|20/x2|x3",
|
|
374
|
+
"range": null,
|
|
375
|
+
"weight": "1kg",
|
|
376
|
+
"properties": ["leve", "duas_maos", "alcance", ...],
|
|
377
|
+
"description": "Descrição se houver..."
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
Notas:
|
|
381
|
+
- price em T$ (tibares)
|
|
382
|
+
- properties: leve, pesada, duas_maos, versatil, alcance, arremesso, munição, recarga, etc.
|
|
383
|
+
- range só para armas de distância/arremesso (em metros)
|
|
384
|
+
|
|
385
|
+
TEXTO DA ARMA:
|
|
386
|
+
""",
|
|
387
|
+
"example": ""
|
|
388
|
+
},
|
|
389
|
+
|
|
390
|
+
"armaduras": {
|
|
391
|
+
"instruction": """Extraia os dados da ARMADURA ou ESCUDO a seguir e retorne um JSON válido.
|
|
392
|
+
|
|
393
|
+
Estrutura esperada:
|
|
394
|
+
{
|
|
395
|
+
"id": "slug_armadura",
|
|
396
|
+
"name": "Nome da Armadura",
|
|
397
|
+
"type": "leve|pesada|escudo",
|
|
398
|
+
"price": 100,
|
|
399
|
+
"defense_bonus": 4,
|
|
400
|
+
"armor_penalty": -2,
|
|
401
|
+
"weight": "10kg",
|
|
402
|
+
"description": "Descrição se houver..."
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
Notas:
|
|
406
|
+
- price em T$ (tibares)
|
|
407
|
+
- defense_bonus: bônus na Defesa
|
|
408
|
+
- armor_penalty: penalidade de armadura (valor negativo)
|
|
409
|
+
|
|
410
|
+
TEXTO DA ARMADURA:
|
|
411
|
+
""",
|
|
412
|
+
"example": ""
|
|
413
|
+
},
|
|
414
|
+
|
|
415
|
+
"itens_gerais": {
|
|
416
|
+
"instruction": """Extraia os dados do ITEM GERAL a seguir e retorne um JSON válido.
|
|
417
|
+
|
|
418
|
+
Estrutura esperada:
|
|
419
|
+
{
|
|
420
|
+
"id": "slug_item",
|
|
421
|
+
"name": "Nome do Item",
|
|
422
|
+
"category": "alimentacao|alquimia|vestuario|servico|transporte|hospedagem|animal|kit|ferramenta",
|
|
423
|
+
"price": 10,
|
|
424
|
+
"weight": "1kg",
|
|
425
|
+
"description": "Descrição do item..."
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
Notas:
|
|
429
|
+
- price em T$ (tibares)
|
|
430
|
+
- weight pode ser null para itens sem peso significativo
|
|
431
|
+
|
|
432
|
+
TEXTO DO ITEM:
|
|
433
|
+
""",
|
|
434
|
+
"example": ""
|
|
435
|
+
},
|
|
436
|
+
|
|
437
|
+
"itens_superiores": {
|
|
438
|
+
"instruction": """Extraia os dados do ITEM SUPERIOR a seguir e retorne um JSON válido.
|
|
439
|
+
|
|
440
|
+
Estrutura esperada:
|
|
441
|
+
{
|
|
442
|
+
"id": "slug_item",
|
|
443
|
+
"name": "Nome do Item Superior",
|
|
444
|
+
"base_item": "slug_item_base",
|
|
445
|
+
"type": "arma|armadura|escudo",
|
|
446
|
+
"price_modifier": "+500",
|
|
447
|
+
"effects": [
|
|
448
|
+
{
|
|
449
|
+
"type": "tipo_efeito",
|
|
450
|
+
"value": "valor",
|
|
451
|
+
"description": "descrição"
|
|
452
|
+
}
|
|
453
|
+
],
|
|
454
|
+
"description": "Descrição completa..."
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
Notas:
|
|
458
|
+
- price_modifier: custo adicional sobre o item base
|
|
459
|
+
- base_item: referência ao item base (se aplicável)
|
|
460
|
+
|
|
461
|
+
TEXTO DO ITEM SUPERIOR:
|
|
462
|
+
""",
|
|
463
|
+
"example": ""
|
|
464
|
+
},
|
|
465
|
+
|
|
466
|
+
# ===========================================
|
|
467
|
+
# CRIATURAS E PERIGOS
|
|
468
|
+
# ===========================================
|
|
469
|
+
|
|
470
|
+
"criaturas": {
|
|
471
|
+
"instruction": """Extraia os dados da CRIATURA a seguir e retorne um JSON válido.
|
|
472
|
+
|
|
473
|
+
Estrutura esperada:
|
|
474
|
+
{
|
|
475
|
+
"id": "slug_criatura",
|
|
476
|
+
"name": "Nome da Criatura",
|
|
477
|
+
"nd": 5,
|
|
478
|
+
"type": "animal|construto|espirito|humanode|monstro|morto_vivo",
|
|
479
|
+
"size": "minusculo|pequeno|medio|grande|enorme|colossal",
|
|
480
|
+
"attributes": {
|
|
481
|
+
"for": 10, "des": 10, "con": 10, "int": 10, "sab": 10, "car": 10
|
|
482
|
+
},
|
|
483
|
+
"defense": 15,
|
|
484
|
+
"hit_points": 50,
|
|
485
|
+
"speed": 9,
|
|
486
|
+
"special_movement": ["voo_18m", "natacao_9m", ...],
|
|
487
|
+
"resistances": ["fogo_10", ...],
|
|
488
|
+
"immunities": ["veneno", "medo", ...],
|
|
489
|
+
"vulnerabilities": ["frio", ...],
|
|
490
|
+
"senses": ["visao_no_escuro", "faro", ...],
|
|
491
|
+
"attacks": [
|
|
492
|
+
{
|
|
493
|
+
"name": "Mordida",
|
|
494
|
+
"bonus": "+10",
|
|
495
|
+
"damage": "2d6+5",
|
|
496
|
+
"damage_type": "perfuracao",
|
|
497
|
+
"special": "descrição se houver"
|
|
498
|
+
}
|
|
499
|
+
],
|
|
500
|
+
"abilities": [
|
|
501
|
+
{
|
|
502
|
+
"id": "slug_habilidade",
|
|
503
|
+
"name": "Nome",
|
|
504
|
+
"description": "Descrição..."
|
|
505
|
+
}
|
|
506
|
+
],
|
|
507
|
+
"treasure": "padrao|dobro|triplo|nenhum|especifico",
|
|
508
|
+
"description": "Descrição da criatura..."
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
Notas:
|
|
512
|
+
- nd: Nível de Desafio
|
|
513
|
+
- speed em metros
|
|
514
|
+
- treasure indica o tesouro padrão da criatura
|
|
515
|
+
|
|
516
|
+
TEXTO DA CRIATURA:
|
|
517
|
+
""",
|
|
518
|
+
"example": ""
|
|
519
|
+
},
|
|
520
|
+
|
|
521
|
+
"perigos": {
|
|
522
|
+
"instruction": """Extraia os dados do PERIGO a seguir e retorne um JSON válido.
|
|
523
|
+
|
|
524
|
+
Estrutura esperada:
|
|
525
|
+
{
|
|
526
|
+
"id": "slug_perigo",
|
|
527
|
+
"name": "Nome do Perigo",
|
|
528
|
+
"type": "armadilha|ambiente|magico",
|
|
529
|
+
"nd": 3,
|
|
530
|
+
"detection": {
|
|
531
|
+
"skill": "percepcao|investigacao",
|
|
532
|
+
"cd": 20
|
|
533
|
+
},
|
|
534
|
+
"disarm": {
|
|
535
|
+
"skill": "ladinagem|misticismo",
|
|
536
|
+
"cd": 20
|
|
537
|
+
},
|
|
538
|
+
"trigger": "Descrição do gatilho...",
|
|
539
|
+
"effect": "Descrição do efeito...",
|
|
540
|
+
"damage": "4d6",
|
|
541
|
+
"damage_type": "perfuracao|fogo|veneno|...",
|
|
542
|
+
"save": {
|
|
543
|
+
"skill": "reflexos|fortitude|vontade",
|
|
544
|
+
"cd": 15,
|
|
545
|
+
"effect": "metade|anula"
|
|
546
|
+
},
|
|
547
|
+
"description": "Descrição completa..."
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
TEXTO DO PERIGO:
|
|
551
|
+
""",
|
|
552
|
+
"example": ""
|
|
553
|
+
},
|
|
554
|
+
|
|
555
|
+
# ===========================================
|
|
556
|
+
# RECOMPENSAS E ITENS MÁGICOS
|
|
557
|
+
# ===========================================
|
|
558
|
+
|
|
559
|
+
"tesouros": {
|
|
560
|
+
"instruction": """Extraia os dados do TESOURO a seguir e retorne um JSON válido.
|
|
561
|
+
|
|
562
|
+
Estrutura esperada:
|
|
563
|
+
{
|
|
564
|
+
"id": "slug_tesouro",
|
|
565
|
+
"name": "Nome do Tesouro",
|
|
566
|
+
"category": "gema|joia|arte|material|outros",
|
|
567
|
+
"value": 100,
|
|
568
|
+
"value_range": { "min": 50, "max": 150 },
|
|
569
|
+
"description": "Descrição..."
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
Notas:
|
|
573
|
+
- value em T$ (tibares)
|
|
574
|
+
- value_range para itens com valor variável
|
|
575
|
+
|
|
576
|
+
TEXTO DO TESOURO:
|
|
577
|
+
""",
|
|
578
|
+
"example": ""
|
|
579
|
+
},
|
|
580
|
+
|
|
581
|
+
"itens_magicos_armas": {
|
|
582
|
+
"instruction": """Extraia os dados da ARMA MÁGICA a seguir e retorne um JSON válido.
|
|
583
|
+
|
|
584
|
+
Estrutura esperada:
|
|
585
|
+
{
|
|
586
|
+
"id": "slug_arma_magica",
|
|
587
|
+
"name": "Nome da Arma",
|
|
588
|
+
"type": "arma",
|
|
589
|
+
"rarity": "menor|medio|maior",
|
|
590
|
+
"aura": "abjur|adiv|conv|encan|evoc|ilusao|necro|trans",
|
|
591
|
+
"price": 5000,
|
|
592
|
+
"base_item": "espada_longa",
|
|
593
|
+
"enhancement_bonus": 1,
|
|
594
|
+
"abilities": [
|
|
595
|
+
{
|
|
596
|
+
"id": "slug_habilidade",
|
|
597
|
+
"name": "Nome",
|
|
598
|
+
"description": "Descrição..."
|
|
599
|
+
}
|
|
600
|
+
],
|
|
601
|
+
"description": "Descrição completa..."
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
TEXTO DA ARMA MÁGICA:
|
|
605
|
+
""",
|
|
606
|
+
"example": ""
|
|
607
|
+
},
|
|
608
|
+
|
|
609
|
+
"itens_magicos_armaduras": {
|
|
610
|
+
"instruction": """Extraia os dados da ARMADURA/ESCUDO MÁGICO a seguir e retorne um JSON válido.
|
|
611
|
+
|
|
612
|
+
Estrutura esperada:
|
|
613
|
+
{
|
|
614
|
+
"id": "slug_armadura_magica",
|
|
615
|
+
"name": "Nome da Armadura",
|
|
616
|
+
"type": "armadura|escudo",
|
|
617
|
+
"rarity": "menor|medio|maior",
|
|
618
|
+
"aura": "abjur|adiv|conv|encan|evoc|ilusao|necro|trans",
|
|
619
|
+
"price": 5000,
|
|
620
|
+
"base_item": "cota_de_malha",
|
|
621
|
+
"enhancement_bonus": 1,
|
|
622
|
+
"abilities": [
|
|
623
|
+
{
|
|
624
|
+
"id": "slug_habilidade",
|
|
625
|
+
"name": "Nome",
|
|
626
|
+
"description": "Descrição..."
|
|
627
|
+
}
|
|
628
|
+
],
|
|
629
|
+
"description": "Descrição completa..."
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
TEXTO DA ARMADURA MÁGICA:
|
|
633
|
+
""",
|
|
634
|
+
"example": ""
|
|
635
|
+
},
|
|
636
|
+
|
|
637
|
+
"pocoes_pergaminhos": {
|
|
638
|
+
"instruction": """Extraia os dados da POÇÃO ou PERGAMINHO a seguir e retorne um JSON válido.
|
|
639
|
+
|
|
640
|
+
Estrutura esperada:
|
|
641
|
+
{
|
|
642
|
+
"id": "slug_item",
|
|
643
|
+
"name": "Nome do Item",
|
|
644
|
+
"type": "pocao|pergaminho",
|
|
645
|
+
"spell": "slug_magia",
|
|
646
|
+
"spell_circle": 1,
|
|
647
|
+
"price": 50,
|
|
648
|
+
"description": "Descrição..."
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
Notas:
|
|
652
|
+
- spell: referência à magia contida
|
|
653
|
+
- price em T$ (tibares)
|
|
654
|
+
|
|
655
|
+
TEXTO DO ITEM:
|
|
656
|
+
""",
|
|
657
|
+
"example": ""
|
|
658
|
+
},
|
|
659
|
+
|
|
660
|
+
"acessorios": {
|
|
661
|
+
"instruction": """Extraia os dados do ACESSÓRIO MÁGICO a seguir e retorne um JSON válido.
|
|
662
|
+
|
|
663
|
+
Estrutura esperada:
|
|
664
|
+
{
|
|
665
|
+
"id": "slug_acessorio",
|
|
666
|
+
"name": "Nome do Acessório",
|
|
667
|
+
"slot": "cabeca|olhos|pescoco|ombros|torso|corpo|cintura|bracos|maos|anel|pes|nenhum",
|
|
668
|
+
"rarity": "menor|medio|maior",
|
|
669
|
+
"aura": "abjur|adiv|conv|encan|evoc|ilusao|necro|trans",
|
|
670
|
+
"price": 2000,
|
|
671
|
+
"abilities": [
|
|
672
|
+
{
|
|
673
|
+
"id": "slug_habilidade",
|
|
674
|
+
"name": "Nome",
|
|
675
|
+
"description": "Descrição...",
|
|
676
|
+
"activation": "constante|uso|comando",
|
|
677
|
+
"uses_per_day": null
|
|
678
|
+
}
|
|
679
|
+
],
|
|
680
|
+
"description": "Descrição completa..."
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
Notas:
|
|
684
|
+
- slot: local do corpo onde o acessório é usado
|
|
685
|
+
- activation: como a habilidade é ativada
|
|
686
|
+
|
|
687
|
+
TEXTO DO ACESSÓRIO:
|
|
688
|
+
""",
|
|
689
|
+
"example": ""
|
|
690
|
+
},
|
|
691
|
+
|
|
692
|
+
"artefatos": {
|
|
693
|
+
"instruction": """Extraia os dados do ARTEFATO a seguir e retorne um JSON válido.
|
|
694
|
+
|
|
695
|
+
Estrutura esperada:
|
|
696
|
+
{
|
|
697
|
+
"id": "slug_artefato",
|
|
698
|
+
"name": "Nome do Artefato",
|
|
699
|
+
"type": "arma|armadura|acessorio|outro",
|
|
700
|
+
"slot": "cabeca|maos|nenhum|...",
|
|
701
|
+
"aura": "forte",
|
|
702
|
+
"abilities": [
|
|
703
|
+
{
|
|
704
|
+
"id": "slug_habilidade",
|
|
705
|
+
"name": "Nome",
|
|
706
|
+
"description": "Descrição..."
|
|
707
|
+
}
|
|
708
|
+
],
|
|
709
|
+
"drawbacks": [
|
|
710
|
+
{
|
|
711
|
+
"description": "Desvantagem ou maldição..."
|
|
712
|
+
}
|
|
713
|
+
],
|
|
714
|
+
"destruction": "Como destruir o artefato...",
|
|
715
|
+
"history": "História/lore do artefato...",
|
|
716
|
+
"description": "Descrição completa..."
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
Notas:
|
|
720
|
+
- Artefatos são itens únicos e lendários
|
|
721
|
+
- drawbacks: desvantagens ou maldições do artefato
|
|
722
|
+
- destruction: condições para destruir (se aplicável)
|
|
723
|
+
|
|
724
|
+
TEXTO DO ARTEFATO:
|
|
725
|
+
""",
|
|
726
|
+
"example": ""
|
|
727
|
+
},
|
|
728
|
+
|
|
729
|
+
"condicoes": {
|
|
730
|
+
"instruction": """Extraia os dados da CONDIÇÃO a seguir e retorne um JSON válido.
|
|
731
|
+
|
|
732
|
+
Estrutura esperada:
|
|
733
|
+
{
|
|
734
|
+
"id": "slug_condicao",
|
|
735
|
+
"name": "Nome da Condição",
|
|
736
|
+
"description": "Descrição completa da condição...",
|
|
737
|
+
"effects": [
|
|
738
|
+
{
|
|
739
|
+
"type": "penalty|bonus|restriction|immunity",
|
|
740
|
+
"target": "ataque|defesa|deslocamento|pericias|...",
|
|
741
|
+
"value": -2,
|
|
742
|
+
"description": "Descrição do efeito"
|
|
743
|
+
}
|
|
744
|
+
],
|
|
745
|
+
"duration": "ate_curar|1_rodada|cena|permanente",
|
|
746
|
+
"removal": "Como remover a condição..."
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
Notas:
|
|
750
|
+
- effects: lista de efeitos mecânicos da condição
|
|
751
|
+
- removal: condições para remover (se aplicável)
|
|
752
|
+
|
|
753
|
+
TEXTO DA CONDIÇÃO:
|
|
754
|
+
""",
|
|
755
|
+
"example": ""
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
# Mapeamento de tipos para prompts (para tipos que compartilham estrutura)
|
|
761
|
+
PROMPT_FALLBACKS = {
|
|
762
|
+
"poderes_combate": "poderes",
|
|
763
|
+
"poderes_destino": "poderes",
|
|
764
|
+
"poderes_magia": "poderes",
|
|
765
|
+
"poderes_concedidos": "poderes",
|
|
766
|
+
"poderes_tormenta": "poderes",
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
def get_prompt(entity_type: str, content: str) -> tuple[str, str]:
|
|
771
|
+
"""
|
|
772
|
+
Retorna o prompt formatado para uma entidade.
|
|
773
|
+
|
|
774
|
+
Returns:
|
|
775
|
+
Tupla com (system_prompt, user_prompt)
|
|
776
|
+
"""
|
|
777
|
+
# Usa fallback se o tipo não tiver prompt específico
|
|
778
|
+
prompt_type = PROMPT_FALLBACKS.get(entity_type, entity_type)
|
|
779
|
+
|
|
780
|
+
if prompt_type not in PROMPTS:
|
|
781
|
+
raise ValueError(f"Tipo de entidade desconhecido: {entity_type}. Tipos disponíveis: {list(PROMPTS.keys())}")
|
|
782
|
+
|
|
783
|
+
prompt_config = PROMPTS[prompt_type]
|
|
784
|
+
user_prompt = prompt_config["instruction"] + content
|
|
785
|
+
|
|
786
|
+
if prompt_config.get("example"):
|
|
787
|
+
user_prompt += f"\n\nEXEMPLO DE OUTPUT:\n{prompt_config['example']}"
|
|
788
|
+
|
|
789
|
+
return SYSTEM_PROMPT, user_prompt
|