feat: refresh duviri seed when mood changes (#1895)
Closes #1887 Reviewed-on: #1895 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
7a295a86ec
commit
66ee550ccd
@ -18,10 +18,12 @@ import {
|
||||
addMiscItems,
|
||||
allDailyAffiliationKeys,
|
||||
cleanupInventory,
|
||||
createLibraryDailyTask
|
||||
createLibraryDailyTask,
|
||||
generateRewardSeed
|
||||
} from "@/src/services/inventoryService";
|
||||
import { logger } from "@/src/utils/logger";
|
||||
import { catBreadHash } from "@/src/helpers/stringHelpers";
|
||||
import { Types } from "mongoose";
|
||||
|
||||
export const inventoryController: RequestHandler = async (request, response) => {
|
||||
const accountId = await getAccountIdForRequest(request);
|
||||
@ -87,7 +89,7 @@ export const inventoryController: RequestHandler = async (request, response) =>
|
||||
cleanupInventory(inventory);
|
||||
|
||||
inventory.NextRefill = new Date((Math.trunc(Date.now() / 86400000) + 1) * 86400000);
|
||||
await inventory.save();
|
||||
//await inventory.save();
|
||||
}
|
||||
|
||||
if (
|
||||
@ -96,9 +98,20 @@ export const inventoryController: RequestHandler = async (request, response) =>
|
||||
new Date() >= inventory.InfestedFoundry.AbilityOverrideUnlockCooldown
|
||||
) {
|
||||
handleSubsumeCompletion(inventory);
|
||||
await inventory.save();
|
||||
//await inventory.save();
|
||||
}
|
||||
|
||||
if (inventory.LastInventorySync) {
|
||||
const lastSyncDuviriMood = Math.trunc(inventory.LastInventorySync.getTimestamp().getTime() / 7200000);
|
||||
const currentDuviriMood = Math.trunc(Date.now() / 7200000);
|
||||
if (lastSyncDuviriMood != currentDuviriMood) {
|
||||
logger.debug(`refreshing duviri seed`);
|
||||
inventory.DuviriInfo.Seed = generateRewardSeed();
|
||||
}
|
||||
}
|
||||
inventory.LastInventorySync = new Types.ObjectId();
|
||||
await inventory.save();
|
||||
|
||||
response.json(await getInventoryResponse(inventory, "xpBasedLevelCapDisabled" in request.query));
|
||||
};
|
||||
|
||||
@ -274,7 +287,7 @@ export const getInventoryResponse = async (
|
||||
}
|
||||
|
||||
// Omitting this field so opening the navigation resyncs the inventory which is more desirable for typical usage.
|
||||
//inventoryResponse.LastInventorySync = toOid(new Types.ObjectId());
|
||||
inventoryResponse.LastInventorySync = undefined;
|
||||
|
||||
// Set 2FA enabled so trading post can be used
|
||||
inventoryResponse.HWIDProtectEnabled = true;
|
||||
|
@ -1662,6 +1662,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
||||
|
||||
//Unknown and system
|
||||
DuviriInfo: DuviriInfoSchema,
|
||||
LastInventorySync: Schema.Types.ObjectId,
|
||||
Mailbox: MailboxSchema,
|
||||
HandlerPoints: Number,
|
||||
ChallengesFixVersion: { type: Number, default: 6 },
|
||||
@ -1759,6 +1760,9 @@ inventorySchema.set("toJSON", {
|
||||
sn: inventoryDatabase.LockedWeaponGroup.sn ? toOid(inventoryDatabase.LockedWeaponGroup.sn) : undefined
|
||||
};
|
||||
}
|
||||
if (inventoryDatabase.LastInventorySync) {
|
||||
inventoryResponse.LastInventorySync = toOid(inventoryDatabase.LastInventorySync);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -52,6 +52,7 @@ export interface IInventoryDatabase
|
||||
| "LastLiteSortieReward"
|
||||
| "CrewMembers"
|
||||
| "QualifyingInvasions"
|
||||
| "LastInventorySync"
|
||||
| TEquipmentKey
|
||||
>,
|
||||
InventoryDatabaseEquipment {
|
||||
@ -89,6 +90,7 @@ export interface IInventoryDatabase
|
||||
LastLiteSortieReward?: ILastSortieRewardDatabase[];
|
||||
CrewMembers: ICrewMemberDatabase[];
|
||||
QualifyingInvasions: IInvasionProgressDatabase[];
|
||||
LastInventorySync?: Types.ObjectId;
|
||||
}
|
||||
|
||||
export interface IQuestKeyDatabase {
|
||||
@ -333,7 +335,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
|
||||
LotusCustomization?: ILotusCustomization;
|
||||
UseAdultOperatorLoadout?: boolean;
|
||||
NemesisAbandonedRewards: string[];
|
||||
LastInventorySync: IOid;
|
||||
LastInventorySync?: IOid;
|
||||
NextRefill?: IMongoDate;
|
||||
FoundToday?: IMiscItem[]; // for Argon Crystals
|
||||
CustomMarkers?: ICustomMarkers[];
|
||||
|
Loading…
x
Reference in New Issue
Block a user