package com.hearthsim.card.minion.heroes;
import com.hearthsim.card.basic.minion.SilverHandRecruit;
import com.hearthsim.card.minion.Hero;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.model.BoardModel;
import com.hearthsim.model.PlayerModel;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class Paladin extends Hero {
@Override
public boolean canBeUsedOn(PlayerSide playerSide, Minion minion, BoardModel boardModel) {
if (!super.canBeUsedOn(playerSide, minion, boardModel)) {
return false;
}
if (playerSide != PlayerSide.CURRENT_PLAYER) {
return false;
}
if (boardModel.modelForSide(playerSide).isBoardFull()) {
return false;
}
return true;
}
/**
* Use the hero ability on a given target
*
* Paladin: summon a 1/1 Silver Hand Recruit
*
*
*
* @param targetPlayerSide
* @param boardState
* @return
*/
@Override
public HearthTreeNode useHeroAbility_core(
PlayerSide targetPlayerSide,
Minion targetMinion,
HearthTreeNode boardState) {
HearthTreeNode toRet = boardState;
this.hasBeenUsed = true;
PlayerModel currentPlayer = toRet.data_.getCurrentPlayer();
currentPlayer.subtractMana(HERO_ABILITY_COST);
Minion theRecruit = new SilverHandRecruit();
toRet = theRecruit.summonMinionAtEnd(targetPlayerSide, toRet, false);
return toRet;
}
}