ensure LocTagRandSeed does not lose precision

This commit is contained in:
Sainan 2025-04-01 13:56:51 +02:00
parent 1b6083f901
commit ac2de14674
2 changed files with 39 additions and 62 deletions

View File

@ -1,71 +1,47 @@
import fs from "fs";
import path from "path";
import { repoDir } from "@/src/helpers/pathHelper";
import { CRng, mixSeeds } from "@/src/services/rngService"; import { CRng, mixSeeds } from "@/src/services/rngService";
import { IMongoDate } from "@/src/types/commonTypes"; import { IMongoDate } from "@/src/types/commonTypes";
import { IVendorManifest, IVendorManifestPreprocessed } from "@/src/types/vendorTypes"; import { IVendorManifest, IVendorManifestPreprocessed } from "@/src/types/vendorTypes";
import { JSONParse } from "json-with-bigint";
import ArchimedeanVendorManifest from "@/static/fixed_responses/getVendorInfo/ArchimedeanVendorManifest.json"; const getVendorManifestJson = (name: string): IVendorManifest => {
import DeimosEntratiFragmentVendorProductsManifest from "@/static/fixed_responses/getVendorInfo/DeimosEntratiFragmentVendorProductsManifest.json"; return JSONParse(fs.readFileSync(path.join(repoDir, `static/fixed_responses/getVendorInfo/${name}.json`), "utf-8"));
import DeimosFishmongerVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosFishmongerVendorManifest.json"; };
import DeimosHivemindCommisionsManifestFishmonger from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestFishmonger.json";
import DeimosHivemindCommisionsManifestPetVendor from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestPetVendor.json";
import DeimosHivemindCommisionsManifestProspector from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestProspector.json";
import DeimosHivemindCommisionsManifestTokenVendor from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestTokenVendor.json";
import DeimosHivemindCommisionsManifestWeaponsmith from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestWeaponsmith.json";
import DeimosHivemindTokenVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosHivemindTokenVendorManifest.json";
import DeimosPetVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosPetVendorManifest.json";
import DeimosProspectorVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosProspectorVendorManifest.json";
import DuviriAcrithisVendorManifest from "@/static/fixed_responses/getVendorInfo/DuviriAcrithisVendorManifest.json";
import EntratiLabsEntratiLabsCommisionsManifest from "@/static/fixed_responses/getVendorInfo/EntratiLabsEntratiLabsCommisionsManifest.json";
import EntratiLabsEntratiLabVendorManifest from "@/static/fixed_responses/getVendorInfo/EntratiLabsEntratiLabVendorManifest.json";
import GuildAdvertisementVendorManifest from "@/static/fixed_responses/getVendorInfo/GuildAdvertisementVendorManifest.json";
import HubsIronwakeDondaVendorManifest from "@/static/fixed_responses/getVendorInfo/HubsIronwakeDondaVendorManifest.json";
import HubsPerrinSequenceWeaponVendorManifest from "@/static/fixed_responses/getVendorInfo/HubsPerrinSequenceWeaponVendorManifest.json";
import HubsRailjackCrewMemberVendorManifest from "@/static/fixed_responses/getVendorInfo/HubsRailjackCrewMemberVendorManifest.json";
import InfestedLichWeaponVendorManifest from "@/static/fixed_responses/getVendorInfo/InfestedLichWeaponVendorManifest.json";
import MaskSalesmanManifest from "@/static/fixed_responses/getVendorInfo/MaskSalesmanManifest.json";
import Nova1999ConquestShopManifest from "@/static/fixed_responses/getVendorInfo/Nova1999ConquestShopManifest.json";
import OstronFishmongerVendorManifest from "@/static/fixed_responses/getVendorInfo/OstronFishmongerVendorManifest.json";
import OstronPetVendorManifest from "@/static/fixed_responses/getVendorInfo/OstronPetVendorManifest.json";
import OstronProspectorVendorManifest from "@/static/fixed_responses/getVendorInfo/OstronProspectorVendorManifest.json";
import RadioLegionIntermission12VendorManifest from "@/static/fixed_responses/getVendorInfo/RadioLegionIntermission12VendorManifest.json";
import SolarisDebtTokenVendorManifest from "@/static/fixed_responses/getVendorInfo/SolarisDebtTokenVendorManifest.json";
import SolarisDebtTokenVendorRepossessionsManifest from "@/static/fixed_responses/getVendorInfo/SolarisDebtTokenVendorRepossessionsManifest.json";
import SolarisFishmongerVendorManifest from "@/static/fixed_responses/getVendorInfo/SolarisFishmongerVendorManifest.json";
import SolarisProspectorVendorManifest from "@/static/fixed_responses/getVendorInfo/SolarisProspectorVendorManifest.json";
import TeshinHardModeVendorManifest from "@/static/fixed_responses/getVendorInfo/TeshinHardModeVendorManifest.json";
import ZarimanCommisionsManifestArchimedean from "@/static/fixed_responses/getVendorInfo/ZarimanCommisionsManifestArchimedean.json";
const vendorManifests: IVendorManifest[] = [ const vendorManifests: IVendorManifest[] = [
ArchimedeanVendorManifest, getVendorManifestJson("ArchimedeanVendorManifest"),
DeimosEntratiFragmentVendorProductsManifest, getVendorManifestJson("DeimosEntratiFragmentVendorProductsManifest"),
DeimosFishmongerVendorManifest, getVendorManifestJson("DeimosFishmongerVendorManifest"),
DeimosHivemindCommisionsManifestFishmonger, getVendorManifestJson("DeimosHivemindCommisionsManifestFishmonger"),
DeimosHivemindCommisionsManifestPetVendor, getVendorManifestJson("DeimosHivemindCommisionsManifestPetVendor"),
DeimosHivemindCommisionsManifestProspector, getVendorManifestJson("DeimosHivemindCommisionsManifestProspector"),
DeimosHivemindCommisionsManifestTokenVendor, getVendorManifestJson("DeimosHivemindCommisionsManifestTokenVendor"),
DeimosHivemindCommisionsManifestWeaponsmith, getVendorManifestJson("DeimosHivemindCommisionsManifestWeaponsmith"),
DeimosHivemindTokenVendorManifest, getVendorManifestJson("DeimosHivemindTokenVendorManifest"),
DeimosPetVendorManifest, getVendorManifestJson("DeimosPetVendorManifest"),
DeimosProspectorVendorManifest, getVendorManifestJson("DeimosProspectorVendorManifest"),
DuviriAcrithisVendorManifest, getVendorManifestJson("DuviriAcrithisVendorManifest"),
EntratiLabsEntratiLabsCommisionsManifest, getVendorManifestJson("EntratiLabsEntratiLabsCommisionsManifest"),
EntratiLabsEntratiLabVendorManifest, getVendorManifestJson("EntratiLabsEntratiLabVendorManifest"),
GuildAdvertisementVendorManifest, // uses preprocessing getVendorManifestJson("GuildAdvertisementVendorManifest"), // uses preprocessing
HubsIronwakeDondaVendorManifest, // uses preprocessing getVendorManifestJson("HubsIronwakeDondaVendorManifest"), // uses preprocessing
HubsPerrinSequenceWeaponVendorManifest, getVendorManifestJson("HubsPerrinSequenceWeaponVendorManifest"),
HubsRailjackCrewMemberVendorManifest, getVendorManifestJson("HubsRailjackCrewMemberVendorManifest"),
InfestedLichWeaponVendorManifest, getVendorManifestJson("InfestedLichWeaponVendorManifest"),
MaskSalesmanManifest, getVendorManifestJson("MaskSalesmanManifest"),
Nova1999ConquestShopManifest, getVendorManifestJson("Nova1999ConquestShopManifest"),
OstronFishmongerVendorManifest, getVendorManifestJson("OstronFishmongerVendorManifest"),
OstronPetVendorManifest, getVendorManifestJson("OstronPetVendorManifest"),
OstronProspectorVendorManifest, getVendorManifestJson("OstronProspectorVendorManifest"),
RadioLegionIntermission12VendorManifest, getVendorManifestJson("RadioLegionIntermission12VendorManifest"),
SolarisDebtTokenVendorManifest, getVendorManifestJson("SolarisDebtTokenVendorManifest"),
SolarisDebtTokenVendorRepossessionsManifest, getVendorManifestJson("SolarisDebtTokenVendorRepossessionsManifest"),
SolarisFishmongerVendorManifest, getVendorManifestJson("SolarisFishmongerVendorManifest"),
SolarisProspectorVendorManifest, getVendorManifestJson("SolarisProspectorVendorManifest"),
TeshinHardModeVendorManifest, // uses preprocessing getVendorManifestJson("TeshinHardModeVendorManifest"), // uses preprocessing
ZarimanCommisionsManifestArchimedean getVendorManifestJson("ZarimanCommisionsManifestArchimedean")
]; ];
export const getVendorManifestByTypeName = (typeName: string): IVendorManifest | undefined => { export const getVendorManifestByTypeName = (typeName: string): IVendorManifest | undefined => {

View File

@ -19,6 +19,7 @@ interface IItemManifest {
PurchaseQuantityLimit?: number; PurchaseQuantityLimit?: number;
RotatedWeekly?: boolean; RotatedWeekly?: boolean;
AllowMultipurchase: boolean; AllowMultipurchase: boolean;
LocTagRandSeed?: number | bigint;
Id: IOid; Id: IOid;
} }