package com.hearthsim.event.effect;
import com.hearthsim.card.Card;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.tree.HearthTreeNode;
public class EffectHeroMana<T extends Card> implements EffectHero<T> {
private final byte manaDelta;
private final byte maxManaDelta;
public EffectHeroMana(int manaDelta) {
this(manaDelta, 0);
}
public EffectHeroMana(int manaDelta, int maxManaDelta) {
this.manaDelta = (byte) manaDelta;
this.maxManaDelta = (byte) maxManaDelta;
}
public HearthTreeNode applyEffect(PlayerSide targetSide, HearthTreeNode boardState) {
if (this.manaDelta != 0) {
byte value = boardState.data_.modelForSide(targetSide).getMana();
value = (byte)Math.min(value + this.manaDelta, 10);
value = (byte)Math.max(value, 0);
boardState.data_.modelForSide(targetSide).setMana(value);
}
if (this.maxManaDelta != 0) {
byte value = boardState.data_.modelForSide(targetSide).getMaxMana();
value = (byte)Math.min(value + this.maxManaDelta, 10);
value = (byte)Math.max(value, 0);
boardState.data_.modelForSide(targetSide).setMaxMana(value);
}
return boardState;
}
}