fix: provide a SubroutineIndex when identifying applicable components (#1683)
Some checks failed
Build Docker image / docker (push) Has been cancelled
Build / build (push) Has been cancelled

Reviewed-on: #1683
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:
Sainan 2025-04-16 10:38:27 -07:00 committed by Sainan
parent 850a073594
commit 16e850e7ee
2 changed files with 17 additions and 6 deletions

View File

@ -1,25 +1,32 @@
import { addCrewShipSalvagedWeaponSkin, addCrewShipRawSalvage, getInventory } from "@/src/services/inventoryService";
import { getAccountIdForRequest } from "@/src/services/loginService";
import { RequestHandler } from "express";
import { IInnateDamageFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
import { ICrewShipComponentFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
import { ExportCustoms } from "warframe-public-export-plus";
import { IFingerprintStat } from "@/src/helpers/rivenHelper";
import { getJSONfromString } from "@/src/helpers/stringHelpers";
import { IInventoryChanges } from "@/src/types/purchaseTypes";
import { getRandomInt } from "@/src/services/rngService";
export const crewShipIdentifySalvageController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req);
const inventory = await getInventory(accountId, "CrewShipSalvagedWeaponSkins CrewShipRawSalvage");
const payload = getJSONfromString<ICrewShipIdentifySalvageRequest>(String(req.body));
const buffs: IFingerprintStat[] = [];
for (const upgrade of ExportCustoms[payload.ItemType].randomisedUpgrades!) {
buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
const meta = ExportCustoms[payload.ItemType];
let upgradeFingerprint: ICrewShipComponentFingerprint = { compat: payload.ItemType, buffs: [] };
if (meta.subroutines) {
upgradeFingerprint = {
SubroutineIndex: getRandomInt(0, meta.subroutines.length - 1),
...upgradeFingerprint
};
}
for (const upgrade of meta.randomisedUpgrades!) {
upgradeFingerprint.buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
}
const inventoryChanges: IInventoryChanges = addCrewShipSalvagedWeaponSkin(
inventory,
payload.ItemType,
JSON.stringify({ compat: payload.ItemType, buffs } satisfies IInnateDamageFingerprint)
JSON.stringify(upgradeFingerprint)
);
inventoryChanges.CrewShipRawSalvage = [

View File

@ -907,6 +907,10 @@ export interface IInnateDamageFingerprint {
buffs: IFingerprintStat[];
}
export interface ICrewShipComponentFingerprint extends IInnateDamageFingerprint {
SubroutineIndex?: number;
}
export enum GettingSlotOrderInfo {
Empty = "",
LotusUpgradesModsRandomizedPlayerMeleeWeaponRandomModRare0 = "/Lotus/Upgrades/Mods/Randomized/PlayerMeleeWeaponRandomModRare:0",