forked from OpenWF/SpaceNinjaServer
fix: ayatan statue saving (#461)
This commit is contained in:
parent
f8a805d84f
commit
07c84214ac
@ -16,7 +16,8 @@ import {
|
||||
InventorySlot,
|
||||
IWeaponSkinClient,
|
||||
TEquipmentKey,
|
||||
equipmentKeys
|
||||
equipmentKeys,
|
||||
IFusionTreasure
|
||||
} from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { IGenericUpdate } from "../types/genericUpdate";
|
||||
import {
|
||||
@ -650,6 +651,26 @@ export const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawU
|
||||
});
|
||||
};
|
||||
|
||||
export const addFusionTreasures = (
|
||||
inventory: IInventoryDatabaseDocument,
|
||||
itemsArray: IFusionTreasure[] | undefined
|
||||
) => {
|
||||
const { FusionTreasures } = inventory;
|
||||
itemsArray?.forEach(({ ItemType, ItemCount, Sockets }) => {
|
||||
const itemIndex = FusionTreasures.findIndex(i => {
|
||||
i.ItemType === ItemType;
|
||||
i.Sockets === Sockets;
|
||||
});
|
||||
|
||||
if (itemIndex !== -1) {
|
||||
FusionTreasures[itemIndex].ItemCount += ItemCount;
|
||||
inventory.markModified(`FusionTreasures.${itemIndex}.ItemCount`);
|
||||
} else {
|
||||
FusionTreasures.push({ ItemCount, ItemType, Sockets });
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const updateChallengeProgress = async (challenges: IUpdateChallengeProgressRequest, accountId: string) => {
|
||||
const inventory = await getInventory(accountId);
|
||||
|
||||
@ -704,8 +725,17 @@ const addMissionComplete = (inventory: IInventoryDatabaseDocument, { Tag, Comple
|
||||
};
|
||||
|
||||
export const missionInventoryUpdate = async (data: IMissionInventoryUpdateRequest, accountId: string) => {
|
||||
const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress, FusionPoints, Consumables, Recipes, Missions } =
|
||||
data;
|
||||
const {
|
||||
RawUpgrades,
|
||||
MiscItems,
|
||||
RegularCredits,
|
||||
ChallengeProgress,
|
||||
FusionPoints,
|
||||
Consumables,
|
||||
Recipes,
|
||||
Missions,
|
||||
FusionTreasures
|
||||
} = data;
|
||||
const inventory = await getInventory(accountId);
|
||||
|
||||
// credits
|
||||
@ -762,6 +792,7 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques
|
||||
addConsumables(inventory, Consumables);
|
||||
addRecipes(inventory, Recipes);
|
||||
addChallenges(inventory, ChallengeProgress);
|
||||
addFusionTreasures(inventory, FusionTreasures);
|
||||
if (Missions) {
|
||||
addMissionComplete(inventory, Missions);
|
||||
}
|
||||
|
@ -12,7 +12,8 @@ import {
|
||||
IRawUpgrade,
|
||||
ISeasonChallenge,
|
||||
TSolarMapRegion,
|
||||
TEquipmentKey
|
||||
TEquipmentKey,
|
||||
IFusionTreasure
|
||||
} from "./inventoryTypes/inventoryTypes";
|
||||
|
||||
export interface IArtifactsRequest {
|
||||
@ -61,6 +62,7 @@ export interface IMissionInventoryUpdateRequest {
|
||||
RawUpgrades?: IRawUpgrade[];
|
||||
MiscItems?: IMiscItem[];
|
||||
Consumables?: IConsumable[];
|
||||
FusionTreasures?: IFusionTreasure[];
|
||||
Recipes?: IConsumable[];
|
||||
RegularCredits?: number;
|
||||
ChallengeProgress?: IChallengeProgress[];
|
||||
|
Loading…
x
Reference in New Issue
Block a user