package com.hearthsim.card.classic.spell.rare;
import com.hearthsim.card.Card;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.spellcard.SpellTargetableCard;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.event.effect.EffectCharacterHeal;
import com.hearthsim.event.filter.FilterCharacter;
import com.hearthsim.event.filter.FilterCharacterTargetedSpell;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class SiphonSoul extends SpellTargetableCard {
private static final EffectCharacter<Card> heal = new EffectCharacterHeal<>(3);
private static final EffectCharacter effect = new EffectCharacter() {
@Override
public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) {
boardState = EffectCharacter.DESTROY.applyEffect(targetSide, targetCharacterIndex, boardState);
boardState = SiphonSoul.heal.applyEffect(PlayerSide.CURRENT_PLAYER, CharacterIndex.HERO, boardState);
return boardState;
}
};
public SiphonSoul() {
super();
}
@Override
public FilterCharacter getTargetableFilter() {
return FilterCharacterTargetedSpell.ALL_MINIONS;
}
@Override
public EffectCharacter getTargetableEffect() {
return SiphonSoul.effect;
}
}