missionUpdate interface names
This commit is contained in:
parent
c2b9629859
commit
032a183751
@ -1,10 +1,10 @@
|
|||||||
import { RequestHandler } from "express";
|
import { RequestHandler } from "express";
|
||||||
import { missionInventoryUpdate } from "@/src/services/inventoryService";
|
import { missionInventoryUpdate } from "@/src/services/inventoryService";
|
||||||
import {
|
import {
|
||||||
MissionInventoryUpdate,
|
IMissionInventoryUpdate,
|
||||||
MissionInventoryUpdateRewardInfo,
|
IMissionInventoryUpdateRewardInfo,
|
||||||
MissionRewardResponse,
|
IMissionRewardResponse,
|
||||||
Reward
|
IReward
|
||||||
} from "@/src/types/missionInventoryUpdateType";
|
} from "@/src/types/missionInventoryUpdateType";
|
||||||
import { RawUpgrade } from "@/src/types/inventoryTypes/inventoryTypes";
|
import { RawUpgrade } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => {
|
|||||||
// TODO - salt check
|
// TODO - salt check
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const parsedData = JSON.parse(data) as MissionInventoryUpdate;
|
const parsedData = JSON.parse(data) as IMissionInventoryUpdate;
|
||||||
if (typeof parsedData !== "object" || parsedData === null) throw new Error("Invalid data format");
|
if (typeof parsedData !== "object" || parsedData === null) throw new Error("Invalid data format");
|
||||||
|
|
||||||
const { InventoryChanges, MissionRewards } = getRewards(parsedData.RewardInfo);
|
const { InventoryChanges, MissionRewards } = getRewards(parsedData.RewardInfo);
|
||||||
@ -125,8 +125,8 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const getRewards = (
|
const getRewards = (
|
||||||
rewardInfo: MissionInventoryUpdateRewardInfo | undefined
|
rewardInfo: IMissionInventoryUpdateRewardInfo | undefined
|
||||||
): { InventoryChanges: MissionInventoryUpdate; MissionRewards: MissionRewardResponse[] } => {
|
): { InventoryChanges: IMissionInventoryUpdate; MissionRewards: IMissionRewardResponse[] } => {
|
||||||
if (!rewardInfo) return { InventoryChanges: {}, MissionRewards: [] };
|
if (!rewardInfo) return { InventoryChanges: {}, MissionRewards: [] };
|
||||||
|
|
||||||
// TODO - add Rotation logic
|
// TODO - add Rotation logic
|
||||||
@ -147,13 +147,13 @@ const getRewards = (
|
|||||||
// "rewardSeed": -5604904486637266000
|
// "rewardSeed": -5604904486637266000
|
||||||
// },
|
// },
|
||||||
|
|
||||||
const rewards = (missionsDropTable as { [key: string]: Reward[] })[rewardInfo.node];
|
const rewards = (missionsDropTable as { [key: string]: IReward[] })[rewardInfo.node];
|
||||||
|
|
||||||
if (!rewards) return { InventoryChanges: {}, MissionRewards: [] };
|
if (!rewards) return { InventoryChanges: {}, MissionRewards: [] };
|
||||||
|
|
||||||
// Separate guaranteed and chance drops
|
// Separate guaranteed and chance drops
|
||||||
const guaranteedDrops: Reward[] = [];
|
const guaranteedDrops: IReward[] = [];
|
||||||
const chanceDrops: Reward[] = [];
|
const chanceDrops: IReward[] = [];
|
||||||
for (const reward of rewards) {
|
for (const reward of rewards) {
|
||||||
if (reward.chance === 100) guaranteedDrops.push(reward);
|
if (reward.chance === 100) guaranteedDrops.push(reward);
|
||||||
else chanceDrops.push(reward);
|
else chanceDrops.push(reward);
|
||||||
@ -167,7 +167,7 @@ const getRewards = (
|
|||||||
return formatRewardsToInventoryType(guaranteedDrops);
|
return formatRewardsToInventoryType(guaranteedDrops);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getRandomRewardByChance = (data: Reward[] | undefined): Reward | undefined => {
|
const getRandomRewardByChance = (data: IReward[] | undefined): IReward | undefined => {
|
||||||
if (!data || data.length == 0) return;
|
if (!data || data.length == 0) return;
|
||||||
|
|
||||||
const totalChance = data.reduce((sum, item) => sum + item.chance, 0);
|
const totalChance = data.reduce((sum, item) => sum + item.chance, 0);
|
||||||
@ -185,10 +185,10 @@ const getRandomRewardByChance = (data: Reward[] | undefined): Reward | undefined
|
|||||||
};
|
};
|
||||||
|
|
||||||
const formatRewardsToInventoryType = (
|
const formatRewardsToInventoryType = (
|
||||||
rewards: Reward[]
|
rewards: IReward[]
|
||||||
): { InventoryChanges: MissionInventoryUpdate; MissionRewards: MissionRewardResponse[] } => {
|
): { InventoryChanges: IMissionInventoryUpdate; MissionRewards: IMissionRewardResponse[] } => {
|
||||||
const InventoryChanges: MissionInventoryUpdate = {};
|
const InventoryChanges: IMissionInventoryUpdate = {};
|
||||||
const MissionRewards: MissionRewardResponse[] = [];
|
const MissionRewards: IMissionRewardResponse[] = [];
|
||||||
rewards.forEach(i => {
|
rewards.forEach(i => {
|
||||||
const mod = modNames[i.name];
|
const mod = modNames[i.name];
|
||||||
const skin = skinNames[i.name];
|
const skin = skinNames[i.name];
|
||||||
@ -238,8 +238,8 @@ const formatRewardsToInventoryType = (
|
|||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
const _missionRewardsCheckAllNamings = () => {
|
const _missionRewardsCheckAllNamings = () => {
|
||||||
let tempRewards: Reward[] = [];
|
let tempRewards: IReward[] = [];
|
||||||
Object.values(missionsDropTable as { [key: string]: Reward[] }).forEach(i => {
|
Object.values(missionsDropTable as { [key: string]: IReward[] }).forEach(i => {
|
||||||
i.forEach(j => {
|
i.forEach(j => {
|
||||||
tempRewards.push(j);
|
tempRewards.push(j);
|
||||||
});
|
});
|
||||||
|
@ -13,7 +13,7 @@ import {
|
|||||||
MiscItem,
|
MiscItem,
|
||||||
RawUpgrade
|
RawUpgrade
|
||||||
} from "@/src/types/inventoryTypes/inventoryTypes";
|
} from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
import { MissionInventoryUpdate, MissionInventoryUpdateGear } from "../types/missionInventoryUpdateType";
|
import { IMissionInventoryUpdate, IMissionInventoryUpdateGear } from "../types/missionInventoryUpdateType";
|
||||||
|
|
||||||
const createInventory = async (accountOwnerId: Types.ObjectId) => {
|
const createInventory = async (accountOwnerId: Types.ObjectId) => {
|
||||||
try {
|
try {
|
||||||
@ -116,7 +116,7 @@ export const addCustomization = async (customizatonName: string, accountId: stri
|
|||||||
|
|
||||||
const addGearExpByCategory = (
|
const addGearExpByCategory = (
|
||||||
inventory: IInventoryDatabaseDocument,
|
inventory: IInventoryDatabaseDocument,
|
||||||
gearArray: MissionInventoryUpdateGear[] | undefined,
|
gearArray: IMissionInventoryUpdateGear[] | undefined,
|
||||||
categoryName: "Pistols" | "LongGuns" | "Melee" | "Suits"
|
categoryName: "Pistols" | "LongGuns" | "Melee" | "Suits"
|
||||||
) => {
|
) => {
|
||||||
const category = inventory[categoryName];
|
const category = inventory[categoryName];
|
||||||
@ -179,7 +179,7 @@ const addChallenges = (inventory: IInventoryDatabaseDocument, itemsArray: Challe
|
|||||||
const gearKeys = ["Suits", "Pistols", "LongGuns", "Melee"] as const;
|
const gearKeys = ["Suits", "Pistols", "LongGuns", "Melee"] as const;
|
||||||
type GearKeysType = (typeof gearKeys)[number];
|
type GearKeysType = (typeof gearKeys)[number];
|
||||||
|
|
||||||
export const missionInventoryUpdate = async (data: MissionInventoryUpdate, accountId: string) => {
|
export const missionInventoryUpdate = async (data: IMissionInventoryUpdate, accountId: string) => {
|
||||||
const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data;
|
const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data;
|
||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
|
|
||||||
|
@ -1,18 +1,11 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
interface MongooseId {
|
import { Oid } from "./commonTypes";
|
||||||
$oid: string;
|
import { Date } from "./inventoryTypes/inventoryTypes";
|
||||||
}
|
|
||||||
|
|
||||||
interface ExpireDate {
|
export interface IMissionInventoryUpdateGear {
|
||||||
$date: {
|
|
||||||
$numberLong: string;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface MissionInventoryUpdateGear {
|
|
||||||
ItemType: string;
|
ItemType: string;
|
||||||
ItemName: string;
|
ItemName: string;
|
||||||
ItemId: MongooseId;
|
ItemId: Oid;
|
||||||
XP: number;
|
XP: number;
|
||||||
UpgradeVer: number;
|
UpgradeVer: number;
|
||||||
Features: number;
|
Features: number;
|
||||||
@ -20,7 +13,7 @@ export interface MissionInventoryUpdateGear {
|
|||||||
CustomizationSlotPurchases: number;
|
CustomizationSlotPurchases: number;
|
||||||
ModSlotPurchases: number;
|
ModSlotPurchases: number;
|
||||||
FocusLens: string;
|
FocusLens: string;
|
||||||
Expiry: ExpireDate;
|
Expiry: Date;
|
||||||
Polarity: any[];
|
Polarity: any[];
|
||||||
Configs: any[];
|
Configs: any[];
|
||||||
ModularParts: any[];
|
ModularParts: any[];
|
||||||
@ -29,22 +22,29 @@ export interface MissionInventoryUpdateGear {
|
|||||||
UpgradeFingerprint: string;
|
UpgradeFingerprint: string;
|
||||||
OffensiveUpgrade: string;
|
OffensiveUpgrade: string;
|
||||||
DefensiveUpgrade: string;
|
DefensiveUpgrade: string;
|
||||||
UpgradesExpiry: ExpireDate;
|
UpgradesExpiry: Date;
|
||||||
ArchonCrystalUpgrades: any[];
|
ArchonCrystalUpgrades: any[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MissionInventoryUpdateItem {
|
export interface IMissionInventoryUpdateItem {
|
||||||
ItemCount: number;
|
ItemCount: number;
|
||||||
ItemType: string;
|
ItemType: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MissionInventoryUpdateChallange {
|
export interface IMissionInventoryUpdateCard extends IMissionInventoryUpdateItem {
|
||||||
|
ItemId: Oid;
|
||||||
|
UpgradeFingerprint: string;
|
||||||
|
PendingRerollFingerprint: string;
|
||||||
|
LastAdded: Oid;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IMissionInventoryUpdateChallange {
|
||||||
Name: string;
|
Name: string;
|
||||||
Progress: number;
|
Progress: number;
|
||||||
Completed: any[];
|
Completed: any[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MissionInventoryUpdateRewardInfo {
|
export interface IMissionInventoryUpdateRewardInfo {
|
||||||
node: string;
|
node: string;
|
||||||
rewardTier?: number;
|
rewardTier?: number;
|
||||||
nightmareMode?: boolean;
|
nightmareMode?: boolean;
|
||||||
@ -59,22 +59,22 @@ export interface MissionInventoryUpdateRewardInfo {
|
|||||||
rewardSeed?: number;
|
rewardSeed?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MissionInventoryUpdate {
|
export interface IMissionInventoryUpdate {
|
||||||
rewardsMultiplier?: number;
|
rewardsMultiplier?: number;
|
||||||
ActiveBoosters?: any[];
|
ActiveBoosters?: any[];
|
||||||
LongGuns?: MissionInventoryUpdateGear[];
|
LongGuns?: IMissionInventoryUpdateGear[];
|
||||||
Pistols?: MissionInventoryUpdateGear[];
|
Pistols?: IMissionInventoryUpdateGear[];
|
||||||
Suits?: MissionInventoryUpdateGear[];
|
Suits?: IMissionInventoryUpdateGear[];
|
||||||
Melee?: MissionInventoryUpdateGear[];
|
Melee?: IMissionInventoryUpdateGear[];
|
||||||
RawUpgrades?: MissionInventoryUpdateItem[];
|
RawUpgrades?: IMissionInventoryUpdateItem[];
|
||||||
MiscItems?: MissionInventoryUpdateItem[];
|
MiscItems?: IMissionInventoryUpdateItem[];
|
||||||
RegularCredits?: number;
|
RegularCredits?: number;
|
||||||
ChallengeProgress?: MissionInventoryUpdateChallange[];
|
ChallengeProgress?: IMissionInventoryUpdateChallange[];
|
||||||
RewardInfo?: MissionInventoryUpdateRewardInfo;
|
RewardInfo?: IMissionInventoryUpdateRewardInfo;
|
||||||
FusionPoints?: number;
|
FusionPoints?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MissionRewardResponse {
|
export interface IMissionRewardResponse {
|
||||||
StoreItem?: string;
|
StoreItem?: string;
|
||||||
TypeName: string;
|
TypeName: string;
|
||||||
UpgradeLevel: number;
|
UpgradeLevel: number;
|
||||||
@ -83,7 +83,7 @@ export interface MissionRewardResponse {
|
|||||||
ProductCategory: string;
|
ProductCategory: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Reward {
|
export interface IReward {
|
||||||
name: string;
|
name: string;
|
||||||
chance: number;
|
chance: number;
|
||||||
rotation?: string;
|
rotation?: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user