package com.hearthsim.card.classic.weapon.epic; import com.hearthsim.card.minion.Hero; import com.hearthsim.card.minion.Minion; import com.hearthsim.card.weapon.WeaponCard; import com.hearthsim.exception.HSException; import com.hearthsim.model.PlayerSide; import com.hearthsim.util.tree.HearthTreeNode; public class Gorehowl extends WeaponCard { boolean previousImmuneState = false; @Override public void beforeAttack(PlayerSide targetMinionPlayerSide, Minion targetMinion, HearthTreeNode toRet) throws HSException { super.beforeAttack(targetMinionPlayerSide, targetMinion, toRet); if (!(targetMinion instanceof Hero)) { this.previousImmuneState = this.isImmune(); this.setImmune(true); } } @Override public void afterAttack(PlayerSide targetMinionPlayerSide, Minion targetMinion, HearthTreeNode toRet) throws HSException { super.afterAttack(targetMinionPlayerSide, targetMinion, toRet); if (!(targetMinion instanceof Hero)) { this.setImmune(previousImmuneState); this.setWeaponDamage((byte) (this.getWeaponDamage() - 1)); if (this.getWeaponDamage() <= 0) { this.setWeaponCharge((byte) 0); } } } }