@skullandbonestools/snbdata 5.0.4 → 5.0.5

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.
@@ -1,5 +1,6 @@
1
1
  import cosmeticsData from '../../data/cosmetics.json';
2
2
  import { Effect } from '../types/CosmeticProperties';
3
+ import { Rarity } from '../types/Rarity';
3
4
  import { Material } from './materials';
4
5
  import { Season } from './seasons';
5
6
  export declare class Cosmetic {
@@ -7,17 +8,22 @@ export declare class Cosmetic {
7
8
  readonly type: string;
8
9
  readonly dateAdded: string;
9
10
  readonly lastUpdated: string;
11
+ readonly rarity?: Rarity | undefined;
12
+ readonly tier?: number | undefined;
10
13
  readonly set?: string | undefined;
11
14
  readonly obtainable?: (string | string[] | Array<string | string[]>) | undefined;
12
15
  readonly effect?: (Effect | Effect[]) | undefined;
13
16
  readonly season?: Season | undefined;
14
17
  readonly contract?: string | undefined;
18
+ basic?: Cosmetic | undefined;
19
+ upgrades?: Cosmetic[] | undefined;
15
20
  readonly required?: Map<Material, number> | undefined;
16
21
  readonly requiredRank?: string | undefined;
17
22
  readonly bounty?: string | undefined;
18
23
  readonly worldEvent?: string | undefined;
19
- constructor(id: string, type: string, dateAdded: string, lastUpdated: string, set?: string | undefined, obtainable?: (string | string[] | Array<string | string[]>) | undefined, effect?: (Effect | Effect[]) | undefined, season?: Season | undefined, contract?: string | undefined, required?: Map<Material, number> | undefined, requiredRank?: string | undefined, bounty?: string | undefined, worldEvent?: string | undefined);
24
+ constructor(id: string, type: string, dateAdded: string, lastUpdated: string, rarity?: Rarity | undefined, tier?: number | undefined, set?: string | undefined, obtainable?: (string | string[] | Array<string | string[]>) | undefined, effect?: (Effect | Effect[]) | undefined, season?: Season | undefined, contract?: string | undefined, basic?: Cosmetic | undefined, upgrades?: Cosmetic[] | undefined, required?: Map<Material, number> | undefined, requiredRank?: string | undefined, bounty?: string | undefined, worldEvent?: string | undefined);
20
25
  static fromRawData(rawData: any): Cosmetic;
26
+ static updateCosmeticWithUpgrades(key: string, rawData: any, cosmetics: Record<string, Cosmetic>): void;
21
27
  static loadCosmetics(): Record<string, Cosmetic>;
22
28
  }
23
29
  type Cosmetics = {
@@ -1 +1 @@
1
- {"version":3,"file":"cosmetics.d.ts","sourceRoot":"","sources":["../../src/daos/cosmetics.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAa,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,qBAAa,QAAQ;aAEG,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,MAAM;aACjB,WAAW,EAAE,MAAM;aACnB,GAAG,CAAC,EAAE,MAAM;aACZ,UAAU,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;aACzD,MAAM,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE;aAC1B,MAAM,CAAC,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;aACjB,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;aAChC,YAAY,CAAC,EAAE,MAAM;aACrB,MAAM,CAAC,EAAE,MAAM;aACf,UAAU,CAAC,EAAE,MAAM;gBAZnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,YAAA,EACZ,UAAU,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,aAAA,EACzD,MAAM,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE,aAAA,EAC1B,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAA,EAChC,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,UAAU,CAAC,EAAE,MAAM,YAAA;WAGzB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,QAAQ;WA0BnC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;CAO1D;AAED,KAAK,SAAS,GAAG;KACZ,CAAC,IAAI,MAAM,OAAO,aAAa,GAAG,QAAQ;CAC9C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAAiD,CAAC"}
1
+ {"version":3,"file":"cosmetics.d.ts","sourceRoot":"","sources":["../../src/daos/cosmetics.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAa,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAW,MAAM,WAAW,CAAC;AAE5C,qBAAa,QAAQ;aAEG,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,MAAM;aACjB,WAAW,EAAE,MAAM;aACnB,MAAM,CAAC,EAAE,MAAM;aACf,IAAI,CAAC,EAAE,MAAM;aACb,GAAG,CAAC,EAAE,MAAM;aACZ,UAAU,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;aACzD,MAAM,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE;aAC1B,MAAM,CAAC,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;IAC1B,KAAK,CAAC,EAAE,QAAQ;IAChB,QAAQ,CAAC,EAAE,QAAQ,EAAE;aACZ,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;aAChC,YAAY,CAAC,EAAE,MAAM;aACrB,MAAM,CAAC,EAAE,MAAM;aACf,UAAU,CAAC,EAAE,MAAM;gBAhBnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,GAAG,CAAC,EAAE,MAAM,YAAA,EACZ,UAAU,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,aAAA,EACzD,MAAM,CAAC,GAAE,MAAM,GAAG,MAAM,EAAE,aAAA,EAC1B,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA,EAC1B,KAAK,CAAC,EAAE,QAAQ,YAAA,EAChB,QAAQ,CAAC,EAAE,QAAQ,EAAE,YAAA,EACZ,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAA,EAChC,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,UAAU,CAAC,EAAE,MAAM,YAAA;WAGzB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,QAAQ;WA+BnC,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;WAWzF,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;CAU1D;AAED,KAAK,SAAS,GAAG;KACZ,CAAC,IAAI,MAAM,OAAO,aAAa,GAAG,QAAQ;CAC9C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAAiD,CAAC"}
@@ -1,22 +1,28 @@
1
1
  import cosmeticsData from '../../data/cosmetics.json';
2
2
  import { Materials } from './materials';
3
+ import { Seasons } from './seasons';
3
4
  export class Cosmetic {
4
- constructor(id, type, dateAdded, lastUpdated, set, obtainable, effect, season, contract, required, requiredRank, bounty, worldEvent) {
5
+ constructor(id, type, dateAdded, lastUpdated, rarity, tier, set, obtainable, effect, season, contract, basic, upgrades, required, requiredRank, bounty, worldEvent) {
5
6
  this.id = id;
6
7
  this.type = type;
7
8
  this.dateAdded = dateAdded;
8
9
  this.lastUpdated = lastUpdated;
10
+ this.rarity = rarity;
11
+ this.tier = tier;
9
12
  this.set = set;
10
13
  this.obtainable = obtainable;
11
14
  this.effect = effect;
12
15
  this.season = season;
13
16
  this.contract = contract;
17
+ this.basic = basic;
18
+ this.upgrades = upgrades;
14
19
  this.required = required;
15
20
  this.requiredRank = requiredRank;
16
21
  this.bounty = bounty;
17
22
  this.worldEvent = worldEvent;
18
23
  }
19
24
  static fromRawData(rawData) {
25
+ const season = rawData.season;
20
26
  const required = rawData.required ? new Map() : undefined;
21
27
  if (required) {
22
28
  for (const [requiredKey, quantity] of Object.entries(rawData.required)) {
@@ -24,13 +30,27 @@ export class Cosmetic {
24
30
  required.set(Materials[requiredMaterial], quantity);
25
31
  }
26
32
  }
27
- return new Cosmetic(rawData.id, rawData.type, rawData.dateAdded, rawData.lastUpdated, rawData.set ?? undefined, rawData.obtainable ?? undefined, rawData.effect ?? undefined, rawData.season ?? undefined, rawData.contract ?? undefined, required, rawData.requiredRank ?? undefined, rawData.bounty ?? undefined, rawData.worldEvent ?? undefined);
33
+ return new Cosmetic(rawData.id, rawData.type, rawData.dateAdded, rawData.lastUpdated, rawData.rarity ?? undefined, rawData.tier ?? undefined, rawData.set ?? undefined, rawData.obtainable ?? undefined, rawData.effect ?? undefined, rawData.season ? Seasons[season] : undefined, rawData.contract ?? undefined, undefined, undefined, required, rawData.requiredRank ?? undefined, rawData.bounty ?? undefined, rawData.worldEvent ?? undefined);
34
+ }
35
+ static updateCosmeticWithUpgrades(key, rawData, cosmetics) {
36
+ if (rawData.basic) {
37
+ const basic = cosmetics[rawData.basic];
38
+ if (basic)
39
+ cosmetics[key].basic = basic;
40
+ }
41
+ if (rawData.upgrades) {
42
+ const upgrades = rawData.upgrades.map((upgradeCosmetic) => cosmetics[upgradeCosmetic]);
43
+ cosmetics[key].upgrades = upgrades;
44
+ }
28
45
  }
29
46
  static loadCosmetics() {
30
47
  const cosmetics = {};
31
48
  for (const [key, value] of Object.entries(cosmeticsData)) {
32
49
  cosmetics[key] = Cosmetic.fromRawData(value);
33
50
  }
51
+ for (const [key, value] of Object.entries(cosmeticsData)) {
52
+ Cosmetic.updateCosmeticWithUpgrades(key, value, cosmetics);
53
+ }
34
54
  return cosmetics;
35
55
  }
36
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cosmetics.js","sourceRoot":"","sources":["../../src/daos/cosmetics.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,OAAO,QAAQ;IACjB,YACoB,EAAU,EACV,IAAY,EACZ,SAAiB,EACjB,WAAmB,EACnB,GAAY,EACZ,UAAyD,EACzD,MAA0B,EAC1B,MAAe,EACf,QAAiB,EACjB,QAAgC,EAChC,YAAqB,EACrB,MAAe,EACf,UAAmB;QAZnB,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;QACnB,QAAG,GAAH,GAAG,CAAS;QACZ,eAAU,GAAV,UAAU,CAA+C;QACzD,WAAM,GAAN,MAAM,CAAoB;QAC1B,WAAM,GAAN,MAAM,CAAS;QACf,aAAQ,GAAR,QAAQ,CAAS;QACjB,aAAQ,GAAR,QAAQ,CAAwB;QAChC,iBAAY,GAAZ,YAAY,CAAS;QACrB,WAAM,GAAN,MAAM,CAAS;QACf,eAAU,GAAV,UAAU,CAAS;IACpC,CAAC;IAEG,MAAM,CAAC,WAAW,CAAC,OAAY;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,EAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAG,QAAQ,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrE,MAAM,gBAAgB,GAAG,WAAqC,CAAC;gBAC/D,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,QAAkB,CAAC,CAAC;YAClE,CAAC;QACL,CAAC;QAED,OAAO,IAAI,QAAQ,CACf,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,GAAG,IAAI,SAAS,EACxB,OAAO,CAAC,UAAU,IAAI,SAAS,EAC/B,OAAO,CAAC,MAAM,IAAI,SAAS,EAC3B,OAAO,CAAC,MAAM,IAAI,SAAS,EAC3B,OAAO,CAAC,QAAQ,IAAI,SAAS,EAC7B,QAAQ,EACR,OAAO,CAAC,YAAY,IAAI,SAAS,EACjC,OAAO,CAAC,MAAM,IAAI,SAAS,EAC3B,OAAO,CAAC,UAAU,IAAI,SAAS,CAClC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,aAAa;QACvB,MAAM,SAAS,GAA6B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAMD,MAAM,CAAC,MAAM,SAAS,GAAc,QAAQ,CAAC,aAAa,EAAe,CAAC"}
1
+ {"version":3,"file":"cosmetics.js","sourceRoot":"","sources":["../../src/daos/cosmetics.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export class Item {
38
38
  required.set(Materials[requiredMaterial], quantity);
39
39
  }
40
40
  }
41
- return new Item(rawData.id, rawData.type, new Date(rawData.dateAdded), new Date(rawData.lastUpdated), rawData.tier, rawData.blueprint ?? undefined, rawData.value ?? undefined, rawData.weight ?? undefined, rawData.gearScore ?? undefined, rawData.projectilesPerShot ?? undefined, rawData.damagePerShot ?? undefined, rawData.rateOfFire ?? undefined, rawData.reloadSpeed ?? undefined, rawData.optimalRange ?? undefined, rawData.projectileSpeed ?? undefined, required, rawData.requiredRank ?? undefined, rawData.perks ?? [], rawData.rarity ?? undefined, rawData.season ? Seasons[season] : undefined, rawData.obtainable ?? undefined, rawData.worldEvent ?? undefined, rawData.armor ?? undefined, rawData.damageMitigation ?? {}, rawData.contract ?? undefined);
41
+ return new Item(rawData.id, rawData.type, new Date(rawData.dateAdded), new Date(rawData.lastUpdated), rawData.tier, rawData.blueprint ?? undefined, rawData.value ?? undefined, rawData.weight ?? undefined, rawData.gearScore ?? undefined, rawData.projectilesPerShot ?? undefined, rawData.damagePerShot ?? undefined, rawData.rateOfFire ?? undefined, rawData.reloadSpeed ?? undefined, rawData.optimalRange ?? undefined, rawData.projectileSpeed ?? undefined, required, rawData.requiredRank ?? undefined, rawData.perks ?? [], rawData.rarity ?? undefined, rawData.season ? Seasons[season] : undefined, rawData.obtainable ?? undefined, rawData.worldEvent ?? undefined, rawData.armor ?? undefined, rawData.damageMitigation ?? undefined, rawData.contract ?? undefined);
42
42
  }
43
43
  static loadItems() {
44
44
  const items = {};
@@ -1 +1 @@
1
- {"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/daos/items.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/daos/items.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import shipsData from '../../data/ships.json';
2
2
  import { ShipSize, SlotWithGunports } from '../types/ShipProperties';
3
+ import { Material } from './materials';
3
4
  import { Season } from './seasons';
4
5
  export declare class Ship {
5
6
  readonly id: string;
@@ -23,7 +24,7 @@ export declare class Ship {
23
24
  cargoSlots: number;
24
25
  cargoMaxWeight: number;
25
26
  };
26
- readonly required: Record<string, number> | undefined;
27
+ readonly required: Map<Material, number> | undefined;
27
28
  readonly slots: {
28
29
  attachement?: number;
29
30
  frontWeapon?: SlotWithGunports;
@@ -43,7 +44,7 @@ export declare class Ship {
43
44
  }, cargo: {
44
45
  cargoSlots: number;
45
46
  cargoMaxWeight: number;
46
- }, required: Record<string, number> | undefined, slots: {
47
+ }, required: Map<Material, number> | undefined, slots: {
47
48
  attachement?: number;
48
49
  frontWeapon?: SlotWithGunports;
49
50
  leftSideWeapon?: SlotWithGunports;
@@ -1 +1 @@
1
- {"version":3,"file":"ships.d.ts","sourceRoot":"","sources":["../../src/daos/ships.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ships.d.ts","sourceRoot":"","sources":["../../src/daos/ships.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import shipsData from '../../data/ships.json';
2
+ import { Materials } from './materials';
2
3
  import { Seasons } from './seasons';
3
4
  export class Ship {
4
5
  constructor(id, size, type, blueprint, season, hitpoints, braceStrength, braceStrengthRecovery, stamina, baseRank, requiredRank, contact, sailSpeed, cargo, required, slots, perks, dateAdded, lastUpdated) {
@@ -25,7 +26,14 @@ export class Ship {
25
26
  // Static method to create a Ship instance from raw data
26
27
  static fromRawData(rawData) {
27
28
  const season = rawData.season;
28
- return new Ship(rawData.id, rawData.size, rawData.type, rawData.blueprint ?? undefined, season ? Seasons[season] : undefined, rawData.hitpoints, rawData.braceStrength, rawData.braceStrengthRecovery, rawData.stamina ?? undefined, rawData.baseRank, rawData.requiredRank ?? undefined, rawData.contact ?? undefined, rawData.sailSpeed, rawData.cargo, rawData.required, {
29
+ const required = rawData.required ? new Map() : undefined;
30
+ if (required) {
31
+ for (const [requiredKey, quantity] of Object.entries(rawData.required)) {
32
+ const requiredMaterial = requiredKey;
33
+ required.set(Materials[requiredMaterial], quantity);
34
+ }
35
+ }
36
+ return new Ship(rawData.id, rawData.size, rawData.type, rawData.blueprint ?? undefined, season ? Seasons[season] : undefined, rawData.hitpoints, rawData.braceStrength, rawData.braceStrengthRecovery, rawData.stamina ?? undefined, rawData.baseRank, rawData.requiredRank ?? undefined, rawData.contact ?? undefined, rawData.sailSpeed, rawData.cargo, required, {
29
37
  attachement: rawData.slots.attachement ?? undefined,
30
38
  frontWeapon: rawData.slots.frontWeapon ?? undefined,
31
39
  leftSideWeapon: rawData.slots.leftSideWeapon ?? undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"ships.js","sourceRoot":"","sources":["../../src/daos/ships.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ships.js","sourceRoot":"","sources":["../../src/daos/ships.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skullandbonestools/snbdata",
3
- "version": "5.0.4",
3
+ "version": "5.0.5",
4
4
  "description": "Inofficial data package for the Skull and Bones game by Ubisoft.",
5
5
  "keywords": [
6
6
  "ubisoft",