package net.demilich.metastone.game.gameconfig;
import net.demilich.metastone.game.behaviour.IBehaviour;
import net.demilich.metastone.game.cards.HeroCard;
import net.demilich.metastone.game.decks.Deck;
import net.demilich.metastone.game.decks.MetaDeck;
import net.demilich.metastone.game.entities.heroes.MetaHero;
public class PlayerConfig {
private String name;
private HeroCard heroCard;
private Deck deck;
private IBehaviour behaviour;
private boolean hideCards;
private Deck deckForPlay;
private HeroCard heroForPlay;
public PlayerConfig() {
}
public PlayerConfig(Deck deck, IBehaviour behaviour) {
this.deck = deck;
this.behaviour = behaviour;
}
public void build() {
if (deck instanceof MetaDeck) {
MetaDeck metaDeck = (MetaDeck) deck;
deckForPlay = metaDeck.selectRandom();
heroForPlay = MetaHero.getHeroCard(deckForPlay.getHeroClass());
} else {
deckForPlay = deck;
heroForPlay = heroCard;
}
}
public IBehaviour getBehaviour() {
return behaviour;
}
public Deck getDeck() {
return deck;
}
public Deck getDeckForPlay() {
return deckForPlay;
}
public HeroCard getHeroCard() {
return heroCard;
}
public HeroCard getHeroForPlay() {
return heroForPlay;
}
public String getName() {
return name != null ? name : heroCard.getName();
}
public boolean hideCards() {
return hideCards;
}
public void setBehaviour(IBehaviour behaviour) {
this.behaviour = behaviour;
}
public void setDeck(Deck deck) {
this.deck = deck;
}
public void setHeroCard(HeroCard HeroCard) {
this.heroCard = HeroCard;
}
public void setHideCards(boolean hideCards) {
this.hideCards = hideCards;
}
public void setName(String name) {
this.name = name;
}
}