返回提交历史
Modified
src/controllers/api/crewShipIdentifySalvageController.ts
+13
-6
Modified
src/types/inventoryTypes/inventoryTypes.ts
+4
-0
XFEstudio/SpaceNinjaServer
fix: provide a SubroutineIndex when identifying applicable components (#1683)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1683 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
16e850e7
代码差异
2 个文件
+17
-6
@@ -1,25 +1,32 @@
1
1
import { addCrewShipSalvagedWeaponSkin, addCrewShipRawSalvage, getInventory } from "@/src/services/inventoryService";
2
2
import { getAccountIdForRequest } from "@/src/services/loginService";
3
3
import { RequestHandler } from "express";
4
import { IInnateDamageFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
4
import { ICrewShipComponentFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
5
5
import { ExportCustoms } from "warframe-public-export-plus";
6
import { IFingerprintStat } from "@/src/helpers/rivenHelper";
7
6
import { getJSONfromString } from "@/src/helpers/stringHelpers";
8
7
import { IInventoryChanges } from "@/src/types/purchaseTypes";
8
import { getRandomInt } from "@/src/services/rngService";
9
9
10
10
export const crewShipIdentifySalvageController: RequestHandler = async (req, res) => {
11
11
const accountId = await getAccountIdForRequest(req);
12
12
const inventory = await getInventory(accountId, "CrewShipSalvagedWeaponSkins CrewShipRawSalvage");
13
13
const payload = getJSONfromString<ICrewShipIdentifySalvageRequest>(String(req.body));
14
14
15
const buffs: IFingerprintStat[] = [];
16
for (const upgrade of ExportCustoms[payload.ItemType].randomisedUpgrades!) {
17
buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
15
const meta = ExportCustoms[payload.ItemType];
16
let upgradeFingerprint: ICrewShipComponentFingerprint = { compat: payload.ItemType, buffs: [] };
17
if (meta.subroutines) {
18
upgradeFingerprint = {
19
SubroutineIndex: getRandomInt(0, meta.subroutines.length - 1),
20
...upgradeFingerprint
21
};
22
}
23
for (const upgrade of meta.randomisedUpgrades!) {
24
upgradeFingerprint.buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
18
25
}
19
26
const inventoryChanges: IInventoryChanges = addCrewShipSalvagedWeaponSkin(
20
27
inventory,
21
28
payload.ItemType,
22
JSON.stringify({ compat: payload.ItemType, buffs } satisfies IInnateDamageFingerprint)
29
JSON.stringify(upgradeFingerprint)
23
30
);
24
31
25
32
inventoryChanges.CrewShipRawSalvage = [
@@ -907,6 +907,10 @@ export interface IInnateDamageFingerprint {
907
907
buffs: IFingerprintStat[];
908
908
}
909
909
910
export interface ICrewShipComponentFingerprint extends IInnateDamageFingerprint {
911
SubroutineIndex?: number;
912
}
913
910
914
export enum GettingSlotOrderInfo {
911
915
Empty = "",
912
916
LotusUpgradesModsRandomizedPlayerMeleeWeaponRandomModRare0 = "/Lotus/Upgrades/Mods/Randomized/PlayerMeleeWeaponRandomModRare:0",