mirror of
https://github.com/correl/mage.git
synced 2024-12-24 03:00:14 +00:00
* Fix of condtitional mana effect (not completed yet).
This commit is contained in:
parent
ef450371fb
commit
2e72503b8c
2 changed files with 71 additions and 3 deletions
|
@ -0,0 +1,61 @@
|
|||
package org.mage.test.cards.mana;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class RiverOfTearsTest extends CardTestPlayerBase {
|
||||
|
||||
/**
|
||||
* River of Tears doesn't produce black mana any time. Gatherer says:
|
||||
*
|
||||
* 17/11/2017 The turn you play River of Tears, it will produce Black when
|
||||
* tapped for mana.
|
||||
*
|
||||
* 17/11/2017 River of Tears produces Black only after you’ve played a land,
|
||||
* not after you’ve put a land onto the battlefield (such as with Evolving
|
||||
* Wilds).
|
||||
*/
|
||||
@Test
|
||||
public void testBlackAfterPlayed() {
|
||||
// {T}: Add {U}. If you played a land this turn, add {B} instead.
|
||||
addCard(Zone.HAND, playerA, "River of Tears", 1); // Land
|
||||
|
||||
addCard(Zone.HAND, playerA, "Nightshade Stinger", 1); // Creature {B}
|
||||
|
||||
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "River of Tears");
|
||||
|
||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Nightshade Stinger");
|
||||
|
||||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "River of Tears", 1);
|
||||
assertTapped("River of Tears", true);
|
||||
assertPermanentCount(playerA, "Nightshade Stinger", 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBlueInSecondTurn() {
|
||||
// {T}: Add {U}. If you played a land this turn, add {B} instead.
|
||||
addCard(Zone.HAND, playerA, "River of Tears", 1); // Land
|
||||
|
||||
addCard(Zone.HAND, playerA, "Aven Envoy", 1); // Creature {B}
|
||||
|
||||
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "River of Tears");
|
||||
|
||||
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Aven Envoy");
|
||||
|
||||
setStopAt(3, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "River of Tears", 1);
|
||||
assertTapped("River of Tears", true);
|
||||
assertPermanentCount(playerA, "Aven Envoy", 1);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.abilities.decorator;
|
||||
|
||||
import mage.Mana;
|
||||
|
@ -47,7 +46,11 @@ public class ConditionalManaEffect extends ManaEffect {
|
|||
if (controller == null) {
|
||||
return false;
|
||||
}
|
||||
controller.getManaPool().addMana(getMana(game, source), game, source);
|
||||
Mana mana = getMana(game, source);
|
||||
controller.getManaPool().addMana(mana, game, source);
|
||||
if (produceMana(true, game, source).getAny() > 0) {
|
||||
checkToFirePossibleEvents(mana, game, source);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -56,6 +59,11 @@ public class ConditionalManaEffect extends ManaEffect {
|
|||
return new ConditionalManaEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mana getMana(Game game, Ability source) {
|
||||
return produceMana(false, game, source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mana produceMana(boolean netMana, Game game, Ability source) {
|
||||
Mana mana = new Mana();
|
||||
|
@ -75,7 +83,6 @@ public class ConditionalManaEffect extends ManaEffect {
|
|||
mana.setAny(0);
|
||||
mana.add(choice.getMana(amount));
|
||||
}
|
||||
checkToFirePossibleEvents(mana, game, source);
|
||||
}
|
||||
return mana;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue