chore: handle mods picked up in mission on U19 (#2042)
Reviewed-on: #2042 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
9d4bce852e
commit
b451c73598
@ -1,9 +1,9 @@
|
|||||||
import { toOid } from "@/src/helpers/inventoryHelpers";
|
import { fromOid, toOid } from "@/src/helpers/inventoryHelpers";
|
||||||
import { createVeiledRivenFingerprint, rivenRawToRealWeighted } from "@/src/helpers/rivenHelper";
|
import { createVeiledRivenFingerprint, rivenRawToRealWeighted } from "@/src/helpers/rivenHelper";
|
||||||
import { addMiscItems, addMods, getInventory } from "@/src/services/inventoryService";
|
import { addMiscItems, addMods, getInventory } from "@/src/services/inventoryService";
|
||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
import { getRandomElement, getRandomWeightedReward, getRandomWeightedRewardUc } from "@/src/services/rngService";
|
import { getRandomElement, getRandomWeightedReward, getRandomWeightedRewardUc } from "@/src/services/rngService";
|
||||||
import { IOid } from "@/src/types/commonTypes";
|
import { IUpgradeFromClient } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
import { RequestHandler } from "express";
|
import { RequestHandler } from "express";
|
||||||
import { ExportBoosterPacks, ExportUpgrades, TRarity } from "warframe-public-export-plus";
|
import { ExportBoosterPacks, ExportUpgrades, TRarity } from "warframe-public-export-plus";
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ export const artifactTransmutationController: RequestHandler = async (req, res)
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
payload.Consumed.forEach(upgrade => {
|
payload.Consumed.forEach(upgrade => {
|
||||||
inventory.Upgrades.pull({ _id: upgrade.ItemId.$oid });
|
inventory.Upgrades.pull({ _id: fromOid(upgrade.ItemId) });
|
||||||
});
|
});
|
||||||
|
|
||||||
const rawRivenType = getRandomRawRivenType();
|
const rawRivenType = getRandomRawRivenType();
|
||||||
@ -57,8 +57,8 @@ export const artifactTransmutationController: RequestHandler = async (req, res)
|
|||||||
payload.Consumed.forEach(upgrade => {
|
payload.Consumed.forEach(upgrade => {
|
||||||
const meta = ExportUpgrades[upgrade.ItemType];
|
const meta = ExportUpgrades[upgrade.ItemType];
|
||||||
counts[meta.rarity] += upgrade.ItemCount;
|
counts[meta.rarity] += upgrade.ItemCount;
|
||||||
if (upgrade.ItemId.$oid != "000000000000000000000000") {
|
if (fromOid(upgrade.ItemId) != "000000000000000000000000") {
|
||||||
inventory.Upgrades.pull({ _id: upgrade.ItemId.$oid });
|
inventory.Upgrades.pull({ _id: fromOid(upgrade.ItemId) });
|
||||||
} else {
|
} else {
|
||||||
addMods(inventory, [
|
addMods(inventory, [
|
||||||
{
|
{
|
||||||
@ -128,24 +128,14 @@ const getRandomRawRivenType = (): string => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
interface IArtifactTransmutationRequest {
|
interface IArtifactTransmutationRequest {
|
||||||
Upgrade: IAgnosticUpgradeClient;
|
Upgrade: IUpgradeFromClient;
|
||||||
LevelDiff: number;
|
LevelDiff: number;
|
||||||
Consumed: IAgnosticUpgradeClient[];
|
Consumed: IUpgradeFromClient[];
|
||||||
Cost: number;
|
Cost: number;
|
||||||
FusionPointCost: number;
|
FusionPointCost: number;
|
||||||
RivenTransmute?: boolean;
|
RivenTransmute?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IAgnosticUpgradeClient {
|
|
||||||
ItemType: string;
|
|
||||||
ItemId: IOid;
|
|
||||||
FromSKU: boolean;
|
|
||||||
UpgradeFingerprint: string;
|
|
||||||
PendingRerollFingerprint: string;
|
|
||||||
ItemCount: number;
|
|
||||||
LastAdded: IOid;
|
|
||||||
}
|
|
||||||
|
|
||||||
const specialModSets: string[][] = [
|
const specialModSets: string[][] = [
|
||||||
[
|
[
|
||||||
"/Lotus/Upgrades/Mods/Immortal/ImmortalOneMod",
|
"/Lotus/Upgrades/Mods/Immortal/ImmortalOneMod",
|
||||||
|
@ -400,8 +400,14 @@ export const addMissionInventoryUpdates = async (
|
|||||||
break;
|
break;
|
||||||
case "Upgrades":
|
case "Upgrades":
|
||||||
value.forEach(clientUpgrade => {
|
value.forEach(clientUpgrade => {
|
||||||
const upgrade = inventory.Upgrades.id(fromOid(clientUpgrade.ItemId))!;
|
const id = fromOid(clientUpgrade.ItemId);
|
||||||
|
if (id == "") {
|
||||||
|
// U19 does not provide RawUpgrades and instead interleaves them with riven progress here
|
||||||
|
addMods(inventory, [clientUpgrade]);
|
||||||
|
} else {
|
||||||
|
const upgrade = inventory.Upgrades.id(id)!;
|
||||||
upgrade.UpgradeFingerprint = clientUpgrade.UpgradeFingerprint; // primitive way to copy over the riven challenge progress
|
upgrade.UpgradeFingerprint = clientUpgrade.UpgradeFingerprint; // primitive way to copy over the riven challenge progress
|
||||||
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "WeaponSkins":
|
case "WeaponSkins":
|
||||||
|
@ -535,6 +535,16 @@ export interface IUpgradeDatabase extends Omit<IUpgradeClient, "ItemId"> {
|
|||||||
_id: Types.ObjectId;
|
_id: Types.ObjectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IUpgradeFromClient {
|
||||||
|
ItemType: string;
|
||||||
|
ItemId: IOidWithLegacySupport;
|
||||||
|
FromSKU?: boolean;
|
||||||
|
UpgradeFingerprint: string;
|
||||||
|
PendingRerollFingerprint: string;
|
||||||
|
ItemCount: number;
|
||||||
|
LastAdded: IOidWithLegacySupport;
|
||||||
|
}
|
||||||
|
|
||||||
export interface ICrewShipMembersClient {
|
export interface ICrewShipMembersClient {
|
||||||
SLOT_A?: ICrewShipMemberClient;
|
SLOT_A?: ICrewShipMemberClient;
|
||||||
SLOT_B?: ICrewShipMemberClient;
|
SLOT_B?: ICrewShipMemberClient;
|
||||||
@ -1053,7 +1063,7 @@ export interface IQuestStage {
|
|||||||
export interface IRawUpgrade {
|
export interface IRawUpgrade {
|
||||||
ItemType: string;
|
ItemType: string;
|
||||||
ItemCount: number;
|
ItemCount: number;
|
||||||
LastAdded?: IOid;
|
LastAdded?: IOidWithLegacySupport;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ISeasonChallenge {
|
export interface ISeasonChallenge {
|
||||||
|
@ -15,7 +15,7 @@ import {
|
|||||||
IPlayerSkills,
|
IPlayerSkills,
|
||||||
IQuestKeyDatabase,
|
IQuestKeyDatabase,
|
||||||
ILoreFragmentScan,
|
ILoreFragmentScan,
|
||||||
IUpgradeClient,
|
IUpgradeFromClient,
|
||||||
ICollectibleEntry,
|
ICollectibleEntry,
|
||||||
IDiscoveredMarker,
|
IDiscoveredMarker,
|
||||||
ILockedWeaponGroupClient,
|
ILockedWeaponGroupClient,
|
||||||
@ -111,7 +111,7 @@ export type IMissionInventoryUpdateRequest = {
|
|||||||
Standing: number;
|
Standing: number;
|
||||||
}[];
|
}[];
|
||||||
CollectibleScans?: ICollectibleEntry[];
|
CollectibleScans?: ICollectibleEntry[];
|
||||||
Upgrades?: IUpgradeClient[]; // riven challenge progress
|
Upgrades?: IUpgradeFromClient[]; // riven challenge progress
|
||||||
WeaponSkins?: IWeaponSkinClient[];
|
WeaponSkins?: IWeaponSkinClient[];
|
||||||
StrippedItems?: {
|
StrippedItems?: {
|
||||||
DropTable: string;
|
DropTable: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user