package com.hearthsim.card.classic.minion.rare;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.exception.HSException;
import com.hearthsim.model.PlayerModel;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class Lightwell extends Minion {
public Lightwell() {
super();
}
@Override
public HearthTreeNode startTurn(PlayerSide side, HearthTreeNode boardModel) throws HSException {
HearthTreeNode toRet = boardModel;
if (side == PlayerSide.CURRENT_PLAYER) {
PlayerModel currentPlayer = toRet.data_.modelForSide(PlayerSide.CURRENT_PLAYER);
//check to see if anyone is damaged
boolean isDamaged = currentPlayer.getHero().getTotalMaxHealth() > currentPlayer.getHero().getTotalHealth();
for (Minion minion : currentPlayer.getMinions()) {
isDamaged = isDamaged || minion.getTotalMaxHealth() > minion.getTotalHealth();
}
if (!isDamaged)
return super.startTurn(side, toRet);
Minion targetMinion = currentPlayer.getCharacter(CharacterIndex.fromInteger((int) (Math.random() * (currentPlayer.getNumMinions() + 1))));
while (targetMinion.getTotalMaxHealth() == targetMinion.getTotalHealth()) {
targetMinion = currentPlayer.getCharacter(CharacterIndex.fromInteger((int)(Math.random()*(currentPlayer.getNumMinions() + 1))));
}
toRet = targetMinion.takeHealAndNotify((byte) 3, PlayerSide.CURRENT_PLAYER, toRet);
}
return super.startTurn(side, toRet);
}
}