mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-13 23:42:12 +00:00
more quest logic attempts
This commit is contained in:
parent
29ab8856ca
commit
7d00fe1ecb
2 changed files with 108 additions and 54 deletions
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue