package com.hearthsim.card.goblinsvsgnomes.minion.legendary;
import com.hearthsim.card.classic.minion.common.LeperGnome;
import com.hearthsim.card.minion.Minion;
import com.hearthsim.card.minion.MinionDeadInterface;
import com.hearthsim.event.effect.EffectCharacter;
import com.hearthsim.event.effect.EffectCharacterSummon;
import com.hearthsim.event.filter.FilterCharacter;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class MekgineerThermaplugg extends Minion implements MinionDeadInterface {
private final static FilterCharacter filter = FilterCharacter.ENEMY_MINIONS;
public MekgineerThermaplugg() {
super();
}
/**
* Draw a card whenever this minion takes damage
* */
@Override
public HearthTreeNode minionDeadEvent(PlayerSide thisMinionPlayerSide, PlayerSide deadMinionPlayerSide, Minion deadMinion, HearthTreeNode boardState) {
if (this.setInHand()) {
return boardState;
}
if (!MekgineerThermaplugg.filter.targetMatches(thisMinionPlayerSide, this, deadMinionPlayerSide, deadMinion, boardState.data_)) {
return boardState;
}
if (!this.isAlive() || boardState.data_.modelForSide(thisMinionPlayerSide).isBoardFull()) {
return boardState;
}
if (boardState.data_.modelForSide(thisMinionPlayerSide).getNumMinions() >= 7) {
return boardState;
}
EffectCharacter<Minion> effect = new EffectCharacterSummon<>(new LeperGnome());
return effect.applyEffect(thisMinionPlayerSide, this, boardState);
}
}