fix: allow completion of unknown nodes
All checks were successful
Build / build (22) (push) Successful in 37s
Build / build (18) (push) Successful in 1m16s
Build / build (18) (pull_request) Successful in 39s
Build / build (20) (push) Successful in 1m21s
Build / build (20) (pull_request) Successful in 1m14s
Build / build (22) (pull_request) Successful in 36s

This commit is contained in:
Sainan 2025-03-30 21:50:56 +02:00
parent 516f822e43
commit 7bf006041e
2 changed files with 10 additions and 21 deletions

View File

@ -24,7 +24,6 @@ import {
ExportGear, ExportGear,
ExportKeys, ExportKeys,
ExportRecipes, ExportRecipes,
ExportRegions,
ExportResources, ExportResources,
ExportSentinels, ExportSentinels,
ExportWarframes, ExportWarframes,
@ -34,7 +33,6 @@ import {
IMissionReward, IMissionReward,
IPowersuit, IPowersuit,
IRecipe, IRecipe,
IRegion,
TReward TReward
} from "warframe-public-export-plus"; } from "warframe-public-export-plus";
import questCompletionItems from "@/static/fixed_responses/questCompletionRewards.json"; import questCompletionItems from "@/static/fixed_responses/questCompletionRewards.json";
@ -192,16 +190,6 @@ export const getLevelKeyRewards = (
}; };
}; };
export const getNode = (nodeName: string): IRegion => {
const node = ExportRegions[nodeName];
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (!node) {
throw new Error(`Node ${nodeName} not found`);
}
return node;
};
export const getQuestCompletionItems = (questKey: string): ITypeCount[] | undefined => { export const getQuestCompletionItems = (questKey: string): ITypeCount[] | undefined => {
if (questKey in questCompletionItems) { if (questKey in questCompletionItems) {
return questCompletionItems[questKey as keyof typeof questCompletionItems]; return questCompletionItems[questKey as keyof typeof questCompletionItems];

View File

@ -4,6 +4,7 @@ import {
ExportRegions, ExportRegions,
ExportRewards, ExportRewards,
IMissionReward as IMissionRewardExternal, IMissionReward as IMissionRewardExternal,
IRegion,
IReward IReward
} from "warframe-public-export-plus"; } from "warframe-public-export-plus";
import { IMissionInventoryUpdateRequest, IRewardInfo } from "../types/requestTypes"; import { IMissionInventoryUpdateRequest, IRewardInfo } from "../types/requestTypes";
@ -32,7 +33,7 @@ import {
import { updateQuestKey } from "@/src/services/questService"; import { updateQuestKey } from "@/src/services/questService";
import { HydratedDocument } from "mongoose"; import { HydratedDocument } from "mongoose";
import { IInventoryChanges } from "@/src/types/purchaseTypes"; import { IInventoryChanges } from "@/src/types/purchaseTypes";
import { getLevelKeyRewards, getNode, toStoreItem } from "@/src/services/itemDataService"; import { getLevelKeyRewards, toStoreItem } from "@/src/services/itemDataService";
import { InventoryDocumentProps, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel"; import { InventoryDocumentProps, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
import { getEntriesUnsafe } from "@/src/utils/ts-utils"; import { getEntriesUnsafe } from "@/src/utils/ts-utils";
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes"; import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
@ -443,15 +444,15 @@ export const addMissionRewards = async (
} }
} }
if ( // ignoring tags not in ExportRegions, because it can just be garbage:
missions && // - https://onlyg.it/OpenWF/SpaceNinjaServer/issues/1013
missions.Tag != "" // https://onlyg.it/OpenWF/SpaceNinjaServer/issues/1013 // - https://onlyg.it/OpenWF/SpaceNinjaServer/issues/1365
) { if (missions && missions.Tag in ExportRegions) {
const node = getNode(missions.Tag); const node = ExportRegions[missions.Tag];
//node based credit rewards for mission completion //node based credit rewards for mission completion
if (node.missionIndex !== 28) { if (node.missionIndex !== 28) {
const levelCreditReward = getLevelCreditRewards(missions.Tag); const levelCreditReward = getLevelCreditRewards(node);
missionCompletionCredits += levelCreditReward; missionCompletionCredits += levelCreditReward;
inventory.RegularCredits += levelCreditReward; inventory.RegularCredits += levelCreditReward;
logger.debug(`levelCreditReward ${levelCreditReward}`); logger.debug(`levelCreditReward ${levelCreditReward}`);
@ -634,8 +635,8 @@ export const addFixedLevelRewards = (
return missionBonusCredits; return missionBonusCredits;
}; };
function getLevelCreditRewards(nodeName: string): number { function getLevelCreditRewards(node: IRegion): number {
const minEnemyLevel = getNode(nodeName).minEnemyLevel; const minEnemyLevel = node.minEnemyLevel;
return 1000 + (minEnemyLevel - 1) * 100; return 1000 + (minEnemyLevel - 1) * 100;