forked from OpenWF/SpaceNinjaServer
feat: remove incarnon (#688)
This commit is contained in:
parent
f1c0c5a429
commit
c80dd1bbd0
@ -9,27 +9,40 @@ export const evolveWeaponController: RequestHandler = async (req, res) => {
|
|||||||
const accountId = await getAccountIdForRequest(req);
|
const accountId = await getAccountIdForRequest(req);
|
||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
const payload = getJSONfromString(String(req.body)) as IEvolveWeaponRequest;
|
const payload = getJSONfromString(String(req.body)) as IEvolveWeaponRequest;
|
||||||
console.assert(payload.Action == "EWA_INSTALL");
|
|
||||||
|
|
||||||
const recipe = getRecipe(payload.Recipe)!;
|
const recipe = getRecipe(payload.Recipe)!;
|
||||||
addMiscItems(
|
if (payload.Action == "EWA_INSTALL") {
|
||||||
inventory,
|
addMiscItems(
|
||||||
recipe.ingredients.map(x => ({ ItemType: x.ItemType, ItemCount: x.ItemCount * -1 }))
|
inventory,
|
||||||
);
|
recipe.ingredients.map(x => ({ ItemType: x.ItemType, ItemCount: x.ItemCount * -1 }))
|
||||||
|
);
|
||||||
|
|
||||||
const item = inventory[payload.Category].find(item => item._id.toString() == (req.query.ItemId as string))!;
|
const item = inventory[payload.Category].find(item => item._id.toString() == (req.query.ItemId as string))!;
|
||||||
item.Features ??= 0;
|
item.Features ??= 0;
|
||||||
item.Features |= EquipmentFeatures.INCARNON_GENESIS;
|
item.Features |= EquipmentFeatures.INCARNON_GENESIS;
|
||||||
|
|
||||||
item.SkillTree = "0";
|
item.SkillTree = "0";
|
||||||
|
|
||||||
inventory.EvolutionProgress ??= [];
|
inventory.EvolutionProgress ??= [];
|
||||||
if (!inventory.EvolutionProgress.find(entry => entry.ItemType == payload.EvoType)) {
|
if (!inventory.EvolutionProgress.find(entry => entry.ItemType == payload.EvoType)) {
|
||||||
inventory.EvolutionProgress.push({
|
inventory.EvolutionProgress.push({
|
||||||
Progress: 0,
|
Progress: 0,
|
||||||
Rank: 1,
|
Rank: 1,
|
||||||
ItemType: payload.EvoType
|
ItemType: payload.EvoType
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
} else if (payload.Action == "EWA_UNINSTALL") {
|
||||||
|
addMiscItems(inventory, [
|
||||||
|
{
|
||||||
|
ItemType: recipe.resultType,
|
||||||
|
ItemCount: 1
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
const item = inventory[payload.Category].find(item => item._id.toString() == (req.query.ItemId as string))!;
|
||||||
|
item.Features! &= ~EquipmentFeatures.INCARNON_GENESIS;
|
||||||
|
} else {
|
||||||
|
throw new Error(`unexpected evolve weapon action: ${payload.Action}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
@ -37,7 +50,7 @@ export const evolveWeaponController: RequestHandler = async (req, res) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
interface IEvolveWeaponRequest {
|
interface IEvolveWeaponRequest {
|
||||||
Action: "EWA_INSTALL";
|
Action: string;
|
||||||
Category: WeaponTypeInternal;
|
Category: WeaponTypeInternal;
|
||||||
Recipe: string; // e.g. "/Lotus/Types/Items/MiscItems/IncarnonAdapters/UnlockerBlueprints/DespairIncarnonBlueprint"
|
Recipe: string; // e.g. "/Lotus/Types/Items/MiscItems/IncarnonAdapters/UnlockerBlueprints/DespairIncarnonBlueprint"
|
||||||
UninstallRecipe: "";
|
UninstallRecipe: "";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user