package com.hearthsim.event.effect;
import com.hearthsim.card.Card;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Hero;
import com.hearthsim.card.weapon.WeaponCard;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class EffectHeroWeaponBuffDelta<T extends Card> implements EffectHero<T> {
private byte attackDelta;
private byte durabilityDelta;
public EffectHeroWeaponBuffDelta(int attackDelta) {
this(attackDelta, 0);
}
public EffectHeroWeaponBuffDelta(int attackDelta, int durabilityDelta) {
this.attackDelta = (byte) attackDelta;
this.durabilityDelta = (byte) durabilityDelta;
}
@Override
public HearthTreeNode applyEffect(PlayerSide targetSide, HearthTreeNode boardState) {
Hero hero = (Hero)boardState.data_.getCharacter(targetSide, CharacterIndex.HERO);
WeaponCard weapon = hero.getWeapon();
if (weapon != null) {
weapon.addWeaponDamage(this.attackDelta);
weapon.addWeaponCharge(this.durabilityDelta);
}
return boardState;
}
}