package com.hearthsim.event.effect;
import com.hearthsim.card.Card;
import com.hearthsim.card.weapon.WeaponCard;
import com.hearthsim.event.deathrattle.DeathrattleAction;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class EffectHeroWeapon<T extends Card> implements EffectHero<T> {
WeaponCard weapon;
public EffectHeroWeapon(WeaponCard weapon) {
this.weapon = weapon;
}
@Override
public HearthTreeNode applyEffect(PlayerSide targetSide, HearthTreeNode boardState) {
WeaponCard newWeapon = this.weapon;
// if no origin is set then we have no idea whether we are in the original state. copy our base minion and summon a copy.
// this is used for Minions with RNG battlecries (e.g. Bomb Lobber)
// if (origin == null) {
// newWeapon = weapon.deepCopy();
// }
newWeapon.hasBeenUsed(true);
DeathrattleAction weaponDeathrattle = boardState.data_.getCurrentPlayer().getHero().setWeapon(newWeapon);
if (weaponDeathrattle != null) {
boardState = weaponDeathrattle.performAction(null, targetSide, boardState);
}
return boardState;
}
}