working on quest logic

This commit is contained in:
CuriousMagpie
2022-01-07 15:20:21 -05:00
parent 55ec42678e
commit 9b849e095c
3 changed files with 29 additions and 19 deletions

View File

@@ -70,9 +70,6 @@ const quests = {
text: t('questAtom1Text'), text: t('questAtom1Text'),
notes: t('questAtom1Notes'), notes: t('questAtom1Notes'),
completion: t('questAtom1Completion'), completion: t('questAtom1Completion'),
// prerequisite: {
// lvl: 15,
// },
group: 'questGroupAtom', group: 'questGroupAtom',
value: 4, value: 4,
lvl: 15, lvl: 15,
@@ -101,10 +98,6 @@ const quests = {
notes: t('questAtom2Notes'), notes: t('questAtom2Notes'),
completion: t('questAtom2Completion'), completion: t('questAtom2Completion'),
group: 'questGroupAtom', group: 'questGroupAtom',
// prerequisite: {
// lvl: 15,
// atom1: true,
// },
previous: 'atom1', previous: 'atom1',
value: 4, value: 4,
lvl: 15, lvl: 15,
@@ -131,11 +124,6 @@ const quests = {
text: t('questAtom3Text'), text: t('questAtom3Text'),
notes: t('questAtom3Notes'), notes: t('questAtom3Notes'),
group: 'questGroupAtom', group: 'questGroupAtom',
// prerequisite: {
// lvl: 15,
// atom1: true,
// atom2: true,
// },
previous: 'atom2', previous: 'atom2',
completion: t('questAtom3Completion'), completion: t('questAtom3Completion'),
value: 4, value: 4,
@@ -364,6 +352,9 @@ const quests = {
value: 4, value: 4,
lvl: 60, lvl: 60,
category: 'unlockable', category: 'unlockable',
unlockCondition: {
lvl: 60,
},
collect: { collect: {
moonstone: { moonstone: {
text: t('questMoonstone1CollectMoonstone'), text: t('questMoonstone1CollectMoonstone'),
@@ -389,9 +380,13 @@ const quests = {
completion: t('questMoonstone2Completion'), completion: t('questMoonstone2Completion'),
group: 'questGroupMoonstone', group: 'questGroupMoonstone',
value: 4, value: 4,
lvl: 60, // lvl: 60,
previous: 'moonstone1', previous: 'moonstone1',
category: 'unlockable', category: 'unlockable',
unlockCondition: {
lvl: 60,
previous: 'moonstone1',
},
boss: { boss: {
name: t('questMoonstone2Boss'), name: t('questMoonstone2Boss'),
hp: 1500, hp: 1500,
@@ -419,6 +414,10 @@ const quests = {
value: 4, value: 4,
lvl: 60, lvl: 60,
category: 'unlockable', category: 'unlockable',
unlockCondition: {
lvl: 60,
previous: 'moonstone2',
},
boss: { boss: {
name: t('questMoonstone3Boss'), name: t('questMoonstone3Boss'),
hp: 2000, hp: 2000,

View File

@@ -18,10 +18,18 @@ function userAbleToStartMasterclasser (user) {
function lockQuest (quest, user) { function lockQuest (quest, user) {
// masterclasser requirement // masterclasser requirement
if (quest.key === 'lostMasterclasser1') return !userAbleToStartMasterclasser(user); if (quest.key === 'lostMasterclasser1') return !userAbleToStartMasterclasser(user);
if (quest.key === 'lostMasterclasser2' || quest.key === 'lostMasterclasser3' || quest.key === 'lostMasterclasser4') { if (quest.key === 'lostMasterclasser2'
return !(userAbleToStartMasterclasser(user) && user.achievements.quests[quest.previous]); || 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 // checks for multiple prerequisites
// if (quest.prerequisite === true) return true; // if (quest.prerequisite === true) return true;
@@ -30,13 +38,15 @@ function lockQuest (quest, user) {
if (quest.lvl && user.stats.lvl < quest.lvl) return true; if (quest.lvl && user.stats.lvl < quest.lvl) return true;
// unlockCondition requirements // 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; return user.loginIncentives < quest.unlockCondition.incentiveThreshold;
} }
// checks to make sure that previous quest has been completed // checks to make sure that previous quest has been completed
if (user.achievements.quests) { if (user.achievements.quests) {
return quest.previous && !user.achievements.quests[quest.previous]; return quest.previous
&& !user.achievements.quests[quest.previous];
} }
return quest.previous; return quest.previous;
} }

View File

@@ -53,7 +53,8 @@ export class BuyQuestWithGoldOperation extends AbstractGoldItemOperation { // es
checkPrerequisites (user, questKey) { checkPrerequisites (user, questKey) {
const item = content.quests[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')); throw new NotAuthorized(this.i18n('questUnlockLostMasterclasser'));
} }