Store `AvailableAfter value in statusTimer of timelocked quest
Send locked quest to client when requested Delete `availableAfter` property when accepting a quest
This commit is contained in:
parent
8edc43e9de
commit
76d8b944d5
@ -145,8 +145,6 @@ export class QuestController
|
|||||||
if (unlockTime > this.timeUtil.getTimestamp())
|
if (unlockTime > this.timeUtil.getTimestamp())
|
||||||
{
|
{
|
||||||
this.logger.debug(`Quest ${quest.QuestName} is locked for another ${unlockTime - this.timeUtil.getTimestamp()} seconds`);
|
this.logger.debug(`Quest ${quest.QuestName} is locked for another ${unlockTime - this.timeUtil.getTimestamp()} seconds`);
|
||||||
haveCompletedPreviousQuest = false;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -435,11 +433,13 @@ export class QuestController
|
|||||||
|
|
||||||
// Add diff of quests before completion vs after for client response
|
// Add diff of quests before completion vs after for client response
|
||||||
const questDelta = this.questHelper.getDeltaQuests(beforeQuests, this.getClientQuests(sessionID));
|
const questDelta = this.questHelper.getDeltaQuests(beforeQuests, this.getClientQuests(sessionID));
|
||||||
completeQuestResponse.profileChanges[sessionID].quests = questDelta;
|
|
||||||
|
// Check newly available + failed quests for timegates and add them to profile
|
||||||
// Send newly available + failed quests into function
|
|
||||||
this.addTimeLockedQuestsToProfile(pmcData, [...questDelta, ...questsToFail], body.qid);
|
this.addTimeLockedQuestsToProfile(pmcData, [...questDelta, ...questsToFail], body.qid);
|
||||||
|
|
||||||
|
// Inform client of quest changes
|
||||||
|
completeQuestResponse.profileChanges[sessionID].quests = questDelta;
|
||||||
|
|
||||||
// Check if it's a repeatable quest. If so, remove from Quests and repeatable.activeQuests list + move to repeatable.inactiveQuests
|
// Check if it's a repeatable quest. If so, remove from Quests and repeatable.activeQuests list + move to repeatable.inactiveQuests
|
||||||
for (const currentRepeatable of pmcData.RepeatableQuests)
|
for (const currentRepeatable of pmcData.RepeatableQuests)
|
||||||
{
|
{
|
||||||
@ -546,7 +546,10 @@ export class QuestController
|
|||||||
qid: quest._id,
|
qid: quest._id,
|
||||||
startTime: 0,
|
startTime: 0,
|
||||||
status: QuestStatus.AvailableAfter,
|
status: QuestStatus.AvailableAfter,
|
||||||
statusTimers: {},
|
statusTimers: {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||||
|
"9": this.timeUtil.getTimestamp()
|
||||||
|
},
|
||||||
availableAfter: availableAfterTimestamp
|
availableAfter: availableAfterTimestamp
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -328,6 +328,11 @@ export class QuestHelper
|
|||||||
existingQuest.statusTimers[newState] = this.timeUtil.getTimestamp();
|
existingQuest.statusTimers[newState] = this.timeUtil.getTimestamp();
|
||||||
existingQuest.completedConditions = [];
|
existingQuest.completedConditions = [];
|
||||||
|
|
||||||
|
if (existingQuest.availableAfter)
|
||||||
|
{
|
||||||
|
delete existingQuest.availableAfter;
|
||||||
|
}
|
||||||
|
|
||||||
return existingQuest;
|
return existingQuest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user