返回提交历史
Modified
src/services/itemDataService.ts
+0
-12
Modified
src/services/missionInventoryUpdateService.ts
+10
-9
XFEstudio/XFESpaceNinjaServer
fix: allow completion of unknown nodes (#1395)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1395 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
b0f0b61d
代码差异
2 个文件
+10
-21
@@ -24,7 +24,6 @@ import {
24
24
ExportGear,
25
25
ExportKeys,
26
26
ExportRecipes,
27
ExportRegions,
28
27
ExportResources,
29
28
ExportSentinels,
30
29
ExportWarframes,
@@ -34,7 +33,6 @@ import {
34
33
IMissionReward,
35
34
IPowersuit,
36
35
IRecipe,
37
IRegion,
38
36
TReward
39
37
} from "warframe-public-export-plus";
40
38
import questCompletionItems from "@/static/fixed_responses/questCompletionRewards.json";
@@ -192,16 +190,6 @@ export const getLevelKeyRewards = (
192
190
};
193
191
};
194
192
195
export const getNode = (nodeName: string): IRegion => {
196
const node = ExportRegions[nodeName];
197
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
198
if (!node) {
199
throw new Error(`Node ${nodeName} not found`);
200
}
201
202
return node;
203
};
204
205
193
export const getQuestCompletionItems = (questKey: string): ITypeCount[] | undefined => {
206
194
if (questKey in questCompletionItems) {
207
195
return questCompletionItems[questKey as keyof typeof questCompletionItems];
@@ -4,6 +4,7 @@ import {
4
4
ExportRegions,
5
5
ExportRewards,
6
6
IMissionReward as IMissionRewardExternal,
7
IRegion,
7
8
IReward
8
9
} from "warframe-public-export-plus";
9
10
import { IMissionInventoryUpdateRequest, IRewardInfo } from "../types/requestTypes";
@@ -32,7 +33,7 @@ import {
32
33
import { updateQuestKey } from "@/src/services/questService";
33
34
import { HydratedDocument, Types } from "mongoose";
34
35
import { IInventoryChanges } from "@/src/types/purchaseTypes";
35
import { getLevelKeyRewards, getNode, toStoreItem } from "@/src/services/itemDataService";
36
import { getLevelKeyRewards, toStoreItem } from "@/src/services/itemDataService";
36
37
import { InventoryDocumentProps, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
37
38
import { getEntriesUnsafe } from "@/src/utils/ts-utils";
38
39
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
@@ -469,15 +470,15 @@ export const addMissionRewards = async (
469
470
}
470
471
}
471
472
472
if (
473
missions &&
474
missions.Tag != "" // https://onlyg.it/OpenWF/SpaceNinjaServer/issues/1013
475
) {
476
const node = getNode(missions.Tag);
473
// ignoring tags not in ExportRegions, because it can just be garbage:
474
// - https://onlyg.it/OpenWF/SpaceNinjaServer/issues/1013
475
// - https://onlyg.it/OpenWF/SpaceNinjaServer/issues/1365
476
if (missions && missions.Tag in ExportRegions) {
477
const node = ExportRegions[missions.Tag];
477
478
478
479
//node based credit rewards for mission completion
479
480
if (node.missionIndex !== 28) {
480
const levelCreditReward = getLevelCreditRewards(missions.Tag);
481
const levelCreditReward = getLevelCreditRewards(node);
481
482
missionCompletionCredits += levelCreditReward;
482
483
inventory.RegularCredits += levelCreditReward;
483
484
logger.debug(`levelCreditReward ${levelCreditReward}`);
@@ -660,8 +661,8 @@ export const addFixedLevelRewards = (
660
661
return missionBonusCredits;
661
662
};
662
663
663
function getLevelCreditRewards(nodeName: string): number {
664
const minEnemyLevel = getNode(nodeName).minEnemyLevel;
664
function getLevelCreditRewards(node: IRegion): number {
665
const minEnemyLevel = node.minEnemyLevel;
665
666
666
667
return 1000 + (minEnemyLevel - 1) * 100;
667
668