@Override public void onGameStopped() { gdxFrame.setExtendedState(JFrame.ICONIFIED); // gdxFrame.setVisible(false); for (int i = 0; i < game.getAllTeams().size(); ++i) { game.getAllTeams().get(i).removeAllAgents(); } game.getPlayerTeams().clear(); settings.prepareForNewGame(); logger.log(Level.INFO, "Reset settings"); launcherInterface.setVisible(true); launcherInterface.revalidate(); launcherInterface.repaint(); }
@Override public void onGameOver() { if (launcherInterface == null) { // Si la simulation a été lancée depuis la ligne de commande String finalTeams = ""; for (InGameTeam team : game.getPlayerTeams()) { finalTeams += team.getName() + ", "; } finalTeams = finalTeams.substring(0, finalTeams.length() - 2); if (game.getPlayerTeams().size() == 1) { logger.log(Level.INFO, "Victoire de : " + finalTeams); } else { logger.log(Level.INFO, "Ex-Aequo entre les équipes : " + finalTeams); } game.setGameStopped(); } }
public WarMain() { WarGame.addWarGameListener(this); availableTeams = new HashMap<>(); settings = new WarGameSettings(); // On récupère les équipes loadingDialog = new LoadingDialog("Chargement des équipes..."); loadingDialog.setVisible(true); TeamLoader tl = new TeamLoader(); // On initialise la liste des équipes existantes dans le dossier "teams" availableTeams = tl.loadAllAvailableTeams(true); // On vérifie qu'au moins une équipe a été chargée if (availableTeams.size() > 0) { // On lance la launcher interface final WarMain warMain = this; SwingUtilities.invokeLater( new Runnable() { public void run() { launcherInterface = new WarLauncherInterface(warMain, settings); launcherInterface.setVisible(true); LwjglApplicationConfiguration configCanvas = new LwjglApplicationConfiguration(); gdxGame = new WarViewerGdx(800, 600); LwjglCanvas gameCanvas = new LwjglCanvas(gdxGame, configCanvas); gdxFrame = new JFrame("Warbot 2.5D !!"); gdxFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); gdxFrame.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { WarGame.getInstance().setGamePaused(); int confirmation = JOptionPane.showConfirmDialog( null, "Voulez-vous fermer la fenêtre graphique ?", "Demande de confirmation", JOptionPane.YES_NO_OPTION); if (confirmation == JOptionPane.YES_OPTION) gdxFrame.setExtendedState(JFrame.ICONIFIED); // gdxFrame.setVisible(false); WarGame.getInstance().setGameResumed(); } }); gdxFrame.setAlwaysOnTop(true); gdxFrame.add(gameCanvas.getCanvas()); gdxFrame.setSize(800, 600); gdxFrame.setMinimumSize(new Dimension(450, 450)); gdxFrame.setVisible(true); gdxFrame.setExtendedState(JFrame.ICONIFIED); // while(gdxFrame.isVisible()) // gdxFrame.setVisible(false); } }); } else { JOptionPane.showMessageDialog( null, "Aucune équipe n'a été trouvé dans le dossier \"" + TEAMS_DIRECTORY_NAME + "\"", "Aucune équipe", JOptionPane.ERROR_MESSAGE); } loadingDialog.setVisible(false); }
public void start() { game = WarGame.createGameFromSettings(settings); WarLauncher launcher = new WarLauncher(game); launcher.executeLauncher(); }