@ -12,13 +12,13 @@ neue Maps werden als Unterklasse dieser Klasse eingefügt.
@author GruenerWal , MaxiJohl , Felix Stupp , Samuel
@version 0.3 .0
* /
* /
public abstract class GeneralMap extends World implements ButtonEvent
{
/ *
Felder , im Moment nur Anzahl der Provinzen
Sp ä ter evtl . weitere Werte wie Schwierigkeit denkbar
* /
* /
Button modus = new Button ( "Kampf\nbeginnen" , 25 , this ) ;
private final int X_OFFSET = 200 ; // Verschiebt die Provinzen nach rechts
@ -68,6 +68,18 @@ public abstract class GeneralMap extends World implements ButtonEvent
}
createPlayerObjects ( playerList . length ) ;
players [ 2 ] . addToStars ( 1 ) ;
if ( playerList . length > 3 )
{
players [ 3 ] . addToStars ( 1 ) ;
}
if ( playerList . length > 4 )
{
players [ 4 ] . addToStars ( 2 ) ;
}
}
public int currentPlayer ( )
@ -171,7 +183,7 @@ public abstract class GeneralMap extends World implements ButtonEvent
} else if ( status = = GameStates . VERSCHIEBEN ) {
actMove ( ) ;
}
redrawGameStates ( ) ;
redrawGameStates ( ) ;
}
/ * *
@ -192,9 +204,9 @@ public abstract class GeneralMap extends World implements ButtonEvent
}
/ * *
Gibt die PlayerID des aktuellen Spielers an .
@return PlayerID des aktuellen Spielers
* /
Gibt die PlayerID des aktuellen Spielers an .
@return PlayerID des aktuellen Spielers
* /
public int getCurrentPlayerID ( ) {
return currentPlayer ;
}
@ -286,6 +298,7 @@ public abstract class GeneralMap extends World implements ButtonEvent
modus . setForeColor ( Color . black ) ;
modus . setText ( "Kampf\nbeenden" ) ;
} else if ( status = = GameStates . KAMPF ) {
giveRandomStars ( players [ currentPlayer ] ) ;
status = GameStates . VERSCHIEBEN ;
savedProvince = null ;
modus . setText ( "Nächster\nSpieler" ) ;
@ -600,16 +613,36 @@ public abstract class GeneralMap extends World implements ButtonEvent
// 4. Einheiten durch Sterne
if ( players [ currentPlayer ] . getStars ( ) > 0 )
{
String toUseString = JOptionPane . showInputDialog ( null , "Wieviele Sterne willst du verwenden?" ) ;
String toUseString ;
if ( players [ currentPlayer ] . getStars ( ) = = 1 )
{
toUseString = JOptionPane . showInputDialog ( null , "Wieviele Sterne willst du verwenden? \n Du besitzt noch 1 Stern." ) ;
}
else
{
toUseString = JOptionPane . showInputDialog ( null , "Wieviele Sterne willst du verwenden? \n Du besitzt noch " + players [ currentPlayer ] . getStars ( ) + " Sterne." ) ;
}
int starsToUse = Utils . StringToInt ( toUseString ) ;
int [ ] starBoni = new int [ ] { 1 , 2 , 4 , 7 , 10 , 13 , 17 , 21 , 25 , 30 } ;
if ( starsToUse > 0 & & starsToUse < 11 )
if ( starsToUse <= players [ currentPlayer ] . getStars ( ) )
{
armiesToPlace = armiesToPlace + starBoni [ starsToUse - 1 ] ;
int [ ] starBoni = new int [ ] { 1 , 2 , 4 , 7 , 10 , 13 , 17 , 21 , 25 , 30 } ;
if ( starsToUse > 0 & & starsToUse < 11 )
{
armiesToPlace = armiesToPlace + starBoni [ starsToUse - 1 ] ;
}
if ( starsToUse < 0 & & starsToUse > 10 )
{
JOptionPane . showMessageDialog ( null , "Ungültige Zahl. Bitte eine Zahl zwischen 0 und 10 eingeben" ) ;
}
}
if ( starsToUse < 0 & & starsToUse > 10 )
else
{
JOptionPane . showMessageDialog ( null , "Ungültige Zahl. Bitte eine Zahl zwischen 0 und 10 eingeben" ) ;
JOptionPane . showMessageDialog ( null , " Du besitzt nicht die erforderliche Anzahl an Sternen! \n Verarschen kannst du jemand anderen. ") ;
}
}
return armiesToPlace ;
@ -637,4 +670,30 @@ public abstract class GeneralMap extends World implements ButtonEvent
return Utils . cutArray ( savedProvinces ) ;
}
}
/ * *
* Gibt einem Spieler eine zuf ä llige Anzahl an Sternen zwischen 1 und 3.
*
* @param player Der Spieler , dem die Sterne gegeben werden
* /
protected void giveRandomStars ( Player player )
{
double zufallszahl = Math . random ( ) ;
if ( zufallszahl < = 0.6 )
{
players [ currentPlayer ] . addToStars ( 1 ) ;
}
else if ( zufallszahl < = 0.9 )
{
players [ currentPlayer ] . addToStars ( 2 ) ;
}
else
{
players [ currentPlayer ] . addToStars ( 3 ) ;
}
}
}