- Adding purchase restrictions for Quest Pet based on the user's level

This commit is contained in:
Sol
2014-09-17 03:04:52 +00:00
parent 6d0f1364be
commit ba3b6cbce0
8 changed files with 32 additions and 11 deletions

View File

@@ -144,7 +144,14 @@ public class ViewStall extends JPanel {
}
final QuestAssets qS = qData.getAssets();
this.lblStats.setText("Credits: " + qS.getCredits() + " Life: " + qS.getLife(qData.getMode()));
StringBuilder sb = new StringBuilder();
sb.append("Credits: ");
sb.append(qS.getCredits());
sb.append(" Life: ");
sb.append(qS.getLife(qData.getMode()));
sb.append(" Level: ");
sb.append(qData.getLevel());
this.lblStats.setText(sb.toString());
final List<IQuestBazaarItem> items = qData.getBazaar().getItems(qData, this.stall.getName());

View File

@@ -302,7 +302,7 @@ public class QuestController {
* @return the rank
*/
public String getRank() {
return getRank(this.model.getAchievements().getLevel());
return getRank(getLevel());
}
public String getRank(int level) {
@@ -312,6 +312,10 @@ public class QuestController {
return QuestController.RANK_TITLES[level];
}
public int getLevel() {
return this.model.getAchievements().getLevel();
}
/**
* TODO: Write javadoc for this method.
*

View File

@@ -17,6 +17,7 @@
*/
package forge.quest.bazaar;
import forge.quest.QuestController;
import forge.quest.data.QuestAssets;
/**
@@ -78,7 +79,7 @@ public interface IQuestBazaarItem extends Comparable<Object> {
* <code>false</code> if the item should not be displayed in store
* since, for example, prerequisites are not met
*/
boolean isAvailableForPurchase(QuestAssets questAssets);
boolean isAvailableForPurchase(QuestAssets questAssets, QuestController qCtrl);
/**
* Executed when the item is bought.

View File

@@ -164,7 +164,7 @@ public class QuestBazaarManager {
QuestAssets qA = FModel.getQuest().getAssets();
for (final IQuestBazaarItem purchasable : itemsOnStalls.get(stallName)) {
if (purchasable.isAvailableForPurchase(qA)) {
if (purchasable.isAvailableForPurchase(qA, qCtrl)) {
ret.add(purchasable);
}
}

View File

@@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import forge.assets.FSkinProp;
import forge.quest.QuestController;
import forge.quest.data.QuestAssets;
/**
@@ -118,11 +119,13 @@ public class QuestItemBasic implements IQuestBazaarItem {
* isAvailableForPurchase.
* </p>
*
*
* @param qA the q a
* @param qCtrl
* @return a boolean.
*/
@Override
public boolean isAvailableForPurchase(final QuestAssets qA) {
public boolean isAvailableForPurchase(final QuestAssets qA, QuestController qCtrl) {
return qA.getItemLevel(itemType) < maxLevel;
}

View File

@@ -17,6 +17,7 @@
*/
package forge.quest.bazaar;
import forge.quest.QuestController;
import forge.quest.data.QuestAssets;
/**
@@ -39,8 +40,8 @@ public class QuestItemCharmOfVigor extends QuestItemBasic {
/** {@inheritDoc} */
@Override
public final boolean isAvailableForPurchase(QuestAssets qA) {
return super.isAvailableForPurchase(qA);
public final boolean isAvailableForPurchase(QuestAssets qA, QuestController qCtrl) {
return super.isAvailableForPurchase(qA, qCtrl);
}

View File

@@ -17,6 +17,7 @@
*/
package forge.quest.bazaar;
import forge.quest.QuestController;
import forge.quest.data.QuestAssets;
/**
@@ -39,8 +40,8 @@ public class QuestItemZeppelin extends QuestItemBasic {
/** {@inheritDoc} */
@Override
public final boolean isAvailableForPurchase(QuestAssets qA) {
return super.isAvailableForPurchase(qA) && qA.hasItem(QuestItemType.MAP);
public final boolean isAvailableForPurchase(QuestAssets qA, QuestController qCtrl) {
return super.isAvailableForPurchase(qA, qCtrl) && qA.hasItem(QuestItemType.MAP);
}

View File

@@ -25,6 +25,7 @@ import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import forge.item.PaperToken;
import forge.properties.ForgeConstants;
import forge.quest.QuestController;
import forge.quest.data.QuestAssets;
/**
@@ -234,12 +235,15 @@ public class QuestPetController implements IQuestBazaarItem {
* <p>
* isAvailableForPurchase.
* </p>
*
* @param qA quest assets
* @param qCtrl
* @return a boolean.
*/
@Override
public boolean isAvailableForPurchase(final QuestAssets qA) {
return this.getPetLevel(qA) < this.getMaxLevel();
public boolean isAvailableForPurchase(final QuestAssets qA, QuestController qCtrl) {
return this.getPetLevel(qA) < this.getMaxLevel() &&
(qCtrl == null || qCtrl.getLevel() >= this.getPetLevel(qA));
}
/**