From b4f699b7c44c168ef869e5841cb4da31f8e4b549 Mon Sep 17 00:00:00 2001 From: CuriousMagpie Date: Fri, 14 Jan 2022 13:54:41 -0500 Subject: [PATCH] added item.locked to buy functions --- .../script/ops/buy/abstractBuyOperation.js | 17 +++++++++++++++++ website/common/script/ops/buy/buyQuestGem.js | 14 +++++++++----- website/common/script/ops/buy/buyQuestGold.js | 16 ++++++++++------ 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/website/common/script/ops/buy/abstractBuyOperation.js b/website/common/script/ops/buy/abstractBuyOperation.js index 947e453964..27f12750ee 100644 --- a/website/common/script/ops/buy/abstractBuyOperation.js +++ b/website/common/script/ops/buy/abstractBuyOperation.js @@ -54,6 +54,15 @@ export class AbstractBuyOperation { return item.type; } + /** + * Returns the item lock status + * @param item + * @returns {String} + */ + getItemLock (item) { // eslint-disable-line class-methods-use-this + return item.locked; + } + /** * Shortcut to get the translated string without passing `req.language` * @param {String} key - translation key @@ -139,6 +148,10 @@ export class AbstractGoldItemOperation extends AbstractBuyOperation { if (item && item.canOwn && !item.canOwn(user)) { throw new NotAuthorized(this.i18n('cannotBuyItem')); } + + if (item.locked === 'locked') { + throw new NotAuthorized(this.i18n('cannotBuyItem')); + } } subtractCurrency (user, item) { @@ -169,6 +182,10 @@ export class AbstractGemItemOperation extends AbstractBuyOperation { if (!user.balance || user.balance < itemValue * this.quantity) { throw new NotAuthorized(this.i18n('notEnoughGems')); } + + if (item.locked === 'locked') { + throw new NotAuthorized(this.i18n('cannotBuyItem')); + } } subtractCurrency (user, item) { diff --git a/website/common/script/ops/buy/buyQuestGem.js b/website/common/script/ops/buy/buyQuestGem.js index b4835269d4..d15b1edaf6 100644 --- a/website/common/script/ops/buy/buyQuestGem.js +++ b/website/common/script/ops/buy/buyQuestGem.js @@ -8,7 +8,7 @@ import content from '../../content/index'; import errorMessage from '../../libs/errorMessage'; import { AbstractGemItemOperation } from './abstractBuyOperation'; -import getItemInfo from '../../libs/getItemInfo'; +// import itemInfo from '../../libs/getItemInfo'; export class BuyQuestWithGemOperation extends AbstractGemItemOperation { // eslint-disable-line import/prefer-default-export, max-len multiplePurchaseAllowed () { // eslint-disable-line class-methods-use-this @@ -27,6 +27,10 @@ export class BuyQuestWithGemOperation extends AbstractGemItemOperation { // esli return 'quest'; } + getItemLock (item) { // eslint-disable-line class-methods-use-this + return item.locked; + } + extractAndValidateParams (user, req) { this.key = get(req, 'params.key'); const { key } = this; @@ -34,10 +38,10 @@ export class BuyQuestWithGemOperation extends AbstractGemItemOperation { // esli const item = content.quests[key]; - if (getItemInfo.locked) { - throw new - BadRequest(errorMessage(`Prerequisites for ${getItemInfo.text} not met.`)); - } + // if (quest.locked) { + // throw new + // BadRequest(errorMessage(`Prerequisites for ${itemInfo.text} not met.`)); + // } if (!item) throw new NotFound(errorMessage('questNotFound', { key })); diff --git a/website/common/script/ops/buy/buyQuestGold.js b/website/common/script/ops/buy/buyQuestGold.js index a2ae6a674a..bef8987ed3 100644 --- a/website/common/script/ops/buy/buyQuestGold.js +++ b/website/common/script/ops/buy/buyQuestGold.js @@ -14,12 +14,12 @@ export class BuyQuestWithGoldOperation extends AbstractGoldItemOperation { // es return true; } - userAbleToStartMasterClasser (user) { // eslint-disable-line class-methods-use-this - return user.achievements.quests.dilatoryDistress3 - && user.achievements.quests.mayhemMistiflying3 - && user.achievements.quests.stoikalmCalamity3 - && user.achievements.quests.taskwoodsTerror3; - } + // userAbleToStartMasterClasser (user) { // eslint-disable-line class-methods-use-this + // return user.achievements.quests.dilatoryDistress3 + // && user.achievements.quests.mayhemMistiflying3 + // && user.achievements.quests.stoikalmCalamity3 + // && user.achievements.quests.taskwoodsTerror3; + // } getItemKey () { return this.key; @@ -33,6 +33,10 @@ export class BuyQuestWithGoldOperation extends AbstractGoldItemOperation { // es return 'quest'; } + getItemLock (item) { // eslint-disable-line class-methods-use-this + return item.locked; + } + extractAndValidateParams (user, req) { this.key = get(req, 'params.key'); const { key } = this;