From 40acb3b03ffa7076f74eb6caf7bb3cdabb33ea00 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sun, 27 Apr 2025 00:27:24 +0200 Subject: [PATCH] add getWeaponsForManifest --- src/controllers/api/nemesisController.ts | 50 +----------------------- src/helpers/nemesisHelpers.ts | 47 ++++++++++++++++++++++ 2 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/controllers/api/nemesisController.ts b/src/controllers/api/nemesisController.ts index 6f789e98..252092f5 100644 --- a/src/controllers/api/nemesisController.ts +++ b/src/controllers/api/nemesisController.ts @@ -3,6 +3,7 @@ import { encodeNemesisGuess, getInfNodes, getNemesisPasscode, + getWeaponsForManifest, IKnifeResponse } from "@/src/helpers/nemesisHelpers"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; @@ -170,18 +171,7 @@ export const nemesisController: RequestHandler = async (req, res) => { let weaponIdx = -1; if (body.target.Faction != "FC_INFESTATION") { - let weapons: readonly string[]; - if (body.target.manifest == "/Lotus/Types/Game/Nemesis/KuvaLich/KuvaLichManifestVersionSix") { - weapons = kuvaLichVersionSixWeapons; - } else if ( - body.target.manifest == "/Lotus/Types/Enemies/Corpus/Lawyers/LawyerManifestVersionFour" || - body.target.manifest == "/Lotus/Types/Enemies/Corpus/Lawyers/LawyerManifestVersionThree" - ) { - weapons = corpusVersionThreeWeapons; - } else { - throw new Error(`unknown nemesis manifest: ${body.target.manifest}`); - } - + const weapons = getWeaponsForManifest(body.target.manifest); const initialWeaponIdx = new SRng(body.target.fp).randomInt(0, weapons.length - 1); weaponIdx = initialWeaponIdx; do { @@ -283,39 +273,3 @@ interface INemesisRequiemRequest { HiddenWhenHolstered: boolean; }; } - -const kuvaLichVersionSixWeapons = [ - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Drakgoon/KuvaDrakgoon", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Karak/KuvaKarak", - "/Lotus/Weapons/Grineer/Melee/GrnKuvaLichScythe/GrnKuvaLichScytheWeapon", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Kohm/KuvaKohm", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Ogris/KuvaOgris", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Quartakk/KuvaQuartakk", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Tonkor/KuvaTonkor", - "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Brakk/KuvaBrakk", - "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Kraken/KuvaKraken", - "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Seer/KuvaSeer", - "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Stubba/KuvaStubba", - "/Lotus/Weapons/Grineer/HeavyWeapons/GrnHeavyGrenadeLauncher", - "/Lotus/Weapons/Grineer/LongGuns/GrnKuvaLichRifle/GrnKuvaLichRifleWeapon", - "/Lotus/Weapons/Grineer/Bows/GrnBow/GrnBowWeapon", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Hind/KuvaHind", - "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Nukor/KuvaNukor", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Hek/KuvaHekWeapon", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Zarr/KuvaZarr", - "/Lotus/Weapons/Grineer/KuvaLich/HeavyWeapons/Grattler/KuvaGrattler", - "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Sobek/KuvaSobek" -]; - -const corpusVersionThreeWeapons = [ - "/Lotus/Weapons/Corpus/LongGuns/CrpBriefcaseLauncher/CrpBriefcaseLauncher", - "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBEArcaPlasmor/CrpBEArcaPlasmor", - "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBEFluxRifle/CrpBEFluxRifle", - "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBETetra/CrpBETetra", - "/Lotus/Weapons/Corpus/BoardExec/Secondary/CrpBECycron/CrpBECycron", - "/Lotus/Weapons/Corpus/BoardExec/Secondary/CrpBEDetron/CrpBEDetron", - "/Lotus/Weapons/Corpus/Pistols/CrpIgniterPistol/CrpIgniterPistol", - "/Lotus/Weapons/Corpus/Pistols/CrpBriefcaseAkimbo/CrpBriefcaseAkimboPistol", - "/Lotus/Weapons/Corpus/BoardExec/Secondary/CrpBEPlinx/CrpBEPlinxWeapon", - "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBEGlaxion/CrpBEGlaxion" -]; diff --git a/src/helpers/nemesisHelpers.ts b/src/helpers/nemesisHelpers.ts index ce4190fa..5069fe6f 100644 --- a/src/helpers/nemesisHelpers.ts +++ b/src/helpers/nemesisHelpers.ts @@ -129,3 +129,50 @@ export const consumeModCharge = ( response.UpgradeNew.push(true); } }; + +const kuvaLichVersionSixWeapons = [ + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Drakgoon/KuvaDrakgoon", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Karak/KuvaKarak", + "/Lotus/Weapons/Grineer/Melee/GrnKuvaLichScythe/GrnKuvaLichScytheWeapon", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Kohm/KuvaKohm", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Ogris/KuvaOgris", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Quartakk/KuvaQuartakk", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Tonkor/KuvaTonkor", + "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Brakk/KuvaBrakk", + "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Kraken/KuvaKraken", + "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Seer/KuvaSeer", + "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Stubba/KuvaStubba", + "/Lotus/Weapons/Grineer/HeavyWeapons/GrnHeavyGrenadeLauncher", + "/Lotus/Weapons/Grineer/LongGuns/GrnKuvaLichRifle/GrnKuvaLichRifleWeapon", + "/Lotus/Weapons/Grineer/Bows/GrnBow/GrnBowWeapon", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Hind/KuvaHind", + "/Lotus/Weapons/Grineer/KuvaLich/Secondaries/Nukor/KuvaNukor", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Hek/KuvaHekWeapon", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Zarr/KuvaZarr", + "/Lotus/Weapons/Grineer/KuvaLich/HeavyWeapons/Grattler/KuvaGrattler", + "/Lotus/Weapons/Grineer/KuvaLich/LongGuns/Sobek/KuvaSobek" +]; + +const corpusVersionThreeWeapons = [ + "/Lotus/Weapons/Corpus/LongGuns/CrpBriefcaseLauncher/CrpBriefcaseLauncher", + "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBEArcaPlasmor/CrpBEArcaPlasmor", + "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBEFluxRifle/CrpBEFluxRifle", + "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBETetra/CrpBETetra", + "/Lotus/Weapons/Corpus/BoardExec/Secondary/CrpBECycron/CrpBECycron", + "/Lotus/Weapons/Corpus/BoardExec/Secondary/CrpBEDetron/CrpBEDetron", + "/Lotus/Weapons/Corpus/Pistols/CrpIgniterPistol/CrpIgniterPistol", + "/Lotus/Weapons/Corpus/Pistols/CrpBriefcaseAkimbo/CrpBriefcaseAkimboPistol", + "/Lotus/Weapons/Corpus/BoardExec/Secondary/CrpBEPlinx/CrpBEPlinxWeapon", + "/Lotus/Weapons/Corpus/BoardExec/Primary/CrpBEGlaxion/CrpBEGlaxion" +]; + +export const getWeaponsForManifest = (manifest: string): readonly string[] => { + switch (manifest) { + case "/Lotus/Types/Game/Nemesis/KuvaLich/KuvaLichManifestVersionSix": + return kuvaLichVersionSixWeapons; + case "/Lotus/Types/Enemies/Corpus/Lawyers/LawyerManifestVersionThree": + case "/Lotus/Types/Enemies/Corpus/Lawyers/LawyerManifestVersionFour": + return corpusVersionThreeWeapons; + } + throw new Error(`unknown nemesis manifest: ${manifest}`); +};