@skullandbonestools/snbdata 5.1.5 → 5.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.
@@ -108,5 +108,11 @@
108
108
  "firstAppearingSeason": "release",
109
109
  "dateAdded": "2025-05-23",
110
110
  "lastUpdated": "2025-05-23"
111
+ },
112
+ "scavengers": {
113
+ "id": "scavengers",
114
+ "firstAppearingSeason": "shadowsOfTheDeep",
115
+ "dateAdded": "2025-07-01",
116
+ "lastUpdated": "2025-07-01"
111
117
  }
112
118
  }
@@ -1,137 +1,273 @@
1
1
  {
2
2
  "anguishFromTheAbyss": {
3
- "id": "anguishFromTheAbyss"
3
+ "id": "anguishFromTheAbyss",
4
+ "type": "spectralShip",
5
+ "faction": "dutchMerchantCompany"
4
6
  },
5
7
  "tidesOfTerror": {
6
- "id": "tidesOfTerror"
8
+ "id": "tidesOfTerror",
9
+ "type": "eliteWarship",
10
+ "faction": "fleetOfPestilence"
7
11
  },
8
12
  "theMizerja": {
9
- "id": "theMizerja"
13
+ "id": "theMizerja",
14
+ "type": "eliteWarship",
15
+ "faction": "clanOfFara"
10
16
  },
11
17
  "theOpwelling": {
12
- "id": "theOpwelling"
18
+ "id": "theOpwelling",
19
+ "type": "eliteWarship",
20
+ "faction": "dutchMerchantCompany"
13
21
  },
14
22
  "thePlagueKing": {
15
- "id": "thePlagueKing"
23
+ "id": "thePlagueKing",
24
+ "type": "eliteWarship",
25
+ "faction": "fleetOfPestilence"
16
26
  },
17
- "caperingToTheCape": {
18
- "id": "caperingToTheCape"
27
+ "caperingTheCape": {
28
+ "id": "caperingTheCape",
29
+ "type": "convoy",
30
+ "faction": "clanOfFara"
19
31
  },
20
32
  "anAllianceOfConvenience": {
21
- "id": "anAllianceOfConvenience"
33
+ "id": "anAllianceOfConvenience",
34
+ "type": "convoy"
22
35
  },
23
36
  "theRempahResupply": {
24
- "id": "theRempahResupply"
37
+ "id": "theRempahResupply",
38
+ "type": "convoy",
39
+ "faction": "dominionOfRempah"
25
40
  },
26
41
  "guidedByGuile": {
27
- "id": "guidedByGuile"
42
+ "id": "guidedByGuile",
43
+ "type": "convoy",
44
+ "faction": "dominionOfRempah"
28
45
  },
29
46
  "symphonieMortelle": {
30
- "id": "symphonieMortelle"
47
+ "id": "symphonieMortelle",
48
+ "type": "eliteWarship",
49
+ "faction": "compagnieRoyale"
31
50
  },
32
51
  "verseOfVengeance": {
33
- "id": "verseOfVengeance"
52
+ "id": "verseOfVengeance",
53
+ "type": "eliteWarship",
54
+ "faction": "chorusFleet"
34
55
  },
35
56
  "verseOfRemorse": {
36
- "id": "verseOfRemorse"
57
+ "id": "verseOfRemorse",
58
+ "type": "eliteWarship",
59
+ "faction": "chorusFleet"
37
60
  },
38
61
  "riskTheRisingTide": {
39
- "id": "riskTheRisingTide"
62
+ "id": "riskTheRisingTide",
63
+ "type": "convoy"
40
64
  },
41
65
  "iceAndEasy": {
42
- "id": "iceAndEasy"
66
+ "id": "iceAndEasy",
67
+ "type": "convoy",
68
+ "faction": "dutchMerchantCompany"
43
69
  },
44
70
  "chorusOfHavoc": {
45
- "id": "chorusOfHavoc"
71
+ "id": "chorusOfHavoc",
72
+ "type": "eliteWarship",
73
+ "faction": "chorusFleet"
46
74
  },
47
75
  "divineRetribution": {
48
- "id": "divineRetribution"
76
+ "id": "divineRetribution",
77
+ "type": "seaMonster"
49
78
  },
50
79
  "opulentOpportunity": {
51
- "id": "opulentOpportunity"
80
+ "id": "opulentOpportunity",
81
+ "type": "convoy",
82
+ "faction": "confederationOfUngwana"
52
83
  },
53
84
  "easternExchange": {
54
- "id": "easternExchange"
85
+ "id": "easternExchange",
86
+ "type": "convoy"
55
87
  },
56
88
  "flamesOfTheDragon": {
57
- "id": "flamesOfTheDragon"
89
+ "id": "flamesOfTheDragon",
90
+ "type": "eliteWarship"
58
91
  },
59
92
  "theGloriousPhoenix": {
60
- "id": "theGloriousPhoenix"
93
+ "id": "theGloriousPhoenix",
94
+ "type": "eliteWarship",
95
+ "faction": "phoenixsTalon"
61
96
  },
62
97
  "theSerpentsWrath": {
63
- "id": "theSerpentsWrath"
98
+ "id": "theSerpentsWrath",
99
+ "type": "eliteWarship",
100
+ "faction": "dragonsClaw"
64
101
  },
65
102
  "flamesOfThePhoenix": {
66
- "id": "flamesOfThePhoenix"
103
+ "id": "flamesOfThePhoenix",
104
+ "type": "eliteWarship",
105
+ "faction": "phoenixsTalon"
67
106
  },
68
107
  "baitAndSwitch": {
69
- "id": "baitAndSwitch"
108
+ "id": "baitAndSwitch",
109
+ "type": "convoy"
70
110
  },
71
111
  "stolenTreasures": {
72
- "id": "stolenTreasures"
112
+ "id": "stolenTreasures",
113
+ "type": "convoy"
73
114
  },
74
115
  "curseOfTheSchaduw": {
75
- "id": "curseOfTheSchaduw"
116
+ "id": "curseOfTheSchaduw",
117
+ "type": "eliteWarship",
118
+ "faction": "shadowLegion"
76
119
  },
77
120
  "theLoomingShadow": {
78
- "id": "theLoomingShadow"
121
+ "id": "theLoomingShadow",
122
+ "type": "eliteWarship",
123
+ "faction": "shadowLegion"
79
124
  },
80
125
  "reaversVengeance": {
81
- "id": "reaversVengeance"
126
+ "id": "reaversVengeance",
127
+ "type": "seaMonster"
82
128
  },
83
129
  "theWolfHunter": {
84
- "id": "theWolfHunter"
130
+ "id": "theWolfHunter",
131
+ "type": "eliteWarship",
132
+ "faction": "dutchMerchantCompany"
85
133
  },
86
134
  "theAzureRoyale": {
87
- "id": "theAzureRoyale"
135
+ "id": "theAzureRoyale",
136
+ "type": "eliteWarship"
88
137
  },
89
138
  "theGreatShadow": {
90
- "id": "theGreatShadow"
139
+ "id": "theGreatShadow",
140
+ "type": "eliteWarship",
141
+ "faction": "shadowLegion"
91
142
  },
92
143
  "undyingMaw": {
93
- "id": "undyingMaw"
144
+ "id": "undyingMaw",
145
+ "type": "seaMonster"
94
146
  },
95
147
  "payingDues": {
96
- "id": "payingDues"
148
+ "id": "payingDues",
149
+ "type": "convoy",
150
+ "faction": "scavengers"
97
151
  },
98
152
  "scurlocksPrecious": {
99
- "id": "scurlocksPrecious"
153
+ "id": "scurlocksPrecious",
154
+ "type": "convoy",
155
+ "faction": "scavengers"
100
156
  },
101
157
  "thickAsThieves": {
102
- "id": "thickAsThieves"
158
+ "id": "thickAsThieves",
159
+ "type": "convoy",
160
+ "faction": "scavengers"
103
161
  },
104
162
  "gloryAdorned": {
105
- "id": "gloryAdorned"
163
+ "id": "gloryAdorned",
164
+ "type": "convoy",
165
+ "faction": "dominionOfRempah"
106
166
  },
107
167
  "theHonorlessMizerja": {
108
- "id": "theHonorlessMizerja"
168
+ "id": "theHonorlessMizerja",
169
+ "type": "eliteWarship",
170
+ "faction": "clanOfFara"
109
171
  },
110
172
  "theHonorlessDianSinaga": {
111
- "id": "theHonorlessDianSinaga"
173
+ "id": "theHonorlessDianSinaga",
174
+ "type": "eliteWarship",
175
+ "faction": "dominionOfRempah"
112
176
  },
113
177
  "theHonorlessAhPak": {
114
- "id": "theHonorlessAhPak"
178
+ "id": "theHonorlessAhPak",
179
+ "type": "eliteWarship",
180
+ "faction": "pirates"
115
181
  },
116
182
  "shadesOfTheRonin": {
117
- "id": "shadesOfTheRonin"
183
+ "id": "shadesOfTheRonin",
184
+ "type": "convoy"
118
185
  },
119
186
  "fangsOfTheFara": {
120
- "id": "fangsOfTheFara"
187
+ "id": "fangsOfTheFara",
188
+ "type": "eliteWarship",
189
+ "faction": "clanOfFara"
121
190
  },
122
191
  "hunterHunted": {
123
- "id": "hunterHunted"
192
+ "id": "hunterHunted",
193
+ "type": "eliteWarship",
194
+ "faction": "confederationOfUngwana"
124
195
  },
125
196
  "watchTheThrone": {
126
- "id": "watchTheThrone"
197
+ "id": "watchTheThrone",
198
+ "type": "eliteWarship",
199
+ "faction": "pirates"
127
200
  },
128
201
  "aTreacherousTurn": {
129
- "id": "aTreacherousTurn"
202
+ "id": "aTreacherousTurn",
203
+ "type": "eliteWarship",
204
+ "faction": "dominionOfRempah"
130
205
  },
131
206
  "aShowOfStrength": {
132
- "id": "aShowOfStrength"
207
+ "id": "aShowOfStrength",
208
+ "type": "eliteWarship",
209
+ "faction": "dutchMerchantCompany"
133
210
  },
134
211
  "fromTheDeep": {
135
- "id": "fromTheDeep"
212
+ "id": "fromTheDeep",
213
+ "type": "seaMonster"
214
+ },
215
+ "profitablePoison": {
216
+ "id": "profitablePoison",
217
+ "type": "convoy",
218
+ "faction": "confederationOfUngwana"
219
+ },
220
+ "farReachesForTheFara": {
221
+ "id": "farReachesForTheFara",
222
+ "type": "convoy",
223
+ "faction": "clanOfFara"
224
+ },
225
+ "drownedSorrows": {
226
+ "id": "drownedSorrows",
227
+ "type": "convoy",
228
+ "faction": "shadowLegion"
229
+ },
230
+ "aHushedHold": {
231
+ "id": "aHushedHold",
232
+ "type": "convoy",
233
+ "faction": "dutchMerchantCompany"
234
+ },
235
+ "theVanishing": {
236
+ "id": "theVanishing",
237
+ "type": "seaMonster"
238
+ },
239
+ "silentDeath": {
240
+ "id": "silentDeath",
241
+ "type": "seaMonster"
242
+ },
243
+ "convoyOfHighSpirits": {
244
+ "id": "convoyOfHighSpirits",
245
+ "type": "convoy",
246
+ "faction": "compagnieRoyale"
247
+ },
248
+ "shapesInTheWater": {
249
+ "id": "shapesInTheWater",
250
+ "type": "convoy",
251
+ "faction": "shadowLegion"
252
+ },
253
+ "spoilsOfWar": {
254
+ "id": "spoilsOfWar",
255
+ "type": "convoy",
256
+ "faction": "clanOfFara"
257
+ },
258
+ "aPerilousPathToProfits": {
259
+ "id": "aPerilousPathToProfits",
260
+ "type": "convoy",
261
+ "faction": "dominionOfRempah"
262
+ },
263
+ "maladiousMeasures": {
264
+ "id": "maladiousMeasures",
265
+ "type": "convoy",
266
+ "faction": "dutchMerchantCompany"
267
+ },
268
+ "colonialShipment": {
269
+ "id": "colonialShipment",
270
+ "type": "convoy",
271
+ "faction": "compagnieRoyale"
136
272
  }
137
273
  }
@@ -1,7 +1,12 @@
1
1
  import worldEventsData from '../../data/worldEvents.json';
2
+ import { WorldEventType } from '../types/WorldEventProperties';
3
+ import { Faction } from './factions';
2
4
  export declare class WorldEvent {
3
5
  readonly id: string;
4
- constructor(id: string);
6
+ readonly type: WorldEventType;
7
+ readonly faction?: Faction | undefined;
8
+ constructor(id: string, type: WorldEventType, faction?: Faction | undefined);
9
+ static fromRawData(rawData: any): WorldEvent;
5
10
  static loadWorldEvents(): Record<string, WorldEvent>;
6
11
  }
7
12
  type WorldEvents = {
@@ -1 +1 @@
1
- {"version":3,"file":"worldEvents.d.ts","sourceRoot":"","sources":["../../src/daos/worldEvents.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D,qBAAa,UAAU;aAEC,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM;WAGhB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;CAS9D;AAED,KAAK,WAAW,GAAG;KACd,CAAC,IAAI,MAAM,OAAO,eAAe,GAAG,UAAU;CAClD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAmC,WAAW,CAAC"}
1
+ {"version":3,"file":"worldEvents.d.ts","sourceRoot":"","sources":["../../src/daos/worldEvents.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;AAE/C,qBAAa,UAAU;aAEC,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,cAAc;aACpB,OAAO,CAAC,EAAE,OAAO;gBAFjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,OAAO,YAAA;WAGvB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,UAAU;WASrC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;CAO9D;AAED,KAAK,WAAW,GAAG;KACd,CAAC,IAAI,MAAM,OAAO,eAAe,GAAG,UAAU;CAClD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAmC,WAAW,CAAC"}
@@ -1,12 +1,19 @@
1
1
  import worldEventsData from '../../data/worldEvents.json';
2
+ import { Factions } from './factions';
2
3
  export class WorldEvent {
3
- constructor(id) {
4
+ constructor(id, type, faction) {
4
5
  this.id = id;
6
+ this.type = type;
7
+ this.faction = faction;
8
+ }
9
+ static fromRawData(rawData) {
10
+ const faction = rawData.faction;
11
+ return new WorldEvent(rawData.id, rawData.type, faction ? Factions[faction] : undefined);
5
12
  }
6
13
  static loadWorldEvents() {
7
14
  const worldEvents = {};
8
15
  for (const [key, value] of Object.entries(worldEventsData)) {
9
- worldEvents[key] = new WorldEvent(value.id);
16
+ worldEvents[key] = WorldEvent.fromRawData(value);
10
17
  }
11
18
  return worldEvents;
12
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worldEvents.js","sourceRoot":"","sources":["../../src/daos/worldEvents.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D,MAAM,OAAO,UAAU;IACnB,YACoB,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAC3B,CAAC;IAEG,MAAM,CAAC,eAAe;QACzB,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACzD,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAC7B,KAAK,CAAC,EAAE,CACX,CAAC;QACN,CAAC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAMD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,EAAiB,CAAC"}
1
+ {"version":3,"file":"worldEvents.js","sourceRoot":"","sources":["../../src/daos/worldEvents.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAW,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,OAAO,UAAU;IACnB,YACoB,EAAU,EACV,IAAoB,EACpB,OAAiB;QAFjB,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAgB;QACpB,YAAO,GAAP,OAAO,CAAU;IAClC,CAAC;IAEG,MAAM,CAAC,WAAW,CAAC,OAAY;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAgC,CAAC;QACzD,OAAO,IAAI,UAAU,CACjB,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,IAAsB,EAC9B,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACzD,WAAW,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAMD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,EAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type WorldEventType = "convoy" | "eliteWarship" | "seaMonster" | "spectralShip";
2
+ //# sourceMappingURL=WorldEventProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorldEventProperties.d.ts","sourceRoot":"","sources":["../../src/types/WorldEventProperties.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WorldEventProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorldEventProperties.js","sourceRoot":"","sources":["../../src/types/WorldEventProperties.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skullandbonestools/snbdata",
3
- "version": "5.1.5",
3
+ "version": "5.2.0",
4
4
  "description": "Inofficial data package for the Skull and Bones game by Ubisoft.",
5
5
  "keywords": [
6
6
  "ubisoft",