Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
Calum
2017-09-19 14:54:15 +12:00
2 changed files with 20 additions and 12 deletions
@@ -323,6 +323,7 @@ public class GameState implements Runnable {
if (yacht.getPowerUp() != null) { if (yacht.getPowerUp() != null) {
if (System.currentTimeMillis() - yacht.getPowerUpStartTime() > POWERUP_TIMEOUT_MS) { if (System.currentTimeMillis() - yacht.getPowerUpStartTime() > POWERUP_TIMEOUT_MS) {
yacht.powerDown(); yacht.powerDown();
sendServerMessage(yacht.getSourceId(), yacht.getBoatName() + "'s power-up token expired");
logger.debug("Yacht: " + yacht.getShortName() + " powered down!"); logger.debug("Yacht: " + yacht.getShortName() + " powered down!");
} }
} }
@@ -433,6 +434,7 @@ public class GameState implements Runnable {
//Token Collision //Token Collision
Token collidedToken = checkTokenPickUp(serverYacht); Token collidedToken = checkTokenPickUp(serverYacht);
if (collidedToken != null) { if (collidedToken != null) {
sendServerMessage(serverYacht.getSourceId(), serverYacht.getBoatName() + " has picked speed-up token");
tokensInPlay.remove(collidedToken); tokensInPlay.remove(collidedToken);
serverYacht.powerUp(collidedToken.getTokenType()); serverYacht.powerUp(collidedToken.getTokenType());
logger.debug("Yacht: " + serverYacht.getShortName() + " got powerup " + collidedToken logger.debug("Yacht: " + serverYacht.getShortName() + " got powerup " + collidedToken
@@ -531,6 +533,9 @@ public class GameState implements Runnable {
} }
if (hasProgressed) { if (hasProgressed) {
if (currentMarkSeqID != 0 && !markOrder.isLastMark(currentMarkSeqID)) {
sendServerMessage(yacht.getSourceId(), yacht.getBoatName() + " passed leg " + yacht.getLegNumber());
}
yacht.incrementLegNumber(); yacht.incrementLegNumber();
sendMarkRoundingMessage(yacht); sendMarkRoundingMessage(yacht);
logMarkRounding(yacht); logMarkRounding(yacht);
@@ -565,6 +570,7 @@ public class GameState implements Runnable {
if (crossedLine == 2 && isClockwiseCross || crossedLine == 1 && !isClockwiseCross) { if (crossedLine == 2 && isClockwiseCross || crossedLine == 1 && !isClockwiseCross) {
yacht.setClosestCurrentMark(mark1); yacht.setClosestCurrentMark(mark1);
yacht.setBoatStatus(BoatStatus.RACING); yacht.setBoatStatus(BoatStatus.RACING);
sendServerMessage(yacht.getSourceId(), yacht.getBoatName() + " passed start line");
return true; return true;
} }
} }
@@ -668,6 +674,7 @@ public class GameState implements Runnable {
if (crossedLine == 1 && isClockwiseCross || crossedLine == 2 && !isClockwiseCross) { if (crossedLine == 1 && isClockwiseCross || crossedLine == 2 && !isClockwiseCross) {
yacht.setClosestCurrentMark(mark1); yacht.setClosestCurrentMark(mark1);
yacht.setBoatStatus(BoatStatus.FINISHED); yacht.setBoatStatus(BoatStatus.FINISHED);
sendServerMessage(yacht.getSourceId(), yacht.getBoatName() + " passed finish line");
return true; return true;
} }
} }
@@ -788,12 +795,7 @@ public class GameState implements Runnable {
try { try {
setSpeedMultiplier(Double.valueOf(words[3])); setSpeedMultiplier(Double.valueOf(words[3]));
sendServerMessage(chatterMessage.getMessage_type(), sendServerMessage(chatterMessage.getMessage_type(),
"SERVER: Speed modifier set to x" + words[3]); "Speed modifier set to x" + words[3]);
System.out.println(chatterMessage.getMessage_type());
// notifyMessageListeners(new ChatterMessage(
// chatterMessage.getMessage_type(),
// "SERVER: Speed modifier set to x" + words[3]
// ));
} catch (Exception e) { } catch (Exception e) {
Logger logger = LoggerFactory.getLogger(GameState.class); Logger logger = LoggerFactory.getLogger(GameState.class);
logger.error("cannot parse >speed value"); logger.error("cannot parse >speed value");
@@ -801,12 +803,7 @@ public class GameState implements Runnable {
return; return;
case "/finish": case "/finish":
sendServerMessage(chatterMessage.getMessage_type(), sendServerMessage(chatterMessage.getMessage_type(),
"SERVER: Game will now finish"); "Game will now finish");
System.out.println(chatterMessage.getMessage_type());
// notifyMessageListeners(new ChatterMessage(
// chatterMessage.getMessage_type(),
// "SERVER: Game will now finish"
// ));
endRace(); endRace();
return; return;
} }
+11
View File
@@ -24,7 +24,17 @@ public class ToggleSailSteps {
@Given("^The game is running$") @Given("^The game is running$")
public void the_game_is_running() throws Throwable { public void the_game_is_running() throws Throwable {
mst = new MainServerThread(); mst = new MainServerThread();
try {
Thread.sleep(100);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
client = new ClientToServerThread("localhost", 4942); client = new ClientToServerThread("localhost", 4942);
try {
Thread.sleep(100);
} catch (InterruptedException ie) {
ie.printStackTrace();
}
GameState.setCurrentStage(GameStages.RACING); GameState.setCurrentStage(GameStages.RACING);
Thread.sleep(200); // Sleep needed to help the threads all be up to speed with each other Thread.sleep(200); // Sleep needed to help the threads all be up to speed with each other
ServerYacht yacht = (new ArrayList<>(GameState.getYachts().values())).get(0); ServerYacht yacht = (new ArrayList<>(GameState.getYachts().values())).get(0);
@@ -50,5 +60,6 @@ public class ToggleSailSteps {
Assert.assertFalse(yacht.getSailIn()); Assert.assertFalse(yacht.getSailIn());
} }
mst.terminate(); mst.terminate();
client.setSocketToClose();
} }
} }