@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
@@ -10,50 +10,7 @@ grants: [{ item: features.envoy.envoy-directives }]
10
10
  choices:
11
11
  - id: skill
12
12
  from:
13
- values:
14
- - skill.acrobatics
15
- - skill.arcana
16
- - skill.athletics
17
- - skill.computers
18
- - skill.crafting
19
- - skill.deception
20
- - skill.diplomacy
21
- - skill.intimidation
22
- - skill.medicine
23
- - skill.nature
24
- - skill.occultism
25
- - skill.performance
26
- - skill.piloting
27
- - skill.religion
28
- - skill.society
29
- - skill.stealth
30
- - skill.survival
31
- - skill.thievery
32
- - skill.lore.academia
33
- - skill.lore.alcohol
34
- - skill.lore.animal
35
- - skill.lore.art
36
- - skill.lore.augmentation
37
- - skill.lore.business
38
- - skill.lore.cooking
39
- - skill.lore.corporate
40
- - skill.lore.games
41
- - skill.lore.genealogy
42
- - skill.lore.history
43
- - skill.lore.hyperspace
44
- - skill.lore.infosphere
45
- - skill.lore.labor
46
- - skill.lore.legal
47
- - skill.lore.life-science
48
- - skill.lore.media
49
- - skill.lore.mining
50
- - skill.lore.physical-science
51
- - skill.lore.piracy
52
- - skill.lore.plant
53
- - skill.lore.sports
54
- - skill.lore.underworld
55
- - skill.lore.vidgame
56
- - skill.lore.warfare
13
+ values: { formula: skills.offered }
57
14
  where: "(!(value in skills.trained) && !(value in skills.chosen) || value in choice.picks) && (value in ['skill.deception', 'skill.diplomacy', 'skill.intimidation'] || countList(['skill.deception', 'skill.diplomacy', 'skill.intimidation'], (x in skills.trained || x in skills.chosen) && !(x in choice.picks)) == 3)"
58
15
  effects:
59
16
  - target: skills.trained
@@ -63,50 +20,7 @@ choices:
63
20
  - { target: skills.trainings, op: add, value: 1 }
64
21
  - id: other
65
22
  from:
66
- values:
67
- - skill.acrobatics
68
- - skill.arcana
69
- - skill.athletics
70
- - skill.computers
71
- - skill.crafting
72
- - skill.deception
73
- - skill.diplomacy
74
- - skill.intimidation
75
- - skill.medicine
76
- - skill.nature
77
- - skill.occultism
78
- - skill.performance
79
- - skill.piloting
80
- - skill.religion
81
- - skill.society
82
- - skill.stealth
83
- - skill.survival
84
- - skill.thievery
85
- - skill.lore.academia
86
- - skill.lore.alcohol
87
- - skill.lore.animal
88
- - skill.lore.art
89
- - skill.lore.augmentation
90
- - skill.lore.business
91
- - skill.lore.cooking
92
- - skill.lore.corporate
93
- - skill.lore.games
94
- - skill.lore.genealogy
95
- - skill.lore.history
96
- - skill.lore.hyperspace
97
- - skill.lore.infosphere
98
- - skill.lore.labor
99
- - skill.lore.legal
100
- - skill.lore.life-science
101
- - skill.lore.media
102
- - skill.lore.mining
103
- - skill.lore.physical-science
104
- - skill.lore.piracy
105
- - skill.lore.plant
106
- - skill.lore.sports
107
- - skill.lore.underworld
108
- - skill.lore.vidgame
109
- - skill.lore.warfare
23
+ values: { formula: skills.offered }
110
24
  where: '!(value in skills.trained) && !(value in skills.chosen) || value in choice.picks'
111
25
  effects:
112
26
  - target: skills.trained
@@ -3,3 +3,7 @@ type: feat
3
3
  tags: [trait.envoy]
4
4
  fields: { level: 16, category: class, class: classes.envoy }
