feat: implement unbinding of focus upgrades (#352)
This commit is contained in:
parent
ae3fe49d95
commit
53dab12555
@ -65,9 +65,6 @@ export const focusController: RequestHandler = async (req, res) => {
|
|||||||
cost += focusUpgrade.FocusXpCost;
|
cost += focusUpgrade.FocusXpCost;
|
||||||
const focusUpgradeDb = inventory.FocusUpgrades.find(entry => entry.ItemType == focusUpgrade.ItemType)!;
|
const focusUpgradeDb = inventory.FocusUpgrades.find(entry => entry.ItemType == focusUpgrade.ItemType)!;
|
||||||
focusUpgradeDb.Level = focusUpgrade.Level;
|
focusUpgradeDb.Level = focusUpgrade.Level;
|
||||||
if (focusUpgrade.IsUniversal) {
|
|
||||||
focusUpgradeDb.IsUniversal = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
inventory.FocusXP[focusPolarity] -= cost;
|
inventory.FocusXP[focusPolarity] -= cost;
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
@ -77,6 +74,36 @@ export const focusController: RequestHandler = async (req, res) => {
|
|||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case FocusOperation.UnbindUpgrade: {
|
||||||
|
const request = JSON.parse(req.body.toString()) as IUnbindUpgradeRequest;
|
||||||
|
const focusPolarity = focusTypeToPolarity(request.FocusTypes[0]);
|
||||||
|
const inventory = await getInventory(accountId);
|
||||||
|
inventory.FocusXP[focusPolarity] -= 750_000;
|
||||||
|
addMiscItems(inventory, [
|
||||||
|
{
|
||||||
|
ItemType: "/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardBrilliantItem",
|
||||||
|
ItemCount: request.FocusTypes.length * -1
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
request.FocusTypes.forEach(type => {
|
||||||
|
const focusUpgradeDb = inventory.FocusUpgrades.find(entry => entry.ItemType == type)!;
|
||||||
|
focusUpgradeDb.IsUniversal = true;
|
||||||
|
});
|
||||||
|
await inventory.save();
|
||||||
|
res.json({
|
||||||
|
FocusTypes: request.FocusTypes,
|
||||||
|
FocusPointCosts: {
|
||||||
|
[focusPolarity]: 750_000
|
||||||
|
},
|
||||||
|
MiscItemCosts: [
|
||||||
|
{
|
||||||
|
ItemType: "/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardBrilliantItem",
|
||||||
|
ItemCount: request.FocusTypes.length
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
case FocusOperation.ConvertShard: {
|
case FocusOperation.ConvertShard: {
|
||||||
const request = JSON.parse(req.body.toString()) as IConvertShardRequest;
|
const request = JSON.parse(req.body.toString()) as IConvertShardRequest;
|
||||||
// Tally XP
|
// Tally XP
|
||||||
@ -110,6 +137,7 @@ enum FocusOperation {
|
|||||||
UnlockUpgrade = "3",
|
UnlockUpgrade = "3",
|
||||||
LevelUpUpgrade = "4",
|
LevelUpUpgrade = "4",
|
||||||
ActivateWay = "5",
|
ActivateWay = "5",
|
||||||
|
UnbindUpgrade = "8",
|
||||||
ConvertShard = "9"
|
ConvertShard = "9"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,6 +160,11 @@ interface ILevelUpUpgradeRequest {
|
|||||||
}[];
|
}[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface IUnbindUpgradeRequest {
|
||||||
|
ShardTypes: string[];
|
||||||
|
FocusTypes: string[];
|
||||||
|
}
|
||||||
|
|
||||||
interface IConvertShardRequest {
|
interface IConvertShardRequest {
|
||||||
Shards: IMiscItem[];
|
Shards: IMiscItem[];
|
||||||
Polarity: TFocusPolarity;
|
Polarity: TFocusPolarity;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user