package com.hearthsim.card.minion.heroes;
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 Druid extends Hero {
@Override
public boolean canBeUsedOn(PlayerSide playerSide, Minion minion, BoardModel boardModel) {
return playerSide == PlayerSide.CURRENT_PLAYER && minion instanceof Hero;
}
/**
* Use the hero ability on a given target
*
* Druid: +1 attack this turn and +1 armor
*
* @param targetPlayerSide
* @param targetMinion
* The target minion
* @param boardState
*
* @return
*/
@Override
public HearthTreeNode useHeroAbility_core(PlayerSide targetPlayerSide, Minion targetMinion,
HearthTreeNode boardState) {
if (targetMinion.isHero() && targetPlayerSide == PlayerSide.CURRENT_PLAYER) {
this.hasBeenUsed = true;
PlayerModel currentPlayer = boardState.data_.getCurrentPlayer();
currentPlayer.subtractMana(HERO_ABILITY_COST);
Hero target = currentPlayer.getHero();
target.addExtraAttackUntilTurnEnd((byte)1);
target.addArmor((byte)1);
return boardState;
} else {
return null;
}
}
}