mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
- Adding purchase restrictions for Quest Pet based on the user's level
This commit is contained in:
@@ -144,7 +144,14 @@ public class ViewStall extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final QuestAssets qS = qData.getAssets();
|
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());
|
final List<IQuestBazaarItem> items = qData.getBazaar().getItems(qData, this.stall.getName());
|
||||||
|
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ public class QuestController {
|
|||||||
* @return the rank
|
* @return the rank
|
||||||
*/
|
*/
|
||||||
public String getRank() {
|
public String getRank() {
|
||||||
return getRank(this.model.getAchievements().getLevel());
|
return getRank(getLevel());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRank(int level) {
|
public String getRank(int level) {
|
||||||
@@ -312,6 +312,10 @@ public class QuestController {
|
|||||||
return QuestController.RANK_TITLES[level];
|
return QuestController.RANK_TITLES[level];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getLevel() {
|
||||||
|
return this.model.getAchievements().getLevel();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Write javadoc for this method.
|
* TODO: Write javadoc for this method.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package forge.quest.bazaar;
|
package forge.quest.bazaar;
|
||||||
|
|
||||||
|
import forge.quest.QuestController;
|
||||||
import forge.quest.data.QuestAssets;
|
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
|
* <code>false</code> if the item should not be displayed in store
|
||||||
* since, for example, prerequisites are not met
|
* since, for example, prerequisites are not met
|
||||||
*/
|
*/
|
||||||
boolean isAvailableForPurchase(QuestAssets questAssets);
|
boolean isAvailableForPurchase(QuestAssets questAssets, QuestController qCtrl);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executed when the item is bought.
|
* Executed when the item is bought.
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ public class QuestBazaarManager {
|
|||||||
|
|
||||||
QuestAssets qA = FModel.getQuest().getAssets();
|
QuestAssets qA = FModel.getQuest().getAssets();
|
||||||
for (final IQuestBazaarItem purchasable : itemsOnStalls.get(stallName)) {
|
for (final IQuestBazaarItem purchasable : itemsOnStalls.get(stallName)) {
|
||||||
if (purchasable.isAvailableForPurchase(qA)) {
|
if (purchasable.isAvailableForPurchase(qA, qCtrl)) {
|
||||||
ret.add(purchasable);
|
ret.add(purchasable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||||
|
|
||||||
import forge.assets.FSkinProp;
|
import forge.assets.FSkinProp;
|
||||||
|
import forge.quest.QuestController;
|
||||||
import forge.quest.data.QuestAssets;
|
import forge.quest.data.QuestAssets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -118,11 +119,13 @@ public class QuestItemBasic implements IQuestBazaarItem {
|
|||||||
* isAvailableForPurchase.
|
* isAvailableForPurchase.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
|
*
|
||||||
* @param qA the q a
|
* @param qA the q a
|
||||||
|
* @param qCtrl
|
||||||
* @return a boolean.
|
* @return a boolean.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailableForPurchase(final QuestAssets qA) {
|
public boolean isAvailableForPurchase(final QuestAssets qA, QuestController qCtrl) {
|
||||||
return qA.getItemLevel(itemType) < maxLevel;
|
return qA.getItemLevel(itemType) < maxLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package forge.quest.bazaar;
|
package forge.quest.bazaar;
|
||||||
|
|
||||||
|
import forge.quest.QuestController;
|
||||||
import forge.quest.data.QuestAssets;
|
import forge.quest.data.QuestAssets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,8 +40,8 @@ public class QuestItemCharmOfVigor extends QuestItemBasic {
|
|||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
public final boolean isAvailableForPurchase(QuestAssets qA) {
|
public final boolean isAvailableForPurchase(QuestAssets qA, QuestController qCtrl) {
|
||||||
return super.isAvailableForPurchase(qA);
|
return super.isAvailableForPurchase(qA, qCtrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package forge.quest.bazaar;
|
package forge.quest.bazaar;
|
||||||
|
|
||||||
|
import forge.quest.QuestController;
|
||||||
import forge.quest.data.QuestAssets;
|
import forge.quest.data.QuestAssets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,8 +40,8 @@ public class QuestItemZeppelin extends QuestItemBasic {
|
|||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
public final boolean isAvailableForPurchase(QuestAssets qA) {
|
public final boolean isAvailableForPurchase(QuestAssets qA, QuestController qCtrl) {
|
||||||
return super.isAvailableForPurchase(qA) && qA.hasItem(QuestItemType.MAP);
|
return super.isAvailableForPurchase(qA, qCtrl) && qA.hasItem(QuestItemType.MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
|||||||
|
|
||||||
import forge.item.PaperToken;
|
import forge.item.PaperToken;
|
||||||
import forge.properties.ForgeConstants;
|
import forge.properties.ForgeConstants;
|
||||||
|
import forge.quest.QuestController;
|
||||||
import forge.quest.data.QuestAssets;
|
import forge.quest.data.QuestAssets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -234,12 +235,15 @@ public class QuestPetController implements IQuestBazaarItem {
|
|||||||
* <p>
|
* <p>
|
||||||
* isAvailableForPurchase.
|
* isAvailableForPurchase.
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
* @param qA quest assets
|
* @param qA quest assets
|
||||||
|
* @param qCtrl
|
||||||
* @return a boolean.
|
* @return a boolean.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailableForPurchase(final QuestAssets qA) {
|
public boolean isAvailableForPurchase(final QuestAssets qA, QuestController qCtrl) {
|
||||||
return this.getPetLevel(qA) < this.getMaxLevel();
|
return this.getPetLevel(qA) < this.getMaxLevel() &&
|
||||||
|
(qCtrl == null || qCtrl.getLevel() >= this.getPetLevel(qA));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user