XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

fix: ayatan statue saving (#461)

07c84214
AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
提交于

代码差异

2 个文件 +37 -4
Modified src/services/inventoryService.ts +34 -3
@@ -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 }
Modified src/types/requestTypes.ts +3 -1
@@ -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[];