@opencharacter/cwn-srd 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/rules/magic.yaml CHANGED
@@ -10,6 +10,7 @@ contentTypes:
10
10
  effort: { type: enum, values: [day, scene, either, none], required: true }
11
11
  duration:
12
12
  type: enum
13
+ open: true
13
14
  values: [instant, scene, concentration, rounds]
14
15
  required: true
15
16
  state:
@@ -25,6 +26,9 @@ contentTypes:
25
26
  # A spirit the summoner has called: its manifestation, how it was summoned and its powers.
26
27
  spirit:
27
28
  nameFrom: label
29
+ fields:
30
+ # The powers of a spirit without the core spirit's `powers` choice (a homebrew spirit's).
31
+ powerCount: { type: integer, default: 0, min: 0 }
28
32
  state:
29
33
  label: { type: string, default: '' }
30
34
  form:
@@ -38,12 +42,14 @@ contentTypes:
38
42
  cost:
39
43
  type: integer
40
44
  formula: >-
41
- max(1, size(picksOf('powers')) - (self.ritual ? 1 : 0) - max(0, skills.summon.level))
45
+ max(1, (item.id == @spirits.spirit ? size(picksOf('powers')) : item.powerCount)
46
+ - (self.ritual ? 1 : 0) - max(0, skills.summon.level))
42
47
  actions:
43
48
  - use: summon-spirit
44
49
 
45
50
  # A spirit power: each adds one point to a spirit's cost.
46
51
  spiritPower:
52
+ grantOnly: true
47
53
  copies: { max: 0 }
48
54
  fields:
49
55
  minLevel: { type: integer, default: 1, min: 1 }
@@ -190,6 +196,7 @@ actions:
190
196
  params:
191
197
  # Immediate summonings already made this scene, each adding one point.
192
198
  earlier: { type: integer, default: 0, min: 0 }
199
+ results: [summoned]
193
200
  steps:
194
201
  - id: commit
195
202
  kind: changes
@@ -197,3 +204,4 @@ actions:
197
204
  - type: adjust
198
205
  field: effort.summoner.day
199
206
  by: 'self.cost + (self.ritual ? 0 : params.earlier)'
207
+ - { id: result, kind: outcome, result: "'summoned'" }
package/rules/tags.yaml CHANGED
@@ -62,8 +62,13 @@ tags:
62
62
  - major-injury
63
63
  - overcast
64
64
  - creation
65
+ # Steps an add-on pack's rules effects reach.
66
+ - creation.item
67
+ - creation.gear
68
+ - creation.finish
65
69
  - building
66
70
  - advancement
71
+ - advancement.level
67
72
  - skill-pick
68
73
  - focus-pick
69
74
  - edge-pick
@@ -75,6 +80,8 @@ tags:
75
80
  - spell
76
81
  - summoning
77
82
  - rest
83
+ - rest.night
84
+ - rest.scene
78
85
  - injury
79
86
  - armor.heavy
80
87
 
@@ -90,6 +97,7 @@ tags:
90
97
  - repeatable
91
98
  - asks-attribute
92
99
  - brings-cyber
100
+ - bars-cyber
93
101
  - not-underdog
94
102
  - retroactive-points
95
103
  - restricted
@@ -8,7 +8,7 @@ contentTypes:
8
8
  enc: { type: integer, min: 0 }
9
9
  damage: { type: dice, required: true }
10
10
  # The combat skill: `shoot`, `stab` or `punch`. Thrown weapons may also use Exert or Stab.
11
- skill: { type: enum, values: [shoot, stab, punch], required: true }
11
+ skill: { type: enum, values: [shoot, stab, punch], required: true, open: true }
12
12
  # The attribute that modifies hit and damage: the better of two where two are listed.
13
13
  attribute: { type: enum, values: [str, dex, str-dex, wis, none], required: true }
14
14
  rangeNormal: { type: integer, min: 0 }
@@ -54,7 +54,7 @@ fields:
54
54
 
55
55
  resultBands:
56
56
  hit:
57
- - { id: hit, when: roll.total >= flags.ac }
57
+ - { id: hit, when: roll.total >= flags.ac, success: true }
58
58
  - { id: miss, when: true }
59
59
  trauma:
60
60
  - { id: traumatic, when: roll.total >= flags.traumaTarget }
@@ -244,8 +244,10 @@ actions:
244
244
  - id: reload
245
245
  tags: [reload]
246
246
  available: has(item.magazine) && self.loaded < item.magazine
247
+ results: [reloaded]
247
248
  steps:
248
249
  - id: fill
249
250
  kind: changes
250
251
  changes:
251
252
  - { type: setState, entry: self, key: loaded, value: item.magazine }
253
+ - { id: result, kind: outcome, result: "'reloaded'" }