@opencharacter/godbound-core 0.1.0 → 0.2.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.
- package/README.md +27 -4
- package/dist/i18n/en.js +1 -1
- package/dist/i18n/en.json +120 -115
- package/dist/index.js +1 -1
- package/dist/release.json +449 -324
- package/i18n/en/content.yaml +110 -110
- package/i18n/en.yaml +10 -5
- package/pack.yaml +2 -2
- package/package.json +2 -2
- package/rules/combat.yaml +14 -12
- package/rules/creation.yaml +14 -20
- package/rules/effort.yaml +10 -4
- package/rules/gear.yaml +10 -1
- package/rules/layout.yaml +2 -0
- package/rules/tags.yaml +5 -0
package/i18n/en.yaml
CHANGED
|
@@ -82,7 +82,9 @@ fields.effort.free.name: Effort
|
|
|
82
82
|
fields.effort.committed.name: Committed Effort
|
|
83
83
|
fields.effort.active.name: Effort held by gifts
|
|
84
84
|
fields.effort.scene.name: Effort committed for the scene
|
|
85
|
+
fields.effort.scene.short: Scene
|
|
85
86
|
fields.effort.day.name: Effort committed for the day
|
|
87
|
+
fields.effort.day.short: Day
|
|
86
88
|
fields.luck.reserve.name: Luck roll in reserve
|
|
87
89
|
|
|
88
90
|
fields.hp.max.name: Maximum hit points
|
|
@@ -161,6 +163,7 @@ types.gift.name: Gift
|
|
|
161
163
|
types.gift.block: >-
|
|
162
164
|
{has_word, select, true {{word_name} · } other {}}{has_apotheosisLevel, select, true {Level {apotheosisLevel} · } other {}}{has_degree, select, true {{degree_name} · } other {}}{smite, select, true {(Smite) } other {}}{activation_name}{commit, select, none {} other { · Commit Effort: {commit_name}}}
|
|
163
165
|
types.gift.state.committed.name: Effort held
|
|
166
|
+
types.gift.state.artifactEffort.name: Artifact Effort
|
|
164
167
|
types.gift.fields.word.name: Word
|
|
165
168
|
types.gift.fields.degree.name: Degree
|
|
166
169
|
types.gift.fields.degree.values.lesser.name: Lesser
|
|
@@ -281,11 +284,15 @@ tags.luck.name: Luck
|
|
|
281
284
|
tags.backlash.name: Backlash
|
|
282
285
|
tags.failed-save.name: Failed save
|
|
283
286
|
tags.creation.name: Creation
|
|
287
|
+
tags.creation.finish.name: Creation finish
|
|
284
288
|
tags.level.name: Level
|
|
289
|
+
tags.level.gain.name: New level
|
|
285
290
|
tags.effort.name: Effort
|
|
286
291
|
tags.miracle.name: Miracle
|
|
287
292
|
tags.influence.name: Influence
|
|
288
293
|
tags.rest.name: Rest
|
|
294
|
+
tags.rest.day.name: New day
|
|
295
|
+
tags.rest.scene.name: Scene end
|
|
289
296
|
tags.health.name: Hit points
|
|
290
297
|
tags.fury.name: Divine fury
|
|
291
298
|
tags.gift.name: Gift
|
|
@@ -338,9 +345,10 @@ actions.take-damage.name: Take damage
|
|
|
338
345
|
actions.take-damage.params.amount.name: Damage
|
|
339
346
|
actions.take-damage.results.taken.name: Taken
|
|
340
347
|
actions.heal.name: Heal
|
|
341
|
-
actions.heal.params.amount.name: Hit points
|
|
348
|
+
actions.heal.params.amount.name: Hit points regained
|
|
342
349
|
actions.heal.params.magical.name: Magical healing (commits a day's Effort)
|
|
343
350
|
actions.heal.results.healed.name: Healed
|
|
351
|
+
actions.heal.results.no-effort.name: Not enough free Effort
|
|
344
352
|
actions.rest.name: A full day's rest
|
|
345
353
|
actions.rest.results.rested.name: Rested
|
|
346
354
|
actions.divine-fury.name: Divine fury
|
|
@@ -363,6 +371,7 @@ actions.miracle.params.kind.values.hurt-one.name: Hurt one target
|
|
|
363
371
|
actions.miracle.params.kind.values.hurt-several.name: Hurt several targets
|
|
364
372
|
actions.miracle.params.straight.name: Read the damage straight
|
|
365
373
|
actions.miracle.results.invoked.name: Invoked
|
|
374
|
+
actions.miracle.results.no-effort.name: Not enough free Effort
|
|
366
375
|
actions.end-scene.name: End of the scene
|
|
367
376
|
actions.end-scene.results.ended.name: Ended
|
|
368
377
|
actions.new-day.name: A new day
|
|
@@ -434,11 +443,7 @@ actions.create-character.steps.extraWord.prompt: The fourth Word
|
|
|
434
443
|
actions.create-character.steps.gifts.prompt: Spend gift points on gifts
|
|
435
444
|
actions.create-character.steps.armor.prompt: Armor
|
|
436
445
|
actions.create-character.options.none.name: None
|
|
437
|
-
actions.create-character.options.light.name: Light armor
|
|
438
|
-
actions.create-character.options.medium.name: Medium armor
|
|
439
|
-
actions.create-character.options.heavy.name: Heavy armor
|
|
440
446
|
actions.create-character.steps.shield.prompt: Shield
|
|
441
|
-
actions.create-character.options.shield.name: Shield
|
|
442
447
|
actions.create-character.steps.weapon.prompt: Weapon
|
|
443
448
|
|
|
444
449
|
actions.level-up.name: Gain a level
|
package/pack.yaml
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opencharacter/godbound-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Unofficial Open Character Format pack for Godbound's character rules, with Free Edition text used by permission.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"character-sheet",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@opencharacter/engine": "0.
|
|
55
|
+
"@opencharacter/engine": "0.3.0"
|
|
56
56
|
},
|
|
57
57
|
"engines": {
|
|
58
58
|
"node": ">=22"
|
package/rules/combat.yaml
CHANGED
|
@@ -71,20 +71,18 @@ situational:
|
|
|
71
71
|
# A d20 roll against a target number: a natural 20 always succeeds and a natural 1 always fails.
|
|
72
72
|
resultBands:
|
|
73
73
|
d20:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
- { id: success, when: 'roll.kept[0] == 20' }
|
|
75
|
+
- { id: failure, when: 'roll.kept[0] == 1' }
|
|
76
|
+
- { id: success, when: roll.total >= flags.target, success: true }
|
|
77
|
+
- { id: failure, when: true }
|
|
78
78
|
# To hit: d20 + attack bonus + modifier + the target's AC reaches 20. Without a target's AC the
|
|
79
79
|
# roll is only reported.
|
|
80
80
|
attack:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
- { id: rolled, when: roll.value == 1 }
|
|
87
|
-
- { id: miss, when: true }
|
|
81
|
+
- { id: hit, when: 'roll.kept[0] == 20' }
|
|
82
|
+
- { id: miss, when: 'roll.kept[0] == 1' }
|
|
83
|
+
- { id: rolled, when: '!flags.known' }
|
|
84
|
+
- { id: hit, when: roll.total >= 20 - flags.ac, success: true }
|
|
85
|
+
- { id: miss, when: true }
|
|
88
86
|
|
|
89
87
|
followUps:
|
|
90
88
|
- id: divine-fury
|
|
@@ -339,8 +337,12 @@ actions:
|
|
|
339
337
|
params:
|
|
340
338
|
amount: { type: integer, min: 0 }
|
|
341
339
|
magical: { type: boolean, default: false }
|
|
342
|
-
results: [healed]
|
|
340
|
+
results: [healed, no-effort]
|
|
343
341
|
steps:
|
|
342
|
+
- id: noEffort
|
|
343
|
+
kind: outcome
|
|
344
|
+
when: params.magical && effort.free < 1
|
|
345
|
+
result: "'no-effort'"
|
|
344
346
|
- id: restore
|
|
345
347
|
kind: changes
|
|
346
348
|
changes:
|
package/rules/creation.yaml
CHANGED
|
@@ -128,34 +128,26 @@ actions:
|
|
|
128
128
|
changes:
|
|
129
129
|
- type: addItem
|
|
130
130
|
entry: { item: picked.id }
|
|
131
|
+
# None or any armor, then none or any shield, the gear of add-on packs included, lightest
|
|
132
|
+
# first (armor class falling, shield bonus rising).
|
|
131
133
|
- id: armor
|
|
132
134
|
kind: choice
|
|
133
|
-
options:
|
|
134
|
-
- id: none
|
|
135
|
-
- id: light
|
|
136
|
-
changes:
|
|
137
|
-
- type: addItem
|
|
138
|
-
entry: { item: "'armor.light'", equipped: true }
|
|
139
|
-
- id: medium
|
|
140
|
-
changes:
|
|
141
|
-
- type: addItem
|
|
142
|
-
entry: { item: "'armor.medium'", equipped: true }
|
|
143
|
-
- id: heavy
|
|
144
|
-
changes:
|
|
145
|
-
- type: addItem
|
|
146
|
-
entry: { item: "'armor.heavy'", equipped: true }
|
|
135
|
+
options: { values: { formula: "['none'] + sortList(gear.armor, -itemField(x, 'ac'))" } }
|
|
147
136
|
random: params.random
|
|
148
137
|
recommend: "'none'"
|
|
138
|
+
changes:
|
|
139
|
+
- type: addItem
|
|
140
|
+
when: "picked.value != 'none'"
|
|
141
|
+
entry: { item: picked.value, equipped: true }
|
|
149
142
|
- id: shield
|
|
150
143
|
kind: choice
|
|
151
|
-
options:
|
|
152
|
-
- id: none
|
|
153
|
-
- id: shield
|
|
154
|
-
changes:
|
|
155
|
-
- type: addItem
|
|
156
|
-
entry: { item: "'shields.shield'", equipped: true }
|
|
144
|
+
options: { values: { formula: "['none'] + sortList(gear.shields, itemField(x, 'bonus'))" } }
|
|
157
145
|
random: params.random
|
|
158
146
|
recommend: "'none'"
|
|
147
|
+
changes:
|
|
148
|
+
- type: addItem
|
|
149
|
+
when: "picked.value != 'none'"
|
|
150
|
+
entry: { item: picked.value, equipped: true }
|
|
159
151
|
- id: weapon
|
|
160
152
|
kind: choice
|
|
161
153
|
options: { content: { type: weapon, where: 'item.id != @weapons.unarmed' } }
|
|
@@ -170,6 +162,7 @@ actions:
|
|
|
170
162
|
options: { pending: {} }
|
|
171
163
|
random: "params.random && choice.id == 'invocations'"
|
|
172
164
|
- id: finish
|
|
165
|
+
tags: [creation.finish]
|
|
173
166
|
kind: changes
|
|
174
167
|
sheet: proposed
|
|
175
168
|
changes:
|
|
@@ -187,6 +180,7 @@ actions:
|
|
|
187
180
|
results: [advanced]
|
|
188
181
|
steps:
|
|
189
182
|
- id: advance
|
|
183
|
+
tags: [level.gain]
|
|
190
184
|
kind: changes
|
|
191
185
|
changes:
|
|
192
186
|
- { type: adjust, field: level, by: 1 }
|
package/rules/effort.yaml
CHANGED
|
@@ -24,7 +24,7 @@ actions:
|
|
|
24
24
|
available: effort.free > 0
|
|
25
25
|
params:
|
|
26
26
|
duration: { type: enum, values: [scene, day], default: day }
|
|
27
|
-
amount: { type: integer, default: 1, min: 1 }
|
|
27
|
+
amount: { type: integer, default: 1, min: 1, max: effort.free }
|
|
28
28
|
results: [committed]
|
|
29
29
|
steps:
|
|
30
30
|
- id: commit
|
|
@@ -55,8 +55,12 @@ actions:
|
|
|
55
55
|
values: [effect, mimic-day-gift, armor, hurt-one, hurt-several]
|
|
56
56
|
default: effect
|
|
57
57
|
straight: { type: boolean, default: false }
|
|
58
|
-
results: [invoked]
|
|
58
|
+
results: [invoked, no-effort]
|
|
59
59
|
steps:
|
|
60
|
+
- id: noEffort
|
|
61
|
+
kind: outcome
|
|
62
|
+
when: "params.kind == 'mimic-day-gift' && effort.free < 2"
|
|
63
|
+
result: "'no-effort'"
|
|
60
64
|
- id: commit
|
|
61
65
|
kind: changes
|
|
62
66
|
changes:
|
|
@@ -93,6 +97,7 @@ actions:
|
|
|
93
97
|
results: [ended]
|
|
94
98
|
steps:
|
|
95
99
|
- id: reset
|
|
100
|
+
tags: [rest.scene]
|
|
96
101
|
kind: changes
|
|
97
102
|
changes:
|
|
98
103
|
- { type: set, field: effort.scene, value: 0 }
|
|
@@ -110,6 +115,7 @@ actions:
|
|
|
110
115
|
results: [dawn]
|
|
111
116
|
steps:
|
|
112
117
|
- id: reset
|
|
118
|
+
tags: [rest.day]
|
|
113
119
|
kind: changes
|
|
114
120
|
changes:
|
|
115
121
|
- { type: set, field: effort.scene, value: 0 }
|
|
@@ -143,7 +149,7 @@ actions:
|
|
|
143
149
|
tags: [influence]
|
|
144
150
|
available: influence.free > 0
|
|
145
151
|
params:
|
|
146
|
-
amount: { type: integer, default: 1, min: 1 }
|
|
152
|
+
amount: { type: integer, default: 1, min: 1, max: influence.free }
|
|
147
153
|
results: [committed]
|
|
148
154
|
steps:
|
|
149
155
|
- id: commit
|
|
@@ -158,7 +164,7 @@ actions:
|
|
|
158
164
|
tags: [influence]
|
|
159
165
|
available: influence.committed > 0
|
|
160
166
|
params:
|
|
161
|
-
amount: { type: integer, default: 1, min: 1 }
|
|
167
|
+
amount: { type: integer, default: 1, min: 1, max: influence.committed }
|
|
162
168
|
results: [reclaimed]
|
|
163
169
|
steps:
|
|
164
170
|
- id: reclaim
|
package/rules/gear.yaml
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
standardCopies:
|
|
2
2
|
- { type: weapon, where: 'item.id == @weapons.unarmed' }
|
|
3
3
|
|
|
4
|
+
fields:
|
|
5
|
+
# Every armor and shield of the ruleset, for creation's picks.
|
|
6
|
+
gear.armor: { type: set, of: armor }
|
|
7
|
+
gear.shields: { type: set, of: shield }
|
|
8
|
+
|
|
9
|
+
effects:
|
|
10
|
+
- { target: gear.armor, op: grant, value: { query: { type: armor } } }
|
|
11
|
+
- { target: gear.shields, op: grant, value: { query: { type: shield } } }
|
|
12
|
+
|
|
4
13
|
contentTypes:
|
|
5
14
|
weapon:
|
|
6
15
|
carried: true
|
|
@@ -20,7 +29,7 @@ contentTypes:
|
|
|
20
29
|
carried: true
|
|
21
30
|
equippable: true
|
|
22
31
|
fields:
|
|
23
|
-
weight: { type: enum, values: [light, medium, heavy], required: true }
|
|
32
|
+
weight: { type: enum, values: [light, medium, heavy], required: true, open: true }
|
|
24
33
|
ac: { type: integer, required: true }
|
|
25
34
|
# How many saves the armor makes 4 harder: chosen on the suit, once.
|
|
26
35
|
penalties: { type: integer, default: 0, min: 0, max: 2 }
|
package/rules/layout.yaml
CHANGED
|
@@ -115,6 +115,8 @@ display:
|
|
|
115
115
|
fray.die: { groups: [combat], priority: 0, format: dice, rolls: [{ action: fray }] }
|
|
116
116
|
fury.active: { groups: [combat], priority: 1, input: { widget: checkbox } }
|
|
117
117
|
fury.spent: { groups: [combat], priority: 2, input: { widget: checkbox } }
|
|
118
|
+
gear.armor: { hidden: true }
|
|
119
|
+
gear.shields: { hidden: true }
|
|
118
120
|
damage.melee.floor: { hidden: true }
|
|
119
121
|
damage.melee.twoHandedFloor: { hidden: true }
|
|
120
122
|
damage.melee.bonus: { hidden: true }
|