@opencharacter/orc-2e 0.1.0 → 0.3.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.
Files changed (314) hide show
  1. package/README.md +74 -16
  2. package/content/backgrounds/driver.yaml +3 -3
  3. package/content/backgrounds/farmhand.yaml +1 -1
  4. package/content/backgrounds/miner.yaml +1 -1
  5. package/content/backgrounds/nomad.yaml +1 -1
  6. package/content/backgrounds/raised-by-belief.yaml +16 -16
  7. package/content/backgrounds/scholar.yaml +4 -4
  8. package/content/classes/alchemist/fields/bomber.yaml +1 -1
  9. package/content/classes/alchemist/fields/chirurgeon.yaml +1 -1
  10. package/content/classes/alchemist/fields/mutagenist.yaml +1 -1
  11. package/content/classes/alchemist/fields/toxicologist.yaml +1 -1
  12. package/content/classes/alchemist.yaml +2 -34
  13. package/content/classes/barbarian/animals/ape.yaml +1 -1
  14. package/content/classes/barbarian/animals/bear.yaml +1 -1
  15. package/content/classes/barbarian/animals/bull.yaml +1 -1
  16. package/content/classes/barbarian/animals/cat.yaml +1 -1
  17. package/content/classes/barbarian/animals/deer.yaml +1 -1
  18. package/content/classes/barbarian/animals/frog.yaml +1 -1
  19. package/content/classes/barbarian/animals/shark.yaml +1 -1
  20. package/content/classes/barbarian/animals/snake.yaml +1 -1
  21. package/content/classes/barbarian/animals/wolf.yaml +1 -1
  22. package/content/classes/barbarian/instincts/animal.yaml +2 -14
  23. package/content/classes/barbarian/instincts/dragon.yaml +1 -2
  24. package/content/classes/barbarian/instincts/fury.yaml +1 -1
  25. package/content/classes/barbarian/instincts/giant.yaml +1 -1
  26. package/content/classes/barbarian/instincts/spirit.yaml +1 -2
  27. package/content/classes/barbarian/instincts/superstition.yaml +1 -1
  28. package/content/classes/barbarian/raging.yaml +3 -1
  29. package/content/classes/barbarian.yaml +2 -36
  30. package/content/classes/bard/muses/enigma.yaml +1 -1
  31. package/content/classes/bard/muses/maestro.yaml +1 -1
  32. package/content/classes/bard/muses/polymath.yaml +1 -1
  33. package/content/classes/bard/muses/warrior.yaml +1 -1
  34. package/content/classes/bard.yaml +2 -34
  35. package/content/classes/champion/causes/desecration.yaml +1 -1
  36. package/content/classes/champion/causes/grandeur.yaml +1 -1
  37. package/content/classes/champion/causes/iniquity.yaml +1 -1
  38. package/content/classes/champion/causes/justice.yaml +1 -1
  39. package/content/classes/champion/causes/liberation.yaml +1 -1
  40. package/content/classes/champion/causes/obedience.yaml +1 -1
  41. package/content/classes/champion/causes/redemption.yaml +1 -1
  42. package/content/classes/champion/resistance.yaml +2 -0
  43. package/content/classes/champion.yaml +2 -37
  44. package/content/classes/cleric/doctrines/cloistered-cleric.yaml +1 -1
  45. package/content/classes/cleric/doctrines/warpriest.yaml +1 -1
  46. package/content/classes/cleric.yaml +2 -28
  47. package/content/classes/druid/orders/animal.yaml +1 -1
  48. package/content/classes/druid/orders/leaf.yaml +1 -1
  49. package/content/classes/druid/orders/storm.yaml +1 -1
  50. package/content/classes/druid/orders/untamed.yaml +1 -1
  51. package/content/classes/druid.yaml +2 -34
  52. package/content/classes/fighter.yaml +1 -26
  53. package/content/classes/investigator.yaml +1 -26
  54. package/content/classes/monk.yaml +1 -26
  55. package/content/classes/oracle/mysteries/ancestors.yaml +3 -1
  56. package/content/classes/oracle/mysteries/battle.yaml +5 -1
  57. package/content/classes/oracle/mysteries/bones.yaml +3 -1
  58. package/content/classes/oracle/mysteries/cosmos.yaml +3 -1
  59. package/content/classes/oracle/mysteries/flames.yaml +3 -1
  60. package/content/classes/oracle/mysteries/life.yaml +4 -1
  61. package/content/classes/oracle/mysteries/lore.yaml +5 -1
  62. package/content/classes/oracle/mysteries/tempest.yaml +3 -1
  63. package/content/classes/oracle.yaml +2 -38
  64. package/content/classes/ranger/edges/flurry.yaml +1 -1
  65. package/content/classes/ranger/edges/outwit.yaml +1 -1
  66. package/content/classes/ranger/edges/precision.yaml +1 -1
  67. package/content/classes/ranger.yaml +2 -29
  68. package/content/classes/rogue/rackets/mastermind.yaml +1 -1
  69. package/content/classes/rogue/rackets/ruffian.yaml +1 -1
  70. package/content/classes/rogue/rackets/scoundrel.yaml +1 -1
  71. package/content/classes/rogue/rackets/thief.yaml +1 -1
  72. package/content/classes/rogue.yaml +2 -34
  73. package/content/classes/sorcerer/bloodlines/aberrant.yaml +1 -1
  74. package/content/classes/sorcerer/bloodlines/angelic.yaml +1 -1
  75. package/content/classes/sorcerer/bloodlines/demonic.yaml +1 -1
  76. package/content/classes/sorcerer/bloodlines/diabolic.yaml +1 -1
  77. package/content/classes/sorcerer/bloodlines/draconic.yaml +1 -1
  78. package/content/classes/sorcerer/bloodlines/elemental.yaml +1 -1
  79. package/content/classes/sorcerer/bloodlines/fey.yaml +1 -1
  80. package/content/classes/sorcerer/bloodlines/hag.yaml +1 -1
  81. package/content/classes/sorcerer/bloodlines/imperial.yaml +1 -1
  82. package/content/classes/sorcerer/bloodlines/undead.yaml +1 -1
  83. package/content/classes/sorcerer.yaml +2 -40
  84. package/content/classes/swashbuckler.yaml +1 -26
  85. package/content/classes/witch/patrons/faiths-flamekeeper.yaml +1 -1
  86. package/content/classes/witch/patrons/inscribed-one.yaml +1 -1
  87. package/content/classes/witch/patrons/resentment.yaml +1 -1
  88. package/content/classes/witch/patrons/silence-in-snow.yaml +1 -1
  89. package/content/classes/witch/patrons/spinner-of-threads.yaml +1 -1
  90. package/content/classes/witch/patrons/starless-shadow.yaml +1 -1
  91. package/content/classes/witch/patrons/wilding-steward.yaml +1 -1
  92. package/content/classes/witch.yaml +2 -37
  93. package/content/classes/wizard/schools/ars-grammatica.yaml +1 -1
  94. package/content/classes/wizard/schools/battle-magic.yaml +1 -1
  95. package/content/classes/wizard/schools/boundary.yaml +1 -1
  96. package/content/classes/wizard/schools/civic-wizardry.yaml +1 -1
  97. package/content/classes/wizard/schools/mentalism.yaml +1 -1
  98. package/content/classes/wizard/schools/protean-form.yaml +1 -1
  99. package/content/classes/wizard/schools/unified-magical-theory.yaml +1 -1
  100. package/content/classes/wizard/theses/experimental-spellshaping.yaml +1 -1
  101. package/content/classes/wizard/theses/improved-familiar-attunement.yaml +1 -1
  102. package/content/classes/wizard/theses/spell-blending.yaml +1 -1
  103. package/content/classes/wizard/theses/spell-substitution.yaml +1 -1
  104. package/content/classes/wizard/theses/staff-nexus.yaml +1 -1
  105. package/content/classes/wizard.yaml +3 -52
  106. package/content/domains/advanced/air.yaml +7 -0
  107. package/content/domains/advanced/ambition.yaml +7 -0
  108. package/content/domains/advanced/cities.yaml +7 -0
  109. package/content/domains/advanced/confidence.yaml +7 -0
  110. package/content/domains/advanced/creation.yaml +7 -0
  111. package/content/domains/advanced/darkness.yaml +7 -0
  112. package/content/domains/advanced/death.yaml +7 -0
  113. package/content/domains/advanced/destruction.yaml +7 -0
  114. package/content/domains/advanced/dreams.yaml +7 -0
  115. package/content/domains/advanced/earth.yaml +7 -0
  116. package/content/domains/advanced/family.yaml +7 -0
  117. package/content/domains/advanced/fate.yaml +7 -0
  118. package/content/domains/advanced/fire.yaml +7 -0
  119. package/content/domains/advanced/freedom.yaml +7 -0
  120. package/content/domains/advanced/healing.yaml +7 -0
  121. package/content/domains/advanced/indulgence.yaml +7 -0
  122. package/content/domains/advanced/knowledge.yaml +7 -0
  123. package/content/domains/advanced/luck.yaml +7 -0
  124. package/content/domains/advanced/magic.yaml +7 -0
  125. package/content/domains/advanced/might.yaml +7 -0
  126. package/content/domains/advanced/moon.yaml +7 -0
  127. package/content/domains/advanced/nature.yaml +7 -0
  128. package/content/domains/advanced/nightmares.yaml +7 -0
  129. package/content/domains/advanced/pain.yaml +7 -0
  130. package/content/domains/advanced/passion.yaml +7 -0
  131. package/content/domains/advanced/perfection.yaml +7 -0
  132. package/content/domains/advanced/protection.yaml +7 -0
  133. package/content/domains/advanced/secrecy.yaml +7 -0
  134. package/content/domains/advanced/sun.yaml +7 -0
  135. package/content/domains/advanced/travel.yaml +7 -0
  136. package/content/domains/advanced/trickery.yaml +7 -0
  137. package/content/domains/advanced/truth.yaml +7 -0
  138. package/content/domains/advanced/tyranny.yaml +7 -0
  139. package/content/domains/advanced/undeath.yaml +7 -0
  140. package/content/domains/advanced/water.yaml +7 -0
  141. package/content/domains/advanced/wealth.yaml +7 -0
  142. package/content/domains/advanced/zeal.yaml +7 -0
  143. package/content/domains/air.yaml +6 -0
  144. package/content/domains/ambition.yaml +6 -0
  145. package/content/domains/cities.yaml +6 -0
  146. package/content/domains/confidence.yaml +6 -0
  147. package/content/domains/creation.yaml +6 -0
  148. package/content/domains/darkness.yaml +6 -0
  149. package/content/domains/death.yaml +6 -0
  150. package/content/domains/destruction.yaml +6 -0
  151. package/content/domains/dreams.yaml +6 -0
  152. package/content/domains/earth.yaml +6 -0
  153. package/content/domains/family.yaml +6 -0
  154. package/content/domains/fate.yaml +6 -0
  155. package/content/domains/fire.yaml +6 -0
  156. package/content/domains/freedom.yaml +6 -0
  157. package/content/domains/healing.yaml +6 -0
  158. package/content/domains/indulgence.yaml +6 -0
  159. package/content/domains/knowledge.yaml +6 -0
  160. package/content/domains/luck.yaml +6 -0
  161. package/content/domains/magic.yaml +6 -0
  162. package/content/domains/might.yaml +6 -0
  163. package/content/domains/moon.yaml +6 -0
  164. package/content/domains/nature.yaml +6 -0
  165. package/content/domains/nightmares.yaml +6 -0
  166. package/content/domains/pain.yaml +6 -0
  167. package/content/domains/passion.yaml +6 -0
  168. package/content/domains/perfection.yaml +6 -0
  169. package/content/domains/protection.yaml +6 -0
  170. package/content/domains/secrecy.yaml +6 -0
  171. package/content/domains/sun.yaml +6 -0
  172. package/content/domains/travel.yaml +6 -0
  173. package/content/domains/trickery.yaml +6 -0
  174. package/content/domains/truth.yaml +6 -0
  175. package/content/domains/tyranny.yaml +6 -0
  176. package/content/domains/undeath.yaml +6 -0
  177. package/content/domains/water.yaml +6 -0
  178. package/content/domains/wealth.yaml +6 -0
  179. package/content/domains/zeal.yaml +6 -0
  180. package/content/effects/treated-disease.yaml +4 -0
  181. package/content/effects/treated-poison.yaml +4 -0
  182. package/content/feats/ancestry/changeling-lore.yaml +3 -1
  183. package/content/feats/ancestry/gnome-obsession.yaml +1 -39
  184. package/content/feats/ancestry/tengu-feather-fan.yaml +3 -3
  185. package/content/feats/archetype/barbarian/barbarian-dedication.yaml +0 -2
  186. package/content/feats/archetype/champion/champions-reaction.yaml +1 -11
  187. package/content/feats/archetype/gladiator/gladiator-dedication.yaml +1 -1
  188. package/content/feats/archetype/investigator/skill-mastery.yaml +2 -58
  189. package/content/feats/archetype/rogue/skill-mastery.yaml +2 -58
  190. package/content/feats/archetype/scout/terrain-scout.yaml +6 -0
  191. package/content/feats/archetype/viking/viking-dedication.yaml +3 -1
  192. package/content/feats/champion/deitys-domain.yaml +1 -22
  193. package/content/feats/cleric/advanced-domain.yaml +1 -187
  194. package/content/feats/cleric/domain-initiate.yaml +1 -199
  195. package/content/feats/oracle/domain-acumen.yaml +4 -138
  196. package/content/feats/skill/additional-lore.yaml +12 -0
  197. package/content/feats/skill/assurance.yaml +8 -30
  198. package/content/feats/skill/skill-training.yaml +1 -55
  199. package/content/feats/skill/terrain-stalker.yaml +1 -0
  200. package/content/feats/sorcerer/arcane-evolution.yaml +1 -26
  201. package/content/feats/sorcerer/occult-evolution.yaml +1 -26
  202. package/content/features/wizard/arcane-bond.yaml +8 -4
  203. package/content/gear/compass-lensatic.yaml +1 -0
  204. package/content/gear/compass.yaml +1 -0
  205. package/content/gear/crowbar-levered.yaml +1 -0
  206. package/content/gear/crowbar.yaml +1 -0
  207. package/content/heritages/deep-orc.yaml +3 -1
  208. package/content/heritages/woodstalker-lizardfolk.yaml +3 -1
  209. package/content/shields/specific/reflecting-shield.yaml +1 -1
  210. package/content/shields/specific/spellguard-shield.yaml +1 -0
  211. package/content/spells/agile-feet.yaml +1 -0
  212. package/content/spells/appearance-of-wealth.yaml +1 -0
  213. package/content/spells/athletic-rush.yaml +1 -0
  214. package/content/spells/bit-of-luck.yaml +1 -0
  215. package/content/spells/charming-touch.yaml +1 -0
  216. package/content/spells/cloak-of-shadow.yaml +1 -0
  217. package/content/spells/creative-splash.yaml +1 -0
  218. package/content/spells/cry-of-destruction.yaml +1 -0
  219. package/content/spells/dazzling-flash.yaml +1 -0
  220. package/content/spells/deaths-call.yaml +1 -0
  221. package/content/spells/enduring-might.yaml +2 -0
  222. package/content/spells/energy-absorption.yaml +2 -0
  223. package/content/spells/face-in-the-crowd.yaml +1 -0
  224. package/content/spells/fire-ray.yaml +1 -0
  225. package/content/spells/fire-shield.yaml +31 -0
  226. package/content/spells/flame-barrier.yaml +2 -0
  227. package/content/spells/guidance.yaml +2 -0
  228. package/content/spells/healers-blessing.yaml +1 -0
  229. package/content/spells/hurtling-stone.yaml +1 -0
  230. package/content/spells/ignite-ambition.yaml +1 -0
  231. package/content/spells/magics-vessel.yaml +1 -0
  232. package/content/spells/moonbeam.yaml +1 -0
  233. package/content/spells/overstuff.yaml +1 -0
  234. package/content/spells/perfected-mind.yaml +1 -0
  235. package/content/spells/protectors-sacrifice.yaml +1 -0
  236. package/content/spells/pushing-gust.yaml +1 -0
  237. package/content/spells/read-fate.yaml +1 -0
  238. package/content/spells/savor-the-sting.yaml +1 -0
  239. package/content/spells/scholarly-recollection.yaml +1 -0
  240. package/content/spells/shield.yaml +2 -0
  241. package/content/spells/soothing-words.yaml +1 -0
  242. package/content/spells/sudden-shift.yaml +1 -0
  243. package/content/spells/sure-strike.yaml +2 -0
  244. package/content/spells/sweet-dream.yaml +1 -0
  245. package/content/spells/tidal-surge.yaml +1 -0
  246. package/content/spells/touch-of-obedience.yaml +1 -0
  247. package/content/spells/touch-of-undeath.yaml +1 -0
  248. package/content/spells/true-target.yaml +2 -0
  249. package/content/spells/unimpeded-stride.yaml +1 -0
  250. package/content/spells/veil-of-confidence.yaml +1 -0
  251. package/content/spells/vibrant-thorns.yaml +1 -0
  252. package/content/spells/waking-nightmare.yaml +1 -0
  253. package/content/spells/weapon-surge.yaml +3 -0
  254. package/content/spells/whispering-quiet.yaml +1 -0
  255. package/content/spells/word-of-truth.yaml +1 -0
  256. package/dist/i18n/en.js +1 -1
  257. package/dist/i18n/en.json +210 -209
  258. package/dist/index.js +1 -1
  259. package/dist/release.json +8629 -4618
  260. package/i18n/en/ancestry-dragonblood.yaml +2 -2
  261. package/i18n/en/archetypes.yaml +10 -6
  262. package/i18n/en/backgrounds.yaml +6 -3
  263. package/i18n/en/battle-forms.yaml +0 -1
  264. package/i18n/en/champion.yaml +1 -1
  265. package/i18n/en/cleric.yaml +151 -149
  266. package/i18n/en/equipment.yaml +4 -1
  267. package/i18n/en/lores-pc2.yaml +6 -0
  268. package/i18n/en/oracle.yaml +0 -38
  269. package/i18n/en/rogue.yaml +3 -3
  270. package/i18n/en/spellcasting.yaml +3 -2
  271. package/i18n/en/spells-high.yaml +1 -0
  272. package/i18n/en/type-fields.yaml +2 -0
  273. package/i18n/en/wizard.yaml +2 -2
  274. package/i18n/en.yaml +19 -1
  275. package/pack.yaml +2 -2
  276. package/package.json +2 -2
  277. package/rules/advancement.yaml +1 -0
  278. package/rules/afflictions.yaml +2 -0
  279. package/rules/alchemist.yaml +14 -3
  280. package/rules/ancestry-feats.yaml +55 -13
  281. package/rules/archetypes.yaml +1 -0
  282. package/rules/barbarian.yaml +8 -21
  283. package/rules/bard.yaml +10 -4
  284. package/rules/building.yaml +7 -1
  285. package/rules/champion.yaml +3 -2
  286. package/rules/checks.yaml +1 -1
  287. package/rules/cleric.yaml +13 -3
  288. package/rules/conditions.yaml +1 -0
  289. package/rules/core.yaml +1 -0
  290. package/rules/creation.yaml +18 -0
  291. package/rules/druid.yaml +3 -2
  292. package/rules/equipment.yaml +7 -1
  293. package/rules/heritages.yaml +1 -1
  294. package/rules/investigator.yaml +3 -11
  295. package/rules/layout.yaml +19 -6
  296. package/rules/lores-pc2.yaml +221 -36
  297. package/rules/lores.yaml +226 -50
  298. package/rules/monk.yaml +2 -5
  299. package/rules/oracle.yaml +5 -3
  300. package/rules/ranger.yaml +3 -3
  301. package/rules/rogue.yaml +6 -1
  302. package/rules/skill-actions-athletics.yaml +1 -2
  303. package/rules/skill-actions-stealth.yaml +1 -2
  304. package/rules/skills.yaml +173 -56
  305. package/rules/sorcerer.yaml +16 -4
  306. package/rules/spellcasting.yaml +105 -28
  307. package/rules/spells-high.yaml +3 -3
  308. package/rules/strikes.yaml +3 -1
  309. package/rules/swashbuckler.yaml +4 -17
  310. package/rules/tags.yaml +6 -0
  311. package/rules/witch.yaml +2 -1
  312. package/rules/wizard.yaml +6 -4
  313. package/upgrades/0.1.0-to-0.2.0.yaml +11 -0
  314. package/upgrades/0.2.0-to-0.3.0.yaml +657 -0
