Fixed ClassCastException at the end of quest games

This commit is contained in:
Fnoed
2012-03-17 23:50:58 +00:00
parent 2df62d75f6
commit 8bc45fe020
3 changed files with 1024 additions and 1042 deletions

View File

@@ -1,15 +1,5 @@
package forge.gui.home.quest; package forge.gui.home.quest;
import java.io.File;
import java.util.Set;
import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import org.apache.commons.lang3.StringUtils;
import net.miginfocom.swing.MigLayout;
import forge.AllZone; import forge.AllZone;
import forge.Command; import forge.Command;
import forge.Constant; import forge.Constant;
@@ -29,7 +19,6 @@ import forge.properties.NewConstants;
import forge.quest.QuestChallenge; import forge.quest.QuestChallenge;
import forge.quest.QuestController; import forge.quest.QuestController;
import forge.quest.QuestEvent; import forge.quest.QuestEvent;
import forge.quest.QuestEvent.QuestEventType;
import forge.quest.QuestUtil; import forge.quest.QuestUtil;
import forge.quest.data.QuestAchievements; import forge.quest.data.QuestAchievements;
import forge.quest.data.QuestAssets; import forge.quest.data.QuestAssets;
@@ -37,6 +26,14 @@ import forge.quest.data.QuestMode;
import forge.quest.data.QuestPreferences.QPref; import forge.quest.data.QuestPreferences.QPref;
import forge.quest.data.item.QuestItemType; import forge.quest.data.item.QuestItemType;
import forge.quest.data.pet.QuestPetAbstract; import forge.quest.data.pet.QuestPetAbstract;
import net.miginfocom.swing.MigLayout;
import org.apache.commons.lang3.StringUtils;
import javax.swing.*;
import java.io.File;
import java.util.Set;
import static forge.quest.QuestEvent.QuestEventType.CHALLENGE;
/** /**
* Utilities for the quest submenu, all over the MVC spectrum. * Utilities for the quest submenu, all over the MVC spectrum.
@@ -217,7 +214,7 @@ public class SubmenuQuestUtil {
int lifeAI = 20; int lifeAI = 20;
int lifeHuman = 20; int lifeHuman = 20;
if (selectedOpponent.getEvent().getEventType().equals(QuestEventType.CHALLENGE)) { if (selectedOpponent.getEvent().getEventType() == CHALLENGE) {
int extraLife = 0; int extraLife = 0;
// If zeppelin has been purchased, gear will be at level 2. // If zeppelin has been purchased, gear will be at level 2.
@@ -300,7 +297,7 @@ public class SubmenuQuestUtil {
// Name // Name
final FLabel lblName = new FLabel.Builder().hoverable(false).build(); final FLabel lblName = new FLabel.Builder().hoverable(false).build();
if (event.getEventType().equals(QuestEventType.CHALLENGE)) { if (event.getEventType() == CHALLENGE) {
lblName.setText(event.getTitle() + ": " lblName.setText(event.getTitle() + ": "
+ StringUtils.capitalize(event.getDifficulty()) + StringUtils.capitalize(event.getDifficulty())
+ (((QuestChallenge) event).isRepeatable() ? ", Repeatable" : "")); + (((QuestChallenge) event).isRepeatable() ? ", Repeatable" : ""));

View File

@@ -17,15 +17,12 @@
*/ */
package forge.quest; package forge.quest;
import forge.*;
import forge.quest.data.QuestAssets;
import java.util.List; import java.util.List;
import forge.AllZone; import static forge.quest.QuestEvent.QuestEventType.CHALLENGE;
import forge.Card;
import forge.CardList;
import forge.CardUtil;
import forge.Player;
import forge.quest.QuestEvent.QuestEventType;
import forge.quest.data.QuestAssets;
/** /**
* <p> * <p>
@@ -65,7 +62,7 @@ public class QuestUtil {
public static CardList getComputerStartingCards(final QuestEvent qe) { public static CardList getComputerStartingCards(final QuestEvent qe) {
final CardList list = new CardList(); final CardList list = new CardList();
if (qe.getEventType().equals(QuestEventType.CHALLENGE)) { if (qe.getEventType() == CHALLENGE) {
final List<String> extras = ((QuestChallenge) qe).getAIExtraCards(); final List<String> extras = ((QuestChallenge) qe).getAIExtraCards();
for (final String s : extras) { for (final String s : extras) {
@@ -116,7 +113,7 @@ public class QuestUtil {
public static CardList getHumanStartingCards(final QuestAssets qa, final QuestEvent qe) { public static CardList getHumanStartingCards(final QuestAssets qa, final QuestEvent qe) {
final CardList list = QuestUtil.getHumanStartingCards(qa); final CardList list = QuestUtil.getHumanStartingCards(qa);
if (qe.getEventType().equals(QuestEventType.CHALLENGE)) { if (qe.getEventType() == CHALLENGE) {
final List<String> extras = ((QuestChallenge) qe).getHumanExtraCards(); final List<String> extras = ((QuestChallenge) qe).getHumanExtraCards();
for (final String s : extras) { for (final String s : extras) {

View File

@@ -17,31 +17,11 @@
*/ */
package forge.view.match; package forge.view.match;
import java.awt.Color; import forge.*;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import net.slightlymagic.braids.util.UtilFunctions;
import forge.AllZone;
import forge.CardList;
import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.Player;
import forge.Singletons;
import forge.control.FControl; import forge.control.FControl;
import forge.control.match.ControlWinLose; import forge.control.match.ControlWinLose;
import forge.game.GameEndReason; import forge.game.*;
import forge.game.GameFormat;
import forge.game.GameLossReason;
import forge.game.GameNew;
import forge.game.GamePlayerRating;
import forge.game.GameSummary;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
import forge.gui.ListChooser; import forge.gui.ListChooser;
import forge.gui.OverlayUtils; import forge.gui.OverlayUtils;
@@ -55,12 +35,20 @@ import forge.quest.QuestChallenge;
import forge.quest.QuestController; import forge.quest.QuestController;
import forge.quest.QuestEvent; import forge.quest.QuestEvent;
import forge.quest.QuestUtil; import forge.quest.QuestUtil;
import forge.quest.QuestEvent.QuestEventType;
import forge.quest.data.QuestAssets; import forge.quest.data.QuestAssets;
import forge.quest.data.QuestMode; import forge.quest.data.QuestMode;
import forge.quest.data.QuestPreferences.QPref; import forge.quest.data.QuestPreferences.QPref;
import forge.quest.data.item.QuestItemType; import forge.quest.data.item.QuestItemType;
import forge.util.MyRandom; import forge.util.MyRandom;
import net.slightlymagic.braids.util.UtilFunctions;
import javax.swing.*;
import java.awt.Color;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.List;
import static forge.quest.QuestEvent.QuestEventType.CHALLENGE;
/** /**
* <p> * <p>
@@ -120,7 +108,7 @@ public class QuestWinLoseHandler extends ControlWinLose {
if (qData.getMode() == QuestMode.Fantasy) { if (qData.getMode() == QuestMode.Fantasy) {
int extraLife = 0; int extraLife = 0;
if (qEvent.getEventType().equals(QuestEventType.CHALLENGE)) { if (qEvent.getEventType() == CHALLENGE) {
if (qa.hasItem(QuestItemType.ZEPPELIN)) { if (qa.hasItem(QuestItemType.ZEPPELIN)) {
extraLife = 3; extraLife = 3;
} }
@@ -131,7 +119,7 @@ public class QuestWinLoseHandler extends ControlWinLose {
final int humanLife = qa.getLife(qData.getMode()) + extraLife; final int humanLife = qa.getLife(qData.getMode()) + extraLife;
int computerLife = 20; int computerLife = 20;
if (qEvent.getEventType().equals("challenge")) { if (qEvent.getEventType() == CHALLENGE) {
computerLife = ((QuestChallenge) qEvent).getAILife(); computerLife = ((QuestChallenge) qEvent).getAILife();
} }
@@ -194,7 +182,7 @@ public class QuestWinLoseHandler extends ControlWinLose {
this.awardEventCredits(); this.awardEventCredits();
// Challenge reward credits // Challenge reward credits
if (qEvent.getEventType().equals(QuestEventType.CHALLENGE)) { if (qEvent.getEventType() == CHALLENGE) {
this.awardChallengeWin(); this.awardChallengeWin();
} }
@@ -289,7 +277,7 @@ public class QuestWinLoseHandler extends ControlWinLose {
qData.getCards().clearShopList(); qData.getCards().clearShopList();
if (!((QuestChallenge) qEvent).isRepeatable()) { if (qEvent.getEventType() == CHALLENGE && !((QuestChallenge) qEvent).isRepeatable()) {
qData.getAchievements().addCompletedChallenge(((QuestChallenge) qEvent).getId()); qData.getAchievements().addCompletedChallenge(((QuestChallenge) qEvent).getId());
} }