diff --git a/src/JoinGame.java b/src/JoinGame.java index 879d48e..a12c083 100644 --- a/src/JoinGame.java +++ b/src/JoinGame.java @@ -5,13 +5,6 @@ import java.awt.event.ActionListener; import java.io.IOException; import java.net.InetSocketAddress; -/* -TODO: evtl an Lucas: die "JoinGame" muss noch informationen erhalten, welche Spieler erstellt wurden und welches Semester -Also die startMultiplayerGame muss JoinGame mit parametern für (HumanPlayer/AiEasy/AiNormal/AiHard, Semesteranzahl, Spielername) (3 Parameter) erhalten - -*/ - - public class JoinGame extends JPanel { ImageIcon backButtonIcon = new ImageIcon("graphics/backButton.png"); @@ -27,12 +20,12 @@ public class JoinGame extends JPanel { Font robotoFont = new Font("Roboto", Font.BOLD, 45); - public JoinGame(MainFrame frame,int g) { + public JoinGame(MainFrame frame,int g,int playerType,String playerName) { setLayout(null); - buildPanel(frame,g); + buildPanel(frame,g,playerType,playerName); } - private void buildPanel(MainFrame frame,int g) { + private void buildPanel(MainFrame frame,int g,int playerType,String playerName) { if(g==1){ spielBeitretenLabel= new JLabel("Spiel beitreten"); }else{ @@ -43,10 +36,12 @@ public class JoinGame extends JPanel { losButton.setBounds(320, 225, 100, 50); backButton.setBounds(1380, 20, 80, 80); - ipLabel.setBounds(50, 125, 200, 30); portLabel.setBounds(50, 200, 200, 30); - ipTextField.setBounds(50, 150, 250, 50); + if(g==1) { //Wenn man Spiel erstellen will werden IP-Felder nicht angezeigt. + ipLabel.setBounds(50, 125, 200, 30); + ipTextField.setBounds(50, 150, 250, 50); + } portTextField.setBounds(50, 225, 250, 50); @@ -61,31 +56,38 @@ public class JoinGame extends JPanel { add(backButton); backButton.addActionListener(e -> frame.showPanel("MultiplayerGame")); - losButton.addActionListener(e -> frame.showPanel("Verbinden")); + //losButton.addActionListener(e -> frame.showPanel("Verbinden")); losButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + String ipAddress = ipTextField.getText(); + if (ipAddress.equals("")) { + ipAddress = "0.0.0.0"; + } String portText = portTextField.getText(); int port = Integer.parseInt(portText); InetSocketAddress address = new InetSocketAddress(ipAddress, port); frame.showPanel("Verbinden"); - //public static void startOnlineGame(Class localPlayerClass, String localPlayerName, InetSocketAddress - // address, int size) throws IOException { - if(true) { //Beispiel (für playertape wäre z.B. 1 humanPlayer etc.) - try { - GameController.startOnlineGame(HumanPlayer.class, "TollerTest", address,GameController.semesterToBoardSize(2)); // - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } + try { + if(playerType == 0) { + GameController.startOnlineGame(HumanPlayer.class, playerName, address,GameController.semesterToBoardSize(2)); + } else if(playerType == 1) { + GameController.startOnlineGame(SpecificAiPlayerEasy.class, playerName, address,GameController.semesterToBoardSize(2)); + } else if (playerType == 2) { + GameController.startOnlineGame(SpecificAiPlayerMedium.class, playerName, address,GameController.semesterToBoardSize(2)); + } else if (playerType == 3) { + GameController.startOnlineGame(SpecificAiPlayerHard.class, playerName, address,GameController.semesterToBoardSize(2)); + } + } catch (IOException ex) { + throw new RuntimeException(ex); + } } }); - } } \ No newline at end of file diff --git a/src/MainFrame.java b/src/MainFrame.java index 9afa7d2..12982d5 100644 --- a/src/MainFrame.java +++ b/src/MainFrame.java @@ -64,11 +64,11 @@ public class MainFrame extends JFrame { } // --- ShowPanel der startMultiplayerGame Klasse - public void showPanelSMG(String panelName, int num) { + public void showPanelSMG(String panelName, int num, int playerType,String playerName) { this.localMult = num; //if (!isPanelPresent(panelName)) { //TODO potentiell raus - JoinGame joinGame = new JoinGame(this, localMult); + JoinGame joinGame = new JoinGame(this, localMult, playerType, playerName); mainPanel.add(joinGame, panelName); mainPanel.revalidate(); // Refresh mainPanel.repaint(); @@ -128,11 +128,12 @@ public class MainFrame extends JFrame { mainPanel.repaint(); }*/ - + /* Tut wohl gar nicht, weils nicht aufgerufen wird hoppla public static void main(String[] args) { SwingUtilities.invokeLater(() -> { MainFrame frame = new MainFrame(); frame.setVisible(true); }); } + */ } \ No newline at end of file diff --git a/src/startMultiplayerGame.java b/src/startMultiplayerGame.java index e536744..db94f47 100644 --- a/src/startMultiplayerGame.java +++ b/src/startMultiplayerGame.java @@ -1,4 +1,6 @@ import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; // TODO // Evtl. ist Namen selber setzten noch unmöglich @@ -121,8 +123,82 @@ public class startMultiplayerGame extends JPanel { // ActionListener für den "Back" Button, um zum vorherigen Panel zurückzukehren backButton.addActionListener(e -> frame.showPanel("MainMenu")); - joinGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",1)); - createGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",0)); + //joinGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",1)); + //createGameButton.addActionListener(e -> frame.showPanelSMG("JoinGame",0)); + + joinGameButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + //Parameter -> panelName, Spiel erstellen oder beitreten (int), Spielertyp(int 0-3), Spielername + if (PlayerIcon.getIcon() == humanPlayerIcon) { // TODO Wird name wirklich weitergegeben? + frame.showPanelSMG("JoinGame",1,0, PlayerNickname); + } else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) { + frame.showPanelSMG("JoinGame",1,1, PlayerNickname); + } else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) { + frame.showPanelSMG("JoinGame",1,2, PlayerNickname); + } else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) { + frame.showPanelSMG("JoinGame",1,3, PlayerNickname); + } + } + }); + + createGameButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + //Parameter -> panelName, Spiel erstellen oder beitreten (int), Spielertyp(int 0-3), Spielername + if (PlayerIcon.getIcon() == humanPlayerIcon) { // TODO Wird name wirklich weitergegeben? + frame.showPanelSMG("JoinGame",0,0, PlayerNickname); + } else if ( PlayerIcon.getIcon() == aiPlayerEasyIcon) { + frame.showPanelSMG("JoinGame",0,1, PlayerNickname); + } else if ( PlayerIcon.getIcon() == aiPlayerNormalIcon) { + frame.showPanelSMG("JoinGame",0,2, PlayerNickname); + } else if ( PlayerIcon.getIcon() == aiPlayerHardIcon) { + frame.showPanelSMG("JoinGame",0,3, PlayerNickname); + } + } + }); + /* + startButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + frame.showPanelSLGLS("startLocalGameLoadingScreen", semesterCounter); //TODO + if (leftPlayerIcon.getIcon() == humanPlayerIcon) {// TODO Wird name wirklich weitergegeben? + if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); + } + } else if (leftPlayerIcon.getIcon() == aiPlayerEasyIcon) { + if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); + } + } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { + if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); + } + } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { + if (rightPlayerIcon.getIcon() == aiPlayerEasyIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerEasy.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerNormalIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerMedium.class, GameController.semesterToBoardSize(semesterCounter)); + } else if (rightPlayerIcon.getIcon() == aiPlayerHardIcon) { + GameController.startLocalGame(HumanPlayer.class, leftPlayerNickname, SpecificAiPlayerHard.class, GameController.semesterToBoardSize(semesterCounter)); + } + } + + } + }); + */ } // TOGGLE METHODEN