@windrosetools/windrosedata 0.0.1
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/LICENSE +661 -0
- package/README.md +120 -0
- package/data/alchemy.json +31 -0
- package/data/ammo.json +32 -0
- package/data/backpack.json +23 -0
- package/data/buildingElement.json +1757 -0
- package/data/cannon.json +11 -0
- package/data/crewEquipment.json +12 -0
- package/data/food.json +127 -0
- package/data/hullModification.json +12 -0
- package/data/item.json +44 -0
- package/data/medicine.json +30 -0
- package/data/metal.json +12 -0
- package/data/miscellaneous.json +100 -0
- package/data/resource.json +243 -0
- package/data/tool.json +52 -0
- package/dist/daos/alchemy.d.ts +23 -0
- package/dist/daos/alchemy.d.ts.map +1 -0
- package/dist/daos/alchemy.js +27 -0
- package/dist/daos/alchemy.js.map +1 -0
- package/dist/daos/ammo.d.ts +23 -0
- package/dist/daos/ammo.d.ts.map +1 -0
- package/dist/daos/ammo.js +27 -0
- package/dist/daos/ammo.js.map +1 -0
- package/dist/daos/backpack.d.ts +23 -0
- package/dist/daos/backpack.d.ts.map +1 -0
- package/dist/daos/backpack.js +27 -0
- package/dist/daos/backpack.js.map +1 -0
- package/dist/daos/buildingElement.d.ts +37 -0
- package/dist/daos/buildingElement.d.ts.map +1 -0
- package/dist/daos/buildingElement.js +34 -0
- package/dist/daos/buildingElement.js.map +1 -0
- package/dist/daos/cannon.d.ts +21 -0
- package/dist/daos/cannon.d.ts.map +1 -0
- package/dist/daos/cannon.js +26 -0
- package/dist/daos/cannon.js.map +1 -0
- package/dist/daos/crewEquipment.d.ts +21 -0
- package/dist/daos/crewEquipment.d.ts.map +1 -0
- package/dist/daos/crewEquipment.js +26 -0
- package/dist/daos/crewEquipment.js.map +1 -0
- package/dist/daos/food.d.ts +23 -0
- package/dist/daos/food.d.ts.map +1 -0
- package/dist/daos/food.js +27 -0
- package/dist/daos/food.js.map +1 -0
- package/dist/daos/helpers.d.ts +11 -0
- package/dist/daos/helpers.d.ts.map +1 -0
- package/dist/daos/helpers.js +34 -0
- package/dist/daos/helpers.js.map +1 -0
- package/dist/daos/hullModification.d.ts +21 -0
- package/dist/daos/hullModification.d.ts.map +1 -0
- package/dist/daos/hullModification.js +26 -0
- package/dist/daos/hullModification.js.map +1 -0
- package/dist/daos/item.d.ts +23 -0
- package/dist/daos/item.d.ts.map +1 -0
- package/dist/daos/item.js +27 -0
- package/dist/daos/item.js.map +1 -0
- package/dist/daos/medicine.d.ts +23 -0
- package/dist/daos/medicine.d.ts.map +1 -0
- package/dist/daos/medicine.js +27 -0
- package/dist/daos/medicine.js.map +1 -0
- package/dist/daos/metal.d.ts +19 -0
- package/dist/daos/metal.d.ts.map +1 -0
- package/dist/daos/metal.js +20 -0
- package/dist/daos/metal.js.map +1 -0
- package/dist/daos/metals.d.ts +19 -0
- package/dist/daos/metals.d.ts.map +1 -0
- package/dist/daos/metals.js +19 -0
- package/dist/daos/metals.js.map +1 -0
- package/dist/daos/miscellaneous.d.ts +23 -0
- package/dist/daos/miscellaneous.d.ts.map +1 -0
- package/dist/daos/miscellaneous.js +27 -0
- package/dist/daos/miscellaneous.js.map +1 -0
- package/dist/daos/requirements.d.ts +48 -0
- package/dist/daos/requirements.d.ts.map +1 -0
- package/dist/daos/requirements.js +242 -0
- package/dist/daos/requirements.js.map +1 -0
- package/dist/daos/resource.d.ts +23 -0
- package/dist/daos/resource.d.ts.map +1 -0
- package/dist/daos/resource.js +30 -0
- package/dist/daos/resource.js.map +1 -0
- package/dist/daos/resources.d.ts +24 -0
- package/dist/daos/resources.d.ts.map +1 -0
- package/dist/daos/resources.js +49 -0
- package/dist/daos/resources.js.map +1 -0
- package/dist/daos/tool.d.ts +23 -0
- package/dist/daos/tool.d.ts.map +1 -0
- package/dist/daos/tool.js +30 -0
- package/dist/daos/tool.js.map +1 -0
- package/dist/daos/tools.d.ts +24 -0
- package/dist/daos/tools.d.ts.map +1 -0
- package/dist/daos/tools.js +23 -0
- package/dist/daos/tools.js.map +1 -0
- package/dist/daos/validation.d.ts +2 -0
- package/dist/daos/validation.d.ts.map +1 -0
- package/dist/daos/validation.js +32 -0
- package/dist/daos/validation.js.map +1 -0
- package/dist/daos/versions.d.ts +18 -0
- package/dist/daos/versions.d.ts.map +1 -0
- package/dist/daos/versions.js +33 -0
- package/dist/daos/versions.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/languages.d.ts +1757 -0
- package/dist/languages.d.ts.map +1 -0
- package/dist/languages.js +44 -0
- package/dist/languages.js.map +1 -0
- package/dist/types/BuildingElement.d.ts +7 -0
- package/dist/types/BuildingElement.d.ts.map +1 -0
- package/dist/types/BuildingElement.js +8 -0
- package/dist/types/BuildingElement.js.map +1 -0
- package/dist/types/Rarity.d.ts +3 -0
- package/dist/types/Rarity.d.ts.map +1 -0
- package/dist/types/Rarity.js +4 -0
- package/dist/types/Rarity.js.map +1 -0
- package/dist/unifiedItems.d.ts +27 -0
- package/dist/unifiedItems.d.ts.map +1 -0
- package/dist/unifiedItems.js +47 -0
- package/dist/unifiedItems.js.map +1 -0
- package/dist/versions.d.ts +21 -0
- package/dist/versions.d.ts.map +1 -0
- package/dist/versions.js +36 -0
- package/dist/versions.js.map +1 -0
- package/languages/source/alchemy.json +36 -0
- package/languages/source/ammo.json +36 -0
- package/languages/source/backpack.json +18 -0
- package/languages/source/buildingElement.json +1567 -0
- package/languages/source/cannon.json +10 -0
- package/languages/source/crewEquipment.json +11 -0
- package/languages/source/food.json +164 -0
- package/languages/source/hullModification.json +10 -0
- package/languages/source/item.json +50 -0
- package/languages/source/medicine.json +39 -0
- package/languages/source/metal.json +11 -0
- package/languages/source/miscellaneous.json +147 -0
- package/languages/source/resource.json +300 -0
- package/languages/source/tool.json +44 -0
- package/package.json +41 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import medicineData from "../../data/medicine.json";
|
|
2
|
+
import { Rarity } from "../types/Rarity";
|
|
3
|
+
import { MultiVersion } from "../versions";
|
|
4
|
+
import { RequirementEntry } from "./requirements";
|
|
5
|
+
type MedicineKey = keyof typeof medicineData;
|
|
6
|
+
type MedicineData<TRequired = number> = {
|
|
7
|
+
rarity: Rarity;
|
|
8
|
+
stackLimit: number;
|
|
9
|
+
required: Record<string, TRequired>;
|
|
10
|
+
};
|
|
11
|
+
type MedicineResolvedData = MedicineData<RequirementEntry>;
|
|
12
|
+
type MedicinesByVersion = MultiVersion<MedicineKey, Medicine>;
|
|
13
|
+
export declare class Medicine {
|
|
14
|
+
id: string;
|
|
15
|
+
rarity: Rarity;
|
|
16
|
+
stackLimit: number;
|
|
17
|
+
required: Record<string, RequirementEntry>;
|
|
18
|
+
constructor(id: string, data: MedicineResolvedData);
|
|
19
|
+
static loadMedicinesByVersion(): MedicinesByVersion;
|
|
20
|
+
}
|
|
21
|
+
export declare const Medicines: MedicinesByVersion;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=medicine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"medicine.d.ts","sourceRoot":"","sources":["../../src/daos/medicine.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAEpE,KAAK,WAAW,GAAG,MAAM,OAAO,YAAY,CAAC;AAC7C,KAAK,YAAY,CAAC,SAAS,GAAG,MAAM,IAAI;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACvC,CAAC;AAGF,KAAK,oBAAoB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAC3D,KAAK,kBAAkB,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAE9D,qBAAa,QAAQ;IACV,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAEtC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB;IAOlD,MAAM,CAAC,sBAAsB,IAAI,kBAAkB;CA6BtD;AAED,eAAO,MAAM,SAAS,EAAE,kBAAsD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import medicineData from "../../data/medicine.json";
|
|
2
|
+
import { createVersionedRawStore, instantiateVersionedEntries, resolveVersionedRequirements } from "./helpers";
|
|
3
|
+
import { RequirementUtils } from "./requirements";
|
|
4
|
+
export class Medicine {
|
|
5
|
+
constructor(id, data) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.rarity = data.rarity;
|
|
8
|
+
this.stackLimit = data.stackLimit;
|
|
9
|
+
this.required = data.required;
|
|
10
|
+
}
|
|
11
|
+
static loadMedicinesByVersion() {
|
|
12
|
+
const rawByVersion = createVersionedRawStore(medicineData);
|
|
13
|
+
const medicinesByVersion = instantiateVersionedEntries(rawByVersion, (id, data) => {
|
|
14
|
+
const { required: _required, ...baseData } = data;
|
|
15
|
+
return new Medicine(id, { ...baseData, required: {} });
|
|
16
|
+
});
|
|
17
|
+
RequirementUtils.registerLookupContext({
|
|
18
|
+
getMedicine: (id, version) => medicinesByVersion[version][id],
|
|
19
|
+
});
|
|
20
|
+
resolveVersionedRequirements(rawByVersion, medicinesByVersion, (data) => data.required, (medicine, required) => {
|
|
21
|
+
medicine.required = required ?? {};
|
|
22
|
+
}, RequirementUtils.createDefaultRequirementResolvers());
|
|
23
|
+
return medicinesByVersion;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export const Medicines = Medicine.loadMedicinesByVersion();
|
|
27
|
+
//# sourceMappingURL=medicine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"medicine.js","sourceRoot":"","sources":["../../src/daos/medicine.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAoB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAapE,MAAM,OAAO,QAAQ;IAMjB,YAAY,EAAU,EAAE,IAA0B;QAC9C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,sBAAsB;QACzB,MAAM,YAAY,GAAG,uBAAuB,CACxC,YAA8E,CACjF,CAAC;QACF,MAAM,kBAAkB,GAAG,2BAA2B,CAClD,YAAY,EACZ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACT,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;YAElD,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC,CACkB,CAAC;QAExB,gBAAgB,CAAC,qBAAqB,CAAC;YACnC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAiB,CAAC;SAC/E,CAAC,CAAC;QAEH,4BAA4B,CACxB,YAAY,EACZ,kBAAkB,EAClB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EACvB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACnB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;QACvC,CAAC,EACD,gBAAgB,CAAC,iCAAiC,EAAE,CACvD,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,SAAS,GAAuB,QAAQ,CAAC,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import metalsData from "../../data/metal.json";
|
|
2
|
+
import { Rarity } from "../types/Rarity";
|
|
3
|
+
import { MultiVersion } from "../versions";
|
|
4
|
+
type MetalKey = keyof typeof metalsData;
|
|
5
|
+
type MetalData = {
|
|
6
|
+
rarity: Rarity;
|
|
7
|
+
stackLimit: number;
|
|
8
|
+
};
|
|
9
|
+
type MetalsByVersion = MultiVersion<MetalKey, Metal>;
|
|
10
|
+
export declare class Metal {
|
|
11
|
+
id: string;
|
|
12
|
+
rarity: Rarity;
|
|
13
|
+
stackLimit: number;
|
|
14
|
+
constructor(id: string, data: MetalData);
|
|
15
|
+
static loadMetalsByVersion(): MetalsByVersion;
|
|
16
|
+
}
|
|
17
|
+
export declare const Metals: MetalsByVersion;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=metal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metal.d.ts","sourceRoot":"","sources":["../../src/daos/metal.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;AAIpD,KAAK,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AACxC,KAAK,SAAS,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAErD,qBAAa,KAAK;IACP,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;gBAEd,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAMvC,MAAM,CAAC,mBAAmB,IAAI,eAAe;CAehD;AAED,eAAO,MAAM,MAAM,EAAE,eAA6C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import metalsData from "../../data/metal.json";
|
|
2
|
+
import { createVersionedRawStore, instantiateVersionedEntries } from "./helpers";
|
|
3
|
+
import { RequirementUtils } from "./requirements";
|
|
4
|
+
export class Metal {
|
|
5
|
+
constructor(id, data) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.rarity = data.rarity;
|
|
8
|
+
this.stackLimit = data.stackLimit;
|
|
9
|
+
}
|
|
10
|
+
static loadMetalsByVersion() {
|
|
11
|
+
const rawByVersion = createVersionedRawStore(metalsData);
|
|
12
|
+
const metalsByVersion = instantiateVersionedEntries(rawByVersion, (id, data) => new Metal(id, { ...data }));
|
|
13
|
+
RequirementUtils.registerLookupContext({
|
|
14
|
+
getMetal: (id, version) => metalsByVersion[version][id],
|
|
15
|
+
});
|
|
16
|
+
return metalsByVersion;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export const Metals = Metal.loadMetalsByVersion();
|
|
20
|
+
//# sourceMappingURL=metal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metal.js","sourceRoot":"","sources":["../../src/daos/metal.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAG/C,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAUlD,MAAM,OAAO,KAAK;IAKd,YAAY,EAAU,EAAE,IAAe;QACnC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,mBAAmB;QACtB,MAAM,YAAY,GAAG,uBAAuB,CACxC,UAAmE,CACtE,CAAC;QACF,MAAM,eAAe,GAAG,2BAA2B,CAC/C,YAAY,EACZ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CACxB,CAAC;QAErB,gBAAgB,CAAC,qBAAqB,CAAC;YACnC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAc,CAAC;SACtE,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,MAAM,GAAoB,KAAK,CAAC,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import metalsData from "../../data/metal.json";
|
|
2
|
+
import { Rarity } from "../types/Rarity";
|
|
3
|
+
import { MultiVersion } from "../versions";
|
|
4
|
+
type MetalKey = keyof typeof metalsData;
|
|
5
|
+
type MetalData = {
|
|
6
|
+
rarity: Rarity;
|
|
7
|
+
stackLimit: number;
|
|
8
|
+
};
|
|
9
|
+
type MetalsByVersion = MultiVersion<MetalKey, Metal>;
|
|
10
|
+
export declare class Metal {
|
|
11
|
+
id: string;
|
|
12
|
+
rarity: Rarity;
|
|
13
|
+
stackLimit: number;
|
|
14
|
+
constructor(id: string, data: MetalData);
|
|
15
|
+
static loadMetalsByVersion(): MetalsByVersion;
|
|
16
|
+
}
|
|
17
|
+
export declare const Metals: MetalsByVersion;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=metals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metals.d.ts","sourceRoot":"","sources":["../../src/daos/metals.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAqB,YAAY,EAAc,MAAM,aAAa,CAAC;AAG1E,KAAK,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AACxC,KAAK,SAAS,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAErD,qBAAa,KAAK;IACP,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;gBAEd,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS;IAMvC,MAAM,CAAC,mBAAmB,IAAI,eAAe;CAYhD;AAED,eAAO,MAAM,MAAM,EAAE,eAA6C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import metalsData from "../../data/metal.json";
|
|
2
|
+
import { loadVersionedData } from "../versions";
|
|
3
|
+
import { RequirementUtils } from "./requirements";
|
|
4
|
+
export class Metal {
|
|
5
|
+
constructor(id, data) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.rarity = data.rarity;
|
|
8
|
+
this.stackLimit = data.stackLimit;
|
|
9
|
+
}
|
|
10
|
+
static loadMetalsByVersion() {
|
|
11
|
+
const metalsByVersion = loadVersionedData(metalsData, (id, data) => new Metal(id, { ...data }));
|
|
12
|
+
RequirementUtils.registerLookupContext({
|
|
13
|
+
getMetal: (id, version) => metalsByVersion[version][id],
|
|
14
|
+
});
|
|
15
|
+
return metalsByVersion;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export const Metals = Metal.loadMetalsByVersion();
|
|
19
|
+
//# sourceMappingURL=metals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metals.js","sourceRoot":"","sources":["../../src/daos/metals.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAA4B,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAUlD,MAAM,OAAO,KAAK;IAKd,YAAY,EAAU,EAAE,IAAe;QACnC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,mBAAmB;QACtB,MAAM,eAAe,GAAG,iBAAiB,CACrC,UAAsE,EACtE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CACxB,CAAC;QAErB,gBAAgB,CAAC,qBAAqB,CAAC;YACnC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAc,CAAC;SACtE,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,MAAM,GAAoB,KAAK,CAAC,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import miscellaneousData from "../../data/miscellaneous.json";
|
|
2
|
+
import { Rarity } from "../types/Rarity";
|
|
3
|
+
import { MultiVersion } from "../versions";
|
|
4
|
+
import { RequirementEntry } from "./requirements";
|
|
5
|
+
type MiscellaneousKey = keyof typeof miscellaneousData;
|
|
6
|
+
type MiscellaneousData<TRequired = number> = {
|
|
7
|
+
rarity: Rarity;
|
|
8
|
+
stackLimit: number;
|
|
9
|
+
required?: Record<string, TRequired>;
|
|
10
|
+
};
|
|
11
|
+
type MiscellaneousResolvedData = MiscellaneousData<RequirementEntry>;
|
|
12
|
+
type MiscellaneousItemsByVersion = MultiVersion<MiscellaneousKey, Miscellanies>;
|
|
13
|
+
export declare class Miscellanies {
|
|
14
|
+
id: string;
|
|
15
|
+
rarity: Rarity;
|
|
16
|
+
stackLimit: number;
|
|
17
|
+
required?: Record<string, RequirementEntry>;
|
|
18
|
+
constructor(id: string, data: MiscellaneousResolvedData);
|
|
19
|
+
static loadMiscellaneousItemsByVersion(): MiscellaneousItemsByVersion;
|
|
20
|
+
}
|
|
21
|
+
export declare const Miscellaneous: MiscellaneousItemsByVersion;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=miscellaneous.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"miscellaneous.d.ts","sourceRoot":"","sources":["../../src/daos/miscellaneous.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAEpE,KAAK,gBAAgB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AACvD,KAAK,iBAAiB,CAAC,SAAS,GAAG,MAAM,IAAI;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AAGF,KAAK,yBAAyB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AACrE,KAAK,2BAA2B,GAAG,YAAY,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAEhF,qBAAa,YAAY;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAEvC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;IAOvD,MAAM,CAAC,+BAA+B,IAAI,2BAA2B;CA6BxE;AAED,eAAO,MAAM,aAAa,EAAE,2BAA4E,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import miscellaneousData from "../../data/miscellaneous.json";
|
|
2
|
+
import { createVersionedRawStore, instantiateVersionedEntries, resolveVersionedRequirements } from "./helpers";
|
|
3
|
+
import { RequirementUtils } from "./requirements";
|
|
4
|
+
export class Miscellanies {
|
|
5
|
+
constructor(id, data) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.rarity = data.rarity;
|
|
8
|
+
this.stackLimit = data.stackLimit;
|
|
9
|
+
this.required = data.required;
|
|
10
|
+
}
|
|
11
|
+
static loadMiscellaneousItemsByVersion() {
|
|
12
|
+
const rawByVersion = createVersionedRawStore(miscellaneousData);
|
|
13
|
+
const miscellaneousItemsByVersion = instantiateVersionedEntries(rawByVersion, (id, data) => {
|
|
14
|
+
const { required: _required, ...baseData } = data;
|
|
15
|
+
return new Miscellanies(id, baseData);
|
|
16
|
+
});
|
|
17
|
+
RequirementUtils.registerLookupContext({
|
|
18
|
+
getMiscellaneous: (id, version) => miscellaneousItemsByVersion[version][id],
|
|
19
|
+
});
|
|
20
|
+
resolveVersionedRequirements(rawByVersion, miscellaneousItemsByVersion, (data) => data.required, (miscellaneousItem, required) => {
|
|
21
|
+
miscellaneousItem.required = required;
|
|
22
|
+
}, RequirementUtils.createDefaultRequirementResolvers());
|
|
23
|
+
return miscellaneousItemsByVersion;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export const Miscellaneous = Miscellanies.loadMiscellaneousItemsByVersion();
|
|
27
|
+
//# sourceMappingURL=miscellaneous.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"miscellaneous.js","sourceRoot":"","sources":["../../src/daos/miscellaneous.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAoB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAapE,MAAM,OAAO,YAAY;IAMrB,YAAY,EAAU,EAAE,IAA+B;QACnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,+BAA+B;QAClC,MAAM,YAAY,GAAG,uBAAuB,CACxC,iBAA6F,CAChG,CAAC;QACF,MAAM,2BAA2B,GAAG,2BAA2B,CAC3D,YAAY,EACZ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACT,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;YAElD,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAC2B,CAAC;QAEjC,gBAAgB,CAAC,qBAAqB,CAAC;YACnC,gBAAgB,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,EAAsB,CAAC;SAClG,CAAC,CAAC;QAEH,4BAA4B,CACxB,YAAY,EACZ,2BAA2B,EAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EACvB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE;YAC5B,iBAAiB,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,CAAC,EACD,gBAAgB,CAAC,iCAAiC,EAAE,CACvD,CAAC;QAEF,OAAO,2BAA2B,CAAC;IACvC,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,aAAa,GAAgC,YAAY,CAAC,+BAA+B,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { MultiVersion, Version } from "../versions";
|
|
2
|
+
export type ResolvedRequirement = {
|
|
3
|
+
type: string;
|
|
4
|
+
value: unknown;
|
|
5
|
+
};
|
|
6
|
+
export type RequirementResolver = (id: string, version: Version) => ResolvedRequirement | undefined;
|
|
7
|
+
type RequirementLookupContext = {
|
|
8
|
+
getMetal?: (id: string, version: Version) => unknown;
|
|
9
|
+
getResource?: (id: string, version: Version) => unknown;
|
|
10
|
+
getTool?: (id: string, version: Version) => unknown;
|
|
11
|
+
getAlchemy?: (id: string, version: Version) => unknown;
|
|
12
|
+
getAmmo?: (id: string, version: Version) => unknown;
|
|
13
|
+
getBackpack?: (id: string, version: Version) => unknown;
|
|
14
|
+
getBuildingElement?: (id: string, version: Version) => unknown;
|
|
15
|
+
getCannon?: (id: string, version: Version) => unknown;
|
|
16
|
+
getCrewEquipment?: (id: string, version: Version) => unknown;
|
|
17
|
+
getFood?: (id: string, version: Version) => unknown;
|
|
18
|
+
getHullModification?: (id: string, version: Version) => unknown;
|
|
19
|
+
getItem?: (id: string, version: Version) => unknown;
|
|
20
|
+
getMedicine?: (id: string, version: Version) => unknown;
|
|
21
|
+
getMiscellaneous?: (id: string, version: Version) => unknown;
|
|
22
|
+
};
|
|
23
|
+
type CircularDependencyNode = {
|
|
24
|
+
id: string;
|
|
25
|
+
required?: Record<string, RequirementEntry>;
|
|
26
|
+
};
|
|
27
|
+
type CircularDependencyCollection = {
|
|
28
|
+
type: string;
|
|
29
|
+
entriesByVersion: MultiVersion<any, CircularDependencyNode>;
|
|
30
|
+
};
|
|
31
|
+
export type RequirementEntry = {
|
|
32
|
+
id: string;
|
|
33
|
+
amount: number;
|
|
34
|
+
resolved?: ResolvedRequirement;
|
|
35
|
+
};
|
|
36
|
+
export declare class RequirementUtils {
|
|
37
|
+
private static lookupContext;
|
|
38
|
+
private static trackedRequirementEntries;
|
|
39
|
+
static registerLookupContext(context: RequirementLookupContext): void;
|
|
40
|
+
static createDefaultRequirementResolvers(): RequirementResolver[];
|
|
41
|
+
static assertNoCircularDependencies(collections: CircularDependencyCollection[]): void;
|
|
42
|
+
static resolveRequirement(id: string, version: Version, resolvers: RequirementResolver[]): ResolvedRequirement | undefined;
|
|
43
|
+
static resolveRequiredEntries(required: Record<string, number>, version: Version, resolvers: RequirementResolver[]): Record<string, RequirementEntry>;
|
|
44
|
+
private static refreshTrackedRequirementEntries;
|
|
45
|
+
private static isCircularDependencyNode;
|
|
46
|
+
}
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=requirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../../src/daos/requirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
export class RequirementUtils {
|
|
2
|
+
static registerLookupContext(context) {
|
|
3
|
+
RequirementUtils.lookupContext = {
|
|
4
|
+
...RequirementUtils.lookupContext,
|
|
5
|
+
...context,
|
|
6
|
+
};
|
|
7
|
+
RequirementUtils.refreshTrackedRequirementEntries();
|
|
8
|
+
}
|
|
9
|
+
static createDefaultRequirementResolvers() {
|
|
10
|
+
return [
|
|
11
|
+
(id, version) => {
|
|
12
|
+
const metal = RequirementUtils.lookupContext.getMetal?.(id, version);
|
|
13
|
+
if (!metal) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
type: "metal",
|
|
18
|
+
value: metal,
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
(id, version) => {
|
|
22
|
+
const resource = RequirementUtils.lookupContext.getResource?.(id, version);
|
|
23
|
+
if (!resource) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
type: "resource",
|
|
28
|
+
value: resource,
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
(id, version) => {
|
|
32
|
+
const tool = RequirementUtils.lookupContext.getTool?.(id, version);
|
|
33
|
+
if (!tool) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
type: "tool",
|
|
38
|
+
value: tool,
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
(id, version) => {
|
|
42
|
+
const alchemy = RequirementUtils.lookupContext.getAlchemy?.(id, version);
|
|
43
|
+
if (!alchemy) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
type: "alchemy",
|
|
48
|
+
value: alchemy,
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
(id, version) => {
|
|
52
|
+
const ammo = RequirementUtils.lookupContext.getAmmo?.(id, version);
|
|
53
|
+
if (!ammo) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
type: "ammo",
|
|
58
|
+
value: ammo,
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
(id, version) => {
|
|
62
|
+
const backpack = RequirementUtils.lookupContext.getBackpack?.(id, version);
|
|
63
|
+
if (!backpack) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
type: "backpack",
|
|
68
|
+
value: backpack,
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
(id, version) => {
|
|
72
|
+
const buildingElement = RequirementUtils.lookupContext.getBuildingElement?.(id, version);
|
|
73
|
+
if (!buildingElement) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
type: "buildingElement",
|
|
78
|
+
value: buildingElement,
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
(id, version) => {
|
|
82
|
+
const cannon = RequirementUtils.lookupContext.getCannon?.(id, version);
|
|
83
|
+
if (!cannon) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
type: "cannon",
|
|
88
|
+
value: cannon,
|
|
89
|
+
};
|
|
90
|
+
},
|
|
91
|
+
(id, version) => {
|
|
92
|
+
const crewEquipment = RequirementUtils.lookupContext.getCrewEquipment?.(id, version);
|
|
93
|
+
if (!crewEquipment) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
type: "crewEquipment",
|
|
98
|
+
value: crewEquipment,
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
(id, version) => {
|
|
102
|
+
const food = RequirementUtils.lookupContext.getFood?.(id, version);
|
|
103
|
+
if (!food) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
type: "food",
|
|
108
|
+
value: food,
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
(id, version) => {
|
|
112
|
+
const hullModification = RequirementUtils.lookupContext.getHullModification?.(id, version);
|
|
113
|
+
if (!hullModification) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
type: "hullModification",
|
|
118
|
+
value: hullModification,
|
|
119
|
+
};
|
|
120
|
+
},
|
|
121
|
+
(id, version) => {
|
|
122
|
+
const item = RequirementUtils.lookupContext.getItem?.(id, version);
|
|
123
|
+
if (!item) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
type: "item",
|
|
128
|
+
value: item,
|
|
129
|
+
};
|
|
130
|
+
},
|
|
131
|
+
(id, version) => {
|
|
132
|
+
const medicine = RequirementUtils.lookupContext.getMedicine?.(id, version);
|
|
133
|
+
if (!medicine) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
type: "medicine",
|
|
138
|
+
value: medicine,
|
|
139
|
+
};
|
|
140
|
+
},
|
|
141
|
+
(id, version) => {
|
|
142
|
+
const miscellaneous = RequirementUtils.lookupContext.getMiscellaneous?.(id, version);
|
|
143
|
+
if (!miscellaneous) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
type: "miscellaneous",
|
|
148
|
+
value: miscellaneous,
|
|
149
|
+
};
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
}
|
|
153
|
+
static assertNoCircularDependencies(collections) {
|
|
154
|
+
const versions = new Set();
|
|
155
|
+
for (const collection of collections) {
|
|
156
|
+
for (const version of Object.keys(collection.entriesByVersion)) {
|
|
157
|
+
versions.add(version);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
for (const version of versions) {
|
|
161
|
+
const collectionsByType = new Map(collections.map((collection) => [collection.type, collection.entriesByVersion[version] ?? {}]));
|
|
162
|
+
const visited = new Set();
|
|
163
|
+
const visiting = new Set();
|
|
164
|
+
const path = [];
|
|
165
|
+
const visitNode = (type, node) => {
|
|
166
|
+
const key = `${type}:${node.id}`;
|
|
167
|
+
if (visiting.has(key)) {
|
|
168
|
+
const cycleStart = path.indexOf(key);
|
|
169
|
+
const cyclePath = [...path.slice(cycleStart), key].join(" -> ");
|
|
170
|
+
throw new Error(`Circular requirement dependency detected for ${version}: ${cyclePath}`);
|
|
171
|
+
}
|
|
172
|
+
if (visited.has(key)) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
visiting.add(key);
|
|
176
|
+
path.push(key);
|
|
177
|
+
for (const entry of Object.values(node.required ?? {})) {
|
|
178
|
+
const resolved = entry.resolved;
|
|
179
|
+
if (!resolved || !RequirementUtils.isCircularDependencyNode(resolved.value)) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
const targetEntries = collectionsByType.get(resolved.type);
|
|
183
|
+
const targetNode = targetEntries?.[resolved.value.id];
|
|
184
|
+
if (targetNode) {
|
|
185
|
+
visitNode(resolved.type, targetNode);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
path.pop();
|
|
189
|
+
visiting.delete(key);
|
|
190
|
+
visited.add(key);
|
|
191
|
+
};
|
|
192
|
+
for (const collection of collections) {
|
|
193
|
+
for (const node of Object.values(collection.entriesByVersion[version] ?? {})) {
|
|
194
|
+
if (node) {
|
|
195
|
+
visitNode(collection.type, node);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
static resolveRequirement(id, version, resolvers) {
|
|
202
|
+
for (const resolver of resolvers) {
|
|
203
|
+
const resolved = resolver(id, version);
|
|
204
|
+
if (resolved) {
|
|
205
|
+
return resolved;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
static resolveRequiredEntries(required, version, resolvers) {
|
|
211
|
+
const resolvedRequired = {};
|
|
212
|
+
for (const [id, amount] of Object.entries(required)) {
|
|
213
|
+
resolvedRequired[id] = {
|
|
214
|
+
id,
|
|
215
|
+
amount,
|
|
216
|
+
resolved: RequirementUtils.resolveRequirement(id, version, resolvers),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
RequirementUtils.trackedRequirementEntries.push({
|
|
220
|
+
version,
|
|
221
|
+
entries: resolvedRequired,
|
|
222
|
+
});
|
|
223
|
+
return resolvedRequired;
|
|
224
|
+
}
|
|
225
|
+
static refreshTrackedRequirementEntries() {
|
|
226
|
+
const resolvers = RequirementUtils.createDefaultRequirementResolvers();
|
|
227
|
+
for (const tracked of RequirementUtils.trackedRequirementEntries) {
|
|
228
|
+
for (const entry of Object.values(tracked.entries)) {
|
|
229
|
+
entry.resolved = RequirementUtils.resolveRequirement(entry.id, tracked.version, resolvers);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
static isCircularDependencyNode(value) {
|
|
234
|
+
return typeof value === "object"
|
|
235
|
+
&& value !== null
|
|
236
|
+
&& "id" in value
|
|
237
|
+
&& typeof value.id === "string";
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
RequirementUtils.lookupContext = {};
|
|
241
|
+
RequirementUtils.trackedRequirementEntries = [];
|
|
242
|
+
//# sourceMappingURL=requirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements.js","sourceRoot":"","sources":["../../src/daos/requirements.ts"],"names":[],"mappings":"AA0CA,MAAM,OAAO,gBAAgB;IAOzB,MAAM,CAAC,qBAAqB,CAAC,OAAiC;QAC1D,gBAAgB,CAAC,aAAa,GAAG;YAC7B,GAAG,gBAAgB,CAAC,aAAa;YACjC,GAAG,OAAO;SACb,CAAC;QAEF,gBAAgB,CAAC,gCAAgC,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,iCAAiC;QACpC,OAAO;YACH,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,KAAK,GAAG,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACrE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK;iBACf,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;iBAClB,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,IAAI;iBACd,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,OAAO,GAAG,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACzE,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,OAAO;iBACjB,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,IAAI;iBACd,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;iBAClB,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACzF,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,eAAe;iBACzB,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACvE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,MAAM;iBAChB,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACrF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,aAAa;iBACvB,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,IAAI;iBACd,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC3F,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACpB,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,kBAAkB;oBACxB,KAAK,EAAE,gBAAgB;iBAC1B,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,IAAI;iBACd,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;iBAClB,CAAC;YACN,CAAC;YACD,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACZ,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACrF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO;oBACH,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,aAAa;iBACvB,CAAC;YACN,CAAC;SACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,WAA2C;QAC3E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAW,CAAC;QAEpC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAc,EAAE,CAAC;gBAC1E,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC7B,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CACjG,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAA4B,EAAQ,EAAE;gBACnE,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACjC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAEhE,MAAM,IAAI,KAAK,CAAC,gDAAgD,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBAED,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,OAAO;gBACX,CAAC;gBAED,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;oBACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;oBAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1E,SAAS;oBACb,CAAC;oBAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC3D,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtD,IAAI,UAAU,EAAE,CAAC;wBACb,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;oBACzC,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC;YAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC3E,IAAI,IAAI,EAAE,CAAC;wBACP,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,kBAAkB,CACrB,EAAU,EACV,OAAgB,EAChB,SAAgC;QAEhC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,sBAAsB,CACzB,QAAgC,EAChC,OAAgB,EAChB,SAAgC;QAEhC,MAAM,gBAAgB,GAAqC,EAAE,CAAC;QAE9D,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,gBAAgB,CAAC,EAAE,CAAC,GAAG;gBACnB,EAAE;gBACF,MAAM;gBACN,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC;aACxE,CAAC;QACN,CAAC;QAED,gBAAgB,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAC5C,OAAO;YACP,OAAO,EAAE,gBAAgB;SAC5B,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAC,gCAAgC;QAC3C,MAAM,SAAS,GAAG,gBAAgB,CAAC,iCAAiC,EAAE,CAAC;QAEvE,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;YAC/D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/F,CAAC;QACL,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,KAAc;QAClD,OAAO,OAAO,KAAK,KAAK,QAAQ;eACzB,KAAK,KAAK,IAAI;eACd,IAAI,IAAI,KAAK;eACb,OAAQ,KAAyB,CAAC,EAAE,KAAK,QAAQ,CAAC;IAC7D,CAAC;;AAhSc,8BAAa,GAA6B,EAAE,CAAC;AAC7C,0CAAyB,GAGnC,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import resourcesData from "../../data/resource.json";
|
|
2
|
+
import { Rarity } from "../types/Rarity";
|
|
3
|
+
import { MultiVersion } from "../versions";
|
|
4
|
+
import { RequirementEntry } from "./requirements";
|
|
5
|
+
type ResourceKey = keyof typeof resourcesData;
|
|
6
|
+
type ResourceData<TRequired = number> = {
|
|
7
|
+
rarity: Rarity;
|
|
8
|
+
stackLimit: number;
|
|
9
|
+
required?: Record<string, TRequired>;
|
|
10
|
+
};
|
|
11
|
+
type ResourceResolvedData = ResourceData<RequirementEntry>;
|
|
12
|
+
type ResourcesByVersion = MultiVersion<ResourceKey, Resource>;
|
|
13
|
+
export declare class Resource {
|
|
14
|
+
id: string;
|
|
15
|
+
rarity: Rarity;
|
|
16
|
+
stackLimit: number;
|
|
17
|
+
required?: Record<string, RequirementEntry>;
|
|
18
|
+
constructor(id: string, data: ResourceResolvedData);
|
|
19
|
+
static loadResourcesByVersion(): ResourcesByVersion;
|
|
20
|
+
}
|
|
21
|
+
export declare const Resources: ResourcesByVersion;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/daos/resource.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAEpE,KAAK,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAC9C,KAAK,YAAY,CAAC,SAAS,GAAG,MAAM,IAAI;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,oBAAoB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAE3D,KAAK,kBAAkB,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAE9D,qBAAa,QAAQ;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAEvC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB;IAOlD,MAAM,CAAC,sBAAsB,IAAI,kBAAkB;CAiCnD;AAED,eAAO,MAAM,SAAS,EAAE,kBAAsD,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import resourcesData from "../../data/resource.json";
|
|
2
|
+
import { createVersionedRawStore, instantiateVersionedEntries, resolveVersionedRequirements } from "./helpers";
|
|
3
|
+
import { RequirementUtils } from "./requirements";
|
|
4
|
+
export class Resource {
|
|
5
|
+
constructor(id, data) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.rarity = data.rarity;
|
|
8
|
+
this.stackLimit = data.stackLimit;
|
|
9
|
+
this.required = data.required;
|
|
10
|
+
}
|
|
11
|
+
static loadResourcesByVersion() {
|
|
12
|
+
const rawByVersion = createVersionedRawStore(resourcesData);
|
|
13
|
+
const resourcesByVersion = instantiateVersionedEntries(rawByVersion, (id, data) => {
|
|
14
|
+
const { required: _required, ...baseData } = data;
|
|
15
|
+
return new Resource(id, baseData);
|
|
16
|
+
});
|
|
17
|
+
RequirementUtils.registerLookupContext({
|
|
18
|
+
getResource: (id, version) => resourcesByVersion[version][id],
|
|
19
|
+
});
|
|
20
|
+
const resolvers = [
|
|
21
|
+
...RequirementUtils.createDefaultRequirementResolvers(),
|
|
22
|
+
];
|
|
23
|
+
resolveVersionedRequirements(rawByVersion, resourcesByVersion, (data) => data.required, (resource, required) => {
|
|
24
|
+
resource.required = required;
|
|
25
|
+
}, resolvers);
|
|
26
|
+
return resourcesByVersion;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export const Resources = Resource.loadResourcesByVersion();
|
|
30
|
+
//# sourceMappingURL=resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/daos/resource.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,0BAA0B,CAAC;AAGrD,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAoB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAapE,MAAM,OAAO,QAAQ;IAMpB,YAAY,EAAU,EAAE,IAA0B;QACjD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,sBAAsB;QAC5B,MAAM,YAAY,GAAG,uBAAuB,CAC3C,aAA+E,CAC/E,CAAC;QACF,MAAM,kBAAkB,GAAG,2BAA2B,CACrD,YAAY,EACZ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACZ,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;YAElD,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC,CACqB,CAAC;QAExB,gBAAgB,CAAC,qBAAqB,CAAC;YACtC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAiB,CAAC;SAC5E,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG;YACjB,GAAG,gBAAgB,CAAC,iCAAiC,EAAE;SACvD,CAAC;QAEF,4BAA4B,CAC3B,YAAY,EACZ,kBAAkB,EAClB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EACvB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACtB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,CAAC,EACD,SAAS,CACT,CAAC;QAEF,OAAO,kBAAkB,CAAC;IAC3B,CAAC;CACD;AAED,MAAM,CAAC,MAAM,SAAS,GAAuB,QAAQ,CAAC,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import resourcesData from "../../data/resource.json";
|
|
2
|
+
import { Rarity } from "../types/Rarity";
|
|
3
|
+
import "./metals";
|
|
4
|
+
import { MultiVersion } from "../versions";
|
|
5
|
+
import { RequirementEntry } from "./requirements";
|
|
6
|
+
type ResourceKey = keyof typeof resourcesData;
|
|
7
|
+
type ResourceData<TRequired = number> = {
|
|
8
|
+
rarity: Rarity;
|
|
9
|
+
stackLimit: number;
|
|
10
|
+
required?: Record<string, TRequired>;
|
|
11
|
+
};
|
|
12
|
+
type ResourceResolvedData = ResourceData<RequirementEntry>;
|
|
13
|
+
type ResourcesByVersion = MultiVersion<ResourceKey, Resource>;
|
|
14
|
+
export declare class Resource {
|
|
15
|
+
id: string;
|
|
16
|
+
rarity: Rarity;
|
|
17
|
+
stackLimit: number;
|
|
18
|
+
required?: Record<string, RequirementEntry>;
|
|
19
|
+
constructor(id: string, data: ResourceResolvedData);
|
|
20
|
+
static loadResourcesByVersion(): ResourcesByVersion;
|
|
21
|
+
}
|
|
22
|
+
export declare const Resources: ResourcesByVersion;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/daos/resources.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,UAAU,CAAC;AAClB,OAAO,EAAqB,YAAY,EAAc,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAEpE,KAAK,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAC9C,KAAK,YAAY,CAAC,SAAS,GAAG,MAAM,IAAI;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,oBAAoB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAM3D,KAAK,kBAAkB,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAE9D,qBAAa,QAAQ;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAEvC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB;IAOlD,MAAM,CAAC,sBAAsB,IAAI,kBAAkB;CAgDnD;AAED,eAAO,MAAM,SAAS,EAAE,kBAAsD,CAAC"}
|