@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/README.md CHANGED
@@ -17,6 +17,9 @@ affiliated with, approved or endorsed by Kevin Crawford or Sine Nomine Publishin
17
17
  pnpm add @opencharacter/cwn-srd @opencharacter/engine
18
18
  ```
19
19
 
20
+ This release needs spec 0.3: `@opencharacter/engine` 0.3.0 or later. An engine for an older
21
+ spec refuses it (`spec-version-unsupported`).
22
+
20
23
  The package's default export is the pack's release, ready for `loadRuleset`; its English text is
21
24
  `@opencharacter/cwn-srd/i18n/en` (also as JSON, `release.json` and `i18n/en.json`).
22
25
 
@@ -31,9 +34,9 @@ const { ruleset } = loaded;
31
34
  // A random character: attributes rolled in order, the background's skills rolled, every other
32
35
  // pick drawn.
33
36
  const blank = {
34
- specVersion: '0.2.0',
37
+ specVersion: '0.3.0',
35
38
  id: 'new-operator',
36
- packs: [{ id: 'cwn-srd', version: '0.1.0' }],
39
+ packs: [{ id: 'cwn-srd', version: '0.2.0' }],
37
40
  creating: true,
38
41
  };
39
42
  const run = startAction(ruleset, blank, {
@@ -81,7 +84,9 @@ the player's choices and other characters.
81
84
  two Acquaintances or a Friend, $500 and an item of up to $1,000. Edges and Foci bring their
82
85
  bonus skills, gear budgets, starting cyber, programs, spells and arts.
83
86
  - **Edges** (14, and the three magical ones) in rules-level choices: two at creation, the
84
- Underdog Rule's, and a third at 5th level. **Foci** (26) are copies with a level, gained at
87
+ Underdog Rule's, and a third at 5th level. `gain-edge` finishes `closed` for the 5th-level
88
+ Edge below 5th level and for the Underdog Edge without the rule. The Underdog Rule counts the
89
+ modifiers of the rolled scores (`attributes.modTotal`), so its bonus Edge can't undo it. **Foci** (26) are copies with a level, gained at
85
90
  creation, at 2nd, 5th, 7th and 10th level and with Focused; a Focus's bonus skill during
86
91
  advancement is three skill points toward it, banked as credit.
87
92
  - **Advancement:** experience on the fast or slow table, a level-up action (hit points rerolled
@@ -108,6 +113,40 @@ the player's choices and other characters.
108
113
  with rest; Occult Pavis rolls saves against magic (`versusMagic`) twice.
109
114
  - **Contacts**, named by the player, as Acquaintances or Friends.
110
115
 
116
+ ## Add-on packs
117
+
118
+ A pack that depends on `cwn-srd` can add content of its types, and creation and advancement offer
119
+ it with the core's: backgrounds, Edges and Foci in the guided picks and the random draws, and
120
+ weapons, armor, gear, cyberdecks and drones as the free starting item. What content brings is read
121
+ from its fields and tags, not its ID: a Focus or Edge's `startingItems` and `startingCyber` (write
122
+ another pack's items by qualified ID, `<pack>:gear.<id>`), `brings-cyber` for one that brings
123
+ cyberware, `bars-cyber` for one that bars it (as All Natural does), `repeatable`, `not-underdog`.
124
+
125
+ - **Open enums:** cyberware `category`, a program Subject's `subjectType` (a Verb's `targets`
126
+ name them), a drone's `moveKind` and a spell's `duration`. An add-on lists new values in
127
+ `extendEnums` and names them in its text.
128
+ - **Naming what an add-on adds:** it names each added value, option or key in its own text,
129
+ under the key this pack would use, and `createText` finds it there when the app passes the
130
+ ruleset's `enumOrigins`, `optionOrigins` and `familyOrigins`. For example,
131
+ `psionic` added to `cwn-srd:types.cyberware.fields.category` is
132
+ `types.cyberware.fields.category.values.psionic.name: Psionic` (through `enumOrigins`).
133
+ - **Tagged steps** take an add-on's rules-level `option` and `changes` effects: `creation.item`
134
+ (the free starting item's kind: an added option is another free item), `creation.gear` (the
135
+ starting money and lifestyle), `creation.finish` (the last step of creation),
136
+ `advancement.level` (each new level), `rest.night` (a night's rest) and `rest.scene` (the end of
137
+ a scene).
138
+
139
+ - **Skills** are the `skill` family: an add-on adds one (`families: { 'cwn-srd:skill': [<key>] }`)
140
+ and declares its `skills.<key>.base` (tagged `skill-base` and `skill.<key>`), `.credit` and
141
+ `.level` (tagged `skill` and `skill.<key>`). The core's changes reach them through `fieldId`, so
142
+ creation, a Focus's or Edge's bonus skill and `improve-skill` gain and raise it as the core's. A
143
+ background's entries (`freeSkill`, `growth1`–`growth6`, `learning1`–`learning8`), a Focus's
144
+ `bonusSkill`, `bonusSkill2` and `levelTwoSkill`, an Edge's `bonusSkill`, a weapon's `skill` and
145
+ the parameters `gain-skill.code` and `improve-skill.skill` are open enums that take its key.
146
+
147
+ Still closed: the enums that are the rules' own: a program's `kind` (Verb or Subject), armor `kind`,
148
+ cyberware `concealment`, a spell's `effort`, vehicle `size`, and the attributes.
149
+
111
150
  ## Left to the table
112
151
 
113
152
  - Situational modifiers (cover, range, prone targets, snap attacks, charges, dual wielding) are
@@ -2,6 +2,7 @@ id: foci.all-natural
2
2
  type: focus
3
3
  tags:
4
4
  - asks-attribute
5
+ - bars-cyber
5
6
  fields:
6
7
  maxLevel: 1
7
8
  bonusSkill: any