* Mana increase effects - fixed that some infinite mana combos gives 0 mana on too much permanents/effects (example: Nyxbloom Ancient);

This commit is contained in:
Oleg Agafonov 2021-02-02 19:05:42 +04:00
parent cda79866ad
commit 2393485320
10 changed files with 165 additions and 103 deletions

View file

@ -10,6 +10,7 @@ import mage.constants.*;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.ManaEvent;
import mage.util.CardUtil;
import java.util.UUID;
@ -55,22 +56,22 @@ class ManaReflectionReplacementEffect extends ReplacementEffectImpl {
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
Mana mana = ((ManaEvent) event).getMana();
if (mana.getBlack() > 0) {
mana.set(ManaType.BLACK, mana.getBlack() * 2);
mana.set(ManaType.BLACK, CardUtil.multiplyWithOverflowCheck(mana.getBlack(), 2));
}
if (mana.getBlue() > 0) {
mana.set(ManaType.BLUE, mana.getBlue() * 2);
mana.set(ManaType.BLUE, CardUtil.multiplyWithOverflowCheck(mana.getBlue(), 2));
}
if (mana.getWhite() > 0) {
mana.set(ManaType.WHITE, mana.getWhite() * 2);
mana.set(ManaType.WHITE, CardUtil.multiplyWithOverflowCheck(mana.getWhite(), 2));
}
if (mana.getGreen() > 0) {
mana.set(ManaType.GREEN, mana.getGreen() * 2);
mana.set(ManaType.GREEN, CardUtil.multiplyWithOverflowCheck(mana.getGreen(), 2));
}
if (mana.getRed() > 0) {
mana.set(ManaType.RED, mana.getRed() * 2);
mana.set(ManaType.RED, CardUtil.multiplyWithOverflowCheck(mana.getRed(), 2));
}
if (mana.getColorless() > 0) {
mana.set(ManaType.COLORLESS, mana.getColorless() * 2);
mana.set(ManaType.COLORLESS, CardUtil.multiplyWithOverflowCheck(mana.getColorless(), 2));
}
return false;
}

View file

@ -12,6 +12,7 @@ import mage.constants.*;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.ManaEvent;
import mage.util.CardUtil;
import java.util.UUID;
@ -64,22 +65,22 @@ class NyxbloomAncientReplacementEffect extends ReplacementEffectImpl {
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
Mana mana = ((ManaEvent) event).getMana();
if (mana.getBlack() > 0) {
mana.set(ManaType.BLACK, mana.getBlack() * 3);
mana.set(ManaType.BLACK, CardUtil.multiplyWithOverflowCheck(mana.getBlack(), 3));
}
if (mana.getBlue() > 0) {
mana.set(ManaType.BLUE, mana.getBlue() * 3);
mana.set(ManaType.BLUE, CardUtil.multiplyWithOverflowCheck(mana.getBlue(), 3));
}
if (mana.getWhite() > 0) {
mana.set(ManaType.WHITE, mana.getWhite() * 3);
mana.set(ManaType.WHITE, CardUtil.multiplyWithOverflowCheck(mana.getWhite(), 3));
}
if (mana.getGreen() > 0) {
mana.set(ManaType.GREEN, mana.getGreen() * 3);
mana.set(ManaType.GREEN, CardUtil.multiplyWithOverflowCheck(mana.getGreen(), 3));
}
if (mana.getRed() > 0) {
mana.set(ManaType.RED, mana.getRed() * 3);
mana.set(ManaType.RED, CardUtil.multiplyWithOverflowCheck(mana.getRed(), 3));
}
if (mana.getColorless() > 0) {
mana.set(ManaType.COLORLESS, mana.getColorless() * 3);
mana.set(ManaType.COLORLESS, CardUtil.multiplyWithOverflowCheck(mana.getColorless(), 3));
}
return false;
}