diff --git a/package-lock.json b/package-lock.json index c1fe1acd..46cdebbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "morgan": "^1.10.0", "ncp": "^2.0.0", "typescript": ">=5.5 <5.6.0", - "warframe-public-export-plus": "^0.5.52", + "warframe-public-export-plus": "^0.5.53", "warframe-riven-info": "^0.1.2", "winston": "^3.17.0", "winston-daily-rotate-file": "^5.0.0" @@ -3789,9 +3789,9 @@ } }, "node_modules/warframe-public-export-plus": { - "version": "0.5.52", - "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.52.tgz", - "integrity": "sha512-mJyQbTFMDwgBSkhUYJzcfJg9qrMTrL1pyZuAxV/Dov68xUikK5zigQSYM3ZkKYbhwBtg0Bx/+7q9GAmPzGaRhA==" + "version": "0.5.53", + "resolved": "https://registry.npmjs.org/warframe-public-export-plus/-/warframe-public-export-plus-0.5.53.tgz", + "integrity": "sha512-FjYeCJ5OxvPWyETnV33YOeX7weVVeMy451RY7uewwSvRbSNFTDhmhvbrLhfwykulUX4RPakfZr8nO0S0a6lGCA==" }, "node_modules/warframe-riven-info": { "version": "0.1.2", diff --git a/package.json b/package.json index 899947c7..f9f680b6 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "morgan": "^1.10.0", "ncp": "^2.0.0", "typescript": ">=5.5 <5.6.0", - "warframe-public-export-plus": "^0.5.52", + "warframe-public-export-plus": "^0.5.53", "warframe-riven-info": "^0.1.2", "winston": "^3.17.0", "winston-daily-rotate-file": "^5.0.0" diff --git a/src/controllers/dynamic/worldStateController.ts b/src/controllers/dynamic/worldStateController.ts index f9add2dd..dcde3fdf 100644 --- a/src/controllers/dynamic/worldStateController.ts +++ b/src/controllers/dynamic/worldStateController.ts @@ -9,11 +9,10 @@ import { IMongoDate, IOid } from "@/src/types/commonTypes"; import { unixTimesInMs } from "@/src/constants/timeConstants"; import { config } from "@/src/services/configService"; import { CRng } from "@/src/services/rngService"; -import { ExportNightwave, ExportRegions } from "warframe-public-export-plus"; +import { eMissionType, ExportNightwave, ExportRegions } from "warframe-public-export-plus"; import { EPOCH, getSortieTime, - missionTags, sortieBosses, sortieBossNode, sortieBossToFaction, @@ -269,7 +268,7 @@ export const worldStateController: RequestHandler = (req, res) => { } } - const missionType = missionTags[missionIndex]; + const missionType = eMissionType[missionIndex].tag; if (missionTypes.has(missionType)) { i--; diff --git a/src/helpers/worldStateHelper.ts b/src/helpers/worldStateHelper.ts index 4501d4d1..4de03e03 100644 --- a/src/helpers/worldStateHelper.ts +++ b/src/helpers/worldStateHelper.ts @@ -1,49 +1,3 @@ -export const missionTags = [ - "MT_ASSASSINATION", - "MT_EXTERMINATION", - "MT_SURVIVAL", - "MT_RESCUE", - "MT_SABOTAGE", - "MT_CAPTURE", - "MT_COUNTER_INTEL", - "MT_INTEL", - "MT_DEFENSE", - "MT_MOBILE_DEFENSE", - "MT_PVP", - "MT_MASTERY", - "MT_RECOVERY", - "MT_TERRITORY", - "MT_RETRIEVAL", - "MT_HIVE", - "MT_SALVAGE", - "MT_EXCAVATE", - "MT_RAID", - "MT_PURGE", - "MT_GENERIC", - "MT_PURIFY", - "MT_ARENA", - "MT_JUNCTION", - "MT_PURSUIT", - "MT_RACE", - "MT_ASSAULT", - "MT_EVACUATION", - "MT_LANDSCAPE", - "MT_RESOURCE_THEFT", - "MT_ENDLESS_EXTERMINATION", - "MT_ENDLESS_DUVIRI", - "MT_RAILJACK", - "MT_ARTIFACT", - "MT_CORRUPTION", - "MT_VOID_CASCADE", - "MT_ARMAGEDDON", - "MT_VAULTS", - "MT_ALCHEMY", - "MT_ASCENSION", - "MT_ENDLESS_CAPTURE", - "MT_OFFERING", - "MT_PVPVE" -]; - export const sortieBosses = [ "SORTIE_BOSS_HYENA", "SORTIE_BOSS_KELA", diff --git a/src/services/missionInventoryUpdateService.ts b/src/services/missionInventoryUpdateService.ts index 5af53893..598c0fc6 100644 --- a/src/services/missionInventoryUpdateService.ts +++ b/src/services/missionInventoryUpdateService.ts @@ -619,16 +619,12 @@ export const addMissionRewards = async ( if (strippedItems) { for (const si of strippedItems) { - const droptable = ExportEnemies.droptables[si.DropTable]; - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (!droptable) { - logger.error(`unknown droptable ${si.DropTable}`); - } else { - const modsPool = droptable[0].items; - const blueprintsPool = (droptable.length > 1 ? droptable[1] : droptable[0]).items; - if (si.DROP_MOD) { + const droptables = ExportEnemies.droptables[si.DropTable] ?? []; + if (si.DROP_MOD) { + const modDroptable = droptables.find(x => x.type == "mod"); + if (modDroptable) { for (let i = 0; i != si.DROP_MOD.length; ++i) { - const reward = getRandomReward(modsPool)!; + const reward = getRandomReward(modDroptable.items)!; logger.debug(`stripped droptable (mods pool) rolled`, reward); await addItem(inventory, reward.type); MissionRewards.push({ @@ -637,10 +633,15 @@ export const addMissionRewards = async ( FromEnemyCache: true // to show "identified" }); } + } else { + logger.error(`unknown droptable ${si.DropTable} for DROP_MOD`); } - if (si.DROP_BLUEPRINT) { + } + if (si.DROP_BLUEPRINT) { + const blueprintDroptable = droptables.find(x => x.type == "blueprint"); + if (blueprintDroptable) { for (let i = 0; i != si.DROP_BLUEPRINT.length; ++i) { - const reward = getRandomReward(blueprintsPool)!; + const reward = getRandomReward(blueprintDroptable.items)!; logger.debug(`stripped droptable (blueprints pool) rolled`, reward); await addItem(inventory, reward.type); MissionRewards.push({ @@ -649,6 +650,8 @@ export const addMissionRewards = async ( FromEnemyCache: true // to show "identified" }); } + } else { + logger.error(`unknown droptable ${si.DropTable} for DROP_BLUEPRINT`); } } }