Support starting quest duels

This commit is contained in:
drdev
2014-07-12 04:44:28 +00:00
parent 0ac7971d7d
commit a3fea9df01
8 changed files with 110 additions and 100 deletions

View File

@@ -23,7 +23,7 @@ public abstract class LaunchScreen extends FScreen {
private static final float PADDING = IMAGE_HEIGHT * 0.025f;
protected final StartButton btnStart = add(new StartButton());
private boolean creatingMatch;
protected boolean creatingMatch;
public LaunchScreen(String headerCaption) {
super(headerCaption);
@@ -47,7 +47,7 @@ public abstract class LaunchScreen extends FScreen {
public final Set<GameType> appliedVariants = new HashSet<GameType>();
}
private void startMatch() {
protected void startMatch() {
if (creatingMatch) { return; }
creatingMatch = true; //ensure user doesn't create multiple matches by tapping multiple times

View File

@@ -1,17 +1,8 @@
package forge.screens.quest;
import forge.model.FModel;
import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
public class QuestChallengesScreen extends LaunchScreen {
public class QuestChallengesScreen extends QuestLaunchScreen {
public QuestChallengesScreen() {
super("Quest Duels", QuestMenu.getMenu());
}
@Override
public void onActivate() {
update();
super();
}
@Override
@@ -20,14 +11,12 @@ public class QuestChallengesScreen extends LaunchScreen {
}
public void update() {
QuestUtil.updateQuestView(QuestMenu.getMenu());
setHeaderCaption(FModel.getQuest().getName() + " - Challenges\n(" + FModel.getQuest().getRank() + ")");
@Override
protected String getGameType() {
return "Challenges";
}
@Override
protected boolean buildLaunchParams(LaunchParams launchParams) {
// TODO Auto-generated method stub
return false;
public void onUpdate() {
}
}

View File

@@ -11,16 +11,11 @@ import forge.interfaces.ICheckBox;
import forge.interfaces.IComboBox;
import forge.model.FModel;
import forge.quest.QuestEventDuel;
import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
import forge.toolbox.FCheckBox;
import forge.toolbox.FComboBox;
import forge.toolbox.FLabel;
import forge.toolbox.FOptionPane;
public class QuestDuelsScreen extends LaunchScreen {
private static final float PADDING = FOptionPane.PADDING;
public class QuestDuelsScreen extends QuestLaunchScreen {
private final FComboBox<String> cbxPet = add(new FComboBox<String>());
private final FCheckBox cbCharm = add(new FCheckBox("Use Charm of Vigor"));
private final FCheckBox cbPlant = add(new FCheckBox("Summon Plant"));
@@ -42,12 +37,7 @@ public class QuestDuelsScreen extends LaunchScreen {
private final FLabel btnRandomOpponent = add(new FLabel.ButtonBuilder().text("Random Duel").font(FSkinFont.get(16)).build());
public QuestDuelsScreen() {
super("Quest Duels", QuestMenu.getMenu());
}
@Override
public void onActivate() {
update();
super();
}
@Override
@@ -64,11 +54,6 @@ public class QuestDuelsScreen extends LaunchScreen {
pnlDuels.setBounds(x, y, w, height - y);
}
@Override
protected boolean buildLaunchParams(LaunchParams launchParams) {
return false;
}
public IButton getBtnRandomOpponent() {
return btnRandomOpponent;
}
@@ -97,10 +82,13 @@ public class QuestDuelsScreen extends LaunchScreen {
return lblZep;
}
public void update() {
QuestUtil.updateQuestView(QuestMenu.getMenu());
setHeaderCaption(FModel.getQuest().getName() + " - Duels\n(" + FModel.getQuest().getRank() + ")");
@Override
protected String getGameType() {
return "Duels";
}
@Override
public void onUpdate() {
pnlDuels.clear();
List<QuestEventDuel> duels = FModel.getQuest().getDuelsManager().generateDuels();

View File

@@ -42,7 +42,7 @@ class QuestEventPanel extends FDisplayObject {
img = ImageCache.getIcon(e0);
container = container0;
if (container.selectedPanel == null) {
container.selectedPanel = this; //select first panel in container by default
setSelected(true); //select first panel in container by default
}
}

View File

@@ -0,0 +1,62 @@
package forge.screens.quest;
import forge.FThreads;
import forge.model.FModel;
import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
import forge.screens.LoadingOverlay;
import forge.toolbox.FOptionPane;
public abstract class QuestLaunchScreen extends LaunchScreen {
protected static final float PADDING = FOptionPane.PADDING;
public QuestLaunchScreen() {
super("", QuestMenu.getMenu());
}
@Override
public final void onActivate() {
update();
}
@Override
protected void startMatch() {
if (creatingMatch) { return; }
creatingMatch = true; //ensure user doesn't create multiple matches by tapping multiple times
FThreads.invokeInBackgroundThread(new Runnable() {
@Override
public void run() {
if (QuestUtil.canStartGame()) {
FThreads.invokeInEdtLater(new Runnable() {
@Override
public void run() {
LoadingOverlay.show("Loading new game...", new Runnable() {
@Override
public void run() {
QuestUtil.finishStartingGame();
creatingMatch = false;
}
});
}
});
}
}
});
}
@Override
protected final boolean buildLaunchParams(LaunchParams launchParams) {
return false; //this override isn't needed
}
public final void update() {
QuestUtil.updateQuestView(QuestMenu.getMenu());
setHeaderCaption(FModel.getQuest().getName() + " - " + getGameType() + "\n(" + FModel.getQuest().getRank() + ")");
onUpdate();
}
protected abstract String getGameType();
protected abstract void onUpdate();
}

View File

@@ -1,17 +1,8 @@
package forge.screens.quest;
import forge.model.FModel;
import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
public class QuestTournamentsScreen extends LaunchScreen {
public class QuestTournamentsScreen extends QuestLaunchScreen {
public QuestTournamentsScreen() {
super("Quest Duels", QuestMenu.getMenu());
}
@Override
public void onActivate() {
update();
super();
}
@Override
@@ -20,14 +11,12 @@ public class QuestTournamentsScreen extends LaunchScreen {
}
public void update() {
QuestUtil.updateQuestView(QuestMenu.getMenu());
setHeaderCaption(FModel.getQuest().getName() + " - Tournaments\n(" + FModel.getQuest().getRank() + ")");
@Override
protected String getGameType() {
return "Tournaments";
}
@Override
protected boolean buildLaunchParams(LaunchParams launchParams) {
// TODO Auto-generated method stub
return false;
public void onUpdate() {
}
}