5
5
  prerequisites: [{ id: feat, when: '@feats.envoy.influence in feats.held' }]
6
+ grants:
7
+ - { item: feats.skill.assurance, choices: { skill: [{ option: skill.deception }] } }
8
+ - { item: feats.skill.assurance, choices: { skill: [{ option: skill.diplomacy }] } }
9
+ - { item: feats.skill.assurance, choices: { skill: [{ option: skill.intimidation }] } }
@@ -4,7 +4,7 @@ tags: [trait.mystic]
4
4
  fields: { level: 6, category: class, class: classes.mystic }
5
5
  prerequisites:
6
6
  - id: expert
7
- when: "mystic.connection != 'akashic' && skills.occultism.rank >= 2 || mystic.connection != 'elemental' && skills.nature.rank >= 2 || mystic.connection != 'healing' && skills.medicine.rank >= 2 || mystic.connection != 'rhythm' && skills.performance.rank >= 2 || mystic.connection != 'shadow' && skills.stealth.rank >= 2"
7
+ when: mystic.otherExpertConnections > 0
8
8
  effects: [{ target: focus.points, op: add, value: 1 }]
9
9
  choices:
10
10
  - id: spell
@@ -4,4 +4,4 @@ tags: [trait.mystic, trait.spellshape]
4
4
  fields: { level: 18, category: class, class: classes.mystic }
5
5
  prerequisites:
6
6
  - id: legendary
7
- when: "mystic.connection == 'akashic' && skills.occultism.rank >= 4 || mystic.connection == 'elemental' && skills.nature.rank >= 4 || mystic.connection == 'healing' && skills.medicine.rank >= 4 || mystic.connection == 'rhythm' && skills.performance.rank >= 4 || mystic.connection == 'shadow' && skills.stealth.rank >= 4"
7
+ when: mystic.connectionRank >= 4
@@ -4,7 +4,7 @@ tags: [trait.mystic]
4
4
  fields: { level: 16, category: class, class: classes.mystic }
5
5
  prerequisites:
6
6
  - id: master
7
- when: "mystic.connection != 'akashic' && skills.occultism.rank >= 3 && countCopies(copy.item == @spells.akashic-fount) > 0 || mystic.connection != 'elemental' && skills.nature.rank >= 3 && countCopies(copy.item == @spells.elemental-weapon) > 0 || mystic.connection != 'healing' && skills.medicine.rank >= 3 && countCopies(copy.item == @spells.infusion) > 0 || mystic.connection != 'rhythm' && skills.performance.rank >= 3 && countCopies(copy.item == @spells.anthem) > 0 || mystic.connection != 'shadow' && skills.stealth.rank >= 3 && countCopies(copy.item == @spells.shadow-snap) > 0"
7
+ when: mystic.otherMasterEpiphanies > 0
8
8
  effects: [{ target: focus.points, op: add, value: 1 }]
9
9
  choices:
10
10
  - id: spell
@@ -6,394 +6,57 @@ choices:
6
6
  - id: lore
7
7
  unique: additional-lore
8
8
  from:
9
- options:
10
- - id: academia
11
- effects:
12
- - target: skills.trained
13
- op: grant
14
- value: { tag: skill.lore.academia }
15
- when: "!('skill.lore.academia' in skills.chosen)"
16
- - { target: skills.trainings, op: add, value: 1 }
17
- - target: skills.lore.academia.granted
18
- op: add
19
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
20
- - id: alcohol
21
- effects:
22
- - target: skills.trained
23
- op: grant
24
- value: { tag: skill.lore.alcohol }
25
- when: "!('skill.lore.alcohol' in skills.chosen)"
26
- - { target: skills.trainings, op: add, value: 1 }
27
- - target: skills.lore.alcohol.granted
28
- op: add
29
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
30
- - id: android
31
- effects:
32
- - target: skills.trained
33
- op: grant
34
- value: { tag: skill.lore.android }
35
- when: "!('skill.lore.android' in skills.chosen)"
36
- - { target: skills.trainings, op: add, value: 1 }
37
- - target: skills.lore.android.granted
38
- op: add
39
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
40
- - id: animal
41
- effects:
42
- - target: skills.trained
43
- op: grant
44
- value: { tag: skill.lore.animal }
45
- when: "!('skill.lore.animal' in skills.chosen)"
46
- - { target: skills.trainings, op: add, value: 1 }
47
- - target: skills.lore.animal.granted
48
- op: add
49
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
50
- - id: art
51
- effects:
52
- - target: skills.trained
53
- op: grant
54
- value: { tag: skill.lore.art }
55
- when: "!('skill.lore.art' in skills.chosen)"
56
- - { target: skills.trainings, op: add, value: 1 }
57
- - target: skills.lore.art.granted
58
- op: add
59
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
60
- - id: augmentation
61
- effects:
62
- - target: skills.trained
63
- op: grant
64
- value: { tag: skill.lore.augmentation }
65
- when: "!('skill.lore.augmentation' in skills.chosen)"
66
- - { target: skills.trainings, op: add, value: 1 }
67
- - target: skills.lore.augmentation.granted
68
- op: add
69
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
70
- - id: barathu
71
- effects:
72
- - target: skills.trained
73
- op: grant
74
- value: { tag: skill.lore.barathu }
75
- when: "!('skill.lore.barathu' in skills.chosen)"
76
- - { target: skills.trainings, op: add, value: 1 }
77
- - target: skills.lore.barathu.granted
78
- op: add
79
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
80
- - id: borai
81
- effects:
82
- - target: skills.trained
83
- op: grant
84
- value: { tag: skill.lore.borai }
85
- when: "!('skill.lore.borai' in skills.chosen)"
86
- - { target: skills.trainings, op: add, value: 1 }
87
- - target: skills.lore.borai.granted
88
- op: add
89
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
90
- - id: business
91
- effects:
92
- - target: skills.trained
93
- op: grant
94
- value: { tag: skill.lore.business }
95
- when: "!('skill.lore.business' in skills.chosen)"
96
- - { target: skills.trainings, op: add, value: 1 }
97
- - target: skills.lore.business.granted
98
- op: add
99
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
100
- - id: cooking
101
- effects:
102
- - target: skills.trained
103
- op: grant
104
- value: { tag: skill.lore.cooking }
105
- when: "!('skill.lore.cooking' in skills.chosen)"
106
- - { target: skills.trainings, op: add, value: 1 }
107
- - target: skills.lore.cooking.granted
108
- op: add
109
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
110
- - id: corporate
111
- effects:
112
- - target: skills.trained
113
- op: grant
114
- value: { tag: skill.lore.corporate }
115
- when: "!('skill.lore.corporate' in skills.chosen)"
116
- - { target: skills.trainings, op: add, value: 1 }
117
- - target: skills.lore.corporate.granted
118
- op: add
119
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
120
- - id: games
121
- effects:
122
- - target: skills.trained
123
- op: grant
124
- value: { tag: skill.lore.games }
125
- when: "!('skill.lore.games' in skills.chosen)"
126
- - { target: skills.trainings, op: add, value: 1 }
127
- - target: skills.lore.games.granted
128
- op: add
129
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
130
- - id: genealogy
131
- effects:
132
- - target: skills.trained
133
- op: grant
134
- value: { tag: skill.lore.genealogy }
135
- when: "!('skill.lore.genealogy' in skills.chosen)"
136
- - { target: skills.trainings, op: add, value: 1 }
137
- - target: skills.lore.genealogy.granted
138
- op: add
139
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
140
- - id: history
141
- effects:
142
- - target: skills.trained
143
- op: grant
144
- value: { tag: skill.lore.history }
145
- when: "!('skill.lore.history' in skills.chosen)"
146
- - { target: skills.trainings, op: add, value: 1 }
147
- - target: skills.lore.history.granted
148
- op: add
149
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
150
- - id: hyperspace
151
- effects:
152
- - target: skills.trained
153
- op: grant
154
- value: { tag: skill.lore.hyperspace }
155
- when: "!('skill.lore.hyperspace' in skills.chosen)"
156
- - { target: skills.trainings, op: add, value: 1 }
157
- - target: skills.lore.hyperspace.granted
158
- op: add
159
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
160
- - id: infosphere
161
- effects:
162
- - target: skills.trained
163
- op: grant
164
- value: { tag: skill.lore.infosphere }
165
- when: "!('skill.lore.infosphere' in skills.chosen)"
166
- - { target: skills.trainings, op: add, value: 1 }
167
- - target: skills.lore.infosphere.granted
168
- op: add
169
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
170
- - id: kasatha
171
- effects:
172
- - target: skills.trained
173
- op: grant
174
- value: { tag: skill.lore.kasatha }
175
- when: "!('skill.lore.kasatha' in skills.chosen)"
176
- - { target: skills.trainings, op: add, value: 1 }
177
- - target: skills.lore.kasatha.granted
178
- op: add
179
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
180
- - id: labor
181
- effects:
182
- - target: skills.trained
183
- op: grant
184
- value: { tag: skill.lore.labor }
185
- when: "!('skill.lore.labor' in skills.chosen)"
186
- - { target: skills.trainings, op: add, value: 1 }
187
- - target: skills.lore.labor.granted
188
- op: add
189
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
190
- - id: lashunta
191
- effects:
192
- - target: skills.trained
193
- op: grant
194
- value: { tag: skill.lore.lashunta }
195
- when: "!('skill.lore.lashunta' in skills.chosen)"
196
- - { target: skills.trainings, op: add, value: 1 }
197
- - target: skills.lore.lashunta.granted
198
- op: add
199
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
200
- - id: legal
201
- effects:
202
- - target: skills.trained
203
- op: grant
204
- value: { tag: skill.lore.legal }
205
- when: "!('skill.lore.legal' in skills.chosen)"
206
- - { target: skills.trainings, op: add, value: 1 }
207
- - target: skills.lore.legal.granted
208
- op: add
209
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
210
- - id: life-science
211
- effects:
212
- - target: skills.trained
213
- op: grant
214
- value: { tag: skill.lore.life-science }
215
- when: "!('skill.lore.life-science' in skills.chosen)"
216
- - { target: skills.trainings, op: add, value: 1 }
217
- - target: skills.lore.lifeScience.granted
218
- op: add
219
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
220
- - id: media
221
- effects:
222
- - target: skills.trained
223
- op: grant
224
- value: { tag: skill.lore.media }
225
- when: "!('skill.lore.media' in skills.chosen)"
226
- - { target: skills.trainings, op: add, value: 1 }
227
- - target: skills.lore.media.granted
228
- op: add
229
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
230
- - id: mining
231
- effects:
232
- - target: skills.trained
233
- op: grant
234
- value: { tag: skill.lore.mining }
235
- when: "!('skill.lore.mining' in skills.chosen)"
236
- - { target: skills.trainings, op: add, value: 1 }
237
- - target: skills.lore.mining.granted
238
- op: add
239
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
240
- - id: pahtra
241
- effects:
242
- - target: skills.trained
243
- op: grant
244
- value: { tag: skill.lore.pahtra }
245
- when: "!('skill.lore.pahtra' in skills.chosen)"
246
- - { target: skills.trainings, op: add, value: 1 }
247
- - target: skills.lore.pahtra.granted
248
- op: add
249
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
250
- - id: physical-science
251
- effects:
252
- - target: skills.trained
253
- op: grant
254
- value: { tag: skill.lore.physical-science }
255
- when: "!('skill.lore.physical-science' in skills.chosen)"
256
- - { target: skills.trainings, op: add, value: 1 }
257
- - target: skills.lore.physicalScience.granted
258
- op: add
259
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
260
- - id: piracy
261
- effects:
262
- - target: skills.trained
263
- op: grant
264
- value: { tag: skill.lore.piracy }
265
- when: "!('skill.lore.piracy' in skills.chosen)"
266
- - { target: skills.trainings, op: add, value: 1 }
267
- - target: skills.lore.piracy.granted
268
- op: add
269
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
270
- - id: plant
271
- effects:
272
- - target: skills.trained
273
- op: grant
274
- value: { tag: skill.lore.plant }
275
- when: "!('skill.lore.plant' in skills.chosen)"
276
- - { target: skills.trainings, op: add, value: 1 }
277
- - target: skills.lore.plant.granted
278
- op: add
279
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
280
- - id: prismeni
281
- effects:
282
- - target: skills.trained
283
- op: grant
284
- value: { tag: skill.lore.prismeni }
285
- when: "!('skill.lore.prismeni' in skills.chosen)"
286
- - { target: skills.trainings, op: add, value: 1 }
287
- - target: skills.lore.prismeni.granted
288
- op: add
289
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
290
- - id: shirren
291
- effects:
292
- - target: skills.trained
293
- op: grant
294
- value: { tag: skill.lore.shirren }
295
- when: "!('skill.lore.shirren' in skills.chosen)"
296
- - { target: skills.trainings, op: add, value: 1 }
297
- - target: skills.lore.shirren.granted
298
- op: add
299
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
300
- - id: skittermander
301
- effects:
302
- - target: skills.trained
303
- op: grant
304
- value: { tag: skill.lore.skittermander }
305
- when: "!('skill.lore.skittermander' in skills.chosen)"
306
- - { target: skills.trainings, op: add, value: 1 }
307
- - target: skills.lore.skittermander.granted
308
- op: add
309
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
310
- - id: sports
311
- effects:
312
- - target: skills.trained
313
- op: grant
314
- value: { tag: skill.lore.sports }
315
- when: "!('skill.lore.sports' in skills.chosen)"
316
- - { target: skills.trainings, op: add, value: 1 }
317
- - target: skills.lore.sports.granted
318
- op: add
319
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
320
- - id: underworld
321
- effects:
322
- - target: skills.trained
323
- op: grant
324
- value: { tag: skill.lore.underworld }
325
- when: "!('skill.lore.underworld' in skills.chosen)"
326
- - { target: skills.trainings, op: add, value: 1 }
327
- - target: skills.lore.underworld.granted
328
- op: add
329
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
330
- - id: vesk
331
- effects:
332
- - target: skills.trained
333
- op: grant
334
- value: { tag: skill.lore.vesk }
335
- when: "!('skill.lore.vesk' in skills.chosen)"
336
- - { target: skills.trainings, op: add, value: 1 }
337
- - target: skills.lore.vesk.granted
338
- op: add
339
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
340
- - id: vidgame
341
- effects:
342
- - target: skills.trained
343
- op: grant
344
- value: { tag: skill.lore.vidgame }
345
- when: "!('skill.lore.vidgame' in skills.chosen)"
346
- - { target: skills.trainings, op: add, value: 1 }
347
- - target: skills.lore.vidgame.granted
348
- op: add
349
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
350
- - id: warfare
351
- effects:
352
- - target: skills.trained
353
- op: grant
354
- value: { tag: skill.lore.warfare }
355
- when: "!('skill.lore.warfare' in skills.chosen)"
356
- - { target: skills.trainings, op: add, value: 1 }
357
- - target: skills.lore.warfare.granted
358
- op: add
359
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
360
- - id: ysoki
361
- effects:
362
- - target: skills.trained
363
- op: grant
364
- value: { tag: skill.lore.ysoki }
365
- when: "!('skill.lore.ysoki' in skills.chosen)"
366
- - { target: skills.trainings, op: add, value: 1 }
367
- - target: skills.lore.ysoki.granted
368
- op: add
369
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
370
- - id: custom1
371
- effects:
372
- - target: skills.trained
373
- op: grant
374
- value: { tag: skill.lore.custom1 }
375
- when: "!('skill.lore.custom1' in skills.chosen)"
376
- - { target: skills.trainings, op: add, value: 1 }
377
- - target: skills.lore.custom1.granted
378
- op: add
379
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
380
- - id: custom2
381
- effects:
382
- - target: skills.trained
383
- op: grant
384
- value: { tag: skill.lore.custom2 }
385
- when: "!('skill.lore.custom2' in skills.chosen)"
386
- - { target: skills.trainings, op: add, value: 1 }
387
- - target: skills.lore.custom2.granted
388
- op: add
389
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
390
- - id: custom3
391
- effects:
392
- - target: skills.trained
393
- op: grant
394
- value: { tag: skill.lore.custom3 }
395
- when: "!('skill.lore.custom3' in skills.chosen)"
396
- - { target: skills.trainings, op: add, value: 1 }
397
- - target: skills.lore.custom3.granted
398
- op: add
399
- value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
9
+ values:
10
+ [
11
+ academia,
12
+ alcohol,
13
+ android,
14
+ animal,
15
+ art,
16
+ augmentation,
17
+ barathu,
18
+ borai,
19
+ business,
20
+ cooking,
21
+ corporate,
22
+ games,
23
+ genealogy,
24
+ history,
25
+ hyperspace,
26
+ infosphere,
27
+ kasatha,
28
+ labor,
29
+ lashunta,
30
+ legal,
31
+ life-science,
32
+ media,
33
+ mining,
34
+ pahtra,
35
+ physical-science,
36
+ piracy,
37
+ plant,
38
+ prismeni,
39
+ shirren,
40
+ skittermander,
41
+ sports,
42
+ underworld,
43
+ vesk,
44
+ vidgame,
45
+ warfare,
46
+ ysoki,
47
+ custom1,
48
+ custom2,
49
+ custom3,
50
+ ]
51
+ effects:
52
+ - target: skills.trained
53
+ op: grant
54
+ value: { formula: "'skill.lore.' + pick.value" }
55
+ when: "!(('skill.lore.' + pick.value) in skills.chosen)"
56
+ - { target: skills.trainings, op: add, value: 1 }
57
+ - target:
58
+ formula: >-
59
+ 'skills.lore.' + (pick.value == 'life-science' ? 'lifeScience'
60
+ : pick.value == 'physical-science' ? 'physicalScience' : pick.value) + '.granted'
61
+ op: add
62
+ value: '(level >= 3 ? 1 : 0) + (level >= 7 ? 1 : 0) + (level >= 15 ? 1 : 0)'
@@ -4,40 +4,13 @@ tags: [trait.fortune]
4
4
  fields: { level: 1, category: skill, skills: [skill] }
5
5
  repeatable: true
6
6
 
7
- state:
8
- skill: { type: string, default: '' }
9
- effects:
10
- - {
11
- target: assurance.skills,
12
- op: grant,
13
- value: { formula: self.skill },
14
- when: "has(self.skill) && self.skill != ''",
15
- }
16
7
  choices:
17
8
  - id: skill
18
- when: "!has(self.skill) || self.skill == ''"
19
9
  from:
20
10
  values:
21
- [
22
- skill.acrobatics,
23
- skill.arcana,
24
- skill.athletics,
25
- skill.computers,
26
- skill.crafting,
27
- skill.deception,
28
- skill.diplomacy,
29
- skill.intimidation,
30
- skill.medicine,
31
- skill.nature,
32
- skill.occultism,
33
- skill.performance,
34
- skill.piloting,
35
- skill.religion,
36
- skill.society,
37
- skill.stealth,
38
- skill.survival,
39
- skill.thievery,
40
- ]
11
+ {
12
+ formula: "skills.offered + skills.lores + ['skill.lore.custom1', 'skill.lore.custom2', 'skill.lore.custom3']",
13
+ }
41
14
  effects:
42
15
  - { target: assurance.skills, op: grant, value: { formula: pick.value } }
43
16