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 { addMiscItems, addMods, getInventory } from "@/src/services/inventoryService";
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
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 { ExportBoosterPacks, ExportUpgrades, TRarity } from "warframe-public-export-plus";
|
||||
|
||||
@ -24,7 +24,7 @@ export const artifactTransmutationController: RequestHandler = async (req, res)
|
||||
]);
|
||||
|
||||
payload.Consumed.forEach(upgrade => {
|
||||
inventory.Upgrades.pull({ _id: upgrade.ItemId.$oid });
|
||||
inventory.Upgrades.pull({ _id: fromOid(upgrade.ItemId) });
|
||||
});
|
||||
|
||||
const rawRivenType = getRandomRawRivenType();
|
||||
@ -57,8 +57,8 @@ export const artifactTransmutationController: RequestHandler = async (req, res)
|
||||
payload.Consumed.forEach(upgrade => {
|
||||
const meta = ExportUpgrades[upgrade.ItemType];
|
||||
counts[meta.rarity] += upgrade.ItemCount;
|
||||
if (upgrade.ItemId.$oid != "000000000000000000000000") {
|
||||
inventory.Upgrades.pull({ _id: upgrade.ItemId.$oid });
|
||||
if (fromOid(upgrade.ItemId) != "000000000000000000000000") {
|
||||
inventory.Upgrades.pull({ _id: fromOid(upgrade.ItemId) });
|
||||
} else {
|
||||
addMods(inventory, [
|
||||
{
|
||||
@ -128,24 +128,14 @@ const getRandomRawRivenType = (): string => {
|
||||
};
|
||||
|
||||
interface IArtifactTransmutationRequest {
|
||||
Upgrade: IAgnosticUpgradeClient;
|
||||
Upgrade: IUpgradeFromClient;
|
||||
LevelDiff: number;
|
||||
Consumed: IAgnosticUpgradeClient[];
|
||||
Consumed: IUpgradeFromClient[];
|
||||
Cost: number;
|
||||
FusionPointCost: number;
|
||||
RivenTransmute?: boolean;
|
||||
}
|
||||
|
||||
interface IAgnosticUpgradeClient {
|
||||
ItemType: string;
|
||||
ItemId: IOid;
|
||||
FromSKU: boolean;
|
||||
UpgradeFingerprint: string;
|
||||
PendingRerollFingerprint: string;
|
||||
ItemCount: number;
|
||||
LastAdded: IOid;
|
||||
}
|
||||
|
||||
const specialModSets: string[][] = [
|
||||
[
|
||||
"/Lotus/Upgrades/Mods/Immortal/ImmortalOneMod",
|
||||
|
@ -400,8 +400,14 @@ export const addMissionInventoryUpdates = async (
|
||||
break;
|
||||
case "Upgrades":
|
||||
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
|
||||
}
|
||||
});
|
||||
break;
|
||||
case "WeaponSkins":
|
||||
|
@ -535,6 +535,16 @@ export interface IUpgradeDatabase extends Omit<IUpgradeClient, "ItemId"> {
|
||||
_id: Types.ObjectId;
|
||||
}
|
||||
|
||||
export interface IUpgradeFromClient {
|
||||
ItemType: string;
|
||||
ItemId: IOidWithLegacySupport;
|
||||
FromSKU?: boolean;
|
||||
UpgradeFingerprint: string;
|
||||
PendingRerollFingerprint: string;
|
||||
ItemCount: number;
|
||||
LastAdded: IOidWithLegacySupport;
|
||||
}
|
||||
|
||||
export interface ICrewShipMembersClient {
|
||||
SLOT_A?: ICrewShipMemberClient;
|
||||
SLOT_B?: ICrewShipMemberClient;
|
||||
@ -1053,7 +1063,7 @@ export interface IQuestStage {
|
||||
export interface IRawUpgrade {
|
||||
ItemType: string;
|
||||
ItemCount: number;
|
||||
LastAdded?: IOid;
|
||||
LastAdded?: IOidWithLegacySupport;
|
||||
}
|
||||
|
||||
export interface ISeasonChallenge {
|
||||
|
@ -15,7 +15,7 @@ import {
|
||||
IPlayerSkills,
|
||||
IQuestKeyDatabase,
|
||||
ILoreFragmentScan,
|
||||
IUpgradeClient,
|
||||
IUpgradeFromClient,
|
||||
ICollectibleEntry,
|
||||
IDiscoveredMarker,
|
||||
ILockedWeaponGroupClient,
|
||||
@ -111,7 +111,7 @@ export type IMissionInventoryUpdateRequest = {
|
||||
Standing: number;
|
||||
}[];
|
||||
CollectibleScans?: ICollectibleEntry[];
|
||||
Upgrades?: IUpgradeClient[]; // riven challenge progress
|
||||
Upgrades?: IUpgradeFromClient[]; // riven challenge progress
|
||||
WeaponSkins?: IWeaponSkinClient[];
|
||||
StrippedItems?: {
|
||||
DropTable: string;
|
||||
|
Loading…
x
Reference in New Issue
Block a user