package/rules/layout.yaml CHANGED
@@ -9,12 +9,10 @@ display:
9
9
  priority: 0
10
10
  - id: saves
11
11
  priority: 0
12
+ # A skill's rank is its modifier's companion, so it has no tile of its own here.
12
13
  - id: skills
13
14
  priority: 1
14
- members: { type: field, where: "'skill' in item.tags" }
15
- - id: skill-ranks
16
- priority: 2
17
- members: { type: field, where: "'skill-rank' in item.tags" }
15
+ members: { type: field, where: "'skill' in item.tags || 'skill-rank' in item.tags" }
18
16
  - id: skill-increases
19
17
  priority: 3
20
18
  visibility: background
@@ -192,8 +190,15 @@ display:
192
190
  defenses.medium.rank: { groups: [proficiencies], priority: 2, format: { bands: rank } }
193
191
  defenses.heavy.rank: { groups: [proficiencies], priority: 2, format: { bands: rank } }
194
192
  attacks.masterGroups: { groups: [proficiencies], priority: 2 }
195
- attacks.favoredWeapons: { groups: [proficiencies], priority: 2 }
196
- attacks.favoredRank: { groups: [proficiencies], priority: 2, format: { bands: rank } }
193
+ attacks.favoredWeapons:
194
+ { groups: [proficiencies], priority: 2, showWhen: attacks.favoredRank > 0 }
195
+ attacks.favoredRank:
196
+ {
197
+ groups: [proficiencies],
198
+ priority: 2,
199
+ format: { bands: rank },
200
+ showWhen: attacks.favoredRank > 0,
201
+ }
197
202
  attacks.legendGroups: { groups: [proficiencies], priority: 2 }
