XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

feat: handle focus upgrade/update requests from U18.5 (#4113)

Closes #4111 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4113 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

a4b17489
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

1 个文件 +37 -35
Modified src/controllers/api/focusController.ts +37 -35
@@ -253,23 +253,18 @@ export const focusController: RequestHandler = async (req, res) => {
253 253 }
254 254 break;
255 255 }
256 case "LevelUpUpgrade":
257 case "UpdateUpgrade": {
258 if (focusVersion > 1) {
259 const request = JSON.parse(String(req.body)) as ILevelUpUpgrade2Request;
256 case "LevelUpUpgrade": {
257 const request = JSON.parse(String(req.body)) as ILevelUpUpgrade2Request | ILevelUpUpgrade1Request;
258 const inventory = await getInventory2(account._id, "FocusUpgrades", "FocusXP");
259 if ("FocusInfos" in request) {
260 260 const focusPolarity = focusTypeToPolarity(request.FocusInfos[0].ItemType);
261 const inventory = await getInventory2(account._id, "FocusUpgrades", "FocusXP");
262 261 let cost = 0;
263 262 for (const focusUpgrade of request.FocusInfos) {
264 263 cost += focusUpgrade.FocusXpCost;
265 264 const focusUpgradeDb = inventory.FocusUpgrades.find(
266 265 entry => entry.ItemType == focusUpgrade.ItemType
267 266 )!;
268 if (op == "UpdateUpgrade") {
269 focusUpgradeDb.IsActive = focusUpgrade.IsActive;
270 } else {
271 focusUpgradeDb.Level = focusUpgrade.Level;
272 }
267 focusUpgradeDb.Level = focusUpgrade.Level;
273 268 }
274 269 inventory.FocusXP![focusPolarity]! -= cost;
275 270 await inventory.save();
@@ -278,29 +273,38 @@ export const focusController: RequestHandler = async (req, res) => {
278 273 FocusPointCosts: { [focusPolarity]: cost }
279 274 });
280 275 } else {
281 if (op == "LevelUpUpgrade") {
282 const request = JSON.parse(String(req.body)) as ILevelUpUpgrade1Request;
283 const focusPolarity = focusTypeToPolarity(request.FocusType);
284 const inventory = await getInventory2(account._id, "FocusUpgrades", "FocusXP");
285 inventory.FocusUpgrades.find(x => x.ItemType == request.FocusType)!.Level = request.NewLvl;
286 inventory.FocusXP![focusPolarity]! -= request.XPCost;
287 await inventory.save();
288 res.json({
289 FocusUpgrade: {
290 ItemType: request.FocusType,
291 Level: request.NewLvl
292 },
293 FocusPointCosts: { [focusPolarity]: request.XPCost }
294 });
295 } else {
296 const request = JSON.parse(String(req.body)) as IUpdateUpgrade1Request;
297 const inventory = await getInventory2(account._id, "FocusUpgrades");
298 for (const focusType of request.FocusTypes) {
299 inventory.FocusUpgrades.find(x => x.ItemType == focusType)!.IsActive = request.ActivateUpgrade;
300 }
301 await inventory.save();
302 res.json(request);
276 const focusPolarity = focusTypeToPolarity(request.FocusType);
277 inventory.FocusUpgrades.find(x => x.ItemType == request.FocusType)!.Level = request.NewLvl;
278 inventory.FocusXP![focusPolarity]! -= request.XPCost;
279 await inventory.save();
280 res.json({
281 FocusUpgrade: {
282 ItemType: request.FocusType,
283 Level: request.NewLvl
284 },
285 FocusPointCosts: { [focusPolarity]: request.XPCost }
286 });
287 }
288 break;
289 }
290 case "UpdateUpgrade": {
291 const request = JSON.parse(String(req.body)) as ILevelUpUpgrade2Request | IUpdateUpgrade1Request;
292 const inventory = await getInventory2(account._id, "FocusUpgrades");
293 if ("FocusInfos" in request) {
294 for (const focusUpgrade of request.FocusInfos) {
295 const focusUpgradeDb = inventory.FocusUpgrades.find(
296 entry => entry.ItemType == focusUpgrade.ItemType
297 )!;
298 focusUpgradeDb.IsActive = focusUpgrade.IsActive;
303 299 }
300 await inventory.save();
301 res.json({ FocusInfos: request.FocusInfos });
302 } else {
303 for (const focusType of request.FocusTypes) {
304 inventory.FocusUpgrades.find(x => x.ItemType == focusType)!.IsActive = request.ActivateUpgrade;
305 }
306 await inventory.save();
307 res.json(request);
304 308 }
305 309 break;
306 310 }
@@ -494,7 +498,7 @@ interface IIncreasePool1Request {
494 498 XPCost: number;
495 499 }
496 500
497 // Focus 2.0 & Focus 3.0
501 // Format changed in U18.5, maybe earlier
498 502 interface ILevelUpUpgrade2Request {
499 503 FocusInfos: {
500 504 ItemType: string;
@@ -505,8 +509,6 @@ interface ILevelUpUpgrade2Request {
505 509 IsActive?: number; // Focus 2.0
506 510 }[];
507 511 }
508
509 // Focus 1.0
510 512 interface ILevelUpUpgrade1Request {
511 513 FocusType: string;
512 514 XPCost: number;