package com.hearthsim.card.classic.spell.rare;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.card.spellcard.SpellDamage;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.event.effect.EffectCharacterDamageSpell;
import com.hearthsim.event.effect.EffectOnResolveAoe;
import com.hearthsim.event.filter.FilterCharacter;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class Blizzard extends SpellDamage implements EffectOnResolveAoe {
/*
* Deal $2 damage to all enemy minions and <b>Freeze</b> them.
*/
public Blizzard() {
super();
}
@Override
public EffectCharacterDamageSpell<SpellDamage> getSpellDamageEffect() {
if (this.effect == null) {
this.effect = new EffectCharacterDamageSpell<SpellDamage>(damage_) {
@Override
public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) {
Minion targetCharacter = boardState.data_.getCharacter(targetSide, targetCharacterIndex);
targetCharacter.setFrozen(true);
return super.applyEffect(targetSide, targetCharacterIndex, boardState);
}
};
}
return this.effect;
}
@Override
public EffectCharacter getAoeEffect() {
return this.getSpellDamageEffect();
}
@Override
public FilterCharacter getAoeFilter() {
return FilterCharacter.ENEMY_MINIONS;
}
}