198
203
  weapons.specialization: { groups: [proficiencies], priority: 2 }
199
204
  bulk.carried: { groups: [bulk], priority: 0, with: [{ field: bulk.max, as: max }] }
@@ -213,6 +218,8 @@ display:
213
218
  class.traits: { hidden: true }
214
219
  skills.maxRank: { hidden: true }
215
220
  skills.trained: { hidden: true }
221
+ skills.offered: { hidden: true }
222
+ skills.lores: { hidden: true }
216
223
  skills.trainings: { hidden: true }
217
224
  skills.chosen: { hidden: true }
218
225
  assurance.skills: { hidden: true }
@@ -246,6 +253,12 @@ display:
246
253
  conditions.doomed: { hidden: true }
247
254
  conditions.slowed: { hidden: true }
248
255
  conditions.stunned: { hidden: true }
256
+ conditions.drainedOffset: { hidden: true }
257
+ runes.invalid: { hidden: true }
258
+ fan.activations: { groups: [summary], priority: 2, showWhen: fan.activations > 0 }
259
+ immunities.damage: { groups: [defenses], priority: 2, showWhen: size(immunities.damage) > 0 }
260
+ parry.weapon:
261
+ { groups: [defenses], priority: 2, input: { widget: checkbox }, showWhen: parry.weapon }
249
262
 
