Wichtige Änderungen:
* Bugfix GeneralMap.getPlayerEntityCount()
* Nach Modus-Wechsel automatischer Redraw von allen Players & Provinces hinzugefügt
* Statistik-Erneuerung hinzugefügt
* Einführen der Methoden Player.reloadMaxInfluence() und Player.reloadMaxEntities()
* Redraw aller Spieler nach Beginn des Spiels für die anfängliche Statistik
master
Zocker1999NET 8 years ago
parent 0fdd83592c
commit 6190d0fe09

@ -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);

@ -146,5 +146,6 @@ public class Map_World extends GeneralMap
p.setOwner(dataL[(i-1)*2]);
p.setEntityCount(dataL[(i*2)-1]);
}
redrawPlayers();
}
}

@ -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();
}
}

Loading…
Cancel
Save