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.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 Savagery extends SpellTargetableCard {
public Savagery() {
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) {
EffectCharacter<Card> effect = new EffectCharacterDamageSpell<>(
boardState.data_.getCharacter(PlayerSide.CURRENT_PLAYER, CharacterIndex.HERO)
.getTotalAttack(boardState, PlayerSide.CURRENT_PLAYER));
return effect.applyEffect(targetSide, targetCharacterIndex, boardState);
}
};
}
}