mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-15 08:22:17 +00:00
added item.locked to buy functions
This commit is contained in:
parent
874954b16b
commit
b4f699b7c4
3 changed files with 36 additions and 11 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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 }));
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue