返回提交历史
Modified
src/controllers/api/modularWeaponCraftingController.ts
+4
-11
Modified
src/services/inventoryService.ts
+25
-2
XFEstudio/XFESpaceNinjaServer
fix: missing precepts & weapons for sister pets (#4423)
Closes #4422 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4423 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
7095e56b
代码差异
2 个文件
+29
-13
@@ -11,14 +11,15 @@ import {
11
11
occupySlot,
12
12
productCategoryToInventoryBin,
13
13
combineInventoryChanges,
14
addSpecialItem
14
addSpecialItem,
15
giveMoaPetDefaultWeapon
15
16
} from "../../services/inventoryService.ts";
16
17
import type { IInventoryChanges } from "../../types/purchaseTypes.ts";
17
18
import { getDefaultUpgrades } from "../../services/itemDataService.ts";
18
19
import { modularWeaponTypes } from "../../helpers/modularWeaponHelper.ts";
19
20
import { getRandomInt } from "../../services/rngService.ts";
20
21
import type { IDefaultUpgrade } from "warframe-public-export-plus";
21
import { ExportSentinels, ExportWeapons } from "warframe-public-export-plus";
22
import { ExportSentinels } from "warframe-public-export-plus";
22
23
import type { IKubrowPetDatabase } from "../../types/equipmentTypes.ts";
23
24
import { eStatus } from "../../types/equipmentTypes.ts";
24
25
@@ -144,15 +145,7 @@ export const modularWeaponCraftingController: RequestHandler = async (req, res)
144
145
}
145
146
146
147
if (category == "MoaPets") {
147
const weapon = ExportSentinels[data.WeaponType].defaultWeapon;
148
if (weapon) {
149
const category = ExportWeapons[weapon].productCategory;
150
addEquipment(inventory, category, weapon, undefined, inventoryChanges);
151
combineInventoryChanges(
152
inventoryChanges,
153
occupySlot(inventory, productCategoryToInventoryBin(category)!, !!data.isWebUi)
154
);
155
}
148
giveMoaPetDefaultWeapon(inventory, data.WeaponType, !!data.isWebUi, inventoryChanges);
156
149
}
157
150
defaultOverwrites.Configs = applyDefaultUpgrades(inventory, defaultUpgrades, inventoryChanges);
158
151
addEquipment(inventory, category, data.WeaponType, defaultOverwrites, inventoryChanges);
@@ -45,7 +45,8 @@ import {
45
45
supplementalRecipes,
46
46
supplementalUpgrades,
47
47
U5ModsWeights,
48
U5Modules
48
U5Modules,
49
getDefaultUpgrades
49
50
} from "./itemDataService.ts";
50
51
import type { IFlavourItem, IItemConfig, IItemConfigDatabase } from "../types/inventoryTypes/commonInventoryTypes.ts";
51
52
import type { IDefaultUpgrade, IRegion, ISentinel, TStandingLimitBin } from "warframe-public-export-plus";
@@ -863,7 +864,11 @@ export const addItem = async (
863
864
const defaultOverwrites: Partial<IEquipmentDatabase> = {
864
865
ModularParts: targetFingerprintObj.Parts,
865
866
ItemName: targetFingerprintObj.Name,
866
Configs: applyDefaultUpgrades(inventory, ExportWeapons[head].defaultUpgrades, inventoryChanges)
867
Configs: applyDefaultUpgrades(
868
inventory,
869
getDefaultUpgrades(targetFingerprintObj.Parts),
870
inventoryChanges
871
)
867
872
};
868
873
const itemType = {
869
874
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetParts/ZanukaPetPartHeadA":
@@ -873,6 +878,7 @@ export const addItem = async (
873
878
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetParts/ZanukaPetPartHeadC":
874
879
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetCPowerSuit"
875
880
}[head] as string;
881
giveMoaPetDefaultWeapon(inventory, itemType, premiumPurchase, inventoryChanges);
876
882
return {
877
883
...inventoryChanges,
878
884
...addEquipment(inventory, "MoaPets", itemType, defaultOverwrites),
@@ -1414,6 +1420,23 @@ export const applyDefaultUpgrades = (
1414
1420
return configs;
1415
1421
};
1416
1422
1423
export const giveMoaPetDefaultWeapon = (
1424
inventory: TInventoryDatabaseDocument,
1425
moaPetsItemType: string,
1426
premiumPurchase: boolean,
1427
inventoryChanges: IInventoryChanges
1428
): void => {
1429
const weapon = ExportSentinels[moaPetsItemType].defaultWeapon;
1430
if (weapon) {
1431
const category = ExportWeapons[weapon].productCategory;
1432
addEquipment(inventory, category, weapon, undefined, inventoryChanges);
1433
combineInventoryChanges(
1434
inventoryChanges,
1435
occupySlot(inventory, productCategoryToInventoryBin(category)!, premiumPurchase)
1436
);
1437
}
1438
};
1439
1417
1440
//TODO: maybe genericMethod for all the add methods, they share a lot of logic
1418
1441
const addSentinel = (
1419
1442
inventory: TInventoryDatabaseDocument,