nereare_grimoire 1.13.13 → 1.21.0
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/404.html +1 -1
- data/CHANGELOG.md +172 -0
- data/LICENSE.md +1 -1
- data/OGL.md +45 -0
- data/_layouts/adventure.html +9 -1
- data/_layouts/armor.html +16 -6
- data/_layouts/default.html +20 -13
- data/_layouts/index.html +62 -7
- data/_layouts/item.html +3 -3
- data/_layouts/monster.html +299 -139
- data/_layouts/settlement.html +18 -181
- data/_layouts/spell.html +44 -13
- data/_layouts/weapon.html +10 -4
- data/_plugins/cr-format.rb +80 -0
- data/adventures_collection.html +15 -0
- data/ages_collection.html +15 -0
- data/animals_collection.html +15 -0
- data/assets/css/stats-block.scss +23 -15
- data/assets/css/style.scss +21 -0
- data/assets/posts_collection.js +34 -0
- data/assets/search.js +58 -0
- data/chapters_collection.html +15 -0
- data/docs/404.html +25 -0
- data/items_collection.html +15 -0
- data/monsters_collection.html +16 -0
- data/plants_collection.html +15 -0
- data/posts_collection.html +47 -0
- data/search.html +12 -0
- data/search.json +22 -0
- data/settlements_collection.html +15 -0
- data/spells_collection.html +15 -0
- metadata +101 -43
data/_layouts/monster.html
CHANGED
@@ -11,181 +11,341 @@ layout: default
|
|
11
11
|
{{ content }}
|
12
12
|
</div>
|
13
13
|
|
14
|
+
{% if page.monster.e5 %}
|
15
|
+
<!-- 5e Stat Block -->
|
14
16
|
<div class="four columns">
|
15
17
|
<div class="stat-block-container">
|
16
18
|
<div class="stat-block">
|
17
|
-
<hr class="orange-border"
|
18
|
-
<div class="
|
19
|
-
<
|
20
|
-
|
21
|
-
|
19
|
+
<hr class="orange-border">
|
20
|
+
<div class="creature-heading">
|
21
|
+
<h1>{{ page.monster.name | default: 'Terrasque' }}</h1>
|
22
|
+
<h2>{{ page.monster.size | default: 'Colossal' }} {{ page.monster.type | default: 'magical beast' }}{% if page.monster.subtype %} ({{ page.monster.subtype }}){% endif %}, {{ page.monster.align | default: 'always neutral' }}</h2>
|
23
|
+
</div>
|
24
|
+
<!-- creature heading -->
|
25
|
+
<svg height="5" width="100%" class="tapered-rule">
|
26
|
+
<polyline points="0,0 400,2.5 0,5"></polyline>
|
27
|
+
</svg>
|
28
|
+
<div class="top-stats">
|
29
|
+
<div class="property-line">
|
30
|
+
<h4>Armor Class</h4>
|
31
|
+
<p>{{ page.monster.e5.ac.base }}{% if page.monster.e5.ac.desc != '' %} ({{ page.monster.e5.ac.desc }}){% endif %}</p>
|
32
|
+
</div>
|
33
|
+
<!-- property line -->
|
34
|
+
<div class="property-line">
|
35
|
+
<h4>Hit Points</h4>
|
36
|
+
<p>{{ page.monster.e5.hp.hp | pretty_number }} ({{ page.monster.e5.hp.hd }})</p>
|
22
37
|
</div>
|
23
|
-
<!--
|
24
|
-
<
|
38
|
+
<!-- property line -->
|
39
|
+
<div class="property-line">
|
40
|
+
<h4>Speed</h4>
|
41
|
+
<p>{{ page.monster.e5.speed | join: ', ' }}</p>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
<svg height="5" width="100%" class="tapered-rule">
|
25
45
|
<polyline points="0,0 400,2.5 0,5"></polyline>
|
26
46
|
</svg>
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
<
|
31
|
-
|
32
|
-
<!-- property line -->
|
33
|
-
<div class="property-line">
|
34
|
-
<h4>Hit Points</h4>
|
35
|
-
<p>{{ page.monster.hp.hp | default: '858' | pretty_number }}hp ({{ page.monster.hp.hd | default: '48d10 + 594' }})</p>
|
47
|
+
<div>
|
48
|
+
<div class="abilities">
|
49
|
+
<div class="ability-strength">
|
50
|
+
<h4>STR</h4>
|
51
|
+
<p>{{ page.monster.abilities.str | ability }}</p>
|
36
52
|
</div>
|
37
|
-
<!--
|
38
|
-
<div class="
|
39
|
-
<h4>
|
40
|
-
<p>{{ page.monster.
|
53
|
+
<!-- ability strength -->
|
54
|
+
<div class="ability-dexterity">
|
55
|
+
<h4>DEX</h4>
|
56
|
+
<p>{{ page.monster.abilities.dex | ability }}</p>
|
41
57
|
</div>
|
42
|
-
<!--
|
43
|
-
<div class="
|
44
|
-
<h4>
|
45
|
-
<p>{{ page.monster.
|
58
|
+
<!-- ability dexterity -->
|
59
|
+
<div class="ability-constitution">
|
60
|
+
<h4>CON</h4>
|
61
|
+
<p>{{ page.monster.abilities.con | ability }}</p>
|
46
62
|
</div>
|
47
|
-
<!--
|
48
|
-
<div class="
|
49
|
-
<h4>
|
50
|
-
<p>{{ page.monster.
|
63
|
+
<!-- ability constitution -->
|
64
|
+
<div class="ability-intelligence">
|
65
|
+
<h4>INT</h4>
|
66
|
+
<p>{{ page.monster.abilities.int | ability }}</p>
|
51
67
|
</div>
|
52
|
-
<!--
|
53
|
-
<div class="
|
54
|
-
<h4>
|
55
|
-
<p>{{ page.monster.
|
68
|
+
<!-- ability intelligence -->
|
69
|
+
<div class="ability-wisdom">
|
70
|
+
<h4>WIS</h4>
|
71
|
+
<p>{{ page.monster.abilities.wis | ability }}</p>
|
56
72
|
</div>
|
57
|
-
<!--
|
58
|
-
<div class="
|
59
|
-
<h4>
|
60
|
-
<p>
|
73
|
+
<!-- ability wisdom -->
|
74
|
+
<div class="ability-charisma">
|
75
|
+
<h4>CHA</h4>
|
76
|
+
<p>{{ page.monster.abilities.cha | ability }}</p>
|
61
77
|
</div>
|
62
|
-
<!--
|
63
|
-
|
78
|
+
<!-- ability charisma -->
|
79
|
+
</div>
|
80
|
+
</div>
|
81
|
+
<svg height="5" width="100%" class="tapered-rule">
|
64
82
|
<polyline points="0,0 400,2.5 0,5"></polyline>
|
65
83
|
</svg>
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
<
|
84
|
+
<div>
|
85
|
+
{% if page.monster.e5.saves %}
|
86
|
+
<div class="property-line">
|
87
|
+
<h4>Saving Throws</h4>
|
88
|
+
<p>{{ page.monster.e5.saves | join: ', ' }}</p>
|
89
|
+
</div>
|
90
|
+
{% endif %}
|
91
|
+
{% if page.monster.e5.skills %}
|
92
|
+
<div class="property-line">
|
93
|
+
<h4>Skills</h4>
|
94
|
+
<p>{{ page.monster.e5.skills | join: ', ' }}</p>
|
95
|
+
</div>
|
96
|
+
{% endif %}
|
97
|
+
{% if page.monster.e5.dmg_vulnerabilities %}
|
98
|
+
<div class="property-line">
|
99
|
+
<h4>Damage Vulnerabilities</h4>
|
100
|
+
<p>{{ page.monster.e5.dmg_vulnerabilities | join: ', ' }}</p>
|
101
|
+
</div>
|
102
|
+
{% endif %}
|
103
|
+
{% if page.monster.e5.dmg_resistances %}
|
104
|
+
<div class="property-line">
|
105
|
+
<h4>Damage Resistances</h4>
|
106
|
+
<p>{{ page.monster.e5.dmg_resistances | join: ', ' }}</p>
|
107
|
+
</div>
|
108
|
+
{% endif %}
|
109
|
+
{% if page.monster.e5.dmg_immunities %}
|
110
|
+
<div class="property-line">
|
111
|
+
<h4>Damage Immunities</h4>
|
112
|
+
<p>{{ page.monster.e5.dmg_immunities | join: ', ' }}</p>
|
113
|
+
</div>
|
114
|
+
{% endif %}
|
115
|
+
{% if page.monster.e5.cond_immunities %}
|
116
|
+
<div class="property-line">
|
117
|
+
<h4>Condition Immunities</h4>
|
118
|
+
<p>{{ page.monster.e5.cond_immunities | join: ', ' }}</p>
|
119
|
+
</div>
|
120
|
+
{% endif %}
|
121
|
+
<div class="property-line">
|
122
|
+
<h4>Challenge</h4>
|
123
|
+
<p>{{ page.monster.e5.cr | cr_format }}</p>
|
124
|
+
</div>
|
125
|
+
<div class="property-line">
|
126
|
+
<h4>Senses</h4>
|
127
|
+
<p>{{ page.monster.e5.senses | join: ', ' }}</p>
|
128
|
+
</div>
|
129
|
+
<div class="property-line">
|
130
|
+
<h4>Languages</h4>
|
131
|
+
<p>{% if page.monster.e5.langs %}{{ page.monster.e5.langs | join: ', ' }}{% else %}—{% endif %}</p>
|
132
|
+
</div>
|
133
|
+
<div class="property-line">
|
134
|
+
<h4>Prof. Bonus</h4>
|
135
|
+
<p>{{ page.monster.e5.pb | add_sign }}</p>
|
136
|
+
</div>
|
137
|
+
</div>
|
138
|
+
{% if page.monster.e5.props or page.monster.e5.spellcasting %}
|
139
|
+
<svg height="5" width="100%" class="tapered-rule">
|
100
140
|
<polyline points="0,0 400,2.5 0,5"></polyline>
|
101
141
|
</svg>
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
</
|
106
|
-
|
107
|
-
<
|
108
|
-
|
109
|
-
<
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
142
|
+
<div>
|
143
|
+
{% if page.monster.e5.spellcasting %}
|
144
|
+
<div class="property-line">
|
145
|
+
<h4>Spellcasting</h4>
|
146
|
+
<p>{{ page.monster.e5.spellcasting.intro }}</p>
|
147
|
+
<ul>
|
148
|
+
{% for line in page.monster.e5.spellcasting.list %}
|
149
|
+
<li><em>{{ line.title }}.</em> {{ line.list | join: ', ' }}</li>
|
150
|
+
{% endfor %}
|
151
|
+
</ul>
|
152
|
+
</div>
|
153
|
+
{% endif %}
|
154
|
+
{% for prop in page.monster.e5.props %}
|
155
|
+
<div class="property-line">
|
156
|
+
<h4>{{ prop.title }}</h4>
|
157
|
+
<p>{{ prop.desc }}</p>
|
158
|
+
</div>
|
159
|
+
{% endfor %}
|
160
|
+
</div>
|
161
|
+
{% endif %}
|
162
|
+
{% if page.monster.e5.actions %}
|
163
|
+
{% for action in page.monster.e5.actions %}
|
164
|
+
<div class="actions">
|
165
|
+
<h3>{{ action.title }}</h3>
|
166
|
+
{% if action.intro %}
|
167
|
+
<p>{{ action.intro }}</p>
|
168
|
+
{% endif %}
|
169
|
+
{% for attack in action.list %}
|
170
|
+
<div class="property-block">
|
171
|
+
<h4>{{ attack.name }}</h4>
|
172
|
+
<p>{{ attack.desc | default: '+57 melee (4d8 + 17 / 18-20 / x3)' }}</p>
|
173
|
+
</div>
|
174
|
+
{% endfor %}
|
175
|
+
</div>
|
176
|
+
{% endfor %}
|
177
|
+
{% endif %}
|
178
|
+
<hr class="orange-border bottom">
|
179
|
+
</div>
|
180
|
+
<!-- stat block -->
|
181
|
+
</div>
|
182
|
+
</div>
|
183
|
+
<!-- /5e Stat Block -->
|
184
|
+
{% else %}
|
185
|
+
<!-- 3.5e Stat Block -->
|
186
|
+
<div class="four columns">
|
187
|
+
<div class="stat-block-container">
|
188
|
+
<div class="stat-block">
|
189
|
+
<hr class="orange-border">
|
190
|
+
<div>
|
191
|
+
<div class="creature-heading">
|
192
|
+
<h1>{{ page.monster.name | default: 'Terrasque' }}</h1>
|
193
|
+
<h2>{{ page.monster.size | default: 'Colossal' }} {{ page.monster.type | default: 'magical beast' }}{% if page.monster.subtype %} ({{ page.monster.subtype }}){% endif %}, {{ page.monster.align | default: 'always neutral' }}</h2>
|
194
|
+
</div>
|
195
|
+
</div>
|
196
|
+
<svg height="5" width="100%" class="tapered-rule">
|
197
|
+
<polyline points="0,0 400,2.5 0,5"></polyline>
|
198
|
+
</svg>
|
199
|
+
<div>
|
200
|
+
<div class="property-line">
|
201
|
+
<h4>Armor Class</h4>
|
202
|
+
<p>{{ page.monster.e35.ac.base }}{% if page.monster.e35.ac.desc != '' %} ({{ page.monster.e35.ac.desc }}){% endif %}, touch {{ page.monster.e35.ac.touch | default: '5' }}, flat-footed {{ page.monster.e35.ac.flat | default: '32' }}</p>
|
203
|
+
</div>
|
204
|
+
<!-- property line -->
|
205
|
+
<div class="property-line">
|
206
|
+
<h4>Hit Points</h4>
|
207
|
+
<p>{{ page.monster.e35.hp.hp | default: '858' | pretty_number }} ({{ page.monster.e35.hp.hd | default: '48d10 + 594' }})</p>
|
208
|
+
</div>
|
209
|
+
<!-- property line -->
|
210
|
+
<div class="property-line">
|
211
|
+
<h4>Speed</h4>
|
212
|
+
<p>{{ page.monster.e35.speed | default: '20ft' }}</p>
|
213
|
+
</div>
|
214
|
+
<!-- property line -->
|
215
|
+
<div class="property-line">
|
216
|
+
<h4>Initiative</h4>
|
217
|
+
<p>{{ page.monster.e35.initiative | default: 7 | add_sign }}</p>
|
218
|
+
</div>
|
219
|
+
<!-- property line -->
|
220
|
+
<div class="property-line">
|
221
|
+
<h4>Space/Reach</h4>
|
222
|
+
<p>{{ page.monster.e35.space | default: '30ft' }}/{{ page.monster.e35.reach | default: '20ft' }}</p>
|
223
|
+
</div>
|
224
|
+
<!-- property line -->
|
225
|
+
<div class="property-line">
|
226
|
+
<h4>BA/Grapple</h4>
|
227
|
+
<p>{{ page.monster.e35.ba | default: '+48' }}/{{ page.monster.e35.grapple | default: '+81' }}</p>
|
228
|
+
</div>
|
229
|
+
<!-- property line -->
|
230
|
+
<div class="property-line">
|
231
|
+
<h4>Saves</h4>
|
232
|
+
<p>Fort {{ page.monster.e35.saves.fort | default: 38 | add_sign }}, Ref {{ page.monster.e35.saves.ref | default: 29 | add_sign }}, Will {{ page.monster.e35.saves.will | default: 20 | add_sign }}</p>
|
233
|
+
</div>
|
234
|
+
</div>
|
235
|
+
<svg height="5" width="100%" class="tapered-rule">
|
236
|
+
<polyline points="0,0 400,2.5 0,5"></polyline>
|
237
|
+
</svg>
|
238
|
+
<div>
|
239
|
+
<div class="abilities">
|
240
|
+
<div class="ability-strength">
|
241
|
+
<h4>STR</h4>
|
242
|
+
<p>{{ page.monster.abilities.str | ability }}</p>
|
115
243
|
</div>
|
116
|
-
|
117
|
-
|
118
|
-
<
|
119
|
-
<p>{{ page.monster.treasure | default: 'None' }}</p>
|
244
|
+
<div class="ability-dexterity">
|
245
|
+
<h4>DEX</h4>
|
246
|
+
<p>{{ page.monster.abilities.dex | ability }}</p>
|
120
247
|
</div>
|
121
|
-
|
122
|
-
|
123
|
-
<
|
124
|
-
<p>{{ page.monster.advancement | default: '49+ HD (Colossal)' }}</p>
|
248
|
+
<div class="ability-constitution">
|
249
|
+
<h4>CON</h4>
|
250
|
+
<p>{{ page.monster.abilities.con | ability }}</p>
|
125
251
|
</div>
|
126
|
-
|
127
|
-
|
128
|
-
<
|
129
|
-
<p>{{ page.monster.lvl_adj | default: 'N/A' }}</p>
|
252
|
+
<div class="ability-intelligence">
|
253
|
+
<h4>INT</h4>
|
254
|
+
<p>{{ page.monster.abilities.int | ability }}</p>
|
130
255
|
</div>
|
131
|
-
|
132
|
-
|
133
|
-
<
|
134
|
-
<p>{{ page.monster.env | default: 'Any' }}</p>
|
256
|
+
<div class="ability-wisdom">
|
257
|
+
<h4>WIS</h4>
|
258
|
+
<p>{{ page.monster.abilities.wis | ability }}</p>
|
135
259
|
</div>
|
136
|
-
|
137
|
-
|
138
|
-
<
|
139
|
-
<p>{{ page.monster.org | default: 'Solitary' }}</p>
|
260
|
+
<div class="ability-charisma">
|
261
|
+
<h4>CHA</h4>
|
262
|
+
<p>{{ page.monster.abilities.cha | ability }}</p>
|
140
263
|
</div>
|
141
|
-
<!-- property line -->
|
142
264
|
</div>
|
143
|
-
|
144
|
-
|
265
|
+
</div>
|
266
|
+
<svg height="5" width="100%" class="tapered-rule">
|
267
|
+
<polyline points="0,0 400,2.5 0,5"></polyline>
|
268
|
+
</svg>
|
269
|
+
<div>
|
270
|
+
<div class="property-line">
|
271
|
+
<h4>Skills</h4>
|
272
|
+
<p>{{ page.monster.e35.skills | default: 'none' }}</p>
|
273
|
+
</div>
|
274
|
+
<!-- property line -->
|
275
|
+
<div class="property-line">
|
276
|
+
<h4>Feats</h4>
|
277
|
+
<p>{{ page.monster.e35.feats | default: 'none' }}</p>
|
278
|
+
</div>
|
279
|
+
<!-- property line -->
|
280
|
+
<div class="property-line">
|
281
|
+
<h4>Challenge Rating</h4>
|
282
|
+
<p>{{ page.monster.e35.cr | default: 20 }}</p>
|
283
|
+
</div>
|
284
|
+
<!-- property line -->
|
285
|
+
<div class="property-line">
|
286
|
+
<h4>Treasure</h4>
|
287
|
+
<p>{{ page.monster.e35.treasure | default: 'None' }}</p>
|
288
|
+
</div>
|
289
|
+
<!-- property line -->
|
290
|
+
<div class="property-line">
|
291
|
+
<h4>Advancement</h4>
|
292
|
+
<p>{{ page.monster.e35.advancement | default: '49+ HD (Colossal)' }}</p>
|
293
|
+
</div>
|
294
|
+
<!-- property line -->
|
295
|
+
<div class="property-line">
|
296
|
+
<h4>Level Adjustment</h4>
|
297
|
+
<p>{{ page.monster.e35.lvl_adj | default: 'N/A' }}</p>
|
298
|
+
</div>
|
299
|
+
<!-- property line -->
|
300
|
+
<div class="property-line">
|
301
|
+
<h4>Environment</h4>
|
302
|
+
<p>{{ page.monster.e35.env | default: 'Any' }}</p>
|
303
|
+
</div>
|
304
|
+
<!-- property line -->
|
305
|
+
<div class="property-line">
|
306
|
+
<h4>Organization</h4>
|
307
|
+
<p>{{ page.monster.e35.org | default: 'Solitary' }}</p>
|
308
|
+
</div>
|
309
|
+
</div>
|
310
|
+
<svg height="5" width="100%" class="tapered-rule">
|
145
311
|
<polyline points="0,0 400,2.5 0,5"></polyline>
|
146
312
|
</svg>
|
313
|
+
<div>
|
147
314
|
<div class="property-block">
|
148
315
|
<h4>Special Qualities</h4>
|
149
|
-
<p>{{ page.monster.qualities | default: 'none'}}</p>
|
316
|
+
<p>{{ page.monster.e35.qualities | default: 'none'}}</p>
|
150
317
|
</div>
|
151
318
|
<!-- property block -->
|
152
319
|
<div class="property-block">
|
153
320
|
<h4>Special Attacks</h4>
|
154
|
-
<p>{{ page.monster.sp_attacks | default: 'none' }}</p>
|
321
|
+
<p>{{ page.monster.e35.sp_attacks | default: 'none' }}</p>
|
155
322
|
</div>
|
156
323
|
<!-- property block -->
|
157
324
|
</div>
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
{
|
163
|
-
<
|
164
|
-
<h4>{{ attack.name }}</h4>
|
165
|
-
<p>{{ attack.desc | default: '+57 melee (4d8 + 17 / 18-20 / x3)' }}</p>
|
166
|
-
</div>
|
167
|
-
<!-- property block -->
|
168
|
-
{% endfor %}
|
169
|
-
</div>
|
170
|
-
{% assign: items = page.monster.possessions | join: '' %}
|
171
|
-
{% if items != '' %}
|
172
|
-
<!-- actions -->
|
173
|
-
<div class="actions">
|
174
|
-
<h3>Possessions</h3>
|
175
|
-
{% for item in page.monster.possessions %}
|
176
|
-
<div class="property-block">
|
177
|
-
<h4>{{ item.name }}</h4>
|
178
|
-
<p>{{ item.desc }}</p>
|
179
|
-
</div>
|
180
|
-
<!-- property block -->
|
181
|
-
{% endfor %}
|
325
|
+
<div class="actions">
|
326
|
+
<h3>Actions</h3>
|
327
|
+
{% for attack in page.monster.e35.attacks %}
|
328
|
+
<div class="property-block">
|
329
|
+
<h4>{{ attack.name }}</h4>
|
330
|
+
<p>{{ attack.desc | default: '+57 melee (4d8 + 17 / 18-20 / x3)' }}</p>
|
182
331
|
</div>
|
183
|
-
|
184
|
-
{% endif %}
|
332
|
+
{% endfor %}
|
185
333
|
</div>
|
186
|
-
|
187
|
-
|
334
|
+
{% assign: items = page.monster.e35.possessions | join: '' %}
|
335
|
+
{% if items != '' %}
|
336
|
+
<div class="actions">
|
337
|
+
<h3>Possessions</h3>
|
338
|
+
{% for item in page.monster.e35.possessions %}
|
339
|
+
<div class="property-block">
|
340
|
+
<h4>{{ item.name }}</h4>
|
341
|
+
<p>{{ item.desc }}</p>
|
342
|
+
</div>
|
343
|
+
{% endfor %}
|
344
|
+
</div>
|
345
|
+
{% endif %}
|
346
|
+
<hr class="orange-border bottom">
|
188
347
|
</div>
|
189
|
-
<!-- stat block -->
|
190
348
|
</div>
|
191
349
|
</div>
|
350
|
+
<!-- /3.5e Stat Block -->
|
351
|
+
{% endif %}
|