package com.hearthsim.card.blackrockmountain.minion.common;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.card.minion.MinionBattlecryInterface;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.HearthAction;
import com.hearthsim.util.tree.HearthTreeNode;
import com.hearthsim.util.tree.RandomEffectNode;
public class FireguardDestroyer extends Minion implements MinionBattlecryInterface {
public FireguardDestroyer() {
super();
}
@Override
public EffectCharacter<Minion> getBattlecryEffect() {
return (PlayerSide targetSide, CharacterIndex minionPlacementIndex, HearthTreeNode boardState) -> {
CharacterIndex thisMinionIndex = minionPlacementIndex.indexToRight();
HearthTreeNode toRet = new RandomEffectNode(boardState,
new HearthAction(HearthAction.Verb.UNTARGETABLE_BATTLECRY, PlayerSide.CURRENT_PLAYER,
thisMinionIndex.getInt(),
PlayerSide.CURRENT_PLAYER, minionPlacementIndex));
for (int indx = 1; indx <= 4; ++indx) {
HearthTreeNode child = new HearthTreeNode(boardState.data_.deepCopy());
child.data_.getCharacter(PlayerSide.CURRENT_PLAYER, thisMinionIndex).addAttack((byte)indx);
toRet.addChild(child);
}
return toRet;
};
}
}