package com.hearthsim.card.classic.minion.legendary;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.classic.minion.common.Whelp;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.card.minion.MinionBattlecryInterface;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.model.PlayerModel;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class Onyxia extends Minion implements MinionBattlecryInterface {
public Onyxia() {
super();
}
@Override
public EffectCharacter<Minion> getBattlecryEffect() {
return (PlayerSide targetSide, CharacterIndex minionPlacementIndex, HearthTreeNode boardState) -> {
HearthTreeNode toRet = boardState;
PlayerModel currentPlayer = toRet.data_.getCurrentPlayer();
while (!currentPlayer.isBoardFull()) {
Minion placementTarget;
if (currentPlayer.getNumMinions() % 2 == 0) {
placementTarget = toRet.data_.getCurrentPlayer().getCharacter(currentPlayer.getIndexForCharacter(this).indexToLeft());
} else {
placementTarget = this;
}
toRet = new Whelp().summonMinion(PlayerSide.CURRENT_PLAYER, placementTarget, toRet, false);
}
return toRet;
};
}
}