package com.hearthsim.card.basic.minion;
import com.hearthsim.card.CharacterIndex;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.card.minion.MinionSummonedInterface;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.event.effect.EffectHeroDraw;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class StarvingBuzzard extends Minion implements MinionSummonedInterface {
private static final EffectCharacter<Minion> effect = new EffectHeroDraw<>(1);
public StarvingBuzzard() {
super();
}
/**
*
* Called whenever a minion is summoned on the board
*
* The buzzard draws a card whenever a Beast is placed on the battlefield
*
*
* @param thisMinionPlayerSide
* @param summonedMinionPlayerSide
* @param summonedMinion The summoned minion
* @param boardState The BoardState before this card has performed its action. It will be manipulated and returned.
* */
@Override
public HearthTreeNode minionSummonEvent(
PlayerSide thisMinionPlayerSide,
PlayerSide summonedMinionPlayerSide,
Minion summonedMinion,
HearthTreeNode boardState) {
if (summonedMinionPlayerSide == PlayerSide.WAITING_PLAYER || thisMinionPlayerSide == PlayerSide.WAITING_PLAYER)
return boardState;
HearthTreeNode toRet = boardState;
if (summonedMinion.getTribe() == MinionTribe.BEAST) { //TODO: this might be wrong..
toRet = StarvingBuzzard.effect.applyEffect(thisMinionPlayerSide, CharacterIndex.HERO, boardState);
}
return toRet;
}
}