返回提交历史
Added
src/controllers/api/commitStoryModeDecisionController.ts
+37
-0
Modified
src/models/inventoryModels/inventoryModel.ts
+3
-0
Modified
src/routes/api.ts
+2
-1
Modified
src/types/inventoryTypes/inventoryTypes.ts
+1
-0
XFEstudio/XFESpaceNinjaServer
feat: commitStoryModeDecision (#3103)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3103 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
c9e61d77
代码差异
4 个文件
+43
-1
@@ -0,0 +1,37 @@
1
import type { RequestHandler } from "express";
2
import { getAccountIdForRequest } from "../../services/loginService.ts";
3
import { getInventory } from "../../services/inventoryService.ts";
4
import { getPersonalRooms } from "../../services/personalRoomsService.ts";
5
import { addString } from "../../helpers/stringHelpers.ts";
6
7
export const commitStoryModeDecisionController: RequestHandler = async (req, res) => {
8
const accountId = await getAccountIdForRequest(req);
9
const promises: Promise<void>[] = [];
10
promises.push(
11
(async (): Promise<void> => {
12
const inventory = await getInventory(accountId, "MadeStoryModeDecision");
13
inventory.MadeStoryModeDecision = true;
14
await inventory.save();
15
})()
16
);
17
if (req.query.skip == "1") {
18
promises.push(
19
(async (): Promise<void> => {
20
const personalRooms = await getPersonalRooms(accountId, "Ship");
21
for (const feature of [
22
"/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem",
23
"/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem",
24
"/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem",
25
"/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem",
26
"/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem",
27
"/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem"
28
]) {
29
addString(personalRooms.Ship.Features, feature);
30
}
31
await personalRooms.save();
32
})()
33
);
34
}
35
await Promise.all(promises);
36
res.end();
37
};
@@ -1660,6 +1660,9 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
1660
1660
//you saw last played Region when you opened the star map
1661
1661
LastRegionPlayed: String,
1662
1662
1663
// U14~U15
1664
MadeStoryModeDecision: Boolean,
1665
1663
1666
//Blueprints for Foundry
1664
1667
Recipes: [typeCountSchema],
1665
1668
//Crafting Blueprint(Item Name + CompletionDate)
@@ -26,6 +26,7 @@ import { claimJunctionChallengeRewardController } from "../controllers/api/claim
26
26
import { claimLibraryDailyTaskRewardController } from "../controllers/api/claimLibraryDailyTaskRewardController.ts";
27
27
import { clearDialogueHistoryController } from "../controllers/api/clearDialogueHistoryController.ts";
28
28
import { clearNewEpisodeRewardController } from "../controllers/api/clearNewEpisodeRewardController.ts";
29
import { commitStoryModeDecisionController } from "../controllers/api/commitStoryModeDecisionController.ts";
29
30
import { completeCalendarEventController } from "../controllers/api/completeCalendarEventController.ts";
30
31
import { completeRandomModChallengeController } from "../controllers/api/completeRandomModChallengeController.ts";
31
32
import { confirmAllianceInvitationController } from "../controllers/api/confirmAllianceInvitationController.ts";
@@ -264,7 +265,7 @@ apiRouter.post("/claimCompletedRecipe.php", claimCompletedRecipeController);
264
265
apiRouter.post("/claimJunctionChallengeReward.php", claimJunctionChallengeRewardController);
265
266
apiRouter.post("/clearDialogueHistory.php", clearDialogueHistoryController);
266
267
apiRouter.post("/clearNewEpisodeReward.php", clearNewEpisodeRewardController);
267
apiRouter.post("/commitStoryModeDecision.php", (_req, res) => { res.end(); }); // U14 (maybe wanna actually unlock the ship features?)
268
apiRouter.post("/commitStoryModeDecision.php", commitStoryModeDecisionController); // U14~U15
268
269
apiRouter.post("/completeRandomModChallenge.php", completeRandomModChallengeController);
269
270
apiRouter.post("/confirmGuildInvitation.php", confirmGuildInvitationPostController);
270
271
apiRouter.post("/contributeGuildClass.php", contributeGuildClassController);
@@ -300,6 +300,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
300
300
Missions: IMission[];
301
301
RandomUpgradesIdentified?: number;
302
302
LastRegionPlayed: TSolarMapRegion;
303
MadeStoryModeDecision?: boolean;
303
304
XPInfo: ITypeXPItem[];
304
305
Recipes: ITypeCount[];
305
306
WeaponSkins: IWeaponSkinClient[];