feat: infusing abilities (#676)
This commit is contained in:
parent
48aa145a20
commit
0c6f6e556f
@ -3,11 +3,13 @@ import { IUpgradesRequest } from "@/src/types/requestTypes";
|
||||
import {
|
||||
ArtifactPolarity,
|
||||
IEquipmentDatabase,
|
||||
EquipmentFeatures
|
||||
EquipmentFeatures,
|
||||
IAbilityOverride
|
||||
} from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
import { addMiscItems, getInventory, updateCurrency } from "@/src/services/inventoryService";
|
||||
import { getRecipeByResult } from "@/src/services/itemDataService";
|
||||
|
||||
export const upgradesController: RequestHandler = async (req, res) => {
|
||||
const accountId = await getAccountIdForRequest(req);
|
||||
@ -28,6 +30,29 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
||||
]);
|
||||
}
|
||||
|
||||
if (operation.OperationType == "UOT_ABILITY_OVERRIDE") {
|
||||
console.assert(payload.ItemCategory == "Suits");
|
||||
const suit = inventory.Suits.find(x => x._id.toString() == payload.ItemId.$oid)!;
|
||||
|
||||
let newAbilityOverride: IAbilityOverride | undefined;
|
||||
if (operation.UpgradeRequirement != "") {
|
||||
newAbilityOverride = {
|
||||
Ability: operation.UpgradeRequirement,
|
||||
Index: operation.PolarizeSlot
|
||||
};
|
||||
|
||||
const recipe = getRecipeByResult(operation.UpgradeRequirement)!;
|
||||
for (const ingredient of recipe.ingredients) {
|
||||
inventory.InfestedFoundry!.Resources!.find(x => x.ItemType == ingredient.ItemType)!.Count -=
|
||||
ingredient.ItemCount;
|
||||
}
|
||||
}
|
||||
|
||||
for (const entry of operation.PolarityRemap) {
|
||||
suit.Configs[entry.Slot] ??= {};
|
||||
suit.Configs[entry.Slot].AbilityOverride = newAbilityOverride;
|
||||
}
|
||||
} else
|
||||
switch (operation.UpgradeRequirement) {
|
||||
case "/Lotus/Types/Items/MiscItems/OrokinReactor":
|
||||
case "/Lotus/Types/Items/MiscItems/OrokinCatalyst":
|
||||
|
@ -65,6 +65,10 @@ export const getRecipe = (uniqueName: string): IRecipe | undefined => {
|
||||
return ExportRecipes[uniqueName];
|
||||
};
|
||||
|
||||
export const getRecipeByResult = (resultType: string): IRecipe | undefined => {
|
||||
return Object.values(ExportRecipes).find(x => x.resultType == resultType);
|
||||
};
|
||||
|
||||
export const getExalted = (uniqueName: string): string[] | undefined => {
|
||||
return getSuitByUniqueName(uniqueName)?.exalted;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user