From 7d00fe1ecbf3381253edc6f4ae474ddfef1a45e9 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Tue, 11 Jan 2022 15:42:48 -0500 Subject: [PATCH] more quest logic attempts --- website/common/script/content/quests.js | 81 ++++++++++++++++++----- website/common/script/libs/getItemInfo.js | 81 ++++++++++++----------- 2 files changed, 108 insertions(+), 54 deletions(-) diff --git a/website/common/script/content/quests.js b/website/common/script/content/quests.js index 0c41b5e002..715a7d3af2 100644 --- a/website/common/script/content/quests.js +++ b/website/common/script/content/quests.js @@ -623,7 +623,10 @@ const quests = { notes: t('questDilatoryDistress2Notes'), group: 'questGroupDilatoryDistress', completion: t('questDilatoryDistress2Completion'), - previous1: 'dilatoryDistress1', + previous: 'dilatoryDistress1', + prereqQuests: [ + 'dilatoryDistress1', + ], value: 4, goldValue: 300, category: 'gold', @@ -663,8 +666,11 @@ const quests = { notes: t('questDilatoryDistress3Notes'), group: 'questGroupDilatoryDistress', completion: t('questDilatoryDistress3Completion'), - previous1: 'dilatoryDistress1', - previous2: 'dilatoryDistress2', + previous: 'dilatoryDistress2', + prereqQuests: [ + 'dilatoryDistress1', + 'dilatoryDistress2', + ], value: 4, goldValue: 400, category: 'gold', @@ -745,7 +751,10 @@ const quests = { notes: t('questMayhemMistiflying2Notes'), group: 'questGroupMayhemMistiflying', completion: t('questMayhemMistiflying2Completion'), - previous1: 'mayhemMistiflying1', + previous: 'mayhemMistiflying1', + prereqQuests: [ + 'mayhemMistiflying1', + ], value: 4, goldValue: 300, category: 'gold', @@ -780,8 +789,11 @@ const quests = { notes: t('questMayhemMistiflying3Notes'), group: 'questGroupMayhemMistiflying', completion: t('questMayhemMistiflying3Completion'), - previous1: 'mayhemMistiflying1', - previous2: 'mayhemMistiflying2', + previous: 'mayhemMistiflying2', + prereqQuests: [ + 'mayhemMistiflying1', + 'mayhemMistiflying2', + ], value: 4, goldValue: 400, category: 'gold', @@ -862,7 +874,10 @@ const quests = { notes: t('questStoikalmCalamity2Notes'), group: 'questGroupStoikalmCalamity', completion: t('questStoikalmCalamity2Completion'), - previous1: 'stoikalmCalamity1', + previous: 'stoikalmCalamity1', + prereqQuests: [ + 'stoikalmCalamity1', + ], value: 4, goldValue: 300, category: 'gold', @@ -889,8 +904,11 @@ const quests = { notes: t('questStoikalmCalamity3Notes'), group: 'questGroupStoikalmCalamity', completion: t('questStoikalmCalamity3Completion'), - previous1: 'stoikalmCalamity1', - previous2: 'stoikalmCalamity2', + previous: 'stoikalmCalamity2', + prereqQuests: [ + 'stoikalmCalamity1', + 'stoikalmCalamity2', + ], value: 4, goldValue: 400, category: 'gold', @@ -971,7 +989,10 @@ const quests = { notes: t('questTaskwoodsTerror2Notes'), group: 'questGroupTaskwoodsTerror', completion: t('questTaskwoodsTerror2Completion'), - previous1: 'taskwoodsTerror1', + previous: 'taskwoodsTerror1', + prereqQuests: [ + 'taskwoodsTerror1', + ], value: 4, goldValue: 300, category: 'gold', @@ -1006,8 +1027,11 @@ const quests = { notes: t('questTaskwoodsTerror3Notes'), group: 'questGroupTaskwoodsTerror', completion: t('questTaskwoodsTerror3Completion'), - previous1: 'taskwoodsTerror1', - previous2: 'taskwoodsTerror2', + previous: 'taskwoodsTerror2', + prereqQuests: [ + 'taskwoodsTerror1', + 'taskwoodsTerror2', + ], value: 4, goldValue: 400, category: 'gold', @@ -1047,6 +1071,20 @@ const quests = { group: 'questGroupLostMasterclasser', completion: t('questLostMasterclasser1Completion'), value: 4, + prereqQuests: [ + 'dilatoryDistress1', + 'dilatoryDistress2', + 'dilatoryDistress3', + 'mayhemMistiflying1', + 'mayhemMistiflying2', + 'mayhemMistiflying3', + 'stoikalmCalamity1', + 'stoikalmCalamity2', + 'stoikalmCalamity3', + 'taskwoodsTerror1', + 'taskwoodsTerror2', + 'taskwoodsTerror3', + ], goldValue: 400, category: 'gold', collect: { @@ -1113,6 +1151,9 @@ const quests = { group: 'questGroupLostMasterclasser', previous1: 'lostMasterclasser1', completion: t('questLostMasterclasser2Completion'), + prereqQuests: [ + 'lostMasterclasser1', + ], value: 4, goldValue: 500, category: 'gold', @@ -1174,8 +1215,11 @@ const quests = { notes: t('questLostMasterclasser3Notes'), group: 'questGroupLostMasterclasser', completion: t('questLostMasterclasser3Completion'), - previous1: 'lostMasterclasser1', - previous2: 'lostMasterclasser2', + previous: 'lostMasterclasser2', + prereqQuests: [ + 'lostMasterclasser1', + 'lostMasterclasser2', + ], value: 4, goldValue: 600, category: 'gold', @@ -1228,9 +1272,12 @@ const quests = { notes: t('questLostMasterclasser4Notes'), group: 'questGroupLostMasterclasser', completion: t('questLostMasterclasser4Completion'), - previous1: 'lostMasterclasser1', - previous2: 'lostMasterclasser2', - previous3: 'lostMasterclasser3', + previous: 'lostMasterclasser3', + prereqQuests: [ + 'lostMasterclasser1', + 'lostMasterclasser2', + 'lostMasterclasser3', + ], value: 4, goldValue: 700, category: 'gold', diff --git a/website/common/script/libs/getItemInfo.js b/website/common/script/libs/getItemInfo.js index 318e37054f..483afb9a8f 100644 --- a/website/common/script/libs/getItemInfo.js +++ b/website/common/script/libs/getItemInfo.js @@ -10,63 +10,70 @@ import isPinned from './isPinned'; import isFreeRebirth from './isFreeRebirth'; import getOfficialPinnedItems from './getOfficialPinnedItems'; -function userAbleToStartMasterclasser (user) { - return ( - user.achievements.quests.dilatoryDistress3 - && user.achievements.quests.mayhemMistiflying3 - && user.achievements.quests.stoikalmCalamity3 - && user.achievements.quests.taskwoodsTerror3 - ); -} +// function userAbleToStartMasterclasser (user) { +// return ( +// user.achievements.quests.dilatoryDistress3 +// && user.achievements.quests.mayhemMistiflying3 +// && user.achievements.quests.stoikalmCalamity3 +// && user.achievements.quests.taskwoodsTerror3 +// ); +// } function lockQuest (quest, user) { // masterclasser requirement // roll this into other series checks - 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 - ); - } + // 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 + // ); + // } // level requirements - if (quest.lvl && user.stats.lvl < quest.lvl) return true; + // if (quest.lvl && user.stats.lvl < quest.lvl) return true; // unlockCondition requirements for Lunar Battle - if ( - quest.unlockCondition - && (quest.key === 'moon1' || quest.key === 'moon2' || quest.key === 'moon3') - ) { - return user.loginIncentives < quest.unlockCondition.incentiveThreshold; - } + // fix this bc we shouldn't be hard coding in specific quests + // if ( + // quest.unlockCondition + // && (quest.key === 'moon1' || quest.key === 'moon2' || quest.key === 'moon3') + // ) { + // return user.loginIncentives < quest.unlockCondition.incentiveThreshold; + // } // checks to make sure previous quest in chain is completed - if (user.achievements.quests) { - return quest.previous && !user.achievements.quests[quest.previous]; - } + // if (user.achievements.quests) { + // return quest.previous && !user.achievements.quests[quest.previous]; + // } - // TEST THIS ON MONDAYYYY + // checks quest & user level against quest level if (quest.lvl && user.stats.lvl < quest.lvl) return true; + + // checks unlockCondition.incentiveThreshold if ( quest.unlockCondition && quest.unlockCondition.incentiveThreshold && user.loginIncentives < quest.unlockCondition.incentiveThreshold ) return true; + + // checks series quests, including Masterclasser if (quest.prereqQuests) { if (!user.achievements.quests) return true; + const achievedQuestKeys = keys(user.achievements.quests); + // console.log(achievedQuestKeys); // this is returning all quests in array even if value = 0 if (intersection(quest.prereqQuests, achievedQuestKeys) !== quest.prereqQuests) return true; }