package com.hearthsim.card.classic.spell.epic;
import com.hearthsim.card.Card;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Hero;
import com.hearthsim.card.spellcard.SpellTargetableCard;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.event.effect.EffectCharacterDamageSpell;
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 ShieldSlam extends SpellTargetableCard {
public ShieldSlam() {
super();
}
@Override
public FilterCharacter getTargetableFilter() {
return FilterCharacterTargetedSpell.ALL_MINIONS;
}
@Override
public EffectCharacter getTargetableEffect() {
return new EffectCharacter() {
@Override
public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) {
Hero hero = boardState.data_.modelForSide(PlayerSide.CURRENT_PLAYER).getHero();
EffectCharacter<Card> effect = new EffectCharacterDamageSpell<>(hero.getArmor());
return effect.applyEffect(targetSide, targetCharacterIndex, boardState);
}
};
}
}