mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Support starting quest duels
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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() {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user