package com.hearthsim.card.classic.minion.rare;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.card.minion.MinionBattlecryInterface;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.model.PlayerModel;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class DefenderOfArgus extends Minion implements MinionBattlecryInterface {
public DefenderOfArgus() {
super();
}
/**
* Battlecry: Give adjacent minions +1/+1 and Taunt
*/
@Override
public EffectCharacter getBattlecryEffect() {
return new EffectCharacter<Minion>() {
@Override
public HearthTreeNode applyEffect(PlayerSide targetSide, CharacterIndex targetCharacterIndex, HearthTreeNode boardState) {
PlayerModel currentPlayer = boardState.data_.modelForSide(PlayerSide.CURRENT_PLAYER);
CharacterIndex thisMinionIndex = currentPlayer.getIndexForCharacter(DefenderOfArgus.this);
for (Minion minion : currentPlayer.getMinionsAdjacentToCharacter(thisMinionIndex)) {
minion.addAttack(1);
minion.addHealth(1);
minion.setTaunt(true);
}
return boardState;
}
};
}
}