diff --git a/src/graphics/graphical_abstraction/GraphicsMasterAbstraction.java b/src/graphics/graphical_abstraction/GraphicsMasterAbstraction.java index 76311069e920f38e027764d1e578a339ab1860e1..7e482213fdcf72cb03bdf78b948121d9e98cad73 100644 --- a/src/graphics/graphical_abstraction/GraphicsMasterAbstraction.java +++ b/src/graphics/graphical_abstraction/GraphicsMasterAbstraction.java @@ -34,7 +34,8 @@ public abstract class GraphicsMasterAbstraction { MULTIPLAYER_GAME_CREATION, SINGLEPLAYER_GAME_CREATION, MULTIPLAYER_CHARACTER_CHOICE, - SINGLEPLAYER_CHARACTER_CHOICE} + SINGLEPLAYER_CHARACTER_CHOICE, + GAME_OVER} //This map indicates to graphicsMaster which guiPanel is associated to each GUIState, it is filled in Graphicsmaster's constructor protected HashMap mapGUIStatesToGUIPanel = new HashMap<>(); //The current state of the GUI diff --git a/src/graphics/guiSkeleton/GraphicsMaster.java b/src/graphics/guiSkeleton/GraphicsMaster.java index a5d70967b9c2bf9e9da8a5153dbe6b043a2c1f81..0c4a16b6605a4a6331377665bd6505869b8aebfb 100644 --- a/src/graphics/guiSkeleton/GraphicsMaster.java +++ b/src/graphics/guiSkeleton/GraphicsMaster.java @@ -54,6 +54,8 @@ public class GraphicsMaster extends GraphicsMasterAbstraction { mapGUIStatesToGUIPanel.put(GUIStates.SINGLEPLAYER_GAME_CREATION, new SinglePlayer_GameCreationPanel(this)); mapGUIStatesToGUIPanel.put(GUIStates.SINGLEPLAYER_CHARACTER_CHOICE, new SinglePlayer_CharacterChoicePanel(this)); mapGUIStatesToGUIPanel.put(GUIStates.SINGLEPLAYER_LOADGAME, new SinglePlayer_LoadGamePanel(this)); + + mapGUIStatesToGUIPanel.put(GUIStates.GAME_OVER, new GameOverPanel(this)); } public static void build() { @@ -83,6 +85,7 @@ public class GraphicsMaster extends GraphicsMasterAbstraction { //mf.addKeyListener(mainFrameKeyListener); //mf.revalidate(); //mf.setVisible(true); + changeGUIStateTo(GUIStates.MAIN_MENU); } }); diff --git a/src/graphics/guiSkeleton/guiPanel/menuPanel/GameOverPanel.java b/src/graphics/guiSkeleton/guiPanel/menuPanel/GameOverPanel.java new file mode 100644 index 0000000000000000000000000000000000000000..3f30c1547b0be50f3bd7293168b919928001d65b --- /dev/null +++ b/src/graphics/guiSkeleton/guiPanel/menuPanel/GameOverPanel.java @@ -0,0 +1,64 @@ +package graphics.guiSkeleton.guiPanel.menuPanel; + +import graphics.graphical_abstraction.GraphicsMasterAbstraction; +import graphics.guiSkeleton.GUIColorsAndFonts; +import graphics.guiSkeleton.GraphicsMaster; +import graphics.guiSkeleton.guiPanel.menuPanel.facilities.ButtonMaker; +import graphics.guiSkeleton.guiPanel.menuPanel.facilities.MenuPanel; +import graphics.ingame_input_listener.Input; + +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/** + * Created by dupriez on 01/01/16. + */ +public class GameOverPanel extends MenuPanel { + + public GameOverPanel(GraphicsMaster graphicsMaster) { + super(graphicsMaster); + + JLabel sorryLabel = new JLabel("sorry, you died..."); + sorryLabel.setFont(GUIColorsAndFonts.smallFont1); + sorryLabel.setForeground(GUIColorsAndFonts.fontColor1); + + setTitlePanel("Game Over"); + addToCentralColumn(sorryLabel,1,1); + addToCentralColumn(ButtonMaker.makeButton("Return to main menu", returnButtonActionListener),1,1); + + GraphicsMasterAbstraction.getInstance().changeGUIStateTo(GraphicsMasterAbstraction.GUIStates.GAME_OVER); + } + + private ActionListener returnButtonActionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + getGraphicsMaster().changeGUIStateTo(GraphicsMaster.GUIStates.MAIN_MENU); + } + }; + + @Override + public void initialise() { + + } + + @Override + public void finalise() { + + } + + @Override + public void keyPressedHandler(Input e) { + + } + + @Override + public void keyReleasedHandler(Input e) { + + } + + @Override + public void keyTypedHandler(Input e) { + + } +}