返回提交历史
Modified
src/services/inventoryService.ts
+34
-3
Modified
src/types/requestTypes.ts
+3
-1
XFEstudio/XFESpaceNinjaServer
fix: ayatan statue saving (#461)
07c84214
代码差异
2 个文件
+37
-4
@@ -16,7 +16,8 @@ import {
16
16
InventorySlot,
17
17
IWeaponSkinClient,
18
18
TEquipmentKey,
19
equipmentKeys
19
equipmentKeys,
20
IFusionTreasure
20
21
} from "@/src/types/inventoryTypes/inventoryTypes";
21
22
import { IGenericUpdate } from "../types/genericUpdate";
22
23
import {
@@ -650,6 +651,26 @@ export const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawU
650
651
});
651
652
};
652
653
654
export const addFusionTreasures = (
655
inventory: IInventoryDatabaseDocument,
656
itemsArray: IFusionTreasure[] | undefined
657
) => {
658
const { FusionTreasures } = inventory;
659
itemsArray?.forEach(({ ItemType, ItemCount, Sockets }) => {
660
const itemIndex = FusionTreasures.findIndex(i => {
661
i.ItemType === ItemType;
662
i.Sockets === Sockets;
663
});
664
665
if (itemIndex !== -1) {
666
FusionTreasures[itemIndex].ItemCount += ItemCount;
667
inventory.markModified(`FusionTreasures.${itemIndex}.ItemCount`);
668
} else {
669
FusionTreasures.push({ ItemCount, ItemType, Sockets });
670
}
671
});
672
};
673
653
674
export const updateChallengeProgress = async (challenges: IUpdateChallengeProgressRequest, accountId: string) => {
654
675
const inventory = await getInventory(accountId);
655
676
@@ -704,8 +725,17 @@ const addMissionComplete = (inventory: IInventoryDatabaseDocument, { Tag, Comple
704
725
};
705
726
706
727
export const missionInventoryUpdate = async (data: IMissionInventoryUpdateRequest, accountId: string) => {
707
const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress, FusionPoints, Consumables, Recipes, Missions } =
708
data;
728
const {
729
RawUpgrades,
730
MiscItems,
731
RegularCredits,
732
ChallengeProgress,
733
FusionPoints,
734
Consumables,
735
Recipes,
736
Missions,
737
FusionTreasures
738
} = data;
709
739
const inventory = await getInventory(accountId);
710
740
711
741
// credits
@@ -762,6 +792,7 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques
762
792
addConsumables(inventory, Consumables);
763
793
addRecipes(inventory, Recipes);
764
794
addChallenges(inventory, ChallengeProgress);
795
addFusionTreasures(inventory, FusionTreasures);
765
796
if (Missions) {
766
797
addMissionComplete(inventory, Missions);
767
798
}
@@ -12,7 +12,8 @@ import {
12
12
IRawUpgrade,
13
13
ISeasonChallenge,
14
14
TSolarMapRegion,
15
TEquipmentKey
15
TEquipmentKey,
16
IFusionTreasure
16
17
} from "./inventoryTypes/inventoryTypes";
17
18
18
19
export interface IArtifactsRequest {
@@ -61,6 +62,7 @@ export interface IMissionInventoryUpdateRequest {
61
62
RawUpgrades?: IRawUpgrade[];
62
63
MiscItems?: IMiscItem[];
63
64
Consumables?: IConsumable[];
65
FusionTreasures?: IFusionTreasure[];
64
66
Recipes?: IConsumable[];
65
67
RegularCredits?: number;
66
68
ChallengeProgress?: IChallengeProgress[];