返回提交历史
Modified
src/controllers/api/focusController.ts
+36
-3
XFEstudio/XFESpaceNinjaServer
feat: implement unbinding of focus upgrades (#352)
53dab125
代码差异
1 个文件
+36
-3
@@ -65,9 +65,6 @@ export const focusController: RequestHandler = async (req, res) => {
65
65
cost += focusUpgrade.FocusXpCost;
66
66
const focusUpgradeDb = inventory.FocusUpgrades.find(entry => entry.ItemType == focusUpgrade.ItemType)!;
67
67
focusUpgradeDb.Level = focusUpgrade.Level;
68
if (focusUpgrade.IsUniversal) {
69
focusUpgradeDb.IsUniversal = true;
70
}
71
68
}
72
69
inventory.FocusXP[focusPolarity] -= cost;
73
70
await inventory.save();
@@ -77,6 +74,36 @@ export const focusController: RequestHandler = async (req, res) => {
77
74
});
78
75
break;
79
76
}
77
case FocusOperation.UnbindUpgrade: {
78
const request = JSON.parse(req.body.toString()) as IUnbindUpgradeRequest;
79
const focusPolarity = focusTypeToPolarity(request.FocusTypes[0]);
80
const inventory = await getInventory(accountId);
81
inventory.FocusXP[focusPolarity] -= 750_000;
82
addMiscItems(inventory, [
83
{
84
ItemType: "/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardBrilliantItem",
85
ItemCount: request.FocusTypes.length * -1
86
}
87
]);
88
request.FocusTypes.forEach(type => {
89
const focusUpgradeDb = inventory.FocusUpgrades.find(entry => entry.ItemType == type)!;
90
focusUpgradeDb.IsUniversal = true;
91
});
92
await inventory.save();
93
res.json({
94
FocusTypes: request.FocusTypes,
95
FocusPointCosts: {
96
[focusPolarity]: 750_000
97
},
98
MiscItemCosts: [
99
{
100
ItemType: "/Lotus/Types/Gameplay/Eidolon/Resources/SentientShards/SentientShardBrilliantItem",
101
ItemCount: request.FocusTypes.length
102
}
103
]
104
});
105
break;
106
}
80
107
case FocusOperation.ConvertShard: {
81
108
const request = JSON.parse(req.body.toString()) as IConvertShardRequest;
82
109
// Tally XP
@@ -110,6 +137,7 @@ enum FocusOperation {
110
137
UnlockUpgrade = "3",
111
138
LevelUpUpgrade = "4",
112
139
ActivateWay = "5",
140
UnbindUpgrade = "8",
113
141
ConvertShard = "9"
114
142
}
115
143
@@ -132,6 +160,11 @@ interface ILevelUpUpgradeRequest {
132
160
}[];
133
161
}
134
162
163
interface IUnbindUpgradeRequest {
164
ShardTypes: string[];
165
FocusTypes: string[];
166
}
167
135
168
interface IConvertShardRequest {
136
169
Shards: IMiscItem[];
137
170
Polarity: TFocusPolarity;