mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Current progress on Quest submenu.
This commit is contained in:
4
.gitattributes
vendored
4
.gitattributes
vendored
@@ -10061,6 +10061,8 @@ res/pics/icons/Mage01.jpg -text
|
|||||||
res/pics/icons/Mage02.jpg -text
|
res/pics/icons/Mage02.jpg -text
|
||||||
res/pics/icons/MapIcon.png -text svneol=unset#image/png
|
res/pics/icons/MapIcon.png -text svneol=unset#image/png
|
||||||
res/pics/icons/MapIconLarge.png -text svneol=unset#image/png
|
res/pics/icons/MapIconLarge.png -text svneol=unset#image/png
|
||||||
|
res/pics/icons/PetIcon.png -text
|
||||||
|
res/pics/icons/PlantIcon.png -text
|
||||||
res/pics/icons/Unknown.jpg -text
|
res/pics/icons/Unknown.jpg -text
|
||||||
res/pics/icons/ZeppelinIcon.png -text svneol=unset#image/png
|
res/pics/icons/ZeppelinIcon.png -text svneol=unset#image/png
|
||||||
res/pics/icons/notesIcon.png -text svneol=unset#image/png
|
res/pics/icons/notesIcon.png -text svneol=unset#image/png
|
||||||
@@ -10748,8 +10750,6 @@ src/main/java/forge/card/trigger/TriggerUnequip.java svneol=native#text/plain
|
|||||||
src/main/java/forge/card/trigger/TriggerUntaps.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/TriggerUntaps.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/trigger/package-info.java svneol=native#text/plain
|
src/main/java/forge/card/trigger/package-info.java svneol=native#text/plain
|
||||||
src/main/java/forge/control/ControlAllUI.java -text
|
src/main/java/forge/control/ControlAllUI.java -text
|
||||||
src/main/java/forge/control/ControlEditorUI.java -text
|
|
||||||
src/main/java/forge/control/ControlHomeUI.java -text
|
|
||||||
src/main/java/forge/control/ControlMatchUI.java -text
|
src/main/java/forge/control/ControlMatchUI.java -text
|
||||||
src/main/java/forge/control/ControlWinLose.java -text
|
src/main/java/forge/control/ControlWinLose.java -text
|
||||||
src/main/java/forge/control/home/ControlConstructed.java -text
|
src/main/java/forge/control/home/ControlConstructed.java -text
|
||||||
|
|||||||
BIN
res/pics/icons/PetIcon.png
Normal file
BIN
res/pics/icons/PetIcon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
res/pics/icons/PlantIcon.png
Normal file
BIN
res/pics/icons/PlantIcon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -26,6 +26,7 @@ import java.awt.event.WindowEvent;
|
|||||||
import javax.swing.JLayeredPane;
|
import javax.swing.JLayeredPane;
|
||||||
|
|
||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
|
import forge.quest.gui.bazaar.QuestBazaarPanel;
|
||||||
import forge.view.GuiTopLevel;
|
import forge.view.GuiTopLevel;
|
||||||
import forge.view.editor.EditorTopLevel;
|
import forge.view.editor.EditorTopLevel;
|
||||||
import forge.view.home.HomeTopLevel;
|
import forge.view.home.HomeTopLevel;
|
||||||
@@ -45,7 +46,17 @@ public class ControlAllUI {
|
|||||||
private HomeTopLevel home = null;
|
private HomeTopLevel home = null;
|
||||||
private ViewTopLevel match = null;
|
private ViewTopLevel match = null;
|
||||||
private EditorTopLevel editor = null;
|
private EditorTopLevel editor = null;
|
||||||
private WindowAdapter actConcede;
|
private WindowAdapter waConcede;
|
||||||
|
private QuestBazaarPanel bazaar;
|
||||||
|
|
||||||
|
/** */
|
||||||
|
public static final int HOME_SCREEN = 0;
|
||||||
|
/** */
|
||||||
|
public static final int MATCH_SCREEN = 1;
|
||||||
|
/** */
|
||||||
|
public static final int DEFAULT_EDITOR = 2;
|
||||||
|
/** */
|
||||||
|
public static final int QUEST_BAZAAR = 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -62,7 +73,7 @@ public class ControlAllUI {
|
|||||||
|
|
||||||
this.display = (JLayeredPane) this.view.getContentPane();
|
this.display = (JLayeredPane) this.view.getContentPane();
|
||||||
|
|
||||||
this.actConcede = new WindowAdapter() {
|
this.waConcede = new WindowAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void windowClosing(final WindowEvent evt) {
|
public void windowClosing(final WindowEvent evt) {
|
||||||
ViewTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView();
|
ViewTopLevel t = ((GuiTopLevel) AllZone.getDisplay()).getController().getMatchController().getView();
|
||||||
@@ -86,6 +97,7 @@ public class ControlAllUI {
|
|||||||
this.editor = null;
|
this.editor = null;
|
||||||
|
|
||||||
this.display.removeAll();
|
this.display.removeAll();
|
||||||
|
this.view.removeWindowListener(waConcede);
|
||||||
this.view.addOverlay();
|
this.view.addOverlay();
|
||||||
|
|
||||||
view.addComponentListener(new ComponentAdapter() {
|
view.addComponentListener(new ComponentAdapter() {
|
||||||
@@ -101,14 +113,13 @@ public class ControlAllUI {
|
|||||||
this.home = new HomeTopLevel();
|
this.home = new HomeTopLevel();
|
||||||
this.display.add(this.home, JLayeredPane.DEFAULT_LAYER);
|
this.display.add(this.home, JLayeredPane.DEFAULT_LAYER);
|
||||||
sizeChildren();
|
sizeChildren();
|
||||||
view.removeWindowListener(actConcede);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // Match screen
|
case 1: // Match screen
|
||||||
this.match = new ViewTopLevel();
|
this.match = new ViewTopLevel();
|
||||||
this.display.add(this.match, JLayeredPane.DEFAULT_LAYER);
|
this.display.add(this.match, JLayeredPane.DEFAULT_LAYER);
|
||||||
sizeChildren();
|
sizeChildren();
|
||||||
view.addWindowListener(actConcede);
|
view.addWindowListener(waConcede);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: // Deck editor screen
|
case 2: // Deck editor screen
|
||||||
@@ -116,6 +127,12 @@ public class ControlAllUI {
|
|||||||
this.display.add(this.editor);
|
this.display.add(this.editor);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 3: // Quest Bazaar screen
|
||||||
|
this.bazaar = new QuestBazaarPanel(null);
|
||||||
|
this.display.add(bazaar, JLayeredPane.DEFAULT_LAYER);
|
||||||
|
sizeChildren();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -139,6 +156,20 @@ public class ControlAllUI {
|
|||||||
return this.match.getController();
|
return this.match.getController();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return HomeTopLevel */
|
||||||
|
public HomeTopLevel getHomeView() {
|
||||||
|
return this.home;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the match view.
|
||||||
|
*
|
||||||
|
* @return ViewTopLevel
|
||||||
|
*/
|
||||||
|
public QuestBazaarPanel getBazaarView() {
|
||||||
|
return this.bazaar;
|
||||||
|
}
|
||||||
|
|
||||||
/** Sizes children of JLayeredPane to fully fit their layers. */
|
/** Sizes children of JLayeredPane to fully fit their layers. */
|
||||||
private void sizeChildren() {
|
private void sizeChildren() {
|
||||||
Component[] children;
|
Component[] children;
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
/*
|
|
||||||
* Forge: Play Magic: the Gathering.
|
|
||||||
* Copyright (C) 2011 Forge Team
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package forge.control;
|
|
||||||
|
|
||||||
import javax.swing.JPanel;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* ControlEditorUI
|
|
||||||
* </p>
|
|
||||||
* Top-level controller for deck editor.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("serial")
|
|
||||||
public class ControlEditorUI extends JPanel {
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* ControlEditorUI
|
|
||||||
* </p>
|
|
||||||
* Top-level controller for deck editor.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public ControlEditorUI() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* Forge: Play Magic: the Gathering.
|
|
||||||
* Copyright (C) 2011 Forge Team
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package forge.control;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO: Write javadoc for this type.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class ControlHomeUI {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,19 +1,22 @@
|
|||||||
package forge.control.home;
|
package forge.control.home;
|
||||||
|
|
||||||
import java.awt.event.WindowAdapter;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
import forge.Command;
|
import forge.Command;
|
||||||
import forge.Constant;
|
import forge.Constant;
|
||||||
|
import forge.control.ControlAllUI;
|
||||||
|
import forge.deck.Deck;
|
||||||
import forge.gui.deckeditor.DeckEditorQuest;
|
import forge.gui.deckeditor.DeckEditorQuest;
|
||||||
import forge.gui.deckeditor.DeckEditorShop;
|
import forge.gui.deckeditor.DeckEditorShop;
|
||||||
import forge.quest.data.QuestData;
|
import forge.quest.data.QuestData;
|
||||||
import forge.quest.data.QuestUtil;
|
import forge.quest.data.QuestUtil;
|
||||||
import forge.quest.gui.QuestFrame;
|
import forge.quest.data.item.QuestItemZeppelin;
|
||||||
import forge.quest.gui.bazaar.QuestBazaarPanel;
|
import forge.quest.gui.main.QuestChallenge;
|
||||||
|
import forge.quest.gui.main.QuestEvent;
|
||||||
import forge.view.GuiTopLevel;
|
import forge.view.GuiTopLevel;
|
||||||
import forge.view.home.ViewQuest;
|
import forge.view.home.ViewQuest;
|
||||||
|
|
||||||
@@ -23,6 +26,7 @@ import forge.view.home.ViewQuest;
|
|||||||
*/
|
*/
|
||||||
public class ControlQuest {
|
public class ControlQuest {
|
||||||
private ViewQuest view;
|
private ViewQuest view;
|
||||||
|
private QuestEvent event;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls logic and listeners for quest mode in home screen.
|
* Controls logic and listeners for quest mode in home screen.
|
||||||
@@ -31,8 +35,27 @@ public class ControlQuest {
|
|||||||
*/
|
*/
|
||||||
public ControlQuest(ViewQuest v0) {
|
public ControlQuest(ViewQuest v0) {
|
||||||
this.view = v0;
|
this.view = v0;
|
||||||
|
|
||||||
updateDeckList();
|
updateDeckList();
|
||||||
|
|
||||||
|
view.getPetComboBox().addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(final ActionEvent actionEvent) {
|
||||||
|
if (view.getPetComboBox().getSelectedIndex() > 0) {
|
||||||
|
view.getQuestData().getPetManager().setSelectedPet(
|
||||||
|
(String) view.getPetComboBox().getSelectedItem());
|
||||||
|
} else {
|
||||||
|
view.getQuestData().getPetManager().setSelectedPet(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
view.getPlantCheckBox().addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(final ActionEvent actionEvent) {
|
||||||
|
view.getQuestData().getPetManager()
|
||||||
|
.setUsePlant(view.getPlantCheckBox().isSelected());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return ViewQuest */
|
/** @return ViewQuest */
|
||||||
@@ -82,20 +105,11 @@ public class ControlQuest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
// Since QuestBazaarPanel is not in a JFrame for some reason, one
|
|
||||||
// must be created here. Later, this will be integrated into the
|
|
||||||
// top level UI. Doublestrike 11-12-11.
|
|
||||||
public void showBazaar() {
|
public void showBazaar() {
|
||||||
QuestFrame f = new QuestFrame();
|
GuiTopLevel g = ((GuiTopLevel) AllZone.getDisplay());
|
||||||
f.getContentPane().add(new QuestBazaarPanel(f));
|
|
||||||
f.setVisible(true);
|
|
||||||
|
|
||||||
f.addWindowListener(new WindowAdapter() {
|
g.getController().changeState(ControlAllUI.QUEST_BAZAAR);
|
||||||
@Override
|
g.validate();
|
||||||
public void windowClosed(WindowEvent e) {
|
|
||||||
AllZone.getQuestData().saveData();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} // card shop button
|
} // card shop button
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,9 +117,10 @@ public class ControlQuest {
|
|||||||
*/
|
*/
|
||||||
public void newQuest() {
|
public void newQuest() {
|
||||||
int difficulty = 0;
|
int difficulty = 0;
|
||||||
QuestData questData = AllZone.getQuestData();
|
QuestData questData = new QuestData();
|
||||||
|
|
||||||
final String mode = view.getRadFantasy().isSelected() ? forge.quest.data.QuestData.FANTASY
|
final String mode = view.getRadFantasy().isSelected()
|
||||||
|
? forge.quest.data.QuestData.FANTASY
|
||||||
: forge.quest.data.QuestData.REALISTIC;
|
: forge.quest.data.QuestData.REALISTIC;
|
||||||
|
|
||||||
if (view.getRadEasy().isSelected()) {
|
if (view.getRadEasy().isSelected()) {
|
||||||
@@ -118,8 +133,8 @@ public class ControlQuest {
|
|||||||
difficulty = 3;
|
difficulty = 3;
|
||||||
} else {
|
} else {
|
||||||
JOptionPane.showMessageDialog(null,
|
JOptionPane.showMessageDialog(null,
|
||||||
"Please select a difficulty.",
|
"This should not be happening!",
|
||||||
"New Quest: Difficulty?", JOptionPane.ERROR_MESSAGE);
|
"New Quest: Difficulty Bug!?", JOptionPane.ERROR_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,21 +162,83 @@ public class ControlQuest {
|
|||||||
|
|
||||||
/** */
|
/** */
|
||||||
public void start() {
|
public void start() {
|
||||||
QuestData questData = AllZone.getQuestData();
|
if (view.getLstDeckChooser().getSelectedIndex() == -1) {
|
||||||
|
JOptionPane.showMessageDialog(null,
|
||||||
|
"A mysterious wall blocks your way."
|
||||||
|
+ "\n\rAn unseen sepulchral voice booms:"
|
||||||
|
+ "\n\r\"Entrance Forbidden Without A Deck\"",
|
||||||
|
"No deck", JOptionPane.ERROR_MESSAGE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Constant.Runtime.HUMAN_DECK[0] = questData.getDeck((String) view.getLstDeckChooser().getSelectedValue());
|
event = view.getSelectedOpponent().getEvent();
|
||||||
Constant.Runtime.COMPUTER_DECK[0] = view.getSelectedOpponent().getEvent().getEventDeck();
|
AllZone.setQuestEvent(event);
|
||||||
|
final QuestItemZeppelin zeppelin = (QuestItemZeppelin) view.getQuestData().getInventory().getItem("Zeppelin");
|
||||||
|
zeppelin.setZeppelinUsed(false);
|
||||||
|
view.getQuestData().randomizeOpponents();
|
||||||
|
|
||||||
AllZone.setQuestEvent(view.getSelectedOpponent().getEvent());
|
String deckname = (String) view.getLstDeckChooser().getSelectedValue();
|
||||||
|
Constant.Runtime.HUMAN_DECK[0] = view.getQuestData().getDeck(deckname);
|
||||||
|
Constant.Runtime.COMPUTER_DECK[0] = event.getEventDeck();
|
||||||
|
Deck humanDeck = view.getQuestData().getDeck(deckname);
|
||||||
|
|
||||||
|
Constant.Runtime.HUMAN_DECK[0] = humanDeck;
|
||||||
|
|
||||||
|
Constant.Quest.OPP_ICON_NAME[0] = event.getIcon();
|
||||||
|
|
||||||
GuiTopLevel g = (GuiTopLevel) AllZone.getDisplay();
|
GuiTopLevel g = (GuiTopLevel) AllZone.getDisplay();
|
||||||
g.getController().changeState(1);
|
g.getController().changeState(1);
|
||||||
g.getController().getMatchController().initMatch();
|
g.getController().getMatchController().initMatch();
|
||||||
|
|
||||||
|
AllZone.getMatchState().reset();
|
||||||
|
if (event.getEventType().equals("challenge")) {
|
||||||
|
this.setupChallenge(humanDeck);
|
||||||
|
} else {
|
||||||
|
this.setupDuel(humanDeck);
|
||||||
|
}
|
||||||
|
|
||||||
|
view.getQuestData().saveData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* setupDuel.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param humanDeck
|
||||||
|
* a {@link forge.deck.Deck} object.
|
||||||
|
*/
|
||||||
|
final void setupDuel(final Deck humanDeck) {
|
||||||
|
final Deck computer = event.getEventDeck();
|
||||||
|
Constant.Runtime.COMPUTER_DECK[0] = computer;
|
||||||
|
|
||||||
AllZone.getGameAction().newGame(
|
AllZone.getGameAction().newGame(
|
||||||
Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0],
|
Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0],
|
||||||
QuestUtil.getHumanStartingCards(questData),
|
QuestUtil.getHumanStartingCards(view.getQuestData()),
|
||||||
QuestUtil.getComputerStartingCards(questData),
|
QuestUtil.getComputerStartingCards(view.getQuestData()),
|
||||||
questData.getLife(), 20, null);
|
view.getQuestData().getLife(), 20, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* setupChallenge.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param humanDeck
|
||||||
|
* a {@link forge.deck.Deck} object.
|
||||||
|
*/
|
||||||
|
private void setupChallenge(final Deck humanDeck) {
|
||||||
|
int extraLife = 0;
|
||||||
|
|
||||||
|
if (view.getQuestData().getInventory().getItemLevel("Gear") == 2) {
|
||||||
|
extraLife = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
AllZone.getGameAction().newGame(
|
||||||
|
Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0],
|
||||||
|
QuestUtil.getHumanStartingCards(view.getQuestData(), event),
|
||||||
|
QuestUtil.getHumanStartingCards(view.getQuestData(), event),
|
||||||
|
view.getQuestData().getLife() + extraLife, ((QuestChallenge) event).getAILife(), event);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,9 +31,13 @@ import javax.swing.JButton;
|
|||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.JToggleButton;
|
import javax.swing.JToggleButton;
|
||||||
|
|
||||||
|
import forge.AllZone;
|
||||||
|
import forge.Constant;
|
||||||
|
import forge.control.ControlAllUI;
|
||||||
import forge.quest.data.bazaar.QuestStallManager;
|
import forge.quest.data.bazaar.QuestStallManager;
|
||||||
import forge.quest.gui.QuestAbstractPanel;
|
import forge.quest.gui.QuestAbstractPanel;
|
||||||
import forge.quest.gui.QuestFrame;
|
import forge.quest.gui.QuestFrame;
|
||||||
|
import forge.view.GuiTopLevel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -142,7 +146,14 @@ public class QuestBazaarPanel extends QuestAbstractPanel {
|
|||||||
quitButton.addActionListener(new ActionListener() {
|
quitButton.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(final ActionEvent e) {
|
public void actionPerformed(final ActionEvent e) {
|
||||||
QuestBazaarPanel.this.getMainFrame().showMainPane();
|
if (Constant.Runtime.OLDGUI[0]) {
|
||||||
|
QuestBazaarPanel.this.getMainFrame().showMainPane();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ControlAllUI g = ((GuiTopLevel) AllZone.getDisplay()).getController();
|
||||||
|
g.changeState(ControlAllUI.HOME_SCREEN);
|
||||||
|
g.getHomeView().showQuestMenu();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -87,39 +87,39 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlContent.setBackground(skin.getColor("zebra"));
|
pnlContent.setBackground(skin.getColor("zebra"));
|
||||||
pnlContent.setLayout(new MigLayout("insets 0, gap 0"));
|
pnlContent.setLayout(new MigLayout("insets 0, gap 0"));
|
||||||
|
|
||||||
btnDraft = new FButton();
|
|
||||||
btnDraft.setAction(new AbstractAction() {
|
|
||||||
public void actionPerformed(ActionEvent arg0) { draft(); }
|
|
||||||
});
|
|
||||||
btnDraft.setText("Draft (Hard)");
|
|
||||||
|
|
||||||
btnConstructed = new FButton();
|
btnConstructed = new FButton();
|
||||||
btnConstructed.setAction(new AbstractAction() {
|
btnConstructed.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { constructed(); }
|
public void actionPerformed(ActionEvent arg0) { showConstructedMenu(); }
|
||||||
});
|
});
|
||||||
btnConstructed.setText("Constructed (Easy)");
|
btnConstructed.setText("Constructed (Easy)");
|
||||||
|
|
||||||
btnSealed = new FButton();
|
btnSealed = new FButton();
|
||||||
btnSealed.setAction(new AbstractAction() {
|
btnSealed.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { sealed(); }
|
public void actionPerformed(ActionEvent arg0) { showSealedMenu(); }
|
||||||
});
|
});
|
||||||
btnSealed.setText("Sealed (Medium)");
|
btnSealed.setText("Sealed (Medium)");
|
||||||
|
|
||||||
|
btnDraft = new FButton();
|
||||||
|
btnDraft.setAction(new AbstractAction() {
|
||||||
|
public void actionPerformed(ActionEvent arg0) { showDraftMenu(); }
|
||||||
|
});
|
||||||
|
btnDraft.setText("Draft (Hard)");
|
||||||
|
|
||||||
btnQuest = new FButton();
|
btnQuest = new FButton();
|
||||||
btnQuest.setAction(new AbstractAction() {
|
btnQuest.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { quest(); }
|
public void actionPerformed(ActionEvent arg0) { showQuestMenu(); }
|
||||||
});
|
});
|
||||||
btnQuest.setText("Quest");
|
btnQuest.setText("Quest");
|
||||||
|
|
||||||
btnSettings = new FButton();
|
btnSettings = new FButton();
|
||||||
btnSettings.setAction(new AbstractAction() {
|
btnSettings.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { settings(); }
|
public void actionPerformed(ActionEvent arg0) { showSettingsMenu(); }
|
||||||
});
|
});
|
||||||
btnSettings.setText("Settings");
|
btnSettings.setText("Settings");
|
||||||
|
|
||||||
btnUtilities = new FButton();
|
btnUtilities = new FButton();
|
||||||
btnUtilities.setAction(new AbstractAction() {
|
btnUtilities.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { utilities(); }
|
public void actionPerformed(ActionEvent arg0) { showUtilitiesMenu(); }
|
||||||
});
|
});
|
||||||
btnUtilities.setText("Utilities");
|
btnUtilities.setText("Utilities");
|
||||||
|
|
||||||
@@ -148,11 +148,12 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlMenu.add(btnEditor, constraints);
|
pnlMenu.add(btnEditor, constraints);
|
||||||
pnlMenu.add(btnExit, constraints);
|
pnlMenu.add(btnExit, constraints);
|
||||||
|
|
||||||
// Open "constructed" screen on first run.
|
// Open "constructed" menu on first run.
|
||||||
constructed();
|
showConstructedMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void constructed() {
|
/** Opens menu for constructed mode. */
|
||||||
|
public void showConstructedMenu() {
|
||||||
clearToggles();
|
clearToggles();
|
||||||
btnConstructed.setToggled(true);
|
btnConstructed.setToggled(true);
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
@@ -161,7 +162,8 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void draft() {
|
/** Opens menu for draft mode. */
|
||||||
|
public void showDraftMenu() {
|
||||||
clearToggles();
|
clearToggles();
|
||||||
btnDraft.setToggled(true);
|
btnDraft.setToggled(true);
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
@@ -170,7 +172,8 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sealed() {
|
/** Opens menu for sealed mode. */
|
||||||
|
public void showSealedMenu() {
|
||||||
clearToggles();
|
clearToggles();
|
||||||
btnSealed.setToggled(true);
|
btnSealed.setToggled(true);
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
@@ -179,7 +182,8 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void quest() {
|
/** Opens menu for quest mode. */
|
||||||
|
public void showQuestMenu() {
|
||||||
clearToggles();
|
clearToggles();
|
||||||
btnQuest.setToggled(true);
|
btnQuest.setToggled(true);
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
@@ -188,7 +192,8 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void settings() {
|
/** Opens menu for settings. */
|
||||||
|
public void showSettingsMenu() {
|
||||||
clearToggles();
|
clearToggles();
|
||||||
btnSettings.setToggled(true);
|
btnSettings.setToggled(true);
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
@@ -197,7 +202,8 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void utilities() {
|
/** Opens menu for utilities. */
|
||||||
|
public void showUtilitiesMenu() {
|
||||||
clearToggles();
|
clearToggles();
|
||||||
btnUtilities.setToggled(true);
|
btnUtilities.setToggled(true);
|
||||||
pnlContent.removeAll();
|
pnlContent.removeAll();
|
||||||
@@ -242,6 +248,6 @@ public class HomeTopLevel extends FPanel {
|
|||||||
/** */
|
/** */
|
||||||
public void resetQuest() {
|
public void resetQuest() {
|
||||||
quest = new ViewQuest(this);
|
quest = new ViewQuest(this);
|
||||||
quest();
|
showQuestMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +1,24 @@
|
|||||||
package forge.view.home;
|
package forge.view.home;
|
||||||
|
|
||||||
import java.awt.BorderLayout;
|
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.ButtonGroup;
|
import javax.swing.ButtonGroup;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JCheckBox;
|
import javax.swing.JCheckBox;
|
||||||
|
import javax.swing.JComboBox;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JList;
|
import javax.swing.JList;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.JRadioButton;
|
import javax.swing.JRadioButton;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
|
import javax.swing.JTextArea;
|
||||||
import javax.swing.SwingConstants;
|
import javax.swing.SwingConstants;
|
||||||
import javax.swing.border.LineBorder;
|
import javax.swing.border.LineBorder;
|
||||||
import javax.swing.border.MatteBorder;
|
import javax.swing.border.MatteBorder;
|
||||||
@@ -25,12 +27,12 @@ import net.miginfocom.swing.MigLayout;
|
|||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
import forge.control.home.ControlQuest;
|
import forge.control.home.ControlQuest;
|
||||||
import forge.gui.GuiUtils;
|
import forge.gui.GuiUtils;
|
||||||
import forge.gui.MultiLineLabel;
|
|
||||||
import forge.gui.MultiLineLabelUI;
|
|
||||||
import forge.properties.ForgeProps;
|
import forge.properties.ForgeProps;
|
||||||
import forge.properties.NewConstants;
|
import forge.properties.NewConstants;
|
||||||
import forge.quest.data.QuestData;
|
import forge.quest.data.QuestData;
|
||||||
import forge.quest.data.QuestDataIO;
|
import forge.quest.data.QuestDataIO;
|
||||||
|
import forge.quest.data.item.QuestItemZeppelin;
|
||||||
|
import forge.quest.data.pet.QuestPetAbstract;
|
||||||
import forge.quest.gui.main.QuestChallenge;
|
import forge.quest.gui.main.QuestChallenge;
|
||||||
import forge.quest.gui.main.QuestDuel;
|
import forge.quest.gui.main.QuestDuel;
|
||||||
import forge.quest.gui.main.QuestEvent;
|
import forge.quest.gui.main.QuestEvent;
|
||||||
@@ -52,7 +54,9 @@ public class ViewQuest extends JScrollPane {
|
|||||||
private JList lstDeckChooser;
|
private JList lstDeckChooser;
|
||||||
private ControlQuest control;
|
private ControlQuest control;
|
||||||
private JRadioButton radEasy, radMedium, radHard, radExpert, radFantasy, radClassic;
|
private JRadioButton radEasy, radMedium, radHard, radExpert, radFantasy, radClassic;
|
||||||
private JCheckBox cbStandardStart;
|
private JCheckBox cbStandardStart, cbPlant, cbZep;
|
||||||
|
private JComboBox cbxPet;
|
||||||
|
private JLabel lblPlant, lblPet, lblZep;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populates Swing components of Quest mode in home screen.
|
* Populates Swing components of Quest mode in home screen.
|
||||||
@@ -62,24 +66,33 @@ public class ViewQuest extends JScrollPane {
|
|||||||
public ViewQuest(HomeTopLevel v0) {
|
public ViewQuest(HomeTopLevel v0) {
|
||||||
// Basic init stuff
|
// Basic init stuff
|
||||||
super(VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
super(VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||||
AllZone.setQuestData(QuestDataIO.loadData());
|
|
||||||
this.setOpaque(false);
|
this.setOpaque(false);
|
||||||
this.setBorder(null);
|
this.setBorder(null);
|
||||||
parentView = v0;
|
parentView = v0;
|
||||||
skin = AllZone.getSkin();
|
skin = AllZone.getSkin();
|
||||||
|
AllZone.setQuestData(QuestDataIO.loadData());
|
||||||
questData = AllZone.getQuestData();
|
questData = AllZone.getQuestData();
|
||||||
|
|
||||||
// Panel is dropped into scroll pane for resize safety.
|
// Panel is dropped into scroll pane for resize safety.
|
||||||
viewport = new JPanel();
|
viewport = new JPanel();
|
||||||
viewport.setOpaque(false);
|
viewport.setOpaque(false);
|
||||||
viewport.setLayout(new MigLayout("insets 0, gap 0, wrap"));
|
viewport.setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
|
||||||
this.getViewport().setOpaque(false);
|
this.getViewport().setOpaque(false);
|
||||||
|
|
||||||
JLabel lblContinue = new JLabel(questData.getRank());
|
JLabel lblContinue = new JLabel(" " + questData.getRank());
|
||||||
|
lblContinue.setOpaque(true);
|
||||||
lblContinue.setBorder(new MatteBorder(0, 0, 1, 0, skin.getColor("borders")));
|
lblContinue.setBorder(new MatteBorder(0, 0, 1, 0, skin.getColor("borders")));
|
||||||
lblContinue.setForeground(skin.getColor("text"));
|
lblContinue.setForeground(skin.getColor("text"));
|
||||||
|
lblContinue.setBackground(skin.getColor("theme").darker());
|
||||||
lblContinue.setFont(skin.getFont1().deriveFont(Font.BOLD, 20));
|
lblContinue.setFont(skin.getFont1().deriveFont(Font.BOLD, 20));
|
||||||
viewport.add(lblContinue, "w 90%!, gap 5% 0 2% 0");
|
viewport.add(lblContinue, "w 90%!, h 50px!, gap 5% 0 2% 0, span 2");
|
||||||
|
|
||||||
|
JLabel lblStats = new JLabel("Wins: " + questData.getWin()
|
||||||
|
+ " / Losses: " + questData.getLost());
|
||||||
|
lblStats.setForeground(skin.getColor("text"));
|
||||||
|
lblStats.setFont(skin.getFont1().deriveFont(Font.BOLD, 17));
|
||||||
|
lblStats.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
viewport.add(lblStats, "h 35px!, ax center, span 2");
|
||||||
|
|
||||||
// Quest events
|
// Quest events
|
||||||
populateQuestEvents();
|
populateQuestEvents();
|
||||||
@@ -88,19 +101,7 @@ public class ViewQuest extends JScrollPane {
|
|||||||
populateQuestOptions();
|
populateQuestOptions();
|
||||||
|
|
||||||
// Start button
|
// Start button
|
||||||
StartButton btnStart = new StartButton(parentView);
|
populateStartArea();
|
||||||
|
|
||||||
JPanel pnlButtonContainer = new JPanel();
|
|
||||||
pnlButtonContainer.setOpaque(false);
|
|
||||||
|
|
||||||
pnlButtonContainer.setLayout(new BorderLayout());
|
|
||||||
pnlButtonContainer.add(btnStart, SwingConstants.CENTER);
|
|
||||||
viewport.add(pnlButtonContainer, "w 100%!, gapbottom 2%, gaptop 2%");
|
|
||||||
|
|
||||||
btnStart.addMouseListener(new MouseAdapter() {
|
|
||||||
@Override
|
|
||||||
public void mousePressed(MouseEvent e) { control.start(); }
|
|
||||||
});
|
|
||||||
|
|
||||||
// New Quest
|
// New Quest
|
||||||
populateNewQuest();
|
populateNewQuest();
|
||||||
@@ -144,18 +145,29 @@ public class ViewQuest extends JScrollPane {
|
|||||||
challengesContainer.add(temp, "w 100%, h 70px:70px, gapbottom 5px");
|
challengesContainer.add(temp, "w 100%, h 70px:70px, gapbottom 5px");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (challenges.size() == 0) {
|
||||||
|
JLabel lblTeaser = new JLabel("(Next challenge available in "
|
||||||
|
+ nextChallengeInWins() + " wins.)");
|
||||||
|
lblTeaser.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
lblTeaser.setForeground(skin.getColor("text"));
|
||||||
|
lblTeaser.setFont(skin.getFont1().deriveFont(Font.BOLD, 16));
|
||||||
|
challengesContainer.add(lblTeaser, "w 100%!, ax center, ay top");
|
||||||
|
}
|
||||||
|
|
||||||
JLabel lblDuels = new JLabel("Available Duels");
|
JLabel lblDuels = new JLabel("Available Duels");
|
||||||
lblDuels.setForeground(skin.getColor("text"));
|
lblDuels.setForeground(skin.getColor("text"));
|
||||||
|
lblDuels.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
lblDuels.setFont(skin.getFont1().deriveFont(Font.ITALIC, 14));
|
lblDuels.setFont(skin.getFont1().deriveFont(Font.ITALIC, 14));
|
||||||
|
|
||||||
JLabel lblChallenges = new JLabel("Available Challenges");
|
JLabel lblChallenges = new JLabel("Available Challenges");
|
||||||
lblChallenges.setForeground(skin.getColor("text"));
|
lblChallenges.setForeground(skin.getColor("text"));
|
||||||
|
lblChallenges.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
lblChallenges.setFont(skin.getFont1().deriveFont(Font.ITALIC, 14));
|
lblChallenges.setFont(skin.getFont1().deriveFont(Font.ITALIC, 14));
|
||||||
|
|
||||||
viewport.add(lblDuels, "w 90%, gapleft 5%, gapbottom 1%, gaptop 1%");
|
viewport.add(lblDuels, "w 48%, gap 1% 1% 2% 1%");
|
||||||
viewport.add(duelsContainer, " w 90%, gapleft 5%, gapbottom 2%");
|
viewport.add(lblChallenges, "w 48%, gap 0 0 2% 1%, wrap");
|
||||||
viewport.add(lblChallenges, "w 90%, gapleft 5%, gapbottom 1%");
|
viewport.add(duelsContainer, " w 48%, gap 1% 1% 1% 2%, ay top");
|
||||||
viewport.add(challengesContainer, " w 90%, gapleft 5%, gapbottom 2%");
|
viewport.add(challengesContainer, " w 48%, gap 0 0 1% 2%, wrap");
|
||||||
|
|
||||||
// Select first event.
|
// Select first event.
|
||||||
selectedOpponent = (SelectablePanel) duelsContainer.getComponent(0);
|
selectedOpponent = (SelectablePanel) duelsContainer.getComponent(0);
|
||||||
@@ -167,6 +179,21 @@ public class ViewQuest extends JScrollPane {
|
|||||||
JPanel optionsContainer = new JPanel();
|
JPanel optionsContainer = new JPanel();
|
||||||
optionsContainer.setOpaque(false);
|
optionsContainer.setOpaque(false);
|
||||||
optionsContainer.setLayout(new MigLayout("insets 0, gap 0"));
|
optionsContainer.setLayout(new MigLayout("insets 0, gap 0"));
|
||||||
|
optionsContainer.setBorder(new MatteBorder(0, 0, 1, 0, skin.getColor("borders")));
|
||||||
|
|
||||||
|
JLabel lblCredits = new JLabel("Credits: " + Long.toString(questData.getCredits()));
|
||||||
|
lblCredits.setIcon(GuiUtils.getResizedIcon(new ImageIcon("res/pics/icons/CoinStack.png"), 26, 26));
|
||||||
|
lblCredits.setForeground(skin.getColor("text"));
|
||||||
|
lblCredits.setIconTextGap(5);
|
||||||
|
lblCredits.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
lblCredits.setFont(skin.getFont1().deriveFont(Font.BOLD, 14));
|
||||||
|
|
||||||
|
JLabel lblLife = new JLabel("Life: " + Long.toString(questData.getLife()));
|
||||||
|
lblLife.setIcon(GuiUtils.getResizedIcon(new ImageIcon("res/pics/icons/Life.png"), 26, 26));
|
||||||
|
lblLife.setForeground(skin.getColor("text"));
|
||||||
|
lblLife.setIconTextGap(5);
|
||||||
|
lblLife.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
lblLife.setFont(skin.getFont1().deriveFont(Font.BOLD, 14));
|
||||||
|
|
||||||
SubButton btnEditor = new SubButton("");
|
SubButton btnEditor = new SubButton("");
|
||||||
btnEditor.setAction(new AbstractAction() {
|
btnEditor.setAction(new AbstractAction() {
|
||||||
@@ -195,38 +222,112 @@ public class ViewQuest extends JScrollPane {
|
|||||||
});
|
});
|
||||||
btnBazaar.setText("Bazaar");
|
btnBazaar.setText("Bazaar");
|
||||||
|
|
||||||
OptionsCheckBox cbPet = new OptionsCheckBox("Summon Pet");
|
|
||||||
OptionsCheckBox cbWall = new OptionsCheckBox("Summon Wall");
|
|
||||||
OptionsCheckBox cbZep = new OptionsCheckBox("Launch Zeppelin");
|
|
||||||
|
|
||||||
lstDeckChooser = new JList();
|
lstDeckChooser = new JList();
|
||||||
|
|
||||||
optionsContainer.add(btnEditor, "w 30%, h 30px!, gapleft 5%, gapright 5%, gapbottom 5px");
|
optionsContainer.add(btnEditor, "w 35%, h 30px!, gap 10% 5% 10px 10px");
|
||||||
optionsContainer.add(cbPet, "w 25%, h 30px!, ax center");
|
optionsContainer.add(lblCredits, "w 35%!, h 30px!, wrap");
|
||||||
optionsContainer.add(btnCardShop, "w 25%, h 30px!, gapleft 5%, wrap");
|
|
||||||
|
|
||||||
optionsContainer.add(new JScrollPane(lstDeckChooser), "w 30%, h 60px!, gapleft 5%, gapright 5%, span 1 2");
|
optionsContainer.add(new JScrollPane(lstDeckChooser), "w 35%, h 110px!, gap 10% 5% 0 10px, span 1 3");
|
||||||
optionsContainer.add(cbWall, "w 25%, h 30px!, ax center, gapbottom 5px, wrap");
|
optionsContainer.add(lblLife, "w 35%, h 30px!, gap 0 0 0 10px, wrap");
|
||||||
|
|
||||||
optionsContainer.add(cbZep, "w 25%, h 30px!");
|
optionsContainer.add(btnCardShop, "w 35%, h 30px!, gap 0 0 0 10px, wrap");
|
||||||
optionsContainer.add(btnBazaar, "w 25%, h 30px!, gapleft 5%, wrap");
|
optionsContainer.add(btnBazaar, "w 35%, h 30px!, gap 0 0 0 10px, wrap");
|
||||||
|
|
||||||
if (!questData.isFantasy()) {
|
if (!questData.isFantasy()) {
|
||||||
cbPet.setVisible(false);
|
lblLife.setVisible(false);
|
||||||
cbWall.setVisible(false);
|
|
||||||
cbZep.setVisible(false);
|
|
||||||
btnBazaar.setVisible(false);
|
btnBazaar.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
viewport.add(optionsContainer, "w 90%, gap 5% 0 1% 1%");
|
viewport.add(optionsContainer, "w 90%, gap 5% 0 1% 1%, span 2 1");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void populateStartArea() {
|
||||||
|
JPanel pnlButtonContainer = new JPanel();
|
||||||
|
pnlButtonContainer.setOpaque(false);
|
||||||
|
pnlButtonContainer.setLayout(new MigLayout("insets 0, gap 0, wrap 2, ax center, hidemode 3"));
|
||||||
|
|
||||||
|
cbxPet = new JComboBox();
|
||||||
|
cbxPet.setFont(skin.getFont1().deriveFont(Font.PLAIN, 14));
|
||||||
|
|
||||||
|
cbPlant = new OptionsCheckBox("Summon Wall");
|
||||||
|
cbZep = new OptionsCheckBox("Launch Zeppelin");
|
||||||
|
|
||||||
|
lblPet = new JLabel(GuiUtils.getResizedIcon(
|
||||||
|
new ImageIcon("res/pics/icons/PetIcon.png"), 30, 30));
|
||||||
|
lblPlant = new JLabel(GuiUtils.getResizedIcon(
|
||||||
|
new ImageIcon("res/pics/icons/PlantIcon.png"), 30, 30));
|
||||||
|
lblZep = new JLabel(GuiUtils.getResizedIcon(
|
||||||
|
new ImageIcon("res/pics/icons/ZeppelinIcon.png"), 30, 30));
|
||||||
|
|
||||||
|
StartButton btnStart = new StartButton(parentView);
|
||||||
|
btnStart.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) { control.start(); }
|
||||||
|
});
|
||||||
|
|
||||||
|
pnlButtonContainer.add(lblPet, "w 30px!, h 30px!, gapright 10px");
|
||||||
|
pnlButtonContainer.add(cbxPet, "w 30%!, h 30px!, gapbottom 10px, wrap");
|
||||||
|
|
||||||
|
pnlButtonContainer.add(lblPlant, "w 30px!, h 30px!, gapright 10px");
|
||||||
|
pnlButtonContainer.add(cbPlant, "w 30%!, h 30px!, gapbottom 10px, wrap");
|
||||||
|
|
||||||
|
pnlButtonContainer.add(lblZep, "w 30px!, h 30px!, gapright 10px");
|
||||||
|
pnlButtonContainer.add(cbZep, "w 30%!, h 30px!, gapbottom 10px, wrap");
|
||||||
|
|
||||||
|
pnlButtonContainer.add(btnStart, "span 2 1");
|
||||||
|
|
||||||
|
viewport.add(pnlButtonContainer, "w 100%!, gapbottom 2%, gaptop 2%, span 2");
|
||||||
|
|
||||||
|
if (this.questData.getMode().equals(QuestData.FANTASY)) {
|
||||||
|
final Set<String> petList = this.questData.getPetManager().getAvailablePetNames();
|
||||||
|
final QuestPetAbstract pet = this.questData.getPetManager().getSelectedPet();
|
||||||
|
|
||||||
|
// Pet list visibility
|
||||||
|
if (petList.size() > 0) {
|
||||||
|
cbxPet.setEnabled(true);
|
||||||
|
cbxPet.addItem("Don't summon a pet");
|
||||||
|
for (final String aPetList : petList) {
|
||||||
|
cbxPet.addItem(aPetList);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pet != null) { cbxPet.setSelectedItem(pet.getName()); }
|
||||||
|
} else {
|
||||||
|
cbxPet.setVisible(false);
|
||||||
|
lblPet.setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Plant visiblity
|
||||||
|
if (this.questData.getPetManager().getPlant().getLevel() == 0) {
|
||||||
|
cbPlant.setVisible(false);
|
||||||
|
lblPlant.setVisible(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cbPlant.setSelected(this.questData.getPetManager().shouldPlantBeUsed());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zeppelin visibility
|
||||||
|
final QuestItemZeppelin zeppelin = (QuestItemZeppelin) this.questData.getInventory().getItem("Zeppelin");
|
||||||
|
cbZep.setVisible(zeppelin.hasBeenUsed());
|
||||||
|
lblZep.setVisible(zeppelin.hasBeenUsed());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cbxPet.setVisible(false);
|
||||||
|
lblPet.setVisible(false);
|
||||||
|
cbPlant.setVisible(false);
|
||||||
|
lblPlant.setVisible(false);
|
||||||
|
cbZep.setVisible(false);
|
||||||
|
lblZep.setVisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populateNewQuest() {
|
private void populateNewQuest() {
|
||||||
JLabel lblNew = new JLabel("Embark on a new Quest");
|
JLabel lblNew = new JLabel(" Embark on a new Quest");
|
||||||
lblNew.setForeground(skin.getColor("text"));
|
lblNew.setForeground(skin.getColor("text"));
|
||||||
|
lblNew.setBackground(skin.getColor("theme").darker());
|
||||||
|
lblNew.setOpaque(true);
|
||||||
lblNew.setBorder(new MatteBorder(1, 0, 1, 0, skin.getColor("borders")));
|
lblNew.setBorder(new MatteBorder(1, 0, 1, 0, skin.getColor("borders")));
|
||||||
lblNew.setFont(skin.getFont1().deriveFont(Font.BOLD, 16));
|
lblNew.setFont(skin.getFont1().deriveFont(Font.BOLD, 16));
|
||||||
viewport.add(lblNew, "w 90%!, h 50px!, gap 5% 5% 2%");
|
viewport.add(lblNew, "w 90%!, h 50px!, gap 5% 5% 2%, span 2");
|
||||||
|
|
||||||
JLabel lblNotes = new JLabel("<html>"
|
JLabel lblNotes = new JLabel("<html>"
|
||||||
+ "Start a new Quest will delete your current player decks, credits and win loss record."
|
+ "Start a new Quest will delete your current player decks, credits and win loss record."
|
||||||
@@ -234,7 +335,7 @@ public class ViewQuest extends JScrollPane {
|
|||||||
+ "</html>");
|
+ "</html>");
|
||||||
lblNotes.setFont(skin.getFont1().deriveFont(Font.PLAIN, 14));
|
lblNotes.setFont(skin.getFont1().deriveFont(Font.PLAIN, 14));
|
||||||
lblNotes.setForeground(skin.getColor("text"));
|
lblNotes.setForeground(skin.getColor("text"));
|
||||||
viewport.add(lblNotes, "w 90%, gapleft 5%");
|
viewport.add(lblNotes, "w 90%, gapleft 5%, span 2");
|
||||||
|
|
||||||
radEasy = new OptionsRadio("Easy - 50 games");
|
radEasy = new OptionsRadio("Easy - 50 games");
|
||||||
radMedium = new OptionsRadio("Medium - 100 games");
|
radMedium = new OptionsRadio("Medium - 100 games");
|
||||||
@@ -283,7 +384,7 @@ public class ViewQuest extends JScrollPane {
|
|||||||
|
|
||||||
optionsContainer.add(btnEmbark, "w 40%!, h 30px!, gapleft 30%, gaptop 3%, span 3 1");
|
optionsContainer.add(btnEmbark, "w 40%!, h 30px!, gapleft 30%, gaptop 3%, span 3 1");
|
||||||
|
|
||||||
viewport.add(optionsContainer, "w 100%!, gaptop 2%");
|
viewport.add(optionsContainer, "w 100%!, gaptop 2%, span 2");
|
||||||
}
|
}
|
||||||
|
|
||||||
//========= CUSTOM CLASSES
|
//========= CUSTOM CLASSES
|
||||||
@@ -293,7 +394,21 @@ public class ViewQuest extends JScrollPane {
|
|||||||
public OptionsRadio(String txt0) {
|
public OptionsRadio(String txt0) {
|
||||||
super();
|
super();
|
||||||
setText(txt0);
|
setText(txt0);
|
||||||
|
setForeground(skin.getColor("text"));
|
||||||
|
setBackground(skin.getColor("hover"));
|
||||||
setOpaque(false);
|
setOpaque(false);
|
||||||
|
|
||||||
|
this.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent e) {
|
||||||
|
setOpaque(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseExited(MouseEvent e) {
|
||||||
|
setOpaque(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,7 +417,21 @@ public class ViewQuest extends JScrollPane {
|
|||||||
public OptionsCheckBox(String txt0) {
|
public OptionsCheckBox(String txt0) {
|
||||||
super();
|
super();
|
||||||
setText(txt0);
|
setText(txt0);
|
||||||
|
setForeground(skin.getColor("text"));
|
||||||
|
setBackground(skin.getColor("hover"));
|
||||||
setOpaque(false);
|
setOpaque(false);
|
||||||
|
|
||||||
|
this.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent e) {
|
||||||
|
setOpaque(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseExited(MouseEvent e) {
|
||||||
|
setOpaque(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -316,8 +445,42 @@ public class ViewQuest extends JScrollPane {
|
|||||||
setBorder(new LineBorder(skin.getColor("borders"), 1));
|
setBorder(new LineBorder(skin.getColor("borders"), 1));
|
||||||
setBackground(skin.getColor("inactive"));
|
setBackground(skin.getColor("inactive"));
|
||||||
setLayout(new MigLayout("insets 0, gap 0"));
|
setLayout(new MigLayout("insets 0, gap 0"));
|
||||||
|
|
||||||
this.event = e0;
|
this.event = e0;
|
||||||
|
|
||||||
|
final File base = ForgeProps.getFile(NewConstants.IMAGE_ICON);
|
||||||
|
File file = new File(base, event.getIcon());
|
||||||
|
|
||||||
|
if (!file.exists()) {
|
||||||
|
file = new File(base, "Unknown.jpg");
|
||||||
|
}
|
||||||
|
|
||||||
|
JLabel lblIcon = new JLabel(GuiUtils.getResizedIcon(new ImageIcon(file.toString()), 60, 60));
|
||||||
|
lblIcon.setForeground(skin.getColor("text"));
|
||||||
|
this.add(lblIcon, "h 60px!, w 60px!, gap 5px 5px 5px 5px, span 1 2");
|
||||||
|
|
||||||
|
// Name
|
||||||
|
JLabel lblName = new JLabel(event.getTitle() + ": " + event.getDifficulty());
|
||||||
|
lblName.setFont(skin.getFont1().deriveFont(Font.BOLD, 17));
|
||||||
|
lblName.setForeground(skin.getColor("text"));
|
||||||
|
this.add(lblName, "h 20px!, gap 1% 1% 5px 5px, wrap");
|
||||||
|
|
||||||
|
// Description
|
||||||
|
JTextArea tarDesc = new JTextArea();
|
||||||
|
tarDesc.setText(event.getDescription());
|
||||||
|
tarDesc.setFont(skin.getFont1().deriveFont(Font.ITALIC, 12));
|
||||||
|
tarDesc.setForeground(skin.getColor("text"));
|
||||||
|
tarDesc.setOpaque(false);
|
||||||
|
tarDesc.setWrapStyleWord(true);
|
||||||
|
tarDesc.setLineWrap(true);
|
||||||
|
tarDesc.setFocusable(false);
|
||||||
|
tarDesc.setEditable(false);
|
||||||
|
this.add(tarDesc, " h 35px!, w 75%!, gap 1% 0 0 5px");
|
||||||
|
|
||||||
|
this.setToolTipText("<html>" + event.getTitle()
|
||||||
|
+ ": " + event.getDifficulty()
|
||||||
|
+ "<br>" + event.getDescription()
|
||||||
|
+ "</html>");
|
||||||
|
|
||||||
this.addMouseListener(new MouseAdapter() {
|
this.addMouseListener(new MouseAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void mouseReleased(MouseEvent e) {
|
public void mouseReleased(MouseEvent e) {
|
||||||
@@ -345,29 +508,7 @@ public class ViewQuest extends JScrollPane {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
final File base = ForgeProps.getFile(NewConstants.IMAGE_ICON);
|
|
||||||
File file = new File(base, event.getIcon());
|
|
||||||
|
|
||||||
if (!file.exists()) {
|
|
||||||
file = new File(base, "Unknown.jpg");
|
|
||||||
}
|
|
||||||
|
|
||||||
JLabel lblIcon = new JLabel(GuiUtils.getResizedIcon(new ImageIcon(file.toString()), 60, 60));
|
|
||||||
lblIcon.setForeground(skin.getColor("text"));
|
|
||||||
this.add(lblIcon, "h 60px!, w 60px!, gap 5px 5px 5px 5px, span 1 2");
|
|
||||||
|
|
||||||
JLabel lblName = new JLabel(event.getTitle() + ": " + event.getDifficulty());
|
|
||||||
lblName.setFont(skin.getFont1().deriveFont(Font.BOLD, 17));
|
|
||||||
lblName.setForeground(skin.getColor("text"));
|
|
||||||
this.add(lblName, "h 20px!, gap 1% 1% 5px 5px, wrap");
|
|
||||||
|
|
||||||
MultiLineLabel lblDesc = new MultiLineLabel(event.getDescription());
|
|
||||||
lblDesc.setFont(skin.getFont1().deriveFont(Font.PLAIN, 12));
|
|
||||||
lblDesc.setForeground(skin.getColor("text"));
|
|
||||||
lblDesc.setUI(MultiLineLabelUI.getLabelUI());
|
|
||||||
this.add(lblDesc, " h 35px!, w 80%!, gap 1% 0 0 5px");
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return QuestEvent */
|
/** @return QuestEvent */
|
||||||
public QuestEvent getEvent() {
|
public QuestEvent getEvent() {
|
||||||
@@ -375,6 +516,38 @@ public class ViewQuest extends JScrollPane {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* nextChallengeInWins.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return a int.
|
||||||
|
*/
|
||||||
|
private int nextChallengeInWins() {
|
||||||
|
final QuestData questData = AllZone.getQuestData();
|
||||||
|
|
||||||
|
// Number of wins was 25, lowereing the number to 20 to help short term
|
||||||
|
// questers.
|
||||||
|
if (questData.getWin() < 20) {
|
||||||
|
return 20 - questData.getWin();
|
||||||
|
}
|
||||||
|
|
||||||
|
// The int mul has been lowered by one, should face special opps more
|
||||||
|
// frequently.
|
||||||
|
final int challengesPlayed = questData.getChallengesPlayed();
|
||||||
|
int mul = 5;
|
||||||
|
|
||||||
|
if (questData.getInventory().hasItem("Zeppelin")) {
|
||||||
|
mul = 3;
|
||||||
|
} else if (questData.getInventory().hasItem("Map")) {
|
||||||
|
mul = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
final int delta = (challengesPlayed * mul) - questData.getWin();
|
||||||
|
|
||||||
|
return (delta > 0) ? delta : 0;
|
||||||
|
}
|
||||||
|
|
||||||
//========= RETRIEVAL FUNCTIONS
|
//========= RETRIEVAL FUNCTIONS
|
||||||
|
|
||||||
/** @return JList */
|
/** @return JList */
|
||||||
@@ -431,4 +604,19 @@ public class ViewQuest extends JScrollPane {
|
|||||||
public ControlQuest getController() {
|
public ControlQuest getController() {
|
||||||
return control;
|
return control;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return JComboBox */
|
||||||
|
public JComboBox getPetComboBox() {
|
||||||
|
return cbxPet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return JCheckBox */
|
||||||
|
public JCheckBox getPlantCheckBox() {
|
||||||
|
return cbPlant;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return QuestData instance currently in use in this view */
|
||||||
|
public QuestData getQuestData() {
|
||||||
|
return questData;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user