last stuff

This commit is contained in:
Sem van der Hoeven
2020-06-07 18:28:44 +02:00
parent 17df656725
commit 4a332d1221
4 changed files with 51 additions and 10 deletions

View File

@@ -27,6 +27,7 @@ import netwerkprog.game.util.data.Data;
import netwerkprog.game.util.data.character.DamageData; import netwerkprog.game.util.data.character.DamageData;
import netwerkprog.game.util.data.character.MoveData; import netwerkprog.game.util.data.character.MoveData;
import netwerkprog.game.util.data.connection.NameData; import netwerkprog.game.util.data.connection.NameData;
import netwerkprog.game.util.data.connection.PlayerConnectData;
import netwerkprog.game.util.data.connection.TeamData; import netwerkprog.game.util.data.connection.TeamData;
import netwerkprog.game.util.data.connection.TurnData; import netwerkprog.game.util.data.connection.TurnData;
import netwerkprog.game.util.game.Faction; import netwerkprog.game.util.game.Faction;
@@ -44,6 +45,7 @@ public class MainGame extends Game implements ClientCallback {
/** /**
* return the instance of the main game. * return the instance of the main game.
*
* @return the main game * @return the main game
*/ */
public static MainGame getInstance() { public static MainGame getInstance() {
@@ -72,18 +74,19 @@ public class MainGame extends Game implements ClientCallback {
private float screenWidth; private float screenWidth;
private float screenHeight; private float screenHeight;
private String username; private String username;
private int turn = 0; private int turn;
private boolean playersTurn = true; private boolean playersTurn;
private boolean ready = false; private boolean ready;
private boolean enemyReady = false; private boolean enemyReady;
private boolean gameOver = false; private boolean gameOver;
private boolean otherPlayerConnected;
private MainGame() { private MainGame() {
} }
@Override @Override
public void create() { public void create() {
init(); init();
} }
public void init() { public void init() {
@@ -120,6 +123,12 @@ public class MainGame extends Game implements ClientCallback {
camera.viewportWidth = screenWidth / 2; camera.viewportWidth = screenWidth / 2;
camera.viewportHeight = screenHeight / 2; camera.viewportHeight = screenHeight / 2;
camera.update(); camera.update();
otherPlayerConnected = false;
gameOver = false;
ready = false;
enemyReady = false;
playersTurn = true;
turn = 0;
setGamestate(GAMESTATE.SELECTING_FACTION); setGamestate(GAMESTATE.SELECTING_FACTION);
connectToServer(); connectToServer();
// playSong(); // playSong();
@@ -205,12 +214,15 @@ public class MainGame extends Game implements ClientCallback {
renderTurnText(); renderTurnText();
} else if (this.gamestate == GAMESTATE.SELECTING_FACTION) { } else if (this.gamestate == GAMESTATE.SELECTING_FACTION) {
clearRender(67, 168, 186, 1); clearRender(67, 168, 186, 1);
String text = username == null ? "Connecting to server..." : "FACTION SELECT\nYou are: " + username + "\nPress 1 for mega corporation, press 2 for hackers"; String text = "";
if (otherPlayerConnected)
text = username == null ? "Connecting to server..." : "FACTION SELECT\nYou are: " + username + "\nPress 1 for mega corporation, press 2 for hackers";
else text = "Waiting for other player...";
renderString(text, Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f); renderString(text, Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f);
if (this.ready && this.enemyReady) { if (this.ready && this.enemyReady) {
if (this.chosenFaction == Faction.HACKER) { if (this.chosenFaction == Faction.HACKER) {
chooseHacker(); chooseHacker();
} else if (this.chosenFaction == Faction.MEGACORPORATION){ } else if (this.chosenFaction == Faction.MEGACORPORATION) {
chooseMegaCorp(); chooseMegaCorp();
} }
} }
@@ -328,7 +340,7 @@ public class MainGame extends Game implements ClientCallback {
} }
public void setSelectedCharacter(GameCharacter character) { public void setSelectedCharacter(GameCharacter character) {
if (!character.isDead()) { if (!character.isDead()) {
this.selectedCharacter = character; this.selectedCharacter = character;
GameTile characterTile = mapRenderer.getTile(character); GameTile characterTile = mapRenderer.getTile(character);
Point pos = mapRenderer.getPos(characterTile); Point pos = mapRenderer.getPos(characterTile);
@@ -372,6 +384,10 @@ public class MainGame extends Game implements ClientCallback {
return gameOver; return gameOver;
} }
public boolean isOtherPlayerConnected() {
return otherPlayerConnected;
}
public void increaseTurn() { public void increaseTurn() {
this.turn++; this.turn++;
if (turn == 3) { if (turn == 3) {
@@ -395,8 +411,10 @@ public class MainGame extends Game implements ClientCallback {
@Override @Override
public void onDataReceived(Data data) { public void onDataReceived(Data data) {
System.out.println("got data: " + data);
if (data instanceof NameData) { if (data instanceof NameData) {
this.username = ((NameData) data).getName(); this.username = ((NameData) data).getName();
send(new PlayerConnectData(username));
} else if (data instanceof TeamData) { } else if (data instanceof TeamData) {
// check if it is not our own message // check if it is not our own message
if (!((TeamData) data).getUsername().equals(this.username)) { if (!((TeamData) data).getUsername().equals(this.username)) {
@@ -426,6 +444,13 @@ public class MainGame extends Game implements ClientCallback {
team.get(damageData.getName()).damage(10); team.get(damageData.getName()).damage(10);
} else if (data instanceof TurnData) { } else if (data instanceof TurnData) {
this.playersTurn = !this.playersTurn; this.playersTurn = !this.playersTurn;
} else if (data instanceof PlayerConnectData) {
System.out.println("Got player connected");
if (!((PlayerConnectData) data).getUsername().equals(this.username) && !this.otherPlayerConnected) {
System.out.println("player connect");
otherPlayerConnected = true;
send(new PlayerConnectData(username));
}
} }
} }

View File

@@ -116,7 +116,7 @@ public class GameInputProcessor implements InputProcessor {
return true; return true;
} }
} else if (mainGame.getGamestate() == GAMESTATE.SELECTING_FACTION) { } else if (mainGame.getGamestate() == GAMESTATE.SELECTING_FACTION && mainGame.isOtherPlayerConnected()) {
if (keycode == Input.Keys.NUM_1) { if (keycode == Input.Keys.NUM_1) {
System.out.println("choosing mega"); System.out.println("choosing mega");
mainGame.send(new TeamData(Faction.MEGACORPORATION, mainGame.getUsername())); mainGame.send(new TeamData(Faction.MEGACORPORATION, mainGame.getUsername()));

View File

@@ -3,6 +3,7 @@ package netwerkprog.game.server;
import netwerkprog.game.util.data.Data; import netwerkprog.game.util.data.Data;
import netwerkprog.game.util.data.connection.ConnectionData; import netwerkprog.game.util.data.connection.ConnectionData;
import netwerkprog.game.util.data.connection.NameData; import netwerkprog.game.util.data.connection.NameData;
import netwerkprog.game.util.data.connection.PlayerConnectData;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;

View File

@@ -0,0 +1,15 @@
package netwerkprog.game.util.data.connection;
import netwerkprog.game.util.data.Data;
public class PlayerConnectData extends Data {
private String username;
public PlayerConnectData(String username) {
super("player-connect");
this.username = username;
}
public String getUsername() {
return username;
}
}