From 6190d0fe099c6b0713bcf9047a21837b4cb36b33 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 25 Jul 2016 18:44:07 +0200 Subject: [PATCH] =?UTF-8?q?Umsetzung=20#99=20&=20#106=20Wichtige=20=C3=84n?= =?UTF-8?q?derungen:=20*=20Bugfix=20GeneralMap.getPlayerEntityCount()=20*?= =?UTF-8?q?=20Nach=20Modus-Wechsel=20automatischer=20Redraw=20von=20allen?= =?UTF-8?q?=20Players=20&=20Provinces=20hinzugef=C3=BCgt=20*=20Statistik-E?= =?UTF-8?q?rneuerung=20hinzugef=C3=BCgt=20*=20Einf=C3=BChren=20der=20Metho?= =?UTF-8?q?den=20Player.reloadMaxInfluence()=20und=20Player.reloadMaxEntit?= =?UTF-8?q?ies()=20*=20Redraw=20aller=20Spieler=20nach=20Beginn=20des=20Sp?= =?UTF-8?q?iels=20f=C3=BCr=20die=20anf=C3=A4ngliche=20Statistik?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GeneralMap.java | 28 ++++++++++++++++++++++++++-- Map_World.java | 1 + Player.java | 18 ++++++++++-------- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 076fa15..9945feb 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -139,6 +139,20 @@ public abstract class GeneralMap extends World implements ButtonEvent addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); } } + + private void redrawProvinces() { + for(int i = 1; i < provinces.length; i++) { + provinces[i].redrawProvince(); + } + } + + protected void redrawPlayers() { + for(int i = 0; i < players.length; i++) { + players[i].reloadMaxInfluence(); + players[i].reloadMaxEntities(); + players[i].redrawPlayer(); + } + } /** Zeigt die angegebene Nachricht in einem JOptionPane Dialogfeld an. @@ -237,7 +251,7 @@ public abstract class GeneralMap extends World implements ButtonEvent public int getPlayerEntityCount(int playerID) { int c = 0; - for (int i = 1; i > provinces.length; i++) { + for (int i = 1; i < provinces.length; i++) { if(provinces[i].getOwner() == playerID) { c = c + provinces[i].getEntityCount(); } @@ -279,6 +293,8 @@ public abstract class GeneralMap extends World implements ButtonEvent status=GameStates.SETZEN; modus.setText("Kampf\nbeginnen"); } + redrawProvinces(); + redrawPlayers(); } } @@ -384,16 +400,21 @@ public abstract class GeneralMap extends World implements ButtonEvent // berechnet Zahlen und findet Gewinner; führt Konsequenz aus private void decider(int[] maxDiceOffender, int [] maxDiceDefender) { - + Player offPl = players[offenderProvince.getOwner()]; + Player defPl = players[defenderProvince.getOwner()]; + int maxDefender = maxDiceDefender[1]; int maxOffender = maxDiceOffender[2]; if (maxOffender > maxDefender) { defenderProvince.removeFromEntities(1); + defPl.lostEntity(); if (defenderProvince.getEntityCount() <= 0) { defenderProvince.setOwner(offenderProvince.getOwner()); offenderProvince.removeFromEntities(1); defenderProvince.setEntityCount(1); + offPl.gotProvince(); + defPl.lostProvince(); JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ")."); } else { JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Dem Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten."); @@ -403,12 +424,14 @@ public abstract class GeneralMap extends World implements ButtonEvent if (maxOffender < maxDefender && offenderProvince.getEntityCount()>1) { offenderProvince.removeFromEntities(1); + offPl.lostEntity(); JOptionPane.showMessageDialog(null,"Somit gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } if (maxOffender == maxDefender && offenderProvince.getEntityCount()>1) { offenderProvince.removeFromEntities(1); + offPl.lostEntity(); JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } @@ -492,6 +515,7 @@ public abstract class GeneralMap extends World implements ButtonEvent { if ( freeArmies == -1 ) { freeArmies = calculateArmies(); + players[currentPlayer].gotEntities(freeArmies); } else if ( freeArmies == 0 ) { modus.setBackColor(Color.white); modus.setForeColor(Color.black); diff --git a/Map_World.java b/Map_World.java index 04d93c2..ecfe698 100644 --- a/Map_World.java +++ b/Map_World.java @@ -146,5 +146,6 @@ public class Map_World extends GeneralMap p.setOwner(dataL[(i-1)*2]); p.setEntityCount(dataL[(i*2)-1]); } + redrawPlayers(); } } diff --git a/Player.java b/Player.java index 6e88163..284b47c 100644 --- a/Player.java +++ b/Player.java @@ -148,7 +148,7 @@ public class Player extends Actor public void gotEntities(int gotEnt) { stats[3]+= gotEnt; - maxEntities(getEntitiesCount()); + reloadMaxEntities(); redrawPlayer(); } @@ -160,7 +160,7 @@ public class Player extends Actor public void gotProvince() { stats[0]++; - maxInfluence(getProvinceCount()); + reloadMaxInfluence(); redrawPlayer(); } @@ -169,20 +169,22 @@ public class Player extends Actor redrawPlayer(); } - private void maxInfluence (int influCount) + public void reloadMaxInfluence() { - if(stats[2]< influCount) + int c = getProvinceCount(); + if(stats[2]< c) { - stats[2]=influCount; + stats[2]=c; redrawPlayer(); } } - private void maxEntities(int entNumber) + public void reloadMaxEntities() { - if (stats[5]< entNumber) + int c = getEntitiesCount(); + if (stats[5]< c) { - stats[5]=entNumber; + stats[5]=c; redrawPlayer(); } }