mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
working on quest logic
This commit is contained in:
@@ -70,9 +70,6 @@ const quests = {
|
||||
text: t('questAtom1Text'),
|
||||
notes: t('questAtom1Notes'),
|
||||
completion: t('questAtom1Completion'),
|
||||
// prerequisite: {
|
||||
// lvl: 15,
|
||||
// },
|
||||
group: 'questGroupAtom',
|
||||
value: 4,
|
||||
lvl: 15,
|
||||
@@ -101,10 +98,6 @@ const quests = {
|
||||
notes: t('questAtom2Notes'),
|
||||
completion: t('questAtom2Completion'),
|
||||
group: 'questGroupAtom',
|
||||
// prerequisite: {
|
||||
// lvl: 15,
|
||||
// atom1: true,
|
||||
// },
|
||||
previous: 'atom1',
|
||||
value: 4,
|
||||
lvl: 15,
|
||||
@@ -131,11 +124,6 @@ const quests = {
|
||||
text: t('questAtom3Text'),
|
||||
notes: t('questAtom3Notes'),
|
||||
group: 'questGroupAtom',
|
||||
// prerequisite: {
|
||||
// lvl: 15,
|
||||
// atom1: true,
|
||||
// atom2: true,
|
||||
// },
|
||||
previous: 'atom2',
|
||||
completion: t('questAtom3Completion'),
|
||||
value: 4,
|
||||
@@ -364,6 +352,9 @@ const quests = {
|
||||
value: 4,
|
||||
lvl: 60,
|
||||
category: 'unlockable',
|
||||
unlockCondition: {
|
||||
lvl: 60,
|
||||
},
|
||||
collect: {
|
||||
moonstone: {
|
||||
text: t('questMoonstone1CollectMoonstone'),
|
||||
@@ -389,9 +380,13 @@ const quests = {
|
||||
completion: t('questMoonstone2Completion'),
|
||||
group: 'questGroupMoonstone',
|
||||
value: 4,
|
||||
lvl: 60,
|
||||
// lvl: 60,
|
||||
previous: 'moonstone1',
|
||||
category: 'unlockable',
|
||||
unlockCondition: {
|
||||
lvl: 60,
|
||||
previous: 'moonstone1',
|
||||
},
|
||||
boss: {
|
||||
name: t('questMoonstone2Boss'),
|
||||
hp: 1500,
|
||||
@@ -419,6 +414,10 @@ const quests = {
|
||||
value: 4,
|
||||
lvl: 60,
|
||||
category: 'unlockable',
|
||||
unlockCondition: {
|
||||
lvl: 60,
|
||||
previous: 'moonstone2',
|
||||
},
|
||||
boss: {
|
||||
name: t('questMoonstone3Boss'),
|
||||
hp: 2000,
|
||||
|
||||
@@ -18,10 +18,18 @@ 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 === '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 !(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;
|
||||
@@ -30,13 +38,15 @@ function lockQuest (quest, user) {
|
||||
if (quest.lvl && user.stats.lvl < quest.lvl) return true;
|
||||
|
||||
// unlockCondition requirements
|
||||
if (quest.unlockCondition && (quest.key === 'moon1' || quest.key === 'moon2' || quest.key === 'moon3')) {
|
||||
if (quest.unlockCondition
|
||||
&& (quest.key === 'moon1' || quest.key === 'moon2' || quest.key === 'moon3')) {
|
||||
return user.loginIncentives < quest.unlockCondition.incentiveThreshold;
|
||||
}
|
||||
|
||||
// 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
|
||||
&& !user.achievements.quests[quest.previous];
|
||||
}
|
||||
return quest.previous;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,8 @@ export class BuyQuestWithGoldOperation extends AbstractGoldItemOperation { // es
|
||||
|
||||
checkPrerequisites (user, questKey) {
|
||||
const item = content.quests[questKey];
|
||||
if (questKey.startsWith('lostMasterclasser') && !this.userAbleToStartMasterClasser(user)) {
|
||||
if (questKey.startsWith('lostMasterclasser')
|
||||
&& !this.userAbleToStartMasterClasser(user)) {
|
||||
throw new NotAuthorized(this.i18n('questUnlockLostMasterclasser'));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user