package forge;
import forge.card.mana.ManaCost;
import java.util.ArrayList;
/**
* <p>GameInfo class.</p>
*
* @author Forge
* @version $Id: $
*/
public class GameInfo {
private boolean computerStartedThisGame = false;
private int humanNumberOfTimesMulliganed;
private boolean humanMulliganedToZero;
private boolean preventCombatDamageThisTurn;
private boolean assignedFirstStrikeDamageThisCombat;
private boolean resolvedFirstStrikeDamageThisCombat;
private ArrayList<Card_Color> globalColorChanges = new ArrayList<Card_Color>();
/**
* <p>Getter for the field <code>humanNumberOfTimesMulliganed</code>.</p>
*
* @return a int.
*/
public int getHumanNumberOfTimesMulliganed() {
return humanNumberOfTimesMulliganed;
}
/**
* <p>addHumanNumberOfTimesMulliganed.</p>
*
* @param n a int.
*/
public void addHumanNumberOfTimesMulliganed(int n) {
humanNumberOfTimesMulliganed += n;
}
/**
* <p>Setter for the field <code>humanNumberOfTimesMulliganed</code>.</p>
*
* @param n a int.
*/
public void setHumanNumberOfTimesMulliganed(int n) {
humanNumberOfTimesMulliganed = n;
}
/**
* <p>Getter for the field <code>humanMulliganedToZero</code>.</p>
*
* @return a boolean.
*/
public boolean getHumanMulliganedToZero() {
return humanMulliganedToZero;
}
/**
* <p>Setter for the field <code>humanMulliganedToZero</code>.</p>
*
* @param b a boolean.
*/
public void setHumanMulliganedToZero(boolean b) {
humanMulliganedToZero = b;
}
/**
* <p>Setter for the field <code>preventCombatDamageThisTurn</code>.</p>
*
* @param b a boolean.
*/
public void setPreventCombatDamageThisTurn(boolean b) {
preventCombatDamageThisTurn = b;
}
/**
* <p>isPreventCombatDamageThisTurn.</p>
*
* @return a boolean.
*/
public boolean isPreventCombatDamageThisTurn() {
return preventCombatDamageThisTurn;
}
/**
* <p>Setter for the field <code>assignedFirstStrikeDamageThisCombat</code>.</p>
*
* @param b a boolean.
*/
public void setAssignedFirstStrikeDamageThisCombat(boolean b) {
assignedFirstStrikeDamageThisCombat = b;
}
/**
* <p>Getter for the field <code>assignedFirstStrikeDamageThisCombat</code>.</p>
*
* @return a boolean.
*/
public boolean getAssignedFirstStrikeDamageThisCombat() {
return assignedFirstStrikeDamageThisCombat;
}
/**
* <p>Setter for the field <code>resolvedFirstStrikeDamageThisCombat</code>.</p>
*
* @param b a boolean.
*/
public void setResolvedFirstStrikeDamageThisCombat(boolean b) {
resolvedFirstStrikeDamageThisCombat = b;
}
/**
* <p>Getter for the field <code>resolvedFirstStrikeDamageThisCombat</code>.</p>
*
* @return a boolean.
*/
public boolean getResolvedFirstStrikeDamageThisCombat() {
return resolvedFirstStrikeDamageThisCombat;
}
/**
* <p>Setter for the field <code>computerStartedThisGame</code>.</p>
*
* @param computerStartedThisGame a boolean.
*/
public void setComputerStartedThisGame(boolean computerStartedThisGame) {
this.computerStartedThisGame = computerStartedThisGame;
}
/**
* <p>isComputerStartedThisGame.</p>
*
* @return a boolean.
*/
public boolean isComputerStartedThisGame() {
return computerStartedThisGame;
}
/**
* <p>addColorChanges.</p>
*
* @param s a {@link java.lang.String} object.
* @param c a {@link forge.Card} object.
* @param addToColors a boolean.
* @param bIncrease a boolean.
* @return a long.
*/
public long addColorChanges(String s, Card c, boolean addToColors, boolean bIncrease) {
if (bIncrease)
Card_Color.increaseTimestamp();
globalColorChanges.add(new Card_Color(new ManaCost(s), c, addToColors, false));
return Card_Color.getTimestamp();
}
/**
* <p>removeColorChanges.</p>
*
* @param s a {@link java.lang.String} object.
* @param c a {@link forge.Card} object.
* @param addTo a boolean.
* @param timestamp a long.
*/
public void removeColorChanges(String s, Card c, boolean addTo, long timestamp) {
Card_Color removeCol = null;
for (Card_Color cc : globalColorChanges)
if (cc.equals(s, c, addTo, timestamp))
removeCol = cc;
if (removeCol != null)
globalColorChanges.remove(removeCol);
}
/**
* <p>clearColorChanges.</p>
*/
public void clearColorChanges() {
// clear the global color changes at end of each game
globalColorChanges.clear();
}
/**
* <p>getColorChanges.</p>
*
* @return a {@link java.util.ArrayList} object.
*/
public ArrayList<Card_Color> getColorChanges() {
return globalColorChanges;
}
}