From 84cd9eed4c1e123f024642beeba5ba2a00d5cec0 Mon Sep 17 00:00:00 2001 From: Andreas Jakobsson Date: Sat, 10 Jan 2009 01:18:11 +0100 Subject: [PATCH] Popup when level completed --- src/se/umu/cs/dit06ajnajs/ATDController.java | 26 +++++++++++++++----------- src/se/umu/cs/dit06ajnajs/ATDView.java | 11 +++++++++++ 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/se/umu/cs/dit06ajnajs/ATDController.java b/src/se/umu/cs/dit06ajnajs/ATDController.java index fd4d3b8..4206f5f 100644 --- a/src/se/umu/cs/dit06ajnajs/ATDController.java +++ b/src/se/umu/cs/dit06ajnajs/ATDController.java @@ -73,6 +73,11 @@ public class ATDController { // TODO Auto-generated method stub while (running) { long startTime = System.currentTimeMillis(); + + // Check if the goal for the level is reached + if (model.isGoalReached()) { + clocking = false; + } List agents = model.getAgents(); List units = new ArrayList(); @@ -121,11 +126,14 @@ public class ATDController { numOfUnits = square.getNumUnits(); credit += square.getCredit(); } - if (credit > 0 || numOfUnits > 0) { - model.addCredit(credit); - model.addGoalUnit(numOfUnits); - view.updateScoreboard(); - } + // Only update model if changes has been made and the clock is + // running + if ((credit > 0 || numOfUnits > 0) && clocking) { + model.addCredit(credit); + model.addGoalUnit(numOfUnits); + view.updateScoreboard(); + } + // Release Unit from StartSquares StartSquare[] startSquares = model.getStartSquares(); @@ -194,16 +202,12 @@ public class ATDController { model.addCredit(credit); view.updateScoreboard(); } - - // Goalcheck - if(model.isGoalReached()) { - clocking = false; - System.out.println("Victory! CreditThread is stopping..."); - } } catch (InterruptedException e) { e.printStackTrace(); } } + System.out.println("Victory!"); + view.showLevelCompleteDialog(); } private int calculateCredit() { diff --git a/src/se/umu/cs/dit06ajnajs/ATDView.java b/src/se/umu/cs/dit06ajnajs/ATDView.java index 39e610d..dd600d9 100644 --- a/src/se/umu/cs/dit06ajnajs/ATDView.java +++ b/src/se/umu/cs/dit06ajnajs/ATDView.java @@ -21,6 +21,7 @@ import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; @@ -222,6 +223,14 @@ public class ATDView { }); } + public void showLevelCompleteDialog() { + JOptionPane.showMessageDialog(frame, + "Eggs are not supposed to be green.", + "Inane custom dialog", + JOptionPane.INFORMATION_MESSAGE, + null); + } + /** * GameComponent is the componenent on which the Level and all Units and * Towers is shown. @@ -309,4 +318,6 @@ public class ATDView { public void addMapListener(MouseListener ml) { gameComponent.addMouseListener(ml); } + + } -- 2.11.4.GIT