250
263
  types:
251
264
  weapon:
@@ -17,6 +17,7 @@ tags:
17
17
  - skill.lore.tengu
18
18
  - skill.lore.tripkee
19
19
  - skill.lore.vampire
20
+ - skill.lore.hag
20
21
 
21
22
  fields:
22
23
  skills.lore.accounting.increases:
@@ -685,6 +686,43 @@ fields:
685
686
  skills.lore.vampire.rank == 0 ? ['untrained']
686
687
  : [['rank.trained', 'rank.expert', 'rank.master', 'rank.legendary'][min(4, skills.lore.vampire.rank) - 1]]
687
688
  formula: 'attributes.int.mod + (skills.lore.vampire.rank > 0 ? 2 * skills.lore.vampire.rank + proficiency.level : proficiency.untrained)'
689
+ skills.lore.hag.increases:
690
+ type: integer
691
+ input: true
692
+ default: 0
693
+ min: 0
694
+ max: >-
695
+ 'skill.lore.hag' in skills.trained || 'skill.lore.hag' in skills.chosen
696
+ ? skills.maxRank - 1 : 0
697
+ tags:
698
+ - skill-increase
699
+ - lore
700
+ - formula: "'skill.lore.hag' in skills.trained || 'skill.lore.hag' in skills.chosen ? [] : ['untrained']"
701
+ skills.lore.hag.trainedByIncrease:
702
+ {
703
+ type: integer,
704
+ input: true,
705
+ default: 0,
706
+ min: 0,
707
+ max: 1,
708
+ tags: [skill-increase, skill-training, skill.lore.hag, lore],
709
+ }
710
+ skills.lore.hag.rank:
711
+ type: integer
712
+ tags: [skill-rank, lore, skill.lore.hag]
713
+ formula: "('skill.lore.hag' in skills.trained || 'skill.lore.hag' in skills.chosen ? 1 : 0) + skills.lore.hag.increases"
714
+ skills.lore.hag.mod:
715
+ type: integer
716
+ tags:
717
+ - check
718
+ - skill
719
+ - skill.lore.hag
720
+ - attr.int
721
+ - lore
722
+ - formula: >-
723
+ skills.lore.hag.rank == 0 ? ['untrained']
724
+ : [['rank.trained', 'rank.expert', 'rank.master', 'rank.legendary'][min(4, skills.lore.hag.rank) - 1]]
725
+ formula: 'attributes.int.mod + (skills.lore.hag.rank > 0 ? 2 * skills.lore.hag.rank + proficiency.level : proficiency.untrained)'
688
726
  # A skill trained by a skill increase counts as a training the player chose.
