package com.hearthsim.card.basic.minion;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.card.minion.MinionHealedInterface;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.event.effect.EffectHeroDraw;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
/**
* Northshire Cleric
*
* @author oyachai
*
* This minion is a 1 mana, 1 attack, 3 health minion.
* Whenever a minion is healed, this minion draws a card for its player.
*
*/
public class NorthshireCleric extends Minion implements MinionHealedInterface {
private static final EffectCharacter<Minion> effect = new EffectHeroDraw<>(1);
public NorthshireCleric() {
super();
}
/**
*
* Called whenever another character (including the hero) is healed
*
*
* @param thisMinionPlayerSide
* @param healedMinionPlayerSide
* @param healedMinion The healed minion
* @param boardState The BoardState before this card has performed its action. It will be manipulated and returned.
* @return The boardState is manipulated and returned
*/
@Override
public HearthTreeNode minionHealedEvent(PlayerSide thisMinionPlayerSide, PlayerSide healedMinionPlayerSide, Minion healedMinion, HearthTreeNode boardState) {
return NorthshireCleric.effect.applyEffect(thisMinionPlayerSide, CharacterIndex.HERO, boardState);
}
}