package net.demilich.metastone.game.decks;
import net.demilich.metastone.game.cards.Card;
import net.demilich.metastone.game.cards.CardCollection;
import net.demilich.metastone.game.entities.heroes.HeroClass;
import net.demilich.metastone.game.logic.GameLogic;
public class Deck {
private String name = "";
private final HeroClass heroClass;
private final CardCollection cards = new CardCollection();
private String description;
private String filename;
private boolean arbitrary;
public Deck(HeroClass heroClass) {
this.heroClass = heroClass;
}
public Deck(HeroClass heroClass, boolean arbitrary) {
this.heroClass = heroClass;
this.arbitrary = arbitrary;
}
public int containsHowMany(Card card) {
int count = 0;
for (Card cardInDeck : cards) {
if (card.getCardId().equals(cardInDeck.getCardId())) {
count++;
}
}
return count;
}
public CardCollection getCards() {
return cards;
}
public CardCollection getCardsCopy() {
return getCards().clone();
}
public String getDescription() {
return description;
}
public HeroClass getHeroClass() {
return heroClass;
}
public String getName() {
return name;
}
public boolean isArbitrary() {
return arbitrary;
}
public boolean isComplete() {
return cards.getCount() == GameLogic.DECK_SIZE;
}
public boolean isFull() {
return cards.getCount() == GameLogic.MAX_DECK_SIZE;
}
public boolean isMetaDeck() {
return getHeroClass() == HeroClass.DECK_COLLECTION;
}
public boolean isTooBig() {
return cards.getCount() > GameLogic.DECK_SIZE;
}
public void setDescription(String description) {
this.description = description;
}
public void setName(String name) {
this.name = name;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
}