@opencharacter/orc-sf-2e 0.1.1 → 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 (110) hide show
  1. package/README.md +58 -15
  2. package/content/backgrounds/raised-by-belief.yaml +4 -1
  3. package/content/classes/envoy.yaml +2 -52
  4. package/content/classes/mystic/connections/akashic.yaml +1 -1
  5. package/content/classes/mystic/connections/elemental.yaml +62 -1
  6. package/content/classes/mystic/connections/healing.yaml +1 -1
  7. package/content/classes/mystic/connections/rhythm.yaml +1 -1
  8. package/content/classes/mystic/connections/shadow.yaml +1 -1
  9. package/content/classes/mystic.yaml +2 -51
  10. package/content/classes/operative.yaml +1 -44
  11. package/content/classes/solarian.yaml +1 -44
  12. package/content/classes/soldier.yaml +2 -51
  13. package/content/classes/witchwarper/anchors/core-memories.yaml +4 -216
  14. package/content/classes/witchwarper/anchors/focal-point.yaml +1 -1
  15. package/content/classes/witchwarper/anchors/tangible-object.yaml +1 -1
  16. package/content/classes/witchwarper/paradoxes/analyst.yaml +1 -1
  17. package/content/classes/witchwarper/paradoxes/anomaly.yaml +1 -1
  18. package/content/classes/witchwarper/paradoxes/lost-history.yaml +1 -1
  19. package/content/classes/witchwarper/paradoxes/precog.yaml +1 -1
  20. package/content/classes/witchwarper.yaml +3 -55
  21. package/content/effects/treated-disease.yaml +4 -0
  22. package/content/effects/treated-poison.yaml +4 -0
  23. package/content/feats/ancestry/android-lore.yaml +4 -8
  24. package/content/feats/ancestry/barathu-lore.yaml +4 -8
  25. package/content/feats/ancestry/borai-lore.yaml +4 -8
  26. package/content/feats/ancestry/extra-devotion.yaml +4 -8
  27. package/content/feats/ancestry/fixation.yaml +15 -1
  28. package/content/feats/ancestry/harmonic-sensitivity.yaml +16 -6
  29. package/content/feats/ancestry/kasatha-lore.yaml +4 -8
  30. package/content/feats/ancestry/lashunta-lore.yaml +10 -8
  31. package/content/feats/ancestry/pahtra-lore.yaml +4 -8
  32. package/content/feats/ancestry/prismeni-lore.yaml +4 -8
  33. package/content/feats/ancestry/shirren-lore.yaml +4 -8
  34. package/content/feats/ancestry/skittermander-lore.yaml +4 -8
  35. package/content/feats/ancestry/ysoki-lore.yaml +4 -8
  36. package/content/feats/archetype/envoy/envoy-dedication.yaml +2 -88
  37. package/content/feats/envoy/effortless-influencer.yaml +4 -0
  38. package/content/feats/mystic/new-epiphany.yaml +1 -1
  39. package/content/feats/mystic/realized-epiphany.yaml +1 -1
  40. package/content/feats/mystic/syncretic-epiphany.yaml +1 -1
  41. package/content/feats/skill/additional-lore.yaml +54 -391
  42. package/content/feats/skill/assurance.yaml +3 -30
  43. package/content/feats/skill/skill-training.yaml +1 -57
  44. package/content/features/envoy/style/from-the-front.yaml +1 -1
  45. package/content/features/envoy/style/from-the-shadows.yaml +2 -2
  46. package/content/features/envoy/style/guns-blazing.yaml +1 -1
  47. package/content/features/envoy/style/in-the-spotlight.yaml +1 -1
  48. package/content/features/envoy/style/infosphere-director.yaml +1 -1
  49. package/content/features/envoy/style/through-desperate-times.yaml +1 -1
  50. package/content/features/solarian/re-forge-solar-weapon.yaml +19 -24
  51. package/content/features/soldier/style/action-hero.yaml +1 -1
  52. package/content/features/soldier/style/armor-storm.yaml +1 -1
  53. package/content/features/soldier/style/bombard.yaml +1 -1
  54. package/content/features/soldier/style/close-quarters.yaml +1 -1
  55. package/content/features/soldier/style/erudite-warrior.yaml +1 -1
  56. package/content/features/spellcasting/archetype-repertoire.yaml +1 -1
  57. package/content/gear/comm-unit.yaml +1 -0
  58. package/content/heritages/warblood-vesk.yaml +18 -1
  59. package/content/spells/elemental-barrier.yaml +2 -1
  60. package/content/spells/elemental-weapon.yaml +10 -1
  61. package/content/spells/guidance.yaml +2 -0
  62. package/content/spells/shield.yaml +1 -0
  63. package/content/spells/sure-strike.yaml +8 -1
  64. package/content/spells/true-target.yaml +2 -0
  65. package/content/templates/elemental/air.yaml +6 -0
  66. package/content/templates/elemental/earth.yaml +6 -0
  67. package/content/templates/elemental/fire.yaml +6 -0
  68. package/content/templates/elemental/metal.yaml +6 -0
  69. package/content/templates/elemental/water.yaml +6 -0
  70. package/content/templates/elemental/wood.yaml +6 -0
  71. package/dist/i18n/en.js +1 -1
  72. package/dist/i18n/en.json +51 -73
  73. package/dist/index.js +1 -1
  74. package/dist/release.json +6191 -8327
  75. package/i18n/en/ancestries.yaml +1 -0
  76. package/i18n/en/ancestry-feats.yaml +4 -0
  77. package/i18n/en/archetypes.yaml +2 -2
  78. package/i18n/en/core.yaml +8 -2
  79. package/i18n/en/headline.yaml +4 -0
  80. package/i18n/en/mystic.yaml +12 -0
  81. package/i18n/en/sf-core.yaml +0 -11
  82. package/i18n/en/skills.yaml +6 -3
  83. package/i18n/en/tags.yaml +2 -0
  84. package/i18n/en/types.yaml +1 -0
  85. package/i18n/en/witchwarper.yaml +0 -54
  86. package/i18n/en.yaml +14 -1
  87. package/pack.yaml +2 -2
  88. package/package.json +2 -2
  89. package/rules/advancement.yaml +1 -0
  90. package/rules/afflictions.yaml +4 -5
  91. package/rules/archetypes.yaml +1 -0
  92. package/rules/building.yaml +7 -1
  93. package/rules/checks.yaml +1 -1
  94. package/rules/conditions.yaml +1 -0
  95. package/rules/core.yaml +1 -0
  96. package/rules/creation.yaml +18 -0
  97. package/rules/equipment.yaml +7 -2
  98. package/rules/heritages.yaml +1 -1
  99. package/rules/layout.yaml +62 -4
  100. package/rules/mystic.yaml +24 -1
  101. package/rules/skill-actions-stealth.yaml +1 -1
  102. package/rules/skills.yaml +254 -81
  103. package/rules/solarian.yaml +1 -2
  104. package/rules/spellcasting.yaml +89 -25
  105. package/rules/spells-high.yaml +3 -3
  106. package/rules/strikes.yaml +9 -92
  107. package/rules/tags.yaml +6 -0
  108. package/rules/witchwarper.yaml +7 -7
  109. package/upgrades/0.1.1-to-0.2.0.yaml +18 -0
  110. package/upgrades/0.2.0-to-0.3.0.yaml +12 -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