689
727
  effects:
690
728
  - {
@@ -795,60 +833,207 @@ effects:
795
833
  value: { tag: skill.lore.vampire },
796
834
  when: skills.lore.vampire.trainedByIncrease > 0,
797
835
  }
836
+ - {
837
+ target: skills.chosen,
838
+ op: grant,
839
+ value: { tag: skill.lore.hag },
840
+ when: skills.lore.hag.trainedByIncrease > 0,
841
+ }
798
842
 
799
843
  display:
800
844
  fields:
801
- skills.lore.accounting.rank: { format: { bands: rank } }
845
+ skills.lore.accounting.rank:
846
+ { format: { bands: rank }, showWhen: skills.lore.accounting.rank > 0 }
802
847
  skills.lore.accounting.mod:
803
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.accounting.mod } }] }
804
- skills.lore.astrology.rank: { format: { bands: rank } }
848
+ {
849
+ format: signed,
850
+ rolls: [{ action: check, params: { check: skills.lore.accounting.mod } }],
851
+ with: [{ field: skills.lore.accounting.rank, as: detail }],
852
+ showWhen: skills.lore.accounting.rank > 0,
853
+ }
854
+ skills.lore.accounting.increases: { showWhen: skills.lore.accounting.rank > 0 }
855
+ skills.lore.accounting.trainedByIncrease: { showWhen: skills.lore.accounting.rank > 0 }
856
+ skills.lore.astrology.rank:
857
+ { format: { bands: rank }, showWhen: skills.lore.astrology.rank > 0 }
805
858
  skills.lore.astrology.mod:
806
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.astrology.mod } }] }
807
- skills.lore.afterlife.rank: { format: { bands: rank } }
859
+ {
860
+ format: signed,
861
+ rolls: [{ action: check, params: { check: skills.lore.astrology.mod } }],
862
+ with: [{ field: skills.lore.astrology.rank, as: detail }],
863
+ showWhen: skills.lore.astrology.rank > 0,
864
+ }
865
+ skills.lore.astrology.increases: { showWhen: skills.lore.astrology.rank > 0 }
866
+ skills.lore.astrology.trainedByIncrease: { showWhen: skills.lore.astrology.rank > 0 }
867
+ skills.lore.afterlife.rank:
868
+ { format: { bands: rank }, showWhen: skills.lore.afterlife.rank > 0 }
808
869
  skills.lore.afterlife.mod:
809
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.afterlife.mod } }] }
810
- skills.lore.curse.rank: { format: { bands: rank } }
870
+ {
871
+ format: signed,
872
+ rolls: [{ action: check, params: { check: skills.lore.afterlife.mod } }],
873
+ with: [{ field: skills.lore.afterlife.rank, as: detail }],
874
+ showWhen: skills.lore.afterlife.rank > 0,
875
+ }
876
+ skills.lore.afterlife.increases: { showWhen: skills.lore.afterlife.rank > 0 }
877
+ skills.lore.afterlife.trainedByIncrease: { showWhen: skills.lore.afterlife.rank > 0 }
878
+ skills.lore.curse.rank: { format: { bands: rank }, showWhen: skills.lore.curse.rank > 0 }
811
879
  skills.lore.curse.mod:
812
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.curse.mod } }] }
813
- skills.lore.driving.rank: { format: { bands: rank } }
880
+ {
881
+ format: signed,
882
+ rolls: [{ action: check, params: { check: skills.lore.curse.mod } }],
883
+ with: [{ field: skills.lore.curse.rank, as: detail }],
884
+ showWhen: skills.lore.curse.rank > 0,
885
+ }
886
+ skills.lore.curse.increases: { showWhen: skills.lore.curse.rank > 0 }
887
+ skills.lore.curse.trainedByIncrease: { showWhen: skills.lore.curse.rank > 0 }
888
+ skills.lore.driving.rank: { format: { bands: rank }, showWhen: skills.lore.driving.rank > 0 }
814
889
  skills.lore.driving.mod:
815
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.driving.mod } }] }
816
- skills.lore.fey.rank: { format: { bands: rank } }
890
+ {
891
+ format: signed,
892
+ rolls: [{ action: check, params: { check: skills.lore.driving.mod } }],
893
+ with: [{ field: skills.lore.driving.rank, as: detail }],
894
+ showWhen: skills.lore.driving.rank > 0,
895
+ }
896
+ skills.lore.driving.increases: { showWhen: skills.lore.driving.rank > 0 }
897
+ skills.lore.driving.trainedByIncrease: { showWhen: skills.lore.driving.rank > 0 }
898
+ skills.lore.fey.rank: { format: { bands: rank }, showWhen: skills.lore.fey.rank > 0 }
817
899
  skills.lore.fey.mod:
818
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.fey.mod } }] }
819
- skills.lore.piloting.rank: { format: { bands: rank } }
900
+ {
901
+ format: signed,
902
+ rolls: [{ action: check, params: { check: skills.lore.fey.mod } }],
903
+ with: [{ field: skills.lore.fey.rank, as: detail }],
904
+ showWhen: skills.lore.fey.rank > 0,
905
+ }
906
+ skills.lore.fey.increases: { showWhen: skills.lore.fey.rank > 0 }
907
+ skills.lore.fey.trainedByIncrease: { showWhen: skills.lore.fey.rank > 0 }
908
+ skills.lore.piloting.rank: { format: { bands: rank }, showWhen: skills.lore.piloting.rank > 0 }
820
909
  skills.lore.piloting.mod:
821
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.piloting.mod } }] }
822
- skills.lore.surgery.rank: { format: { bands: rank } }
910
+ {
911
+ format: signed,
912
+ rolls: [{ action: check, params: { check: skills.lore.piloting.mod } }],
913
+ with: [{ field: skills.lore.piloting.rank, as: detail }],
914
+ showWhen: skills.lore.piloting.rank > 0,
915
+ }
916
+ skills.lore.piloting.increases: { showWhen: skills.lore.piloting.rank > 0 }
917
+ skills.lore.piloting.trainedByIncrease: { showWhen: skills.lore.piloting.rank > 0 }
918
+ skills.lore.surgery.rank: { format: { bands: rank }, showWhen: skills.lore.surgery.rank > 0 }
823
919
  skills.lore.surgery.mod:
824
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.surgery.mod } }] }
825
- skills.lore.catfolk.rank: { format: { bands: rank } }
920
+ {
921
+ format: signed,
922
+ rolls: [{ action: check, params: { check: skills.lore.surgery.mod } }],
923
+ with: [{ field: skills.lore.surgery.rank, as: detail }],
924
+ showWhen: skills.lore.surgery.rank > 0,
925
+ }
926
+ skills.lore.surgery.increases: { showWhen: skills.lore.surgery.rank > 0 }
927
+ skills.lore.surgery.trainedByIncrease: { showWhen: skills.lore.surgery.rank > 0 }
928
+ skills.lore.catfolk.rank: { format: { bands: rank }, showWhen: skills.lore.catfolk.rank > 0 }
826
929
  skills.lore.catfolk.mod:
827
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.catfolk.mod } }] }
828
- skills.lore.dragon.rank: { format: { bands: rank } }
930
+ {
931
+ format: signed,
932
+ rolls: [{ action: check, params: { check: skills.lore.catfolk.mod } }],
933
+ with: [{ field: skills.lore.catfolk.rank, as: detail }],
934
+ showWhen: skills.lore.catfolk.rank > 0,
935
+ }
936
+ skills.lore.catfolk.increases: { showWhen: skills.lore.catfolk.rank > 0 }
937
+ skills.lore.catfolk.trainedByIncrease: { showWhen: skills.lore.catfolk.rank > 0 }
938
+ skills.lore.dragon.rank: { format: { bands: rank }, showWhen: skills.lore.dragon.rank > 0 }
829
939
  skills.lore.dragon.mod:
830
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.dragon.mod } }] }
831
- skills.lore.hobgoblin.rank: { format: { bands: rank } }
940
+ {
941
+ format: signed,
942
+ rolls: [{ action: check, params: { check: skills.lore.dragon.mod } }],
943
+ with: [{ field: skills.lore.dragon.rank, as: detail }],
944
+ showWhen: skills.lore.dragon.rank > 0,
945
+ }
946
+ skills.lore.dragon.increases: { showWhen: skills.lore.dragon.rank > 0 }
947
+ skills.lore.dragon.trainedByIncrease: { showWhen: skills.lore.dragon.rank > 0 }
948
+ skills.lore.hobgoblin.rank:
949
+ { format: { bands: rank }, showWhen: skills.lore.hobgoblin.rank > 0 }
832
950
  skills.lore.hobgoblin.mod:
833
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.hobgoblin.mod } }] }
834
- skills.lore.kholo.rank: { format: { bands: rank } }
951
+ {
952
+ format: signed,
953
+ rolls: [{ action: check, params: { check: skills.lore.hobgoblin.mod } }],
954
+ with: [{ field: skills.lore.hobgoblin.rank, as: detail }],
955
+ showWhen: skills.lore.hobgoblin.rank > 0,
956
+ }
957
+ skills.lore.hobgoblin.increases: { showWhen: skills.lore.hobgoblin.rank > 0 }
958
+ skills.lore.hobgoblin.trainedByIncrease: { showWhen: skills.lore.hobgoblin.rank > 0 }
959
+ skills.lore.kholo.rank: { format: { bands: rank }, showWhen: skills.lore.kholo.rank > 0 }
835
960
  skills.lore.kholo.mod:
836
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.kholo.mod } }] }
837
- skills.lore.kobold.rank: { format: { bands: rank } }
961
+ {
962
+ format: signed,
963
+ rolls: [{ action: check, params: { check: skills.lore.kholo.mod } }],
964
+ with: [{ field: skills.lore.kholo.rank, as: detail }],
965
+ showWhen: skills.lore.kholo.rank > 0,
966
+ }
967
+ skills.lore.kholo.increases: { showWhen: skills.lore.kholo.rank > 0 }
968
+ skills.lore.kholo.trainedByIncrease: { showWhen: skills.lore.kholo.rank > 0 }
969
+ skills.lore.kobold.rank: { format: { bands: rank }, showWhen: skills.lore.kobold.rank > 0 }
838
970
  skills.lore.kobold.mod:
839
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.kobold.mod } }] }
840
- skills.lore.lizardfolk.rank: { format: { bands: rank } }
971
+ {
972
+ format: signed,
973
+ rolls: [{ action: check, params: { check: skills.lore.kobold.mod } }],
974
+ with: [{ field: skills.lore.kobold.rank, as: detail }],
975
+ showWhen: skills.lore.kobold.rank > 0,
976
+ }
977
+ skills.lore.kobold.increases: { showWhen: skills.lore.kobold.rank > 0 }
978
+ skills.lore.kobold.trainedByIncrease: { showWhen: skills.lore.kobold.rank > 0 }
979
+ skills.lore.lizardfolk.rank:
980
+ { format: { bands: rank }, showWhen: skills.lore.lizardfolk.rank > 0 }
841
981
  skills.lore.lizardfolk.mod:
842
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.lizardfolk.mod } }] }
843
- skills.lore.ratfolk.rank: { format: { bands: rank } }
982
+ {
983
+ format: signed,
984
+ rolls: [{ action: check, params: { check: skills.lore.lizardfolk.mod } }],
985
+ with: [{ field: skills.lore.lizardfolk.rank, as: detail }],
986
+ showWhen: skills.lore.lizardfolk.rank > 0,
987
+ }
988
+ skills.lore.lizardfolk.increases: { showWhen: skills.lore.lizardfolk.rank > 0 }
989
+ skills.lore.lizardfolk.trainedByIncrease: { showWhen: skills.lore.lizardfolk.rank > 0 }
990
+ skills.lore.ratfolk.rank: { format: { bands: rank }, showWhen: skills.lore.ratfolk.rank > 0 }
844
991
  skills.lore.ratfolk.mod:
845
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.ratfolk.mod } }] }
846
- skills.lore.tengu.rank: { format: { bands: rank } }
992
+ {
993
+ format: signed,
994
+ rolls: [{ action: check, params: { check: skills.lore.ratfolk.mod } }],
995
+ with: [{ field: skills.lore.ratfolk.rank, as: detail }],
996
+ showWhen: skills.lore.ratfolk.rank > 0,
997
+ }
998
+ skills.lore.ratfolk.increases: { showWhen: skills.lore.ratfolk.rank > 0 }
999
+ skills.lore.ratfolk.trainedByIncrease: { showWhen: skills.lore.ratfolk.rank > 0 }
1000
+ skills.lore.tengu.rank: { format: { bands: rank }, showWhen: skills.lore.tengu.rank > 0 }
847
1001
  skills.lore.tengu.mod:
848
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.tengu.mod } }] }
849
- skills.lore.tripkee.rank: { format: { bands: rank } }
1002
+ {
1003
+ format: signed,
1004
+ rolls: [{ action: check, params: { check: skills.lore.tengu.mod } }],
1005
+ with: [{ field: skills.lore.tengu.rank, as: detail }],
1006
+ showWhen: skills.lore.tengu.rank > 0,
1007
+ }
1008
+ skills.lore.tengu.increases: { showWhen: skills.lore.tengu.rank > 0 }
1009
+ skills.lore.tengu.trainedByIncrease: { showWhen: skills.lore.tengu.rank > 0 }
1010
+ skills.lore.tripkee.rank: { format: { bands: rank }, showWhen: skills.lore.tripkee.rank > 0 }
850
1011
  skills.lore.tripkee.mod:
851
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.tripkee.mod } }] }
852
- skills.lore.vampire.rank: { format: { bands: rank } }
1012
+ {
1013
+ format: signed,
1014
+ rolls: [{ action: check, params: { check: skills.lore.tripkee.mod } }],
1015
+ with: [{ field: skills.lore.tripkee.rank, as: detail }],
1016
+ showWhen: skills.lore.tripkee.rank > 0,
1017
+ }
1018
+ skills.lore.tripkee.increases: { showWhen: skills.lore.tripkee.rank > 0 }
1019
+ skills.lore.tripkee.trainedByIncrease: { showWhen: skills.lore.tripkee.rank > 0 }
1020
+ skills.lore.vampire.rank: { format: { bands: rank }, showWhen: skills.lore.vampire.rank > 0 }
853
1021
  skills.lore.vampire.mod:
854
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.vampire.mod } }] }
1022
+ {
1023
+ format: signed,
1024
+ rolls: [{ action: check, params: { check: skills.lore.vampire.mod } }],
1025
+ with: [{ field: skills.lore.vampire.rank, as: detail }],
1026
+ showWhen: skills.lore.vampire.rank > 0,
1027
+ }
1028
+ skills.lore.vampire.increases: { showWhen: skills.lore.vampire.rank > 0 }
1029
+ skills.lore.vampire.trainedByIncrease: { showWhen: skills.lore.vampire.rank > 0 }
1030
+ skills.lore.hag.rank: { format: { bands: rank }, showWhen: skills.lore.hag.rank > 0 }
1031
+ skills.lore.hag.mod:
1032
+ {
1033
+ format: signed,
1034
+ rolls: [{ action: check, params: { check: skills.lore.hag.mod } }],
1035
+ with: [{ field: skills.lore.hag.rank, as: detail }],
1036
+ showWhen: skills.lore.hag.rank > 0,
1037
+ }
1038
+ skills.lore.hag.increases: { showWhen: skills.lore.hag.rank > 0 }
1039
+ skills.lore.hag.trainedByIncrease: { showWhen: skills.lore.hag.rank > 0 }