Reduce calls to this.timeUtil.getTimestamp() inside getQuestReadyForProfile()

Set `startTime` property inside `resetQuestState()`
This commit is contained in:
Dev 2023-11-30 10:09:23 +00:00
parent 67f7eb59c5
commit 9ed5869fa6

View File

@ -345,13 +345,14 @@ export class QuestHelper
acceptedQuest: IAcceptQuestRequestData, acceptedQuest: IAcceptQuestRequestData,
): IQuestStatus ): IQuestStatus
{ {
const currentTimestamp = this.timeUtil.getTimestamp();
const existingQuest = pmcData.Quests.find((q) => q.qid === acceptedQuest.qid); const existingQuest = pmcData.Quests.find((q) => q.qid === acceptedQuest.qid);
if (existingQuest) if (existingQuest)
{ {
// Quest exists, update its status // Quest exists, update its status
existingQuest.startTime = this.timeUtil.getTimestamp(); existingQuest.startTime = currentTimestamp;
existingQuest.status = newState; existingQuest.status = newState;
existingQuest.statusTimers[newState] = this.timeUtil.getTimestamp(); existingQuest.statusTimers[newState] = currentTimestamp;
existingQuest.completedConditions = []; existingQuest.completedConditions = [];
if (existingQuest.availableAfter) if (existingQuest.availableAfter)
@ -365,7 +366,7 @@ export class QuestHelper
// Quest doesn't exists, add it // Quest doesn't exists, add it
const newQuest: IQuestStatus = { const newQuest: IQuestStatus = {
qid: acceptedQuest.qid, qid: acceptedQuest.qid,
startTime: this.timeUtil.getTimestamp(), startTime: currentTimestamp,
status: newState, status: newState,
statusTimers: {}, statusTimers: {},
}; };
@ -378,11 +379,11 @@ export class QuestHelper
// Quest should be put into 'pending' state // Quest should be put into 'pending' state
newQuest.startTime = 0; newQuest.startTime = 0;
newQuest.status = QuestStatus.AvailableAfter; // 9 newQuest.status = QuestStatus.AvailableAfter; // 9
newQuest.availableAfter = this.timeUtil.getTimestamp() + waitTime._props.availableAfter; newQuest.availableAfter = currentTimestamp + waitTime._props.availableAfter;
} }
else else
{ {
newQuest.statusTimers[newState.toString()] = this.timeUtil.getTimestamp(); newQuest.statusTimers[newState.toString()] = currentTimestamp;
newQuest.completedConditions = []; newQuest.completedConditions = [];
} }
@ -744,15 +745,18 @@ export class QuestHelper
const questToUpdate = pmcData.Quests.find((quest) => quest.qid === questId); const questToUpdate = pmcData.Quests.find((quest) => quest.qid === questId);
if (questToUpdate) if (questToUpdate)
{ {
const currentTimestamp = this.timeUtil.getTimestamp();
questToUpdate.status = newQuestState; questToUpdate.status = newQuestState;
questToUpdate.statusTimers[newQuestState] = this.timeUtil.getTimestamp(); questToUpdate.startTime = currentTimestamp;
questToUpdate.statusTimers[newQuestState] = currentTimestamp;
// Delete all status timers after applying new status // Delete all status timers after applying new status
for (const statusKey in questToUpdate.statusTimers) for (const statusKey in questToUpdate.statusTimers)
{ {
if (Number.parseInt(statusKey) > newQuestState) if (Number.parseInt(statusKey) > newQuestState)
{ {
delete questToUpdate.statusTimers[statusKey] delete questToUpdate.statusTimers[statusKey];
} }
} }