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: 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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

4 个文件 +43 -1
Added src/controllers/api/commitStoryModeDecisionController.ts +37 -0
@@ -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 };
Modified src/models/inventoryModels/inventoryModel.ts +3 -0
@@ -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)
Modified src/routes/api.ts +2 -1
@@ -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);
Modified src/types/inventoryTypes/inventoryTypes.ts +1 -0
@@ -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[];