tormenta20 0.2.11 → 0.2.15
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/.ruby-version +1 -0
- data/README.md +146 -40
- data/db/schema.sql +44 -0
- data/db/tormenta20.sqlite3 +0 -0
- data/docs/armaduras.md +13 -13
- data/docs/armas.md +14 -14
- data/docs/condicoes.md +77 -0
- data/docs/divindades.md +14 -14
- data/docs/escudos.md +12 -12
- data/docs/indice_remissivo.md +105 -0
- data/docs/itens.md +9 -9
- data/docs/livros.md +43 -0
- data/docs/magias.md +41 -41
- data/docs/materiais_especiais.md +11 -11
- data/docs/melhorias.md +12 -12
- data/docs/poderes.md +12 -12
- data/docs/racas.md +68 -0
- data/docs/regras.md +7 -7
- data/exe/tormenta20 +3 -3
- data/src/json/indice_remissivo/t20_eja.json +1100 -0
- data/src/json/livros/t20_eja.json +5 -0
- data/src/json/poderes/poderes_gerais/poderes_de_combate/arremesso_multiplo.json +27 -0
- data/src/json/poderes/poderes_gerais/poderes_de_combate/ataque_com_escudo.json +21 -0
- data/src/json/poderes/poderes_gerais/poderes_de_combate/estilo_de_arma_longa.json +28 -0
- data/src/json/poderes/poderes_gerais/poderes_de_combate/estilo_de_uma_arma.json +2 -2
- data/src/json/poderes/poderes_gerais/poderes_de_combate/piqueiro.json +21 -0
- data/src/json/poderes/poderes_gerais/poderes_de_destino/ao_sabor_do_destino.json +2 -2
- data/src/json/poderes/poderes_gerais/poderes_de_destino/costas_largas.json +28 -0
- data/src/json/poderes/poderes_gerais/poderes_de_destino/inventario_organizado.json +22 -0
- data/src/ruby/tormenta20/concerns/book_referenceable.rb +52 -0
- data/src/ruby/tormenta20/database.rb +1 -0
- data/src/ruby/tormenta20/models/base.rb +2 -0
- data/src/ruby/tormenta20/models/indice_remissivo.rb +57 -0
- data/src/ruby/tormenta20/models/livro.rb +29 -0
- data/src/ruby/tormenta20/models/raca.rb +1 -0
- data/src/ruby/tormenta20/seeder.rb +0 -1
- data/src/ruby/tormenta20/version.rb +1 -1
- data/src/ruby/tormenta20.rb +17 -0
- metadata +22 -3
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "arremesso_multiplo",
|
|
3
|
+
"name": "Arremesso Múltiplo",
|
|
4
|
+
"type": "poder_geral",
|
|
5
|
+
"sub_type": "poder_de_combate",
|
|
6
|
+
"description": "Uma vez por rodada, quando faz um ataque com uma arma de arremesso, você pode gastar 1 PM para fazer um ataque adicional contra o mesmo alvo, arremessando outra arma de arremesso.",
|
|
7
|
+
"requirements": [
|
|
8
|
+
{
|
|
9
|
+
"type": "attr_value",
|
|
10
|
+
"sub_type": "hard",
|
|
11
|
+
"attr": "des",
|
|
12
|
+
"value": 13
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "power",
|
|
16
|
+
"sub_type": "hard",
|
|
17
|
+
"power": "estilo_de_arremeso"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"effects": [
|
|
21
|
+
{
|
|
22
|
+
"type": "active",
|
|
23
|
+
"cost": "1 PM",
|
|
24
|
+
"trigger": "ataque_arremesso"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "ataque_com_escudo",
|
|
3
|
+
"name": "Ataque com Escudo",
|
|
4
|
+
"type": "poder_geral",
|
|
5
|
+
"sub_type": "poder_de_combate",
|
|
6
|
+
"description": "Uma vez por rodada, se estiver empunhando um escudo e fizer a ação agredir, você pode gastar 1 PM para fazer um ataque corpo a corpo extra com o escudo. Este ataque não faz você perder o bônus do escudo na Defesa.",
|
|
7
|
+
"requirements": [
|
|
8
|
+
{
|
|
9
|
+
"type": "power",
|
|
10
|
+
"sub_type": "hard",
|
|
11
|
+
"power": "estilo_de_arma_e_escudo"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"effects": [
|
|
15
|
+
{
|
|
16
|
+
"type": "active",
|
|
17
|
+
"cost": "1 PM",
|
|
18
|
+
"trigger": "acao_agredir"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "estilo_de_arma_longa",
|
|
3
|
+
"name": "Estilo de Arma Longa",
|
|
4
|
+
"type": "poder_geral",
|
|
5
|
+
"sub_type": "poder_de_combate",
|
|
6
|
+
"description": "Você recebe +2 em testes de ataque com armas alongadas e pode atacar alvos adjacentes com essas armas.",
|
|
7
|
+
"requirements": [
|
|
8
|
+
{
|
|
9
|
+
"type": "attr_value",
|
|
10
|
+
"sub_type": "hard",
|
|
11
|
+
"attr": "for",
|
|
12
|
+
"value": 13
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "skill_training",
|
|
16
|
+
"sub_type": "hard",
|
|
17
|
+
"skill": "luta"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"effects": [
|
|
21
|
+
{
|
|
22
|
+
"type": "attack_improvement",
|
|
23
|
+
"value": 2,
|
|
24
|
+
"duration": "permanente",
|
|
25
|
+
"requirements": { "weapon": "arma_longa" }
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"id": "",
|
|
3
|
-
"name": "",
|
|
2
|
+
"id": "estilo_de_uma_arma",
|
|
3
|
+
"name": "Estilo de Uma Arma",
|
|
4
4
|
"type": "poder_geral",
|
|
5
5
|
"sub_type": "poder_de_combate",
|
|
6
6
|
"description": "Se estiver usando uma arma corpo a corpo em uma das mãos e nada na outra, você recebe +2 na Defesa e nos testes de ataque com essa arma (exceto ataques desarmados)",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "piqueiro",
|
|
3
|
+
"name": "Piqueiro",
|
|
4
|
+
"type": "poder_geral",
|
|
5
|
+
"sub_type": "poder_de_combate",
|
|
6
|
+
"description": "Uma vez por rodada, se estiver empunhando uma arma alongada e um inimigo entrar voluntariamente em seu alcance corpo a corpo, você pode gastar 1 PM para fazer um ataque corpo a corpo contra este oponente com esta arma. Se o oponente tiver se aproximado fazendo uma investida, seu ataque causa dois dados de dano extra do mesmo tipo.",
|
|
7
|
+
"requirements": [
|
|
8
|
+
{
|
|
9
|
+
"type": "power",
|
|
10
|
+
"sub_type": "hard",
|
|
11
|
+
"power": "estilo_de_arma_longa"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"effects": [
|
|
15
|
+
{
|
|
16
|
+
"type": "active",
|
|
17
|
+
"cost": "1 PM",
|
|
18
|
+
"trigger": "inimigo_entra_no_alcance"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "costas_largas",
|
|
3
|
+
"name": "Costas Largas",
|
|
4
|
+
"type": "poder_geral",
|
|
5
|
+
"sub_type": "poder_de_destino",
|
|
6
|
+
"description": "Seu limite de carga aumenta em 5 espaços e você pode se beneficiar de um item vestido adicional.",
|
|
7
|
+
"requirements": [
|
|
8
|
+
{
|
|
9
|
+
"type": "attr_value",
|
|
10
|
+
"sub_type": "hard",
|
|
11
|
+
"attr": "con",
|
|
12
|
+
"value": 13
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "attr_value",
|
|
16
|
+
"sub_type": "hard",
|
|
17
|
+
"attr": "for",
|
|
18
|
+
"value": 13
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"effects": [
|
|
22
|
+
{
|
|
23
|
+
"type": "inventory_improvement",
|
|
24
|
+
"value": 5,
|
|
25
|
+
"duration": "permanente"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "inventario_organizado",
|
|
3
|
+
"name": "Inventário Organizado",
|
|
4
|
+
"type": "poder_geral",
|
|
5
|
+
"sub_type": "poder_de_destino",
|
|
6
|
+
"description": "Você soma sua Inteligência no limite de espaços que pode carregar. Para você, itens muito leves ou pequenos, que normalmente ocupam meio espaço, em vez disso ocupam 1/4 de espaço.",
|
|
7
|
+
"requirements": [
|
|
8
|
+
{
|
|
9
|
+
"type": "attr_value",
|
|
10
|
+
"sub_type": "hard",
|
|
11
|
+
"attr": "int",
|
|
12
|
+
"value": 13
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"effects": [
|
|
16
|
+
{
|
|
17
|
+
"type": "inventory_improvement",
|
|
18
|
+
"value": "int_modifier",
|
|
19
|
+
"duration": "permanente"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tormenta20
|
|
4
|
+
module Concerns
|
|
5
|
+
# Mixin that gives any gem model access to its book/page reference.
|
|
6
|
+
#
|
|
7
|
+
# Methods are lazy-loaded: the database is queried on the first call
|
|
8
|
+
# and the result is memoized for the lifetime of the instance.
|
|
9
|
+
#
|
|
10
|
+
# @example
|
|
11
|
+
# guerreiro = Tormenta20.classes.find("guerreiro")
|
|
12
|
+
# guerreiro.book_reference # => "T20 - EJA, p. 56"
|
|
13
|
+
# guerreiro.page # => 56
|
|
14
|
+
# guerreiro.book # => "T20 - EJA"
|
|
15
|
+
# guerreiro.full_book # => "Tormenta 20 - Edição Jogo do Ano"
|
|
16
|
+
module BookReferenceable
|
|
17
|
+
# "T20 - EJA, p. 215" — nil se não houver entrada no índice.
|
|
18
|
+
def book_reference
|
|
19
|
+
entry = _indice_entry
|
|
20
|
+
return nil unless entry
|
|
21
|
+
|
|
22
|
+
"#{entry.livro.nome_curto}, p. #{entry.pagina}"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Número da página (Integer) — nil se não indexado.
|
|
26
|
+
def page
|
|
27
|
+
_indice_entry&.pagina
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Nome curto do livro (String) — nil se não indexado.
|
|
31
|
+
def book
|
|
32
|
+
_indice_entry&.livro&.nome_curto
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Nome completo do livro (String) — nil se não indexado.
|
|
36
|
+
def full_book
|
|
37
|
+
_indice_entry&.livro&.nome
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
private
|
|
41
|
+
|
|
42
|
+
def _indice_entry
|
|
43
|
+
# Memoize por instância; reset se o id mudar.
|
|
44
|
+
return @_indice_entry if defined?(@_indice_entry)
|
|
45
|
+
|
|
46
|
+
@_indice_entry = Models::IndiceRemissivo
|
|
47
|
+
.includes(:livro)
|
|
48
|
+
.find_by(tabela: self.class.table_name, registro_id: id.to_s)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_record"
|
|
4
|
+
|
|
5
|
+
module Tormenta20
|
|
6
|
+
module Models
|
|
7
|
+
# Entrada do índice remissivo de um livro.
|
|
8
|
+
#
|
|
9
|
+
# Cada linha representa um termo do índice associado a uma página.
|
|
10
|
+
# Os campos +tabela+ e +registro_id+ são opcionais e preenchidos quando
|
|
11
|
+
# o termo é vinculado a um registro concreto de outra tabela da gem.
|
|
12
|
+
#
|
|
13
|
+
# @example Buscar página de "Guerreiro" no T20 EJA
|
|
14
|
+
# Tormenta20::Models::IndiceRemissivo
|
|
15
|
+
# .where(livro_id: "t20_eja", tabela: "classes", registro_id: "guerreiro")
|
|
16
|
+
# .pluck(:pagina)
|
|
17
|
+
#
|
|
18
|
+
# @example Buscar todas as entradas de um livro que mencionam "Magia"
|
|
19
|
+
# Tormenta20::Models::IndiceRemissivo
|
|
20
|
+
# .where(livro_id: "t20_eja")
|
|
21
|
+
# .where("termo LIKE ?", "%Magia%")
|
|
22
|
+
class IndiceRemissivo < Base
|
|
23
|
+
self.table_name = "indice_remissivo"
|
|
24
|
+
self.primary_key = "id"
|
|
25
|
+
|
|
26
|
+
belongs_to :livro,
|
|
27
|
+
class_name: "Tormenta20::Models::Livro",
|
|
28
|
+
foreign_key: "livro_id"
|
|
29
|
+
|
|
30
|
+
validates :livro_id, presence: true
|
|
31
|
+
validates :termo, presence: true
|
|
32
|
+
validates :pagina, presence: true, numericality: { only_integer: true, greater_than: 0 }
|
|
33
|
+
|
|
34
|
+
# Scopes
|
|
35
|
+
scope :do_livro, ->(livro_id) { where(livro_id: livro_id) }
|
|
36
|
+
scope :para_tabela, ->(tabela) { where(tabela: tabela) }
|
|
37
|
+
scope :associados, -> { where.not(registro_id: nil) }
|
|
38
|
+
scope :nao_associados, -> { where(registro_id: nil) }
|
|
39
|
+
scope :buscar_termo, ->(q) { where("termo LIKE ?", "%#{q}%") }
|
|
40
|
+
|
|
41
|
+
def to_h
|
|
42
|
+
{
|
|
43
|
+
id: id,
|
|
44
|
+
livro_id: livro_id,
|
|
45
|
+
termo: termo,
|
|
46
|
+
pagina: pagina,
|
|
47
|
+
tabela: tabela,
|
|
48
|
+
registro_id: registro_id
|
|
49
|
+
}.compact
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def associado?
|
|
53
|
+
registro_id.present?
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_record"
|
|
4
|
+
|
|
5
|
+
module Tormenta20
|
|
6
|
+
module Models
|
|
7
|
+
# ActiveRecord model for livros (books).
|
|
8
|
+
class Livro < Base
|
|
9
|
+
self.table_name = "livros"
|
|
10
|
+
|
|
11
|
+
has_many :indice_remissivo_entries,
|
|
12
|
+
class_name: "Tormenta20::Models::IndiceRemissivo",
|
|
13
|
+
foreign_key: "livro_id",
|
|
14
|
+
dependent: :destroy
|
|
15
|
+
|
|
16
|
+
validates :id, presence: true, uniqueness: true
|
|
17
|
+
validates :nome, presence: true
|
|
18
|
+
validates :nome_curto, presence: true
|
|
19
|
+
|
|
20
|
+
def to_h
|
|
21
|
+
{
|
|
22
|
+
id: id,
|
|
23
|
+
nome: nome,
|
|
24
|
+
nome_curto: nome_curto
|
|
25
|
+
}
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
data/src/ruby/tormenta20.rb
CHANGED
|
@@ -6,6 +6,9 @@ require "sqlite3"
|
|
|
6
6
|
|
|
7
7
|
require_relative "tormenta20/database"
|
|
8
8
|
|
|
9
|
+
# Load concerns before models
|
|
10
|
+
require_relative "tormenta20/concerns/book_referenceable"
|
|
11
|
+
|
|
9
12
|
# Load base model first, then other models
|
|
10
13
|
require_relative "tormenta20/models/base"
|
|
11
14
|
Dir["#{__dir__}/tormenta20/models/*.rb"].each { |file| require file unless file.include?("base") }
|
|
@@ -182,6 +185,20 @@ module Tormenta20
|
|
|
182
185
|
Models::Condicao
|
|
183
186
|
end
|
|
184
187
|
|
|
188
|
+
# Acesso aos livros cadastrados.
|
|
189
|
+
#
|
|
190
|
+
# @return [Class] Tormenta20::Models::Livro
|
|
191
|
+
def livros
|
|
192
|
+
Models::Livro
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
# Acesso ao índice remissivo.
|
|
196
|
+
#
|
|
197
|
+
# @return [Class] Tormenta20::Models::IndiceRemissivo
|
|
198
|
+
def indice_remissivo
|
|
199
|
+
Models::IndiceRemissivo
|
|
200
|
+
end
|
|
201
|
+
|
|
185
202
|
# @!endgroup
|
|
186
203
|
end
|
|
187
204
|
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tormenta20
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.15
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- LuanGB
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-04-30 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: activerecord
|
|
@@ -62,6 +63,7 @@ extra_rdoc_files: []
|
|
|
62
63
|
files:
|
|
63
64
|
- ".rspec"
|
|
64
65
|
- ".rubocop.yml"
|
|
66
|
+
- ".ruby-version"
|
|
65
67
|
- CHANGELOG.md
|
|
66
68
|
- CODE_OF_CONDUCT.md
|
|
67
69
|
- LICENSE.txt
|
|
@@ -73,14 +75,18 @@ files:
|
|
|
73
75
|
- docs/armaduras.md
|
|
74
76
|
- docs/armas.md
|
|
75
77
|
- docs/classes.md
|
|
78
|
+
- docs/condicoes.md
|
|
76
79
|
- docs/divindades.md
|
|
77
80
|
- docs/escudos.md
|
|
81
|
+
- docs/indice_remissivo.md
|
|
78
82
|
- docs/itens.md
|
|
83
|
+
- docs/livros.md
|
|
79
84
|
- docs/magias.md
|
|
80
85
|
- docs/materiais_especiais.md
|
|
81
86
|
- docs/melhorias.md
|
|
82
87
|
- docs/origens.md
|
|
83
88
|
- docs/poderes.md
|
|
89
|
+
- docs/racas.md
|
|
84
90
|
- docs/regras.md
|
|
85
91
|
- examples/database_usage.rb
|
|
86
92
|
- exe/tormenta20
|
|
@@ -329,6 +335,7 @@ files:
|
|
|
329
335
|
- src/json/equipamentos/municoes/flechas.json
|
|
330
336
|
- src/json/equipamentos/municoes/pedras.json
|
|
331
337
|
- src/json/equipamentos/municoes/virotes.json
|
|
338
|
+
- src/json/indice_remissivo/t20_eja.json
|
|
332
339
|
- src/json/itens_superiores/materiais_especiais/aco_rubi.json
|
|
333
340
|
- src/json/itens_superiores/materiais_especiais/adamante.json
|
|
334
341
|
- src/json/itens_superiores/materiais_especiais/gelo_eterno.json
|
|
@@ -364,6 +371,7 @@ files:
|
|
|
364
371
|
- src/json/itens_superiores/melhorias/geral/discreto.json
|
|
365
372
|
- src/json/itens_superiores/melhorias/geral/macabro.json
|
|
366
373
|
- src/json/itens_superiores/melhorias/geral/material_especial.json
|
|
374
|
+
- src/json/livros/t20_eja.json
|
|
367
375
|
- src/json/magias/abencoar_alimentos.json
|
|
368
376
|
- src/json/magias/acalmar_animal.json
|
|
369
377
|
- src/json/magias/adaga_mental.json
|
|
@@ -1150,7 +1158,9 @@ files:
|
|
|
1150
1158
|
- src/json/poderes/poderes_da_tormenta/visco_rubro.json
|
|
1151
1159
|
- src/json/poderes/poderes_gerais/poderes_de_combate/acuidade_com_arma.json
|
|
1152
1160
|
- src/json/poderes/poderes_gerais/poderes_de_combate/arma_secundaria_grande.json
|
|
1161
|
+
- src/json/poderes/poderes_gerais/poderes_de_combate/arremesso_multiplo.json
|
|
1153
1162
|
- src/json/poderes/poderes_gerais/poderes_de_combate/arremesso_potente.json
|
|
1163
|
+
- src/json/poderes/poderes_gerais/poderes_de_combate/ataque_com_escudo.json
|
|
1154
1164
|
- src/json/poderes/poderes_gerais/poderes_de_combate/ataque_pesado.json
|
|
1155
1165
|
- src/json/poderes/poderes_gerais/poderes_de_combate/ataque_poderoso.json
|
|
1156
1166
|
- src/json/poderes/poderes_gerais/poderes_de_combate/ataque_preciso.json
|
|
@@ -1165,6 +1175,7 @@ files:
|
|
|
1165
1175
|
- src/json/poderes/poderes_gerais/poderes_de_combate/encouracado.json
|
|
1166
1176
|
- src/json/poderes/poderes_gerais/poderes_de_combate/esquiva.json
|
|
1167
1177
|
- src/json/poderes/poderes_gerais/poderes_de_combate/estilo_de_arma_e_escudo.json
|
|
1178
|
+
- src/json/poderes/poderes_gerais/poderes_de_combate/estilo_de_arma_longa.json
|
|
1168
1179
|
- src/json/poderes/poderes_gerais/poderes_de_combate/estilo_de_arremeso.json
|
|
1169
1180
|
- src/json/poderes/poderes_gerais/poderes_de_combate/estilo_de_disparo.json
|
|
1170
1181
|
- src/json/poderes/poderes_gerais/poderes_de_combate/estilo_de_duas_armas.json
|
|
@@ -1177,6 +1188,7 @@ files:
|
|
|
1177
1188
|
- src/json/poderes/poderes_gerais/poderes_de_combate/ginete.json
|
|
1178
1189
|
- src/json/poderes/poderes_gerais/poderes_de_combate/inexpugnavel.json
|
|
1179
1190
|
- src/json/poderes/poderes_gerais/poderes_de_combate/mira_apurada.json
|
|
1191
|
+
- src/json/poderes/poderes_gerais/poderes_de_combate/piqueiro.json
|
|
1180
1192
|
- src/json/poderes/poderes_gerais/poderes_de_combate/presenca_aterradora.json
|
|
1181
1193
|
- src/json/poderes/poderes_gerais/poderes_de_combate/proficiencia.json
|
|
1182
1194
|
- src/json/poderes/poderes_gerais/poderes_de_combate/quebrar_aprimorado.json
|
|
@@ -1190,7 +1202,9 @@ files:
|
|
|
1190
1202
|
- src/json/poderes/poderes_gerais/poderes_de_destino/atletico.json
|
|
1191
1203
|
- src/json/poderes/poderes_gerais/poderes_de_destino/atraente.json
|
|
1192
1204
|
- src/json/poderes/poderes_gerais/poderes_de_destino/comandar.json
|
|
1205
|
+
- src/json/poderes/poderes_gerais/poderes_de_destino/costas_largas.json
|
|
1193
1206
|
- src/json/poderes/poderes_gerais/poderes_de_destino/foco_em_pericia.json
|
|
1207
|
+
- src/json/poderes/poderes_gerais/poderes_de_destino/inventario_organizado.json
|
|
1194
1208
|
- src/json/poderes/poderes_gerais/poderes_de_destino/investigador.json
|
|
1195
1209
|
- src/json/poderes/poderes_gerais/poderes_de_destino/lobo_solitario.json
|
|
1196
1210
|
- src/json/poderes/poderes_gerais/poderes_de_destino/medicina.json
|
|
@@ -1244,6 +1258,7 @@ files:
|
|
|
1244
1258
|
- src/json/regras/venenos.json
|
|
1245
1259
|
- src/python/__init__.py
|
|
1246
1260
|
- src/ruby/tormenta20.rb
|
|
1261
|
+
- src/ruby/tormenta20/concerns/book_referenceable.rb
|
|
1247
1262
|
- src/ruby/tormenta20/database.rb
|
|
1248
1263
|
- src/ruby/tormenta20/models/arma.rb
|
|
1249
1264
|
- src/ruby/tormenta20/models/armadura.rb
|
|
@@ -1252,7 +1267,9 @@ files:
|
|
|
1252
1267
|
- src/ruby/tormenta20/models/condicao.rb
|
|
1253
1268
|
- src/ruby/tormenta20/models/divindade.rb
|
|
1254
1269
|
- src/ruby/tormenta20/models/escudo.rb
|
|
1270
|
+
- src/ruby/tormenta20/models/indice_remissivo.rb
|
|
1255
1271
|
- src/ruby/tormenta20/models/item.rb
|
|
1272
|
+
- src/ruby/tormenta20/models/livro.rb
|
|
1256
1273
|
- src/ruby/tormenta20/models/magia.rb
|
|
1257
1274
|
- src/ruby/tormenta20/models/material_especial.rb
|
|
1258
1275
|
- src/ruby/tormenta20/models/melhoria.rb
|
|
@@ -1280,6 +1297,7 @@ metadata:
|
|
|
1280
1297
|
homepage_uri: https://github.com/LuanGB/tormenta20
|
|
1281
1298
|
source_code_uri: https://github.com/LuanGB/tormenta20
|
|
1282
1299
|
changelog_uri: https://github.com/LuanGB/tormenta20/blob/main/CHANGELOG.md
|
|
1300
|
+
post_install_message:
|
|
1283
1301
|
rdoc_options: []
|
|
1284
1302
|
require_paths:
|
|
1285
1303
|
- src/ruby
|
|
@@ -1294,7 +1312,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1294
1312
|
- !ruby/object:Gem::Version
|
|
1295
1313
|
version: '0'
|
|
1296
1314
|
requirements: []
|
|
1297
|
-
rubygems_version: 3.
|
|
1315
|
+
rubygems_version: 3.5.22
|
|
1316
|
+
signing_key:
|
|
1298
1317
|
specification_version: 4
|
|
1299
1318
|
summary: A Ruby, Node and Python library with data about the Brazilian TTRPG, Tormenta20
|
|
1300
1319
|
test_files: []
|