mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
quest series refactor started
This commit is contained in:
@@ -16,16 +16,28 @@ function userAbleToStartMasterclasser (user) {
|
||||
}
|
||||
|
||||
function lockQuest (quest, user) {
|
||||
// masterclasser requirement
|
||||
if (quest.key === 'lostMasterclasser1') return !userAbleToStartMasterclasser(user);
|
||||
if (quest.key === 'lostMasterclasser2' || quest.key === 'lostMasterclasser3' || quest.key === 'lostMasterclasser4') {
|
||||
return !(userAbleToStartMasterclasser(user) && user.achievements.quests[quest.previous]);
|
||||
}
|
||||
if (quest.key === 'lostMasterclasser1') return !(user.achievements.quests.dilatoryDistress3 && user.achievements.quests.mayhemMistiflying3 && user.achievements.quests.stoikalmCalamity3 && user.achievements.quests.taskwoodsTerror3);
|
||||
|
||||
// checks for multiple prerequisites
|
||||
// if (quest.prerequisite === true) return true;
|
||||
|
||||
// level requirements
|
||||
if (quest.lvl && user.stats.lvl < quest.lvl) return true;
|
||||
|
||||
// unlockCondition requirements
|
||||
if (quest.unlockCondition && (quest.key === 'moon1' || quest.key === 'moon2' || quest.key === 'moon3')) {
|
||||
return user.loginIncentives < quest.unlockCondition.incentiveThreshold;
|
||||
}
|
||||
if (user.achievements.quests) return quest.previous && !user.achievements.quests[quest.previous];
|
||||
|
||||
// checks to make sure that previous quest has been completed
|
||||
if (user.achievements.quests) {
|
||||
return quest.previous && !user.achievements.quests[quest.previous];
|
||||
}
|
||||
return quest.previous;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user