This commit is contained in:
Sem van der Hoeven
2020-06-07 15:12:38 +02:00
parent fd0c8ba765
commit 41b8544646
3 changed files with 56 additions and 20 deletions

View File

@@ -25,6 +25,7 @@ import netwerkprog.game.client.game.map.Map;
import netwerkprog.game.client.game.map.MapRenderer; import netwerkprog.game.client.game.map.MapRenderer;
import netwerkprog.game.util.data.Data; import netwerkprog.game.util.data.Data;
import netwerkprog.game.util.data.NameData; import netwerkprog.game.util.data.NameData;
import netwerkprog.game.util.data.ReadyData;
import netwerkprog.game.util.data.TeamData; import netwerkprog.game.util.data.TeamData;
import netwerkprog.game.util.game.Faction; import netwerkprog.game.util.game.Faction;
import netwerkprog.game.util.game.GameCharacter; import netwerkprog.game.util.game.GameCharacter;
@@ -54,6 +55,8 @@ public class MainGame extends Game implements ClientCallback {
private int turn = 0; private int turn = 0;
private boolean playersTurn = true; private boolean playersTurn = true;
private String username; private String username;
private boolean ready = false;
private boolean enemyReady = false;
private Map map; private Map map;
public MapRenderer mapRenderer; public MapRenderer mapRenderer;
@@ -137,7 +140,8 @@ public class MainGame extends Game implements ClientCallback {
if (chosenFaction == Faction.HACKER) { if (chosenFaction == Faction.HACKER) {
this.team.addMember(temp); this.team.addMember(temp);
this.enemyTeam.addMember(temp2); this.enemyTeam.addMember(temp2);
} if (chosenFaction == Faction.MEGACORPORATION) { }
if (chosenFaction == Faction.MEGACORPORATION) {
this.team.addMember(temp2); this.team.addMember(temp2);
this.enemyTeam.addMember(temp); this.enemyTeam.addMember(temp);
} }
@@ -159,7 +163,7 @@ public class MainGame extends Game implements ClientCallback {
private void connectToServer() { private void connectToServer() {
client = new Client("localhost",this); client = new Client("localhost", this);
Thread t = new Thread(client); Thread t = new Thread(client);
try { try {
t.start(); t.start();
@@ -169,11 +173,11 @@ public class MainGame extends Game implements ClientCallback {
} }
private void clearRender() { private void clearRender() {
clearRender(0,0,0,1); clearRender(0, 0, 0, 1);
} }
private void clearRender(float r, float g, float b, float alpha) { private void clearRender(float r, float g, float b, float alpha) {
Gdx.gl.glClearColor(r/255f, g/255f, b/255f, alpha); Gdx.gl.glClearColor(r / 255f, g / 255f, b / 255f, alpha);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
} }
@@ -192,10 +196,10 @@ public class MainGame extends Game implements ClientCallback {
renderText(); renderText();
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);
renderString("FACTION SELECT\nPress 1 for mega corporation, press 2 for hackers", Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f); renderString("FACTION SELECT\nYou are: " + username + "\nPress 1 for mega corporation, press 2 for hackers", Gdx.graphics.getWidth() / 2f, Gdx.graphics.getHeight() / 2f);
} else if (this.gamestate == GAMESTATE.ENDED) { } else if (this.gamestate == GAMESTATE.ENDED) {
clearRender(67, 168, 186,1); clearRender(67, 168, 186, 1);
String text = "Game ended!\n"; String text = "Game ended!\n";
if (this.enemyTeam.isDead()) { if (this.enemyTeam.isDead()) {
text += "Congratulations! You won!"; text += "Congratulations! You won!";
@@ -353,29 +357,40 @@ public class MainGame extends Game implements ClientCallback {
@Override @Override
public void onDataReceived(Data data) { public void onDataReceived(Data data) {
System.out.println("[MAINGAME" + this.username + "] Got data: " + data.toString()); // System.out.println("[MAINGAME" + this.username + "] Got data: " + data.toString());
if (data instanceof NameData) { if (data instanceof NameData) {
this.username = ((NameData) data).getName(); this.username = ((NameData) data).getName();
System.out.println("[MAINGAME" + this.username + "] username is: " + username); // System.out.println("[MAINGAME" + this.username + "] username is: " + 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)) {
System.out.println(username + "got team data: " + ((TeamData) data).getFaction());
// if we have already chosen a faction, so we were first // if we have already chosen a faction, so we were first
TeamData teamData = (TeamData) data;
if (this.chosenFaction != null) { if (this.chosenFaction != null) {
TeamData teamData = (TeamData) data; if (!this.chosenFaction.equals((teamData.getFaction()))) {
if (this.chosenFaction != teamData.getFaction()) {
// other player chose other faction
initCharacters(); initCharacters();
setGamestate(GAMESTATE.PLAYING); setGamestate(GAMESTATE.PLAYING);
} else { send(new ReadyData(username));
// other player chose same faction, send back that that one
// was already taken
} }
} else { } else {
if (teamData.getFaction() == Faction.HACKER) {
this.setChosenFaction(Faction.MEGACORPORATION);
} else if (teamData.getFaction() == Faction.MEGACORPORATION) {
this.setChosenFaction(Faction.HACKER);
}
System.out.println("FACTION NOT CHOSEN, it is now " + getChosenFaction());
initCharacters();
setGamestate(GAMESTATE.PLAYING);
send(new ReadyData(username));
} }
} }
} else if (data instanceof ReadyData) {
ReadyData readyData = (ReadyData) data;
if (readyData.getUsername().equals(this.username)) {
}
} }
} }
@@ -383,4 +398,20 @@ public class MainGame extends Game implements ClientCallback {
public String getUsername() { public String getUsername() {
return username; return username;
} }
public boolean isEnemyReady() {
return enemyReady;
}
public boolean isReady() {
return ready;
}
public void setReady(boolean ready) {
this.ready = ready;
}
public void setEnemyReady(boolean enemyReady) {
this.enemyReady = enemyReady;
}
} }

View File

@@ -119,21 +119,20 @@ public class GameInputProcessor implements InputProcessor {
} }
} else if (mainGame.getGamestate() == GAMESTATE.SELECTING_FACTION) { } else if (mainGame.getGamestate() == GAMESTATE.SELECTING_FACTION) {
if (keycode == Input.Keys.NUM_1) { if (keycode == Input.Keys.NUM_1) {
System.out.println("MEGA CORP"); System.out.println("chose MEGA CORP");
mainGame.setChosenFaction(Faction.MEGACORPORATION); mainGame.setChosenFaction(Faction.MEGACORPORATION);
mainGame.send(new TeamData(Faction.MEGACORPORATION, mainGame.getUsername())); mainGame.send(new TeamData(Faction.MEGACORPORATION, mainGame.getUsername()));
// mainGame.initCharacters(); // mainGame.initCharacters();
// mainGame.setGamestate(GAMESTATE.PLAYING); // mainGame.setGamestate(GAMESTATE.PLAYING);
} }
if (keycode == Input.Keys.NUM_2) { if (keycode == Input.Keys.NUM_2) {
System.out.println("HACKER"); System.out.println("chose HACKER");
mainGame.setChosenFaction(Faction.HACKER); mainGame.setChosenFaction(Faction.HACKER);
mainGame.send(new TeamData(Faction.MEGACORPORATION, mainGame.getUsername())); mainGame.send(new TeamData(Faction.MEGACORPORATION, mainGame.getUsername()));
// mainGame.initCharacters(); // mainGame.initCharacters();
// camera.translate(-400, 0); // camera.translate(-400, 0);
// mainGame.setGamestate(GAMESTATE.PLAYING); // mainGame.setGamestate(GAMESTATE.PLAYING);
} }
mainGame.send(new ReadyData());
} }
return false; return false;

View File

@@ -1,7 +1,13 @@
package netwerkprog.game.util.data; package netwerkprog.game.util.data;
public class ReadyData extends Data { public class ReadyData extends Data {
public ReadyData() { private String username;
public ReadyData(String username) {
super("ready"); super("ready");
this.username = username;
}
public String getUsername() {
return username;
} }
} }