@@ -201,6 +199,8 @@ display:
201
199
  class.traits: { hidden: true }
202
200
  skills.maxRank: { hidden: true }
203
201
  skills.trained: { hidden: true }
202
+ skills.offered: { hidden: true }
203
+ skills.lores: { hidden: true }
204
204
  skills.trainings: { hidden: true }
205
205
  skills.chosen: { hidden: true }
206
206
  assurance.skills: { hidden: true }
@@ -233,6 +233,64 @@ display:
233
233
  conditions.doomed: { hidden: true }
234
234
  conditions.slowed: { hidden: true }
235
235
  conditions.stunned: { hidden: true }
236
+ conditions.drainedOffset: { hidden: true }
237
+ conditions.suppressed: { hidden: true }
238
+ features.held: { hidden: true }
239
+ heritage.size: { hidden: true }
240
+ proficiency.level: { hidden: true }
241
+ proficiency.untrained: { hidden: true }
242
+ armor.strength: { hidden: true }
243
+ armor.bulwark: { hidden: true }
244
+ armor.allBulwark: { hidden: true }
245
+ attacks.trainedWeapons: { hidden: true }
246
+ attacks.areaDc: { hidden: true }
247
+ attacks.kickbackStrength: { hidden: true }
248
+ immunities.damage: { groups: [defenses], priority: 2, showWhen: size(immunities.damage) > 0 }
249
+ parry.weapon:
250
+ { groups: [defenses], priority: 2, input: { widget: checkbox }, showWhen: parry.weapon }
251
+ attacks.simpleGun.rank:
252
+ {
253
+ groups: [proficiencies],
254
+ priority: 1,
255
+ format: { bands: rank },
256
+ showWhen: attacks.simpleGun.rank > 0,
257
+ }
258
+ attacks.martialGun.rank:
259
+ {
260
+ groups: [proficiencies],
261
+ priority: 1,
262
+ format: { bands: rank },
263
+ showWhen: attacks.martialGun.rank > 0,
264
+ }
265
+ attacks.advancedGun.rank:
266
+ {
267
+ groups: [proficiencies],
268
+ priority: 1,
269
+ format: { bands: rank },
270
+ showWhen: attacks.advancedGun.rank > 0,
271
+ }
272
+ attacks.agileMelee.rank:
273
+ {
274
+ groups: [proficiencies],
275
+ priority: 1,
276
+ format: { bands: rank },
277
+ showWhen: attacks.agileMelee.rank > 0,
278
+ }
279
+ attacks.solar.rank:
280
+ {
281
+ groups: [proficiencies],
282
+ priority: 1,
283
+ format: { bands: rank },
284
+ showWhen: attacks.solar.rank > 0,
285
+ }
286
+ attacks.familiar: { groups: [proficiencies], priority: 2, showWhen: size(attacks.familiar) > 0 }
287
+ augmentations.count:
288
+ {
289
+ groups: [bulk],
290
+ priority: 2,
291
+ showWhen: augmentations.count > 0,
292
+ with: [{ field: augmentations.limit, as: max }],
293
+ }
236
294
 
237
295
  types:
238
296
  weapon:
package/rules/mystic.yaml CHANGED
@@ -1,6 +1,26 @@
1
1
  fields:
2
2
  mystic.connection:
3
- { type: enum, values: [none, akashic, elemental, healing, rhythm, shadow], formula: "'none'" }
3
+ {
4
+ type: enum,
5
+ values: [none, akashic, elemental, healing, rhythm, shadow],
6
+ formula: "'none'",
7
+ open: true,
8
+ }
9
+ # What the epiphany feats' prerequisites read: the rank in the connection's own skill, and how
10
+ # many other connections' skills are expert (New Epiphany) or master with that connection's
11
+ # initial spell (Syncretic Epiphany). An add-on's connection adds its own (rules effects).
12
+ mystic.connectionRank:
13
+ type: integer
14
+ formula: >-
15
+ mystic.connection == 'akashic' ? skills.occultism.rank : mystic.connection == 'elemental' ? skills.nature.rank : mystic.connection == 'healing' ? skills.medicine.rank : mystic.connection == 'rhythm' ? skills.performance.rank : mystic.connection == 'shadow' ? skills.stealth.rank : 0
16
+ mystic.otherExpertConnections:
17
+ type: integer
18
+ formula: >-
19
+ (mystic.connection != 'akashic' && skills.occultism.rank >= 2 ? 1 : 0) + (mystic.connection != 'elemental' && skills.nature.rank >= 2 ? 1 : 0) + (mystic.connection != 'healing' && skills.medicine.rank >= 2 ? 1 : 0) + (mystic.connection != 'rhythm' && skills.performance.rank >= 2 ? 1 : 0) + (mystic.connection != 'shadow' && skills.stealth.rank >= 2 ? 1 : 0)
20
+ mystic.otherMasterEpiphanies:
21
+ type: integer
22
+ formula: >-
23
+ (mystic.connection != 'akashic' && skills.occultism.rank >= 3 && countCopies(copy.item == @spells.akashic-fount) > 0 ? 1 : 0) + (mystic.connection != 'elemental' && skills.nature.rank >= 3 && countCopies(copy.item == @spells.elemental-weapon) > 0 ? 1 : 0) + (mystic.connection != 'healing' && skills.medicine.rank >= 3 && countCopies(copy.item == @spells.infusion) > 0 ? 1 : 0) + (mystic.connection != 'rhythm' && skills.performance.rank >= 3 && countCopies(copy.item == @spells.anthem) > 0 ? 1 : 0) + (mystic.connection != 'shadow' && skills.stealth.rank >= 3 && countCopies(copy.item == @spells.shadow-snap) > 0 ? 1 : 0)
4
24
  vitality.archetype: { type: boolean, formula: false }
5
25
  vitality.max:
6
26
  type: integer
@@ -24,6 +44,9 @@ tags:
24
44
  display:
25
45
  fields:
26
46
  mystic.connection: { hidden: true }
47
+ mystic.connectionRank: { hidden: true }
48
+ mystic.otherExpertConnections: { hidden: true }
49
+ mystic.otherMasterEpiphanies: { hidden: true }
27
50
  vitality.spent:
28
51
  {
29
52
  groups: [spellcasting],
@@ -334,7 +334,7 @@ actions:
334
334
  - when: true
335
335
  flags:
336
336
  compass: >-
337
- countCopies(copy.item == @gear.comm-unit) > 0
337
+ countCopies('tool.compass' in copy.tags) > 0
338
338
  - id: check
339
339
  kind: action
340
340
  use: check