fix: provide a SubroutineIndex when identifying applicable components (#1683)
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:
parent
850a073594
commit
16e850e7ee
@ -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 = [
|
||||
|
@ -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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user