返回提交历史
Modified
src/controllers/api/guildTechController.ts
+20
-1
XFEstudio/SpaceNinjaServer
chore: validate railjack repair start (#1698)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1698 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
f94ecbfb
代码差异
1 个文件
+20
-1
@@ -97,6 +97,19 @@ export const guildTechController: RequestHandler = async (req, res) => {
97
97
res.end();
98
98
} else {
99
99
const recipe = ExportDojoRecipes.research[data.RecipeType];
100
if (data.TechProductCategory) {
101
if (
102
data.TechProductCategory != "CrewShipWeapons" &&
103
data.TechProductCategory != "CrewShipWeaponSkins"
104
) {
105
throw new Error(`unexpected TechProductCategory: ${data.TechProductCategory}`);
106
}
107
if (!inventory[getSalvageCategory(data.TechProductCategory)].id(data.CategoryItemId)) {
108
throw new Error(
109
`no item with id ${data.CategoryItemId} in ${getSalvageCategory(data.TechProductCategory)} array`
110
);
111
}
112
}
100
113
const techProject =
101
114
inventory.PersonalTechProjects[
102
115
inventory.PersonalTechProjects.push({
@@ -380,6 +393,12 @@ interface IGuildTechContributeRequest {
380
393
VaultMiscItems: IMiscItem[];
381
394
}
382
395
396
const getSalvageCategory = (
397
category: "CrewShipWeapons" | "CrewShipWeaponSkins"
398
): "CrewShipSalvagedWeapons" | "CrewShipSalvagedWeaponSkins" => {
399
return category == "CrewShipWeapons" ? "CrewShipSalvagedWeapons" : "CrewShipSalvagedWeaponSkins";
400
};
401
383
402
const claimSalvagedComponent = (inventory: TInventoryDatabaseDocument, itemId: string): IInventoryChanges => {
384
403
// delete personal tech project
385
404
const personalTechProjectIndex = inventory.PersonalTechProjects.findIndex(x => x.CategoryItemId?.equals(itemId));
@@ -387,7 +406,7 @@ const claimSalvagedComponent = (inventory: TInventoryDatabaseDocument, itemId: s
387
406
inventory.PersonalTechProjects.splice(personalTechProjectIndex, 1);
388
407
389
408
const category = personalTechProject.ProductCategory! as "CrewShipWeapons" | "CrewShipWeaponSkins";
390
const salvageCategory = category == "CrewShipWeapons" ? "CrewShipSalvagedWeapons" : "CrewShipSalvagedWeaponSkins";
409
const salvageCategory = getSalvageCategory(category);
391
410
392
411
// find salved part & delete it
393
412
const salvageIndex = inventory[salvageCategory].findIndex(x => x._id.equals(itemId));