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 EffectCharacterBuffDelta<T extends Card> implements EffectCharacter<T> { private final byte attackDelta; private final byte healthDelta; private final boolean addTaunt; public EffectCharacterBuffDelta(int attackDelta, int healthDelta) { this(attackDelta, healthDelta, false); } public EffectCharacterBuffDelta(int attackDelta, int healthDelta, boolean addTaunt) { this.attackDelta = (byte) attackDelta; this.healthDelta = (byte) healthDelta; this.addTaunt = addTaunt; } @Override public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) { Minion targetCharacter = boardState.data_.modelForSide(targetSide).getCharacter(targetCharacterIndex); targetCharacter.addAttack(this.attackDelta); targetCharacter.addHealth(this.healthDelta); targetCharacter.addMaxHealth(this.healthDelta); if (addTaunt) { targetCharacter.setTaunt(true); } return boardState; } }