package com.hearthsim.event.effect; import com.hearthsim.card.CharacterIndex; import com.hearthsim.card.minion.Minion; import com.hearthsim.model.PlayerSide; import com.hearthsim.util.tree.HearthTreeNode; /** * Created by oyachai on 8/20/15. */ public class EffectCharacterDamageRevenge implements EffectCharacter<Minion> { private final byte damage0; private final byte damage1; private final boolean effectedBySpellpower; public EffectCharacterDamageRevenge() { this(1, 3, true); } protected EffectCharacterDamageRevenge(int damage0, int damage1, boolean effectedBySpellpower) { this.damage0 = (byte) damage0; this.damage1 = (byte) damage1; this.effectedBySpellpower = effectedBySpellpower; } @Override public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) { Minion targetMinion = boardState.data_.modelForSide(targetSide).getCharacter(targetCharacterIndex); if (boardState.data_.getCurrentPlayer().getHero().getTotalHealth() <= 12) { return targetMinion.takeDamageAndNotify(this.damage1, PlayerSide.CURRENT_PLAYER, targetSide, boardState, this.effectedBySpellpower, true); } else { return targetMinion.takeDamageAndNotify(this.damage0, PlayerSide.CURRENT_PLAYER, targetSide, boardState, this.effectedBySpellpower, true); } } }