package com.vdom.core;
import java.util.ArrayList;
import com.vdom.api.Card;
public abstract class AbstractCardPile {
protected ArrayList<Card> cards;
protected boolean isSupply = true;
protected boolean tradeRouteToken = false;
static enum PileType {
RuinsPile, KnightsPile, SingleCardPile
}
protected PileType type;
public boolean isEmpty() {
return cards.isEmpty();
}
public AbstractCardPile notInSupply() {
this.isSupply = false;
return this;
}
public boolean isSupply() {
return this.isSupply;
}
public int getCount() {
return cards.size();
}
public PileType getType() {
return type;
}
@Override
public String toString() {
return cards.toString();
}
public abstract Card card();
public void setTradeRouteToken() {
tradeRouteToken = true;
}
public boolean hasTradeRouteToken() {
return tradeRouteToken;
}
public int takeTradeRouteToken() {
if (tradeRouteToken) {
tradeRouteToken = false;
return 1;
}
return 0;
}
public abstract void addCard(Card card);
public abstract Card removeCard();
}