improve: use equipmentKeys for missionInventoryUpdate's XP logic (#425)

This commit is contained in:
Sainan 2024-06-29 13:55:15 +02:00 committed by GitHub
parent 19ba891c21
commit ec9c2c89c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 6 deletions

View File

@ -14,7 +14,9 @@ import {
ISeasonChallenge, ISeasonChallenge,
ITypeCount, ITypeCount,
InventorySlot, InventorySlot,
IWeaponSkinClient IWeaponSkinClient,
TEquipmentKey,
equipmentKeys
} from "@/src/types/inventoryTypes/inventoryTypes"; } from "@/src/types/inventoryTypes/inventoryTypes";
import { IGenericUpdate } from "../types/genericUpdate"; import { IGenericUpdate } from "../types/genericUpdate";
import { import {
@ -462,7 +464,7 @@ export const addSkin = async (typeName: string, accountId: string): Promise<IWea
const addGearExpByCategory = ( const addGearExpByCategory = (
inventory: IInventoryDatabaseDocument, inventory: IInventoryDatabaseDocument,
gearArray: IEquipmentClient[] | undefined, gearArray: IEquipmentClient[] | undefined,
categoryName: "Pistols" | "LongGuns" | "Melee" | "Suits" categoryName: TEquipmentKey
) => { ) => {
const category = inventory[categoryName]; const category = inventory[categoryName];
@ -619,8 +621,6 @@ const addMissionComplete = (inventory: IInventoryDatabaseDocument, { Tag, Comple
} }
}; };
const gearKeys = ["Suits", "Pistols", "LongGuns", "Melee"] as const;
export const missionInventoryUpdate = async (data: IMissionInventoryUpdateRequest, accountId: string) => { export const missionInventoryUpdate = async (data: IMissionInventoryUpdateRequest, accountId: string) => {
const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress, FusionPoints, Consumables, Recipes, Missions } = const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress, FusionPoints, Consumables, Recipes, Missions } =
data; data;
@ -651,7 +651,7 @@ export const missionInventoryUpdate = async (data: IMissionInventoryUpdateReques
}); });
// Gear XP // Gear XP
gearKeys.forEach(key => addGearExpByCategory(inventory, data[key], key)); equipmentKeys.forEach(key => addGearExpByCategory(inventory, data[key], key));
// Incarnon Challenges // Incarnon Challenges
if (data.EvolutionProgress) { if (data.EvolutionProgress) {

View File

@ -44,10 +44,19 @@ export interface IMissionInventoryUpdateRequest {
rewardsMultiplier?: number; rewardsMultiplier?: number;
ActiveBoosters?: IBooster[]; ActiveBoosters?: IBooster[];
AffiliationChanges?: IAffiliationChange[]; AffiliationChanges?: IAffiliationChange[];
Suits?: IEquipmentClient[];
LongGuns?: IEquipmentClient[]; LongGuns?: IEquipmentClient[];
Pistols?: IEquipmentClient[]; Pistols?: IEquipmentClient[];
Suits?: IEquipmentClient[];
Melee?: IEquipmentClient[]; Melee?: IEquipmentClient[];
SpecialItems?: IEquipmentClient[];
Sentinels?: IEquipmentClient[];
SentinelWeapons?: IEquipmentClient[];
SpaceSuits?: IEquipmentClient[];
SpaceGuns?: IEquipmentClient[];
SpaceMelee?: IEquipmentClient[];
Hoverboards?: IEquipmentClient[];
OperatorAmps?: IEquipmentClient[];
MoaPets?: IEquipmentClient[];
FusionBundles?: ITypeCount[]; FusionBundles?: ITypeCount[];
RawUpgrades?: IRawUpgrade[]; RawUpgrades?: IRawUpgrade[];
MiscItems?: IMiscItem[]; MiscItems?: IMiscItem[];