package com.hearthsim.event.effect; import com.hearthsim.card.Card; import com.hearthsim.card.CharacterIndex; import com.hearthsim.card.minion.Minion; import com.hearthsim.model.PlayerSide; import com.hearthsim.util.tree.HearthTreeNode; public class EffectCharacterDamage<T extends Card> implements EffectCharacter<T> { private final byte damage; private final boolean effectedBySpellpower; public EffectCharacterDamage(int damage) { this(damage, false); } protected EffectCharacterDamage(int damage, boolean effectedBySpellpower) { this.damage = (byte) damage; this.effectedBySpellpower = effectedBySpellpower; } @Override public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) { Minion targetMinion = boardState.data_.modelForSide(targetSide).getCharacter(targetCharacterIndex); return targetMinion.takeDamageAndNotify(this.damage, PlayerSide.CURRENT_PLAYER, targetSide, boardState, this.effectedBySpellpower, true); } }