@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/skills.yaml CHANGED
@@ -4,6 +4,34 @@
4
4
  # highest rank less the training, 0 while untrained; an untrained skill's increases input carries
5
5
  # the computed tag `untrained`, so level-up leaves it out.
6
6
  fields:
7
+ # What a choice of any skill offers (class trainings, Skill Training) and of any Lore (Gnome
8
+ # Obsession): an add-on's Lore grants its tag into both.
9
+ skills.offered:
10
+ type: set
11
+ of: tag
12
+ members: { under: [skill], except: [skill.lore] }
13
+ formula: >-
14
+ ['skill.acrobatics', 'skill.arcana', 'skill.athletics', 'skill.crafting',
15
+ 'skill.deception', 'skill.diplomacy', 'skill.intimidation', 'skill.medicine',
16
+ 'skill.nature', 'skill.occultism', 'skill.performance', 'skill.religion',
17
+ 'skill.society', 'skill.stealth', 'skill.survival', 'skill.thievery',
18
+ 'skill.lore.academia', 'skill.lore.circus', 'skill.lore.farming', 'skill.lore.legal',
19
+ 'skill.lore.scribing', 'skill.lore.underworld', 'skill.lore.warfare']
20
+ skills.lores:
21
+ type: set
22
+ of: tag
23
+ members: { under: [skill.lore] }
24
+ formula: >-
25
+ ['skill.lore.academia', 'skill.lore.circus', 'skill.lore.farming', 'skill.lore.legal',
26
+ 'skill.lore.scribing', 'skill.lore.underworld', 'skill.lore.warfare',
27
+ 'skill.lore.alcohol', 'skill.lore.art', 'skill.lore.cooking', 'skill.lore.engineering',
28
+ 'skill.lore.fortune-telling', 'skill.lore.games', 'skill.lore.genealogy',
29
+ 'skill.lore.gladiatorial', 'skill.lore.guild', 'skill.lore.heraldry',
30
+ 'skill.lore.herbalism', 'skill.lore.labor', 'skill.lore.mercantile', 'skill.lore.mining',
31
+ 'skill.lore.sailing', 'skill.lore.tanning', 'skill.lore.theater', 'skill.lore.cave',
32
+ 'skill.lore.desert', 'skill.lore.forest', 'skill.lore.mountain', 'skill.lore.plains',
33
+ 'skill.lore.swamp', 'skill.lore.dwarf', 'skill.lore.elf', 'skill.lore.goblin',
34
+ 'skill.lore.halfling', 'skill.lore.leshy', 'skill.lore.orc']
7
35
  # A skill trained twice counts once in the set, so the difference is trainings to spend elsewhere.
8
36
  skills.trained: { type: set, of: tag, members: { under: [skill], except: [skill.lore] } }
9
37
  skills.trainings: { type: integer, formula: 0 }
@@ -949,32 +977,7 @@ choices:
949
977
  unique: skill-training
950
978
  pick: max(0, skills.trainings - countList(skills.trained, !(x in skills.chosen)))
951
979
  from:
952
- values:
953
- [
954
- skill.acrobatics,
955
- skill.arcana,
956
- skill.athletics,
957
- skill.crafting,
958
- skill.deception,
959
- skill.diplomacy,
960
- skill.intimidation,
961
- skill.medicine,
962
- skill.nature,
963
- skill.occultism,
964
- skill.performance,
965
- skill.religion,
966
- skill.society,
967
- skill.stealth,
968
- skill.survival,
969
- skill.thievery,
970
- skill.lore.academia,
971
- skill.lore.circus,
972
- skill.lore.farming,
973
- skill.lore.legal,
974
- skill.lore.scribing,
975
- skill.lore.underworld,
976
- skill.lore.warfare,
977
- ]
980
+ values: { formula: skills.offered }
978
981
  where: '!(value in skills.trained) && !(value in skills.chosen) || value in choice.picks'
979
982
  effects:
980
983
  - { target: skills.chosen, op: grant, value: { formula: pick.value } }
@@ -1125,92 +1128,206 @@ display:
1125
1128
  skills.acrobatics.rank: { format: { bands: rank } }
1126
1129
  skills.acrobatics.granted: { hidden: true }
1127
1130
  skills.acrobatics.mod:
1128
- { format: signed, rolls: [{ action: check, params: { check: skills.acrobatics.mod } }] }
1131
+ {
1132
+ format: signed,
1133
+ rolls: [{ action: check, params: { check: skills.acrobatics.mod } }],
1134
+ with: [{ field: skills.acrobatics.rank, as: detail }],
1135
+ }
1129
1136
  skills.arcana.rank: { format: { bands: rank } }
1130
1137
  skills.arcana.granted: { hidden: true }
1131
1138
  skills.arcana.mod:
1132
- { format: signed, rolls: [{ action: check, params: { check: skills.arcana.mod } }] }
1139
+ {
1140
+ format: signed,
1141
+ rolls: [{ action: check, params: { check: skills.arcana.mod } }],
1142
+ with: [{ field: skills.arcana.rank, as: detail }],
1143
+ }
1133
1144
  skills.athletics.rank: { format: { bands: rank } }
1134
1145
  skills.athletics.granted: { hidden: true }
1135
1146
  skills.athletics.mod:
1136
- { format: signed, rolls: [{ action: check, params: { check: skills.athletics.mod } }] }
1147
+ {
1148
+ format: signed,
1149
+ rolls: [{ action: check, params: { check: skills.athletics.mod } }],
1150
+ with: [{ field: skills.athletics.rank, as: detail }],
1151
+ }
1137
1152
  skills.crafting.rank: { format: { bands: rank } }
1138
1153
  skills.crafting.granted: { hidden: true }
1139
1154
  skills.crafting.mod:
1140
- { format: signed, rolls: [{ action: check, params: { check: skills.crafting.mod } }] }
1155
+ {
1156
+ format: signed,
1157
+ rolls: [{ action: check, params: { check: skills.crafting.mod } }],
1158
+ with: [{ field: skills.crafting.rank, as: detail }],
1159
+ }
1141
1160
  skills.deception.rank: { format: { bands: rank } }
1142
1161
  skills.deception.granted: { hidden: true }
1143
1162
  skills.deception.mod:
1144
- { format: signed, rolls: [{ action: check, params: { check: skills.deception.mod } }] }
1163
+ {
1164
+ format: signed,
1165
+ rolls: [{ action: check, params: { check: skills.deception.mod } }],
1166
+ with: [{ field: skills.deception.rank, as: detail }],
1167
+ }
1145
1168
  skills.diplomacy.rank: { format: { bands: rank } }
1146
1169
  skills.diplomacy.granted: { hidden: true }
1147
1170
  skills.diplomacy.mod:
1148
- { format: signed, rolls: [{ action: check, params: { check: skills.diplomacy.mod } }] }
1171
+ {
1172
+ format: signed,
1173
+ rolls: [{ action: check, params: { check: skills.diplomacy.mod } }],
1174
+ with: [{ field: skills.diplomacy.rank, as: detail }],
1175
+ }
1149
1176
  skills.intimidation.rank: { format: { bands: rank } }
1150
1177
  skills.intimidation.granted: { hidden: true }
1151
1178
  skills.intimidation.mod:
1152
- { format: signed, rolls: [{ action: check, params: { check: skills.intimidation.mod } }] }
1179
+ {
1180
+ format: signed,
1181
+ rolls: [{ action: check, params: { check: skills.intimidation.mod } }],
1182
+ with: [{ field: skills.intimidation.rank, as: detail }],
1183
+ }
1153
1184
  skills.medicine.rank: { format: { bands: rank } }
1154
1185
  skills.medicine.granted: { hidden: true }
1155
1186
  skills.medicine.mod:
1156
- { format: signed, rolls: [{ action: check, params: { check: skills.medicine.mod } }] }
1187
+ {
1188
+ format: signed,
1189
+ rolls: [{ action: check, params: { check: skills.medicine.mod } }],
1190
+ with: [{ field: skills.medicine.rank, as: detail }],
1191
+ }
1157
1192
  skills.nature.rank: { format: { bands: rank } }
1158
1193
  skills.nature.granted: { hidden: true }
1159
1194
  skills.nature.mod:
1160
- { format: signed, rolls: [{ action: check, params: { check: skills.nature.mod } }] }
1195
+ {
1196
+ format: signed,
1197
+ rolls: [{ action: check, params: { check: skills.nature.mod } }],
1198
+ with: [{ field: skills.nature.rank, as: detail }],
1199
+ }
1161
1200
  skills.occultism.rank: { format: { bands: rank } }
1162
1201
  skills.occultism.granted: { hidden: true }
1163
1202
  skills.occultism.mod:
1164
- { format: signed, rolls: [{ action: check, params: { check: skills.occultism.mod } }] }
1203
+ {
1204
+ format: signed,
1205
+ rolls: [{ action: check, params: { check: skills.occultism.mod } }],
1206
+ with: [{ field: skills.occultism.rank, as: detail }],
1207
+ }
1165
1208
  skills.performance.rank: { format: { bands: rank } }
1166
1209
  skills.performance.granted: { hidden: true }
1167
1210
  skills.performance.mod:
1168
- { format: signed, rolls: [{ action: check, params: { check: skills.performance.mod } }] }
1211
+ {
1212
+ format: signed,
1213
+ rolls: [{ action: check, params: { check: skills.performance.mod } }],
1214
+ with: [{ field: skills.performance.rank, as: detail }],
1215
+ }
1169
1216
  skills.religion.rank: { format: { bands: rank } }
1170
1217
  skills.religion.granted: { hidden: true }
1171
1218
  skills.religion.mod:
1172
- { format: signed, rolls: [{ action: check, params: { check: skills.religion.mod } }] }
1219
+ {
1220
+ format: signed,
1221
+ rolls: [{ action: check, params: { check: skills.religion.mod } }],
1222
+ with: [{ field: skills.religion.rank, as: detail }],
1223
+ }
1173
1224
  skills.society.rank: { format: { bands: rank } }
1174
1225
  skills.society.granted: { hidden: true }
1175
1226
  skills.society.mod:
1176
- { format: signed, rolls: [{ action: check, params: { check: skills.society.mod } }] }
1227
+ {
1228
+ format: signed,
1229
+ rolls: [{ action: check, params: { check: skills.society.mod } }],
1230
+ with: [{ field: skills.society.rank, as: detail }],
1231
+ }
1177
1232
  skills.stealth.rank: { format: { bands: rank } }
1178
1233
  skills.stealth.granted: { hidden: true }
1179
1234
  skills.stealth.mod:
1180
- { format: signed, rolls: [{ action: check, params: { check: skills.stealth.mod } }] }
1235
+ {
1236
+ format: signed,
1237
+ rolls: [{ action: check, params: { check: skills.stealth.mod } }],
1238
+ with: [{ field: skills.stealth.rank, as: detail }],
1239
+ }
1181
1240
  skills.survival.rank: { format: { bands: rank } }
1182
1241
  skills.survival.granted: { hidden: true }
1183
1242
  skills.survival.mod:
1184
- { format: signed, rolls: [{ action: check, params: { check: skills.survival.mod } }] }
1243
+ {
1244
+ format: signed,
1245
+ rolls: [{ action: check, params: { check: skills.survival.mod } }],
1246
+ with: [{ field: skills.survival.rank, as: detail }],
1247
+ }
1185
1248
  skills.thievery.rank: { format: { bands: rank } }
1186
1249
  skills.thievery.granted: { hidden: true }
1187
1250
  skills.thievery.mod:
1188
- { format: signed, rolls: [{ action: check, params: { check: skills.thievery.mod } }] }
1189
- skills.lore.academia.rank: { format: { bands: rank } }
1251
+ {
1252
+ format: signed,
1253
+ rolls: [{ action: check, params: { check: skills.thievery.mod } }],
1254
+ with: [{ field: skills.thievery.rank, as: detail }],
1255
+ }
1256
+ skills.lore.academia.rank: { format: { bands: rank }, showWhen: skills.lore.academia.rank > 0 }
1190
1257
  skills.lore.academia.granted: { hidden: true }
1191
1258
  skills.lore.academia.mod:
1192
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.academia.mod } }] }
1193
- skills.lore.circus.rank: { format: { bands: rank } }
1259
+ {
1260
+ format: signed,
1261
+ rolls: [{ action: check, params: { check: skills.lore.academia.mod } }],
1262
+ with: [{ field: skills.lore.academia.rank, as: detail }],
1263
+ showWhen: skills.lore.academia.rank > 0,
1264
+ }
1265
+ skills.lore.academia.increases: { showWhen: skills.lore.academia.rank > 0 }
1266
+ skills.lore.academia.trainedByIncrease: { showWhen: skills.lore.academia.rank > 0 }
1267
+ skills.lore.circus.rank: { format: { bands: rank }, showWhen: skills.lore.circus.rank > 0 }
1194
1268
  skills.lore.circus.granted: { hidden: true }
1195
1269
  skills.lore.circus.mod:
1196
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.circus.mod } }] }
1197
- skills.lore.farming.rank: { format: { bands: rank } }
1270
+ {
1271
+ format: signed,
1272
+ rolls: [{ action: check, params: { check: skills.lore.circus.mod } }],
1273
+ with: [{ field: skills.lore.circus.rank, as: detail }],
1274
+ showWhen: skills.lore.circus.rank > 0,
1275
+ }
1276
+ skills.lore.circus.increases: { showWhen: skills.lore.circus.rank > 0 }
1277
+ skills.lore.circus.trainedByIncrease: { showWhen: skills.lore.circus.rank > 0 }
1278
+ skills.lore.farming.rank: { format: { bands: rank }, showWhen: skills.lore.farming.rank > 0 }
1198
1279
  skills.lore.farming.granted: { hidden: true }
1199
1280
  skills.lore.farming.mod:
1200
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.farming.mod } }] }
1201
- skills.lore.legal.rank: { format: { bands: rank } }
1281
+ {
1282
+ format: signed,
1283
+ rolls: [{ action: check, params: { check: skills.lore.farming.mod } }],
1284
+ with: [{ field: skills.lore.farming.rank, as: detail }],
1285
+ showWhen: skills.lore.farming.rank > 0,
1286
+ }
1287
+ skills.lore.farming.increases: { showWhen: skills.lore.farming.rank > 0 }
1288
+ skills.lore.farming.trainedByIncrease: { showWhen: skills.lore.farming.rank > 0 }
1289
+ skills.lore.legal.rank: { format: { bands: rank }, showWhen: skills.lore.legal.rank > 0 }
1202
1290
  skills.lore.legal.granted: { hidden: true }
1203
1291
  skills.lore.legal.mod:
1204
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.legal.mod } }] }
1205
- skills.lore.scribing.rank: { format: { bands: rank } }
1292
+ {
1293
+ format: signed,
1294
+ rolls: [{ action: check, params: { check: skills.lore.legal.mod } }],
1295
+ with: [{ field: skills.lore.legal.rank, as: detail }],
1296
+ showWhen: skills.lore.legal.rank > 0,
1297
+ }
1298
+ skills.lore.legal.increases: { showWhen: skills.lore.legal.rank > 0 }
1299
+ skills.lore.legal.trainedByIncrease: { showWhen: skills.lore.legal.rank > 0 }
1300
+ skills.lore.scribing.rank: { format: { bands: rank }, showWhen: skills.lore.scribing.rank > 0 }
1206
1301
  skills.lore.scribing.granted: { hidden: true }
1207
1302
  skills.lore.scribing.mod:
1208
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.scribing.mod } }] }
1209
- skills.lore.underworld.rank: { format: { bands: rank } }
1303
+ {
1304
+ format: signed,
1305
+ rolls: [{ action: check, params: { check: skills.lore.scribing.mod } }],
1306
+ with: [{ field: skills.lore.scribing.rank, as: detail }],
1307
+ showWhen: skills.lore.scribing.rank > 0,
1308
+ }
1309
+ skills.lore.scribing.increases: { showWhen: skills.lore.scribing.rank > 0 }
1310
+ skills.lore.scribing.trainedByIncrease: { showWhen: skills.lore.scribing.rank > 0 }
1311
+ skills.lore.underworld.rank:
1312
+ { format: { bands: rank }, showWhen: skills.lore.underworld.rank > 0 }
1210
1313
  skills.lore.underworld.granted: { hidden: true }
1211
1314
  skills.lore.underworld.mod:
1212
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.underworld.mod } }] }
1213
- skills.lore.warfare.rank: { format: { bands: rank } }
1315
+ {
1316
+ format: signed,
1317
+ rolls: [{ action: check, params: { check: skills.lore.underworld.mod } }],
1318
+ with: [{ field: skills.lore.underworld.rank, as: detail }],
1319
+ showWhen: skills.lore.underworld.rank > 0,
1320
+ }
1321
+ skills.lore.underworld.increases: { showWhen: skills.lore.underworld.rank > 0 }
1322
+ skills.lore.underworld.trainedByIncrease: { showWhen: skills.lore.underworld.rank > 0 }
1323
+ skills.lore.warfare.rank: { format: { bands: rank }, showWhen: skills.lore.warfare.rank > 0 }
1214
1324
  skills.lore.warfare.granted: { hidden: true }
1215
1325
  skills.lore.warfare.mod:
1216
- { format: signed, rolls: [{ action: check, params: { check: skills.lore.warfare.mod } }] }
1326
+ {
1327
+ format: signed,
1328
+ rolls: [{ action: check, params: { check: skills.lore.warfare.mod } }],
1329
+ with: [{ field: skills.lore.warfare.rank, as: detail }],
1330
+ showWhen: skills.lore.warfare.rank > 0,
1331
+ }
1332
+ skills.lore.warfare.increases: { showWhen: skills.lore.warfare.rank > 0 }
1333
+ skills.lore.warfare.trainedByIncrease: { showWhen: skills.lore.warfare.rank > 0 }
@@ -1,5 +1,6 @@
1
1
  fields:
2
2
  sorcerer.bloodline:
3
+ open: true
3
4
  type: enum
4
5
  values:
5
6
  [none, aberrant, angelic, demonic, diabolic, draconic, elemental, fey, hag, imperial, undead]
@@ -39,10 +40,21 @@ tags:
39
40
 
40
41
  display:
41
42
  fields:
42
- sorcerer.bloodline: { groups: [summary], priority: 2 }
43
- sorcerer.element: { groups: [summary], priority: 2 }
43
+ sorcerer.bloodline: { groups: [summary], priority: 2, showWhen: class.has.sorcerer }
44
+ sorcerer.element:
45
+ { groups: [summary], priority: 2, showWhen: "sorcerer.bloodline == 'elemental'" }
44
46
  sorcerer.elementDamage: { hidden: true }
45
47
  sorcerer.gifts: { hidden: true }
46
- sorcerer.evolutionSignature: { groups: [spellcasting], priority: 2 }
47
- sorcerer.evolutionSpell: { groups: [spellcasting], priority: 2 }
48
+ sorcerer.evolutionSignature:
49
+ {
50
+ groups: [spellcasting],
51
+ priority: 2,
52
+ showWhen: '@feats.sorcerer.arcane-evolution in feats.held',
53
+ }
54
+ sorcerer.evolutionSpell:
55
+ {
56
+ groups: [spellcasting],
57
+ priority: 2,
58
+ showWhen: '@feats.sorcerer.occult-evolution in feats.held',
59
+ }
48
60
  sorcerer.evolutionRank: { hidden: true }
@@ -269,6 +269,13 @@ situational:
269
269
  incoming: { fields: [hp.current], tags: [damage] }
270
270
  available: >-
271
271
  countList(character.applied, x.active && x.source == @spells.shield) > 0
272
+ - id: fireShieldBlock
273
+ type: boolean
274
+ default: false
275
+ incoming: { fields: [hp.current], tags: [damage] }
276
+ available: >-
277
+ shield.raised
278
+ && countList(character.applied, x.active && x.source == @spells.fire-shield) > 0
272
279
 
273
280
  - id: bespellStrikes
274
281
  type: boolean
@@ -292,6 +299,8 @@ contentTypes:
292
299
  spell:
293
300
  texts: [trigger, requirements]
294
301
  fields:
302
+ # An initial domain spell's domain.
303
+ domain: { type: id, of: domain }
295
304
  rank: { type: integer, required: true, min: 1, max: 10 }
296
305
  cast:
297
306
  type: enum
@@ -340,6 +349,7 @@ contentTypes:
340
349
  damage: { type: dice, default: 0d6 }
341
350
  damageBonus: { type: integer, default: 0 }
342
351
  damageType:
352
+ open: true
343
353
  type: enum
344
354
  values:
345
355
  [
@@ -364,6 +374,7 @@ contentTypes:
364
374
  damageTypeChoice: { type: boolean, default: false }
365
375
  damage2: { type: dice, default: 0d6 }
366
376
  damage2Type:
377
+ open: true
367
378
  type: enum
368
379
  values:
369
380
  [
@@ -393,6 +404,7 @@ contentTypes:
393
404
  persistent: { type: dice, default: 0d6 }
394
405
  persistentBonus: { type: integer, default: 0, min: 0 }
395
406
  persistentType:
407
+ open: true
396
408
  type: enum
397
409
  values:
398
410
  [
@@ -440,7 +452,7 @@ contentTypes:
440
452
  applyTo: { type: enum, values: [none, self, ally, target], default: none }
441
453
  applyAt: { type: integer, default: 2, min: 1, max: 3 }
442
454
  stabilizes: { type: boolean, default: false }
443
- copyTemplates: { type: set, of: string }
455
+ copyTemplates: { type: list, of: string, unique: true }
444
456
  # An applied spell's `outcome` is the target's: 1 success, 2 failure, 3 critical failure.
445
457
  state:
446
458
  rank: { type: integer, default: item.rank, min: 1, max: 10 }
@@ -451,6 +463,7 @@ contentTypes:
451
463
  outcome: { type: integer, default: 2, min: 0, max: 3 }
452
464
  value: { type: integer, default: 1, min: 0 }
453
465
  damageType:
466
+ open: true
454
467
  type: enum
455
468
  values:
456
469
  [
@@ -489,6 +502,7 @@ actions:
489
502
  damageType:
490
503
  type: enum
491
504
  optional: true
505
+ open: true
492
506
  values:
493
507
  [
494
508
  acid,
@@ -1242,13 +1256,13 @@ actions:
1242
1256
  key: expended
1243
1257
  value: false
1244
1258
  - type: setState
1245
- when: "countCopies(copy.type == 'class' && has(copy.state.bondDrained) && copy.state.bondDrained > 0) > 0"
1246
- copies: { type: class, where: 'has(self.bondDrained) && self.bondDrained > 0' }
1259
+ when: class.has.wizard
1260
+ grants: { where: self.bondDrained > 0 }
1247
1261
  key: bondDrained
1248
1262
  value: 0
1249
1263
  - type: setState
1250
- when: "countCopies(copy.type == 'class' && has(copy.state.linkedFocusUsed) && copy.state.linkedFocusUsed) > 0"
1251
- copies: { type: class, where: 'has(self.linkedFocusUsed) && self.linkedFocusUsed' }
1264
+ when: class.has.wizard
1265
+ grants: { where: self.linkedFocusUsed }
1252
1266
  key: linkedFocusUsed
1253
1267
  value: false
1254
1268
  - id: items
@@ -1880,39 +1894,102 @@ display:
1880
1894
  }
1881
1895
  spells.autoRank: { groups: [spellcasting], priority: 2 }
1882
1896
  spellcasting.maxRank: { groups: [spell-slots], priority: 1 }
1883
- spellcasting.font: { groups: [spellcasting], priority: 1 }
1884
- spellcasting.fontSlots: { groups: [spell-slots], priority: 1 }
1885
- spellcasting.fontRank: { groups: [spell-slots], priority: 1 }
1886
- spellSlots.rank1.max: { groups: [spell-slots], priority: 0 }
1897
+ spellcasting.font:
1898
+ { groups: [spellcasting], priority: 1, showWhen: "spellcasting.font != 'none'" }
1899
+ spellcasting.fontSlots:
1900
+ { groups: [spell-slots], priority: 1, showWhen: spellcasting.fontSlots > 0 }
1901
+ spellcasting.fontRank:
1902
+ { groups: [spell-slots], priority: 1, showWhen: spellcasting.fontSlots > 0 }
1903
+ spellSlots.rank1.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank1.max > 0 }
1887
1904
  spellSlots.rank1.used:
1888
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank1.max, as: max }] }
1889
- spellSlots.rank2.max: { groups: [spell-slots], priority: 0 }
1905
+ {
1906
+ groups: [spell-slots],
1907
+ priority: 0,
1908
+ showWhen: spellSlots.rank1.max > 0,
1909
+ with: [{ field: spellSlots.rank1.max, as: max }],
1910
+ }
1911
+ spellSlots.rank2.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank2.max > 0 }
1890
1912
  spellSlots.rank2.used:
1891
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank2.max, as: max }] }
1892
- spellSlots.rank3.max: { groups: [spell-slots], priority: 0 }
1913
+ {
1914
+ groups: [spell-slots],
1915
+ priority: 0,
1916
+ showWhen: spellSlots.rank2.max > 0,
1917
+ with: [{ field: spellSlots.rank2.max, as: max }],
1918
+ }
1919
+ spellSlots.rank3.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank3.max > 0 }
1893
1920
  spellSlots.rank3.used:
1894
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank3.max, as: max }] }
1895
- spellSlots.rank4.max: { groups: [spell-slots], priority: 0 }
1921
+ {
1922
+ groups: [spell-slots],
1923
+ priority: 0,
1924
+ showWhen: spellSlots.rank3.max > 0,
1925
+ with: [{ field: spellSlots.rank3.max, as: max }],
1926
+ }
1927
+ spellSlots.rank4.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank4.max > 0 }
1896
1928
  spellSlots.rank4.used:
1897
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank4.max, as: max }] }
1898
- spellSlots.rank5.max: { groups: [spell-slots], priority: 0 }
1929
+ {
1930
+ groups: [spell-slots],
1931
+ priority: 0,
1932
+ showWhen: spellSlots.rank4.max > 0,
1933
+ with: [{ field: spellSlots.rank4.max, as: max }],
1934
+ }
1935
+ spellSlots.rank5.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank5.max > 0 }
1899
1936
  spellSlots.rank5.used:
1900
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank5.max, as: max }] }
1901
- spellSlots.rank6.max: { groups: [spell-slots], priority: 0 }
1937
+ {
1938
+ groups: [spell-slots],
1939
+ priority: 0,
1940
+ showWhen: spellSlots.rank5.max > 0,
1941
+ with: [{ field: spellSlots.rank5.max, as: max }],
1942
+ }
1943
+ spellSlots.rank6.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank6.max > 0 }
1902
1944
  spellSlots.rank6.used:
1903
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank6.max, as: max }] }
1904
- spellSlots.rank7.max: { groups: [spell-slots], priority: 0 }
1945
+ {
1946
+ groups: [spell-slots],
1947
+ priority: 0,
1948
+ showWhen: spellSlots.rank6.max > 0,
1949
+ with: [{ field: spellSlots.rank6.max, as: max }],
1950
+ }
1951
+ spellSlots.rank7.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank7.max > 0 }
1905
1952
  spellSlots.rank7.used:
1906
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank7.max, as: max }] }
1907
- spellSlots.rank8.max: { groups: [spell-slots], priority: 0 }
1953
+ {
1954
+ groups: [spell-slots],
1955
+ priority: 0,
1956
+ showWhen: spellSlots.rank7.max > 0,
1957
+ with: [{ field: spellSlots.rank7.max, as: max }],
1958
+ }
1959
+ spellSlots.rank8.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank8.max > 0 }
1908
1960
  spellSlots.rank8.used:
1909
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank8.max, as: max }] }
1910
- spellSlots.rank9.max: { groups: [spell-slots], priority: 0 }
1961
+ {
1962
+ groups: [spell-slots],
1963
+ priority: 0,
1964
+ showWhen: spellSlots.rank8.max > 0,
1965
+ with: [{ field: spellSlots.rank8.max, as: max }],
1966
+ }
1967
+ spellSlots.rank9.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank9.max > 0 }
1911
1968
  spellSlots.rank9.used:
1912
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank9.max, as: max }] }
1913
- spellSlots.rank10.max: { groups: [spell-slots], priority: 0 }
1969
+ {
1970
+ groups: [spell-slots],
1971
+ priority: 0,
1972
+ showWhen: spellSlots.rank9.max > 0,
1973
+ with: [{ field: spellSlots.rank9.max, as: max }],
1974
+ }
1975
+ spellSlots.rank10.max:
1976
+ { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank10.max > 0 }
1914
1977
  spellSlots.rank10.used:
1915
- { groups: [spell-slots], priority: 0, with: [{ field: spellSlots.rank10.max, as: max }] }
1978
+ {
1979
+ groups: [spell-slots],
1980
+ priority: 0,
1981
+ showWhen: spellSlots.rank10.max > 0,
1982
+ with: [{ field: spellSlots.rank10.max, as: max }],
1983
+ }
1984
+ spellSlots.extra.max: { groups: [spell-slots], priority: 1, showWhen: spellSlots.extra.max > 0 }
1985
+ spellSlots.extra.used:
1986
+ {
1987
+ groups: [spell-slots],
1988
+ priority: 1,
1989
+ showWhen: spellSlots.extra.max > 0,
1990
+ with: [{ field: spellSlots.extra.max, as: max }, { field: spells.extraSlot, as: detail }],
1991
+ }
1992
+ spells.extraSlot: { groups: [spell-slots], priority: 1, showWhen: spellSlots.extra.max > 0 }
1916
1993
  spellcasting.attribute: { hidden: true }
1917
1994
  spellcasting.proficiency: { hidden: true }
1918
1995
  spellcasting.attributeMod: { hidden: true }
@@ -11,7 +11,7 @@ tags:
11
11
 
12
12
  display:
13
13
  fields:
14
- speed.fly: { groups: [summary], priority: 2, unit: ft }
15
- speed.climb: { groups: [summary], priority: 2, unit: ft }
14
+ speed.fly: { groups: [summary], priority: 2, unit: ft, showWhen: speed.fly > 0 }
15
+ speed.climb: { groups: [summary], priority: 2, unit: ft, showWhen: speed.climb > 0 }
16
16
  speed.climb.base: { hidden: true }
17
- speed.burrow: { groups: [summary], priority: 2, unit: ft }
17
+ speed.burrow: { groups: [summary], priority: 2, unit: ft, showWhen: speed.burrow > 0 }
@@ -32,6 +32,7 @@ contentTypes:
32
32
  fields:
33
33
  category: { type: enum, values: [unarmed, simple, martial, advanced], required: true }
34
34
  group:
35
+ open: true
35
36
  type: enum
36
37
  values:
37
38
  [
@@ -57,7 +58,8 @@ contentTypes:
57
58
  ownDice: { type: boolean, default: false }
58
59
  formAttack: { type: boolean, default: false }
59
60
  formDamage: { type: integer, default: 0 }
60
- damageType: { type: enum, values: [bludgeoning, piercing, slashing, fire], required: true }
61
+ damageType:
62
+ { type: enum, values: [bludgeoning, piercing, slashing, fire], required: true, open: true }
61
63
  hands: { type: integer, default: 1, min: 1, max: 2 }
62
64
  range: { type: integer, default: 0, min: 0 }
63
65
  thrown: { type: integer, default: 0, min: 0 }
@@ -1,6 +1,7 @@
1
1
  fields:
2
2
  panache.active: { type: boolean, formula: false }
3
3
  swashbuckler.style:
4
+ open: true
4
5
  type: enum
5
6
  values: [none, battledancer, braggart, fencer, gymnast, rascal, wit]
6
7
  formula: "'none'"
@@ -31,21 +32,7 @@ display:
31
32
  swashbuckler.styleSkill: { hidden: true }
32
33
  swashbuckler.trickSkills: { hidden: true }
33
34
  swashbuckler.trickIncreases: { hidden: true }
34
- panache.active:
35
- {
36
- groups: [turn],
37
- priority: 0,
38
- showWhen: 'countCopies(copy.item == @classes.swashbuckler) > 0',
39
- }
40
- swashbuckler.style:
41
- {
42
- groups: [summary],
43
- priority: 2,
44
- showWhen: 'countCopies(copy.item == @classes.swashbuckler) > 0',
45
- }
35
+ panache.active: { groups: [turn], priority: 0, showWhen: class.has.swashbuckler }
36
+ swashbuckler.style: { groups: [summary], priority: 2, showWhen: class.has.swashbuckler }
46
37
  swashbuckler.preciseStrike:
47
- {
48
- groups: [proficiencies],
49
- priority: 2,
50
- showWhen: 'countCopies(copy.item == @classes.swashbuckler) > 0',
51
- }
38
+ { groups: [proficiencies], priority: 2, showWhen: class.has.swashbuckler }
package/rules/tags.yaml CHANGED
@@ -138,7 +138,13 @@ tags:
138
138
  - turn.start
139
139
  - turn.end
140
140
  - creation
141
+ - creation.ancestry
142
+ - creation.heritage
143
+ - creation.background
144
+ - creation.class
145
+ - creation.finish
141
146
  - level-up
147
+ - level-up.gain
142
148
  - turn
143
149
  - condition
144
150
  - dying
package/rules/witch.yaml CHANGED
@@ -2,6 +2,7 @@
2
2
  # from them as a wizard does.
3
3
  fields:
4
4
  witch.patron:
5
+ open: true
5
6
  type: enum
6
7
  values:
7
8
  [
@@ -40,5 +41,5 @@ situational:
40
41
 
41
42
  display:
42
43
  fields:
43
- witch.patron: { groups: [summary], priority: 2 }
44
+ witch.patron: { groups: [summary], priority: 2, showWhen: class.has.witch }
44
45
  witch.majorLessons: { hidden: true }