ArmySchubser-Aktualisierung

ArmySchubser nochmal aktualisiert
master
Achim 10 years ago committed by GitHub
parent ce83de8e8e
commit cc48329028

@ -6,66 +6,85 @@ import javax.swing.JOptionPane;
* Schubst Einheiten umher. * Schubst Einheiten umher.
* *
* @author MaxiJohl, GruenerWal * @author MaxiJohl, GruenerWal
* @version 0.2.0 * @version 0.3.0
*/ */
public class ArmySchubser extends Map_World public class ArmySchubser extends Map_World
{ {
Province firstProvince = null; static Province savedProvince = null;
Province secondProvince = null;
/** /**
* Constructor for objects of class ArmySchubser. * Konstruktor für ArmySchubser.
* *
* NICHT BENUTZEN!
* Sämtliche benötigten Methoden sind static!
*/ */
public ArmySchubser() private ArmySchubser()
{ {
// Hi. // Hi.
} }
public void act() /**
* Nimmt zwei Provinzen entgegen, und fragt, wieviele Einheiten vom ersten zum zweiten Eintrag verschoben werden sollen.
* Überprüft, ob eine Verschiebung möglich ist und führt sie bei Erfolg aus.
*/
public static void moveEntities(Province sourceProvince, Province destinationProvince)
{ {
if (firstProvince == null) String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?");
Integer entitiesToMove = Integer.valueOf(toMoveString);
if ( (sourceProvince.getEntityCount() - entitiesToMove) > 0)
{ {
for ( int i = 1; i <= provinceCount; i++) sourceProvince.removeFromEntities(entitiesToMove);
{ destinationProvince.addToEntities(entitiesToMove);
if (provinces[i].hasClicked() == true)
{
provinces[i] = firstProvince;
break;
}
}
} }
if (firstProvince != null) if ( (sourceProvince.getEntityCount() - entitiesToMove) <= 0 )
{ {
for ( int i = 0; i <= provinceCount; i++) JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + sourceProvince.getDisplayName() + " nach " + destinationProvince.getDisplayName() + " zu verschieben, Köhler.");
{ }
if (provinces[i].hasClicked() == true && provinces[i] != firstProvince) }
{
provinces[i] = secondProvince;
break;
}
}
String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); /**
Integer entitiesToMove = Integer.valueOf(toMoveString); * Speichert ein gegebene Provinz als savedProvince ein, insofern dieser Platz nicht bereits belegt ist.
* Ist er das, so wird überprüft, ob eine neue, an savedProvince angrenzende Provinz angeklickt wurde.
* Ist dies der Fall, werden beide Provinzen an moveEntities übergeben.
*/
public static void useProvincesToMove(Province givenProvince)
{
if (savedProvince == null)
{
savedProvince = givenProvince;
}
if ( (firstProvince.getEntityCount() - entitiesToMove) > 0 && firstProvince.isProvinceNear(secondProvince.getID()) == true ) if (savedProvince != null && givenProvince != savedProvince)
{
if (givenProvince.isProvinceNear(savedProvince.getID()) == true)
{ {
firstProvince.removeFromEntities(entitiesToMove); moveEntities(savedProvince,givenProvince);
secondProvince.addToEntities(entitiesToMove);
} }
}
}
if ( (firstProvince.getEntityCount() - entitiesToMove) <= 0 ) /**
{ * Überprüft, ob eine Provinz angeklickt wurde.
JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + firstProvince.getDisplayName() + " nach " + secondProvince.getDisplayName() + " zu verschieben, Köhler."); * Wenn ja, wird diese als clickedProvince eingespeichert und useProvincesToMove aufgerufen.
} *
* Kommt nachher in die GeneralMap!
if ( firstProvince.isProvinceNear(secondProvince.getID()) == false ) */
public void act()
{
Province clickedProvince = null;
for ( int i = 1; i <= provinceCount; i++)
{
if (provinces[i].hasClicked() == true)
{ {
JOptionPane.showMessageDialog(null,"Die Provinzen müssen nebeneinander liegen, wenn du Einheiten verschieben willst."); clickedProvince = provinces[i];
useProvincesToMove(clickedProvince);
break;
} }
} }
} }
} }

Loading…
Cancel
Save