package com.hearthsim.card.goblinsvsgnomes.spell.epic; import com.hearthsim.card.CharacterIndex; import com.hearthsim.card.minion.Minion; import com.hearthsim.card.minion.Minion.MinionTribe; import com.hearthsim.card.spellcard.SpellDamage; import com.hearthsim.card.spellcard.SpellDamageTargetableCard; 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 Demonheart extends SpellDamageTargetableCard { /** * Constructor * * Defaults to hasBeenUsed = false */ public Demonheart() { super(); } @Override public FilterCharacter getTargetableFilter() { return FilterCharacterTargetedSpell.ALL_MINIONS; } @Override public EffectCharacterDamageSpell<SpellDamage> getTargetableEffect() { if (this.effect == null) { this.effect = new EffectCharacterDamageSpell<SpellDamage>(damage_) { @Override public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) { HearthTreeNode toRet = boardState; Minion targetCharacter = boardState.data_.getCharacter(targetSide, targetCharacterIndex); if (isCurrentPlayer(targetSide) && targetCharacter.getTribe() == MinionTribe.DEMON) { targetCharacter.addAttack(5); targetCharacter.addMaxHealth(5); targetCharacter.addHealth(5); } else { toRet = super.applyEffect(targetSide, targetCharacterIndex, boardState); } return toRet; } }; } return this.effect; } }