diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/BoardAppState.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/BoardAppState.java index e970544..d29ee16 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/BoardAppState.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/BoardAppState.java @@ -43,6 +43,7 @@ public class BoardAppState extends MonopolyAppState { * The path to the unshaded texture material. */ private static final String UNSHADED = "Common/MatDefs/Misc/Unshaded.j3md"; //NON-NLS + private static final String LIGHTING = "Common/MatDefs/Light/Lighting.j3md"; /** * The path to the sea texture material. @@ -95,7 +96,8 @@ public class BoardAppState extends MonopolyAppState { viewNode.attachChild(sceneNode); setupLights(); - setupSky(); + // setupSky(); + getApp().getViewPort().setBackgroundColor(new com.jme3.math.ColorRGBA(0.5f, 0.7f, 1.0f, 1.0f)); } /** @@ -153,7 +155,8 @@ public class BoardAppState extends MonopolyAppState { viewNode.addLight(sun); shRend.setLight(sun); - final AmbientLight ambientLight = new AmbientLight(new ColorRGBA(1f, 1f, 1f, 1f)); + final AmbientLight ambientLight = new AmbientLight(); + // ambientLight.setColor(ColorRGBA.White.mult(0.f)); // brightness viewNode.addLight(ambientLight); } @@ -252,7 +255,16 @@ public class BoardAppState extends MonopolyAppState { seaGeo.setLocalRotation(rotation); final Material seaMat = new Material(getApp().getAssetManager(), "Common/MatDefs/Light/Lighting.j3md"); Texture texture = getApp().getAssetManager().loadTexture("Pictures/board2.png"); + texture.setMagFilter(Texture.MagFilter.Bilinear); + texture.setMinFilter(Texture.MinFilter.Trilinear); seaMat.setTexture("DiffuseMap", texture); + + // Add specular highlights + // seaMat.setBoolean("UseMaterialColors", true); + seaMat.setColor("Diffuse", ColorRGBA.White); + seaMat.setColor("Specular", ColorRGBA.White); + // seaMat.setFloat("Shininess", 16f); + seaGeo.setMaterial(seaMat); seaGeo.setShadowMode(ShadowMode.CastAndReceive); TangentBinormalGenerator.generate(seaGeo); @@ -273,7 +285,7 @@ public class BoardAppState extends MonopolyAppState { for (int i = 0; i < 6; i++) { Box box = new Box(1.2f, 0.05f, 1.8f); // Sehr flaches Rechteck Geometry flatCard = new Geometry("Ereigniskarten_" + i, box); - Material mat = new Material(getApp().getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); + Material mat = new Material(getApp().getAssetManager(), UNSHADED); mat.setTexture("ColorMap", getApp().getAssetManager().loadTexture("Textures/Ereigniskarten.png")); flatCard.setMaterial(mat); diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/PopUpManager.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/PopUpManager.java index d16ac1e..2cc056e 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/PopUpManager.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/PopUpManager.java @@ -56,7 +56,7 @@ public class PopUpManager implements GameEventListener { } }); } - }, 6000); + }, 8000); } else if (event.msg().equals("Winner")) { new WinnerPopUp(app).open(); } else if (event.msg().equals("Looser")) { diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/CameraController.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/CameraController.java index c4154c8..3b2ccf2 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/CameraController.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/CameraController.java @@ -89,13 +89,13 @@ public class CameraController implements GameEventListener{ int fieldId = playerHandler.getPlayerById( (currentMode == CameraMode.FOCUS_SELF ? app.getId() : playerHandler.getPlayerAtIndex(0).getId()) ).getFieldID(); // System.out.println(); if(fieldId < 10) { - offset = new Vector3f(0, 15, -20); + offset = new Vector3f(0, 10, -15); } else if(fieldId < 20) { - offset = new Vector3f(20 , 15, 0); + offset = new Vector3f(15 , 10, 0); } else if(fieldId < 30) { - offset = new Vector3f(0, 15, 20 ); + offset = new Vector3f(0, 10, 15 ); } else { - offset = new Vector3f(-20, 15, 0); + offset = new Vector3f(-15, 10, 0); } return offset; diff --git a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java index 8b77168..ab8bc13 100644 --- a/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java +++ b/Projekte/monopoly/client/src/main/java/pp/monopoly/client/gui/popups/GateFieldCard.java @@ -76,11 +76,11 @@ public class GateFieldCard extends Dialog implements PopupDialog { propertyValuesContainer.addChild(new Label("„Preis: " + field.getPrice() + " EUR", new ElementId("label-Text"))); propertyValuesContainer.addChild(new Label("", new ElementId("label-Text"))); // Empty line propertyValuesContainer.addChild(new Label("Miete: 250 EUR", new ElementId("label-Text"))); - propertyValuesContainer.addChild(new Label("Wenn man 2 Bahnhöfe", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("Wenn man 2 Tore", new ElementId("label-Text"))); propertyValuesContainer.addChild(new Label("besitzt: 500 EUR", new ElementId("label-Text"))); - propertyValuesContainer.addChild(new Label("Wenn man 3 Bahnhöfe", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("Wenn man 3 Tore", new ElementId("label-Text"))); propertyValuesContainer.addChild(new Label("besitzt: 1000 EUR", new ElementId("label-Text"))); - propertyValuesContainer.addChild(new Label("Wenn man 4 Bahnhöfe", new ElementId("label-Text"))); + propertyValuesContainer.addChild(new Label("Wenn man 4 Tore", new ElementId("label-Text"))); propertyValuesContainer.addChild(new Label("besitzt: 2000 EUR", new ElementId("label-Text"))); propertyValuesContainer.addChild(new Label("", new ElementId("label-Text"))); // Empty line propertyValuesContainer.addChild(new Label("„Hypothek: " + field.getHypo() + " EUR", new ElementId("label-Text"))); diff --git a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/Player.java b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/Player.java index 4badf81..ef11110 100644 --- a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/Player.java +++ b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/Player.java @@ -492,7 +492,8 @@ public class Player implements FieldVisitor{ } return total; } - // private static int c = 0; + private static int c = 0; + private static int[] rolls = {4,4, 1,2, 2,3}; /** * Inner class for dice functionality in the game. @@ -507,8 +508,20 @@ public class Player implements FieldVisitor{ * @return the result of a dice roll (1 to 6) */ private static int rollDice() { - return random.nextInt(6) + 1; + // return random.nextInt(6) + 1; // c++; + if(c >= rolls.length) return random.nextInt(6) + 1; + System.out.println(); + System.out.println(); + System.out.println(); + System.out.println(); + System.out.println("DICEEEEEEEEEEEEEEEEEEEEE"); + System.out.println(); + System.out.println(); + System.out.println(); + System.out.println(); + System.out.println(); + return rolls[c++]; // return (c%2 == 0)? 3: 2; // if(c < 7) { // return 3; diff --git a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/PlayerHandler.java b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/PlayerHandler.java index 4590e98..a532906 100644 --- a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/PlayerHandler.java +++ b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/PlayerHandler.java @@ -165,10 +165,11 @@ public class PlayerHandler { * Shuffles the players and sets their state to WaitForNextTurn, the first one will be active */ void randomOrder() { - Collections.shuffle(players); - for (Player player : players) { - player.finishTurn(); - } + // Collections.shuffle(players); + // for (Player player : players) { + // player.finishTurn(); + // } + nextPlayer(); players.get(0).setActive(); } diff --git a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java index ea33b69..bf6096f 100644 --- a/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java +++ b/Projekte/monopoly/model/src/main/java/pp/monopoly/game/server/ServerGameLogic.java @@ -229,6 +229,8 @@ public class ServerGameLogic implements ClientInterpreter { for (Player p : playerHandler.getPlayers()) { send(p, new GameStart(playerHandler)); } + + playerHandler.randomOrder(); send(playerHandler.getPlayerAtIndex(0), new NextPlayerTurn()); } @@ -472,7 +474,7 @@ public class ServerGameLogic implements ClientInterpreter { // Define properties to assign Set p1Properties = Set.of(1, 3, 6, 8); // Gym, Sportplatz, Studium+, PhysikHörsaal - Set p2Properties = Set.of(21, 23, 24, 9); // Red set + Audimax + Set p2Properties = Set.of(21, 23, 24, 9, 11); // Red set + Audimax + Spießtor // Assign properties via AlterProperty assignProperties(p1, p1Properties); @@ -482,14 +484,16 @@ public class ServerGameLogic implements ClientInterpreter { // buildHouses(p1, Set.of(1, 3)); // Player 2 builds houses on the Red set - // buildHouses(p2, Set.of(21, 23, 24)); + buildHouses(p2, Set.of(21, 23, 24)); + buildHouses(p2, Set.of(23, 24)); + buildHouses(p2, Set.of( 24)); // Set player balances p1.setAccountBalance(12325); p2.setAccountBalance(26750); // Add Get Out of Jail cards - p1.addJailCard(); + p2.addJailCard(); // Set player positions p1.setPosition(6); // Near Studium+ @@ -532,6 +536,8 @@ public class ServerGameLogic implements ClientInterpreter { if (boardManager.canBuild(field) && player.getAccountBalance() >= field.getHousePrice()) { field.build(); player.pay(field.getHousePrice()); + updateAllPlayers(); + sendAll( new BuildInfo(field.getId(), true)); LOGGER.log(Level.DEBUG, "House built on property {0} for player {1}.", field.getName(), player.getName()); } } diff --git a/Projekte/monopoly/model/src/main/java/pp/monopoly/model/card/DeckHelper.java b/Projekte/monopoly/model/src/main/java/pp/monopoly/model/card/DeckHelper.java index c2b5f1a..fd4b004 100644 --- a/Projekte/monopoly/model/src/main/java/pp/monopoly/model/card/DeckHelper.java +++ b/Projekte/monopoly/model/src/main/java/pp/monopoly/model/card/DeckHelper.java @@ -17,25 +17,26 @@ public class DeckHelper{ public DeckHelper() { cards = new LinkedList(); + cards.add(new Card("Dein Jodel eines Schneepenis mit Unterhodenbeleuchtung geht viral. Ziehe 1000 EUR ein", "jodel-eispenis")); + cards.add(new Card("Auf deiner Stube wurde Schimmel gefunden. Gehe ins Gulak. Begib dich direkt dorthin. Gehe nicht über Monatsgehalt. Ziehe nicht 2000 EUR ein.", "schimmel-gulak")); + cards.add(new Card("Malkmus läd zum Pubquiz ein. Rücke vor bis zum 20er.", "pubquiz")); cards.add(new Card("Du wurdest mit einem Dienst KFZ geblitzt. Zahle 800 EUR", "dienst-kfz-blitzer")); cards.add(new Card("Die erste Spoparty steht bevor. Ziehe vor zum 23er.", "spoparty")); + cards.add(new Card("Deine IGF-Daten sind verschwunden. Statte Padubrin einen Besuch ab und gib ihm einen Jägermeister aus. Zahle 250 EUR", "IGF-Padubrin")); cards.add(new Card("Du kommst aus dem Gulak frei!", "gulak-frei-1")); cards.add(new Card("Du kommst aus dem Gulak frei!", "gulak-frei-2")); cards.add(new Card("Du hast den Dienstführerschein bestanden. Ziehe vor bis Teststrecke.", "dienstfuehrerschein")); - cards.add(new Card("Malkmus läd zum Pubquiz ein. Rücke vor bis zum 20er.", "pubquiz")); - cards.add(new Card("Deine IGF-Daten sind verschwunden. Statte Padubrin einen Besuch ab und gib ihm einen Jägermeister aus. Zahle 250 EUR", "IGF-Padubrin")); cards.add(new Card("Du hast heute die Spendierhosen an und gibst eine Runde in der Unibar. Zahle jedem Spieler 400 EUR", "spendierhosen-unibar")); + cards.add(new Card("Du musstest einen Rückstuferantrag stellen. Setze eine Runde aus.", "rueckstuferantrag")); cards.add(new Card("Du warst in der Prüfungsphase krank. Gehe 3 Felder zurück.", "pruefungsphase-krank")); cards.add(new Card("Ziehe vor bis zum nächsten Monatsgehalt.", "naechstes-monatsgehalt")); cards.add(new Card("Du hast ein Antreten verschlafen. Zahle 500 EUR", "antreten-verschlafen-1")); cards.add(new Card("Du hast den Maibock organisiert. Du erhältst 3000 EUR", "maibock-organisiert")); cards.add(new Card("Der Spieß macht eine unangekündigte Inventur. Zahle für jedes Haus 400 EUR und für jedes Hotel 2800 EUR", "inventur-haeuser-hotels")); cards.add(new Card("Es gab keine Mozzarella-Bällchen mehr für Thoma. Rücke vor bis aufs Gym.", "dienstsport-gym")); - cards.add(new Card("Auf deiner Stube wurde Schimmel gefunden. Gehe ins Gulak. Begib dich direkt dorthin. Gehe nicht über Monatsgehalt. Ziehe nicht 2000 EUR ein.", "schimmel-gulak")); cards.add(new Card("Deine Stube ist nach einer Partynacht nicht mehr bewohnbar. Du ziehst ins Gulak. Begib dich direkt dorthin. Gehe nicht über Monatsgehalt. Ziehe nicht 2000 EUR ein.", "partynacht-gulak")); cards.add(new Card("Das Jahresabschlussantreten steht an. Ziehe vor bis Schwimmhalle.", "jahresabschlussantreten")); cards.add(new Card("Du wurdest beim Verkaufen von Versicherungen erwischt. Zahle 4000 EUR", "verkaufen-versicherungen")); - cards.add(new Card("Du musstest einen Rückstuferantrag stellen. Setze eine Runde aus.", "rueckstuferantrag")); cards.add(new Card("Auf einer Hausfeier bist du betrunken auf der Treppe gestürzt und dabei auf einen Kameraden gefallen. Zahle 800 EUR und gehe zurück zum SanZ.", "hausfeier-sturz")); cards.add(new Card("Beförderung. Beim nächsten Monatsgehalt ziehst du 3000 EUR ein", "befoerderung")); cards.add(new Card("Du entscheidest dich für eine Dienstreise nach Lourd. Zahle 1000 EUR und setze eine Runde aus.", "dienstreise-lourd")); @@ -48,9 +49,8 @@ public class DeckHelper{ cards.add(new Card("Du wurdest zur VP gewählt und schmeißt eine Einstandsparty. Zahle 800 EUR", "vp-einstandsparty")); cards.add(new Card("Du hast eine Party veranstaltet und dick Gewinn gemacht. Ziehe 1500 EUR ein", "party-gewinn")); cards.add(new Card("Zur falschen Zeit am falschen Ort. Du musst einen Bergmarsch planen und setzt eine Runde aus.", "bergmarsch")); - cards.add(new Card("Dein Jodel eines Schneepenis mit Unterhodenbeleuchtung geht viral. Ziehe 1000 EUR ein", "jodel-eispenis")); - shuffle(); + // shuffle(); } public void visit(Card card, Player player) {