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 EffectCharacterDamageByAttack<T extends Card> implements EffectCharacter<T> { private final boolean effectedBySpellpower; public EffectCharacterDamageByAttack(boolean effectedBySpellpower) { this.effectedBySpellpower = effectedBySpellpower; } @Override public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) { Minion targetMinion = boardState.data_.modelForSide(targetSide).getCharacter(targetCharacterIndex); return targetMinion.takeDamageAndNotify(targetMinion.getTotalAttack(boardState, targetSide), PlayerSide.CURRENT_PLAYER, targetSide, boardState, this.effectedBySpellpower, true); } }