package com.hearthsim.card.classic.spell.rare; import com.hearthsim.card.minion.Minion; import com.hearthsim.card.spellcard.SpellDamageTargetableCard; import com.hearthsim.event.filter.FilterCharacter; import com.hearthsim.event.filter.FilterCharacterTargetedSpell; import com.hearthsim.exception.HSException; import com.hearthsim.model.PlayerSide; import com.hearthsim.util.tree.HearthTreeNode; public class HolyFire extends SpellDamageTargetableCard { private static final FilterCharacter filter = new FilterCharacterTargetedSpell() { @Override protected boolean includeEnemyHero() { return true; } @Override protected boolean includeEnemyMinions() { return true; } @Override protected boolean includeOwnMinions() { return true; } }; public HolyFire() { super(); } @Override public FilterCharacter getTargetableFilter() { return HolyFire.filter; } @Deprecated public HolyFire(boolean hasBeenUsed) { this(); this.hasBeenUsed = hasBeenUsed; } /** * * Use the card on the given target * * Deals 5 damage and heals the hero for 5. * * * * @param side * @param boardState The BoardState before this card has performed its action. It will be manipulated and returned. * * @return The boardState is manipulated and returned */ @Override protected HearthTreeNode use_core( PlayerSide side, Minion targetMinion, HearthTreeNode boardState) throws HSException { HearthTreeNode toRet = super.use_core(side, targetMinion, boardState); if (toRet != null) { toRet.data_.getCurrentPlayer().getHero().takeHealAndNotify((byte) 5, PlayerSide.CURRENT_PLAYER, toRet); } return toRet; } }