Swap picking of starting plane and planeswalker

This commit is contained in:
drdev
2016-01-04 02:22:01 +00:00
parent 5746522f84
commit fc7caa7c8c
3 changed files with 44 additions and 44 deletions

View File

@@ -30,8 +30,8 @@ public class NewConquestScreen extends MultiStepWizardScreen<NewConquestScreenMo
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public NewConquestScreen() { public NewConquestScreen() {
super(null, NewGameMenu.getMenu(), new WizardStep[] { super(null, NewGameMenu.getMenu(), new WizardStep[] {
new SelectPlaneswalkerStep(),
new SelectStartingPlaneStep(), new SelectStartingPlaneStep(),
new SelectStartingPlaneswalkerStep(),
new SelectStartingCommanderStep() new SelectStartingCommanderStep()
}, new NewConquestScreenModel()); }, new NewConquestScreenModel());
} }
@@ -61,7 +61,7 @@ public class NewConquestScreen extends MultiStepWizardScreen<NewConquestScreenMo
@Override @Override
public void run() { public void run() {
ConquestController qc = FModel.getConquest(); ConquestController qc = FModel.getConquest();
qc.setModel(new ConquestData(conquestName, model.planeswalker, model.startingPlane, model.startingCommander)); qc.setModel(new ConquestData(conquestName, model.startingPlane, model.startingPlaneswalker, model.startingCommander));
qc.getDecks().add(Iterables.getFirst(qc.getModel().getCommanders(), null).getDeck()); //ensure starting deck is saved qc.getDecks().add(Iterables.getFirst(qc.getModel().getCommanders(), null).getDeck()); //ensure starting deck is saved
qc.getModel().saveData(); qc.getModel().saveData();
@@ -76,7 +76,40 @@ public class NewConquestScreen extends MultiStepWizardScreen<NewConquestScreenMo
}); });
} }
private static class SelectPlaneswalkerStep extends WizardStep<NewConquestScreenModel> { private static class SelectStartingPlaneStep extends WizardStep<NewConquestScreenModel> {
private final ConquestPlaneSelector planeSelector = add(new ConquestPlaneSelector());
protected SelectStartingPlaneStep() {
super("Select Starting Plane");
}
@Override
protected void doLayout(float width, float height) {
planeSelector.setBounds(0, 0, width, height);
}
@Override
protected void reset() {
planeSelector.reset();
}
@Override
protected void onActivate(NewConquestScreenModel model) {
planeSelector.activate();
}
@Override
protected boolean updateModelAndAdvance(NewConquestScreenModel model) {
model.startingPlane = planeSelector.getSelectedPlane();
if (model.startingPlane != null) {
planeSelector.deactivate();
return true;
}
return false;
}
}
private static class SelectStartingPlaneswalkerStep extends WizardStep<NewConquestScreenModel> {
private final FChoiceList<PaperCard> lstPlaneswalkers = add(new FChoiceList<PaperCard>(ConquestUtil.getAllPlaneswalkers()) { private final FChoiceList<PaperCard> lstPlaneswalkers = add(new FChoiceList<PaperCard>(ConquestUtil.getAllPlaneswalkers()) {
@Override @Override
protected void onItemActivate(Integer index, PaperCard value) { protected void onItemActivate(Integer index, PaperCard value) {
@@ -91,8 +124,8 @@ public class NewConquestScreen extends MultiStepWizardScreen<NewConquestScreenMo
}); });
private final CardListPreview tokenDisplay = add(new CardListPreview(lstPlaneswalkers)); private final CardListPreview tokenDisplay = add(new CardListPreview(lstPlaneswalkers));
protected SelectPlaneswalkerStep() { protected SelectStartingPlaneswalkerStep() {
super("Select Planeswalker"); super("Select Starting Planeswalker");
} }
@Override @Override
@@ -129,41 +162,8 @@ public class NewConquestScreen extends MultiStepWizardScreen<NewConquestScreenMo
@Override @Override
protected boolean updateModelAndAdvance(NewConquestScreenModel model) { protected boolean updateModelAndAdvance(NewConquestScreenModel model) {
model.planeswalker = lstPlaneswalkers.getSelectedItem(); model.startingPlaneswalker = lstPlaneswalkers.getSelectedItem();
return model.planeswalker != null; return model.startingPlaneswalker != null;
}
}
private static class SelectStartingPlaneStep extends WizardStep<NewConquestScreenModel> {
private final ConquestPlaneSelector planeSelector = add(new ConquestPlaneSelector());
protected SelectStartingPlaneStep() {
super("Select Starting Plane");
}
@Override
protected void doLayout(float width, float height) {
planeSelector.setBounds(0, 0, width, height);
}
@Override
protected void reset() {
planeSelector.reset();
}
@Override
protected void onActivate(NewConquestScreenModel model) {
planeSelector.activate();
}
@Override
protected boolean updateModelAndAdvance(NewConquestScreenModel model) {
model.startingPlane = planeSelector.getSelectedPlane();
if (model.startingPlane != null) {
planeSelector.deactivate();
return true;
}
return false;
} }
} }

View File

@@ -4,7 +4,7 @@ import forge.item.PaperCard;
import forge.planarconquest.ConquestPlane; import forge.planarconquest.ConquestPlane;
public class NewConquestScreenModel { public class NewConquestScreenModel {
public PaperCard planeswalker;
public ConquestPlane startingPlane; public ConquestPlane startingPlane;
public PaperCard startingPlaneswalker;
public PaperCard startingCommander; public PaperCard startingCommander;
} }

View File

@@ -61,14 +61,14 @@ public final class ConquestData {
private final List<ConquestCommander> commanders = new ArrayList<ConquestCommander>(); private final List<ConquestCommander> commanders = new ArrayList<ConquestCommander>();
private final HashSet<PaperCard> newCards = new HashSet<PaperCard>(); private final HashSet<PaperCard> newCards = new HashSet<PaperCard>();
public ConquestData(String name0, PaperCard planeswalker0, ConquestPlane startingPlane0, PaperCard startingCommander0) { public ConquestData(String name0, ConquestPlane startingPlane0, PaperCard startingPlaneswalker0, PaperCard startingCommander0) {
name = name0; name = name0;
directory = new File(ForgeConstants.CONQUEST_SAVE_DIR, name); directory = new File(ForgeConstants.CONQUEST_SAVE_DIR, name);
xmlFilename = directory.getPath() + ForgeConstants.PATH_SEPARATOR + XML_FILE; xmlFilename = directory.getPath() + ForgeConstants.PATH_SEPARATOR + XML_FILE;
aetherShards = FModel.getConquestPreferences().getPrefInt(CQPref.AETHER_START_SHARDS); aetherShards = FModel.getConquestPreferences().getPrefInt(CQPref.AETHER_START_SHARDS);
currentLocation = new ConquestLocation(startingPlane0, 0, 0, Region.START_COL); currentLocation = new ConquestLocation(startingPlane0, 0, 0, Region.START_COL);
setPlaneswalker(planeswalker0); setPlaneswalker(startingPlaneswalker0);
unlockCard(planeswalker0); unlockCard(startingPlaneswalker0);
//generate deck for starting commander and add all cards to collection //generate deck for starting commander and add all cards to collection
ConquestCommander commander = new ConquestCommander(startingCommander0, startingPlane0.getCardPool(), false); ConquestCommander commander = new ConquestCommander(startingCommander0, startingPlane0.getCardPool(), false);