package com.hearthsim.event.effect;
import com.hearthsim.card.Card;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class EffectCharacterSummon<T extends Card> implements EffectCharacter<T> {
private Minion minion;
public EffectCharacterSummon(Minion minion) {
this.minion = minion;
}
@Override
public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) {
Minion summon = this.minion;
// if no origin is set then we have no idea whether we are in the original state. copy our base minion and summon a copy.
// this is used for Minions with RNG battlecries (e.g. Bomb Lobber)
// if (origin == null) {
// summon = (Minion)minion.deepCopy();
// }
summon.hasBeenUsed(true);
return summon.summonMinion(targetSide, targetCharacterIndex, boardState, true);
}
}