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

XFESpaceNinjaServer

A simple server for a small space ninja game

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

XFEstudio/XFESpaceNinjaServer

feat: implement unbinding of focus upgrades (#352)

53dab125
Sainan <sainan@calamity.gg>
提交于

代码差异

1 个文件 +36 -3
Modified src/controllers/api/focusController.ts +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;