|
@@ -40,7 +40,8 @@ public class Match implements Runnable {
|
|
|
this.nwuser2 = nwuser2;
|
|
this.nwuser2 = nwuser2;
|
|
|
System.out.println("New Match!");
|
|
System.out.println("New Match!");
|
|
|
levels = LevelReader.readLevelsFromFiles();
|
|
levels = LevelReader.readLevelsFromFiles();
|
|
|
-
|
|
|
|
|
|
|
+ playLevel(getCurrentLevel());
|
|
|
|
|
+
|
|
|
timer = new Timer();
|
|
timer = new Timer();
|
|
|
timer.schedule(new TimerTask() {
|
|
timer.schedule(new TimerTask() {
|
|
|
@Override
|
|
@Override
|
|
@@ -48,20 +49,31 @@ public class Match implements Runnable {
|
|
|
update();
|
|
update();
|
|
|
}
|
|
}
|
|
|
}, 0, 1000 / 30);
|
|
}, 0, 1000 / 30);
|
|
|
-
|
|
|
|
|
- playLevel(getCurrentLevel());
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void playLevel(Level level) {
|
|
public void playLevel(Level level) {
|
|
|
balls.clear();
|
|
balls.clear();
|
|
|
- for (Ball b : level.getStartballs()) {
|
|
|
|
|
- balls.add(b.clone());
|
|
|
|
|
|
|
+ if(level == null){
|
|
|
|
|
+ timer.cancel();
|
|
|
|
|
+ setOverlayMessage("No more levels to play!");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ setOverlayMessage("Level "+(currentlevel+1));
|
|
|
|
|
+ player1.reset();
|
|
|
|
|
+ player2.reset();
|
|
|
|
|
+ line1 = null;
|
|
|
|
|
+ line2 = null;
|
|
|
|
|
+ try {
|
|
|
|
|
+ Thread.sleep(1000);
|
|
|
|
|
+ } catch (InterruptedException e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ for (Ball b : level.getStartballs()) {
|
|
|
|
|
+ balls.add(b.clone());
|
|
|
|
|
+ }
|
|
|
|
|
+ timeleft = level.getTime();
|
|
|
|
|
+ lasttime = System.currentTimeMillis();
|
|
|
|
|
+ setOverlayMessage("");
|
|
|
}
|
|
}
|
|
|
- timeleft = level.getTime();
|
|
|
|
|
- player1.reset();
|
|
|
|
|
- player2.reset();
|
|
|
|
|
- line1 = null;
|
|
|
|
|
- lasttime = System.currentTimeMillis();
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public Level getCurrentLevel() {
|
|
public Level getCurrentLevel() {
|
|
@@ -147,7 +159,8 @@ public class Match implements Runnable {
|
|
|
player2.setScore(player2.getScore() + (timeleft / 100));
|
|
player2.setScore(player2.getScore() + (timeleft / 100));
|
|
|
else
|
|
else
|
|
|
player2.setScore(player2.getScore() + (timeleft / 100) / 2);
|
|
player2.setScore(player2.getScore() + (timeleft / 100) / 2);
|
|
|
- playLevel(levels.get(currentlevel += 1));
|
|
|
|
|
|
|
+ currentlevel++;
|
|
|
|
|
+ playLevel(getCurrentLevel());
|
|
|
} else if (timeleft < 0) {
|
|
} else if (timeleft < 0) {
|
|
|
player1.setHealth(player1.getHealth() - 1);
|
|
player1.setHealth(player1.getHealth() - 1);
|
|
|
player2.setHealth(player2.getHealth() - 1);
|
|
player2.setHealth(player2.getHealth() - 1);
|
|
@@ -158,7 +171,7 @@ public class Match implements Runnable {
|
|
|
lasttime = System.currentTimeMillis();
|
|
lasttime = System.currentTimeMillis();
|
|
|
|
|
|
|
|
// Sending the new information to the players
|
|
// Sending the new information to the players
|
|
|
- String playerinfo = "2|" + player1.getX() + "|" + player1.getY() + "|" + player1.getHealth() + "|" + player1.getScore() + "|" + player2.getX() + "|" + player2.getY() + "|" + player2.getHealth() + "|" + player2.getScore();
|
|
|
|
|
|
|
+ String playerinfo = player1.getX() + "|" + player1.getY() + "|" + player1.getHealth() + "|" + player1.getScore() + "|" + player2.getX() + "|" + player2.getY() + "|" + player2.getHealth() + "|" + player2.getScore();
|
|
|
|
|
|
|
|
String ballsinfo = ",";
|
|
String ballsinfo = ",";
|
|
|
for (Ball b : balls) {
|
|
for (Ball b : balls) {
|
|
@@ -175,14 +188,21 @@ public class Match implements Runnable {
|
|
|
else
|
|
else
|
|
|
linesinfo += "0|0|0|";
|
|
linesinfo += "0|0|0|";
|
|
|
|
|
|
|
|
- String timeleft = "," + (int) (this.timeleft / (double) getCurrentLevel().getTime() * 100);
|
|
|
|
|
|
|
+ String timeleft = ",0";
|
|
|
|
|
+ if(getCurrentLevel() != null){
|
|
|
|
|
+ timeleft = "," + (int) (this.timeleft / (double) getCurrentLevel().getTime() * 100);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- nwuser1.sendMessage(playerinfo + ballsinfo + linesinfo + timeleft);
|
|
|
|
|
- nwuser2.sendMessage(playerinfo + ballsinfo + linesinfo + timeleft);
|
|
|
|
|
|
|
+ nwuser1.sendUpdateMessage(playerinfo + ballsinfo + linesinfo + timeleft);
|
|
|
|
|
+ nwuser2.sendUpdateMessage(playerinfo + ballsinfo + linesinfo + timeleft);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* GETTERS AND SETTERS */
|
|
/* GETTERS AND SETTERS */
|
|
|
|
|
+ public void setOverlayMessage(String m){
|
|
|
|
|
+ nwuser1.sendOverlayText(m);
|
|
|
|
|
+ nwuser2.sendOverlayText(m);
|
|
|
|
|
+ }
|
|
|
public void setPlayerDirection(int pid, int dir) {
|
|
public void setPlayerDirection(int pid, int dir) {
|
|
|
if (pid == 1)
|
|
if (pid == 1)
|
|
|
p1direction = dir;
|
|
p1direction = dir;
|