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: refresh duviri seed when mood changes (#1895)

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

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

代码差异

3 个文件 +24 -5
Modified src/controllers/api/inventoryController.ts +17 -4
@@ -18,10 +18,12 @@ import {
18 18 addMiscItems,
19 19 allDailyAffiliationKeys,
20 20 cleanupInventory,
21 createLibraryDailyTask
21 createLibraryDailyTask,
22 generateRewardSeed
22 23 } from "@/src/services/inventoryService";
23 24 import { logger } from "@/src/utils/logger";
24 25 import { catBreadHash } from "@/src/helpers/stringHelpers";
26 import { Types } from "mongoose";
25 27
26 28 export const inventoryController: RequestHandler = async (request, response) => {
27 29 const accountId = await getAccountIdForRequest(request);
@@ -87,7 +89,7 @@ export const inventoryController: RequestHandler = async (request, response) =>
87 89 cleanupInventory(inventory);
88 90
89 91 inventory.NextRefill = new Date((Math.trunc(Date.now() / 86400000) + 1) * 86400000);
90 await inventory.save();
92 //await inventory.save();
91 93 }
92 94
93 95 if (
@@ -96,9 +98,20 @@ export const inventoryController: RequestHandler = async (request, response) =>
96 98 new Date() >= inventory.InfestedFoundry.AbilityOverrideUnlockCooldown
97 99 ) {
98 100 handleSubsumeCompletion(inventory);
99 await inventory.save();
101 //await inventory.save();
100 102 }
101 103
104 if (inventory.LastInventorySync) {
105 const lastSyncDuviriMood = Math.trunc(inventory.LastInventorySync.getTimestamp().getTime() / 7200000);
106 const currentDuviriMood = Math.trunc(Date.now() / 7200000);
107 if (lastSyncDuviriMood != currentDuviriMood) {
108 logger.debug(`refreshing duviri seed`);
109 inventory.DuviriInfo.Seed = generateRewardSeed();
110 }
111 }
112 inventory.LastInventorySync = new Types.ObjectId();
113 await inventory.save();
114
102 115 response.json(await getInventoryResponse(inventory, "xpBasedLevelCapDisabled" in request.query));
103 116 };
104 117
@@ -274,7 +287,7 @@ export const getInventoryResponse = async (
274 287 }
275 288
276 289 // Omitting this field so opening the navigation resyncs the inventory which is more desirable for typical usage.
277 //inventoryResponse.LastInventorySync = toOid(new Types.ObjectId());
290 inventoryResponse.LastInventorySync = undefined;
278 291
279 292 // Set 2FA enabled so trading post can be used
280 293 inventoryResponse.HWIDProtectEnabled = true;
Modified src/models/inventoryModels/inventoryModel.ts +4 -0
@@ -1662,6 +1662,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
1662 1662
1663 1663 //Unknown and system
1664 1664 DuviriInfo: DuviriInfoSchema,
1665 LastInventorySync: Schema.Types.ObjectId,
1665 1666 Mailbox: MailboxSchema,
1666 1667 HandlerPoints: Number,
1667 1668 ChallengesFixVersion: { type: Number, default: 6 },
@@ -1759,6 +1760,9 @@ inventorySchema.set("toJSON", {
1759 1760 sn: inventoryDatabase.LockedWeaponGroup.sn ? toOid(inventoryDatabase.LockedWeaponGroup.sn) : undefined
1760 1761 };
1761 1762 }
1763 if (inventoryDatabase.LastInventorySync) {
1764 inventoryResponse.LastInventorySync = toOid(inventoryDatabase.LastInventorySync);
1765 }
1762 1766 }
1763 1767 });
1764 1768
Modified src/types/inventoryTypes/inventoryTypes.ts +3 -1
@@ -52,6 +52,7 @@ export interface IInventoryDatabase
52 52 | "LastLiteSortieReward"
53 53 | "CrewMembers"
54 54 | "QualifyingInvasions"
55 | "LastInventorySync"
55 56 | TEquipmentKey
56 57 >,
57 58 InventoryDatabaseEquipment {
@@ -89,6 +90,7 @@ export interface IInventoryDatabase
89 90 LastLiteSortieReward?: ILastSortieRewardDatabase[];
90 91 CrewMembers: ICrewMemberDatabase[];
91 92 QualifyingInvasions: IInvasionProgressDatabase[];
93 LastInventorySync?: Types.ObjectId;
92 94 }
93 95
94 96 export interface IQuestKeyDatabase {
@@ -333,7 +335,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
333 335 LotusCustomization?: ILotusCustomization;
334 336 UseAdultOperatorLoadout?: boolean;
335 337 NemesisAbandonedRewards: string[];
336 LastInventorySync: IOid;
338 LastInventorySync?: IOid;
337 339 NextRefill?: IMongoDate;
338 340 FoundToday?: IMiscItem[]; // for Argon Crystals
339 341 CustomMarkers?: ICustomMarkers[];