mirror of
https://github.com/magefree/mage.git
synced 2025-12-21 11:02:00 -08:00
* Sasaya's Essence - Fixed not correctly working mana production.
This commit is contained in:
parent
006af33625
commit
4ceffd17ef
2 changed files with 59 additions and 9 deletions
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
package mage.cards.s;
|
package mage.cards.s;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -100,7 +99,7 @@ class SasayasEssence extends TokenImpl {
|
||||||
|
|
||||||
// Whenever a land you control is tapped for mana, for each other land you control with the same name, add one mana of any type that land produced.
|
// Whenever a land you control is tapped for mana, for each other land you control with the same name, add one mana of any type that land produced.
|
||||||
this.addAbility(new TapForManaAllTriggeredManaAbility(
|
this.addAbility(new TapForManaAllTriggeredManaAbility(
|
||||||
new SasayasEssenceManaEffectEffect(),
|
new SasayasEssenceManaEffect(),
|
||||||
new FilterControlledLandPermanent(), SetTargetPointer.PERMANENT));
|
new FilterControlledLandPermanent(), SetTargetPointer.PERMANENT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -114,28 +113,28 @@ class SasayasEssence extends TokenImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SasayasEssenceManaEffectEffect extends ManaEffect {
|
class SasayasEssenceManaEffect extends ManaEffect {
|
||||||
|
|
||||||
public SasayasEssenceManaEffectEffect() {
|
public SasayasEssenceManaEffect() {
|
||||||
super();
|
super();
|
||||||
this.staticText = "for each other land you control with the same name, add one mana of any type that land produced";
|
this.staticText = "for each other land you control with the same name, add one mana of any type that land produced";
|
||||||
}
|
}
|
||||||
|
|
||||||
public SasayasEssenceManaEffectEffect(final SasayasEssenceManaEffectEffect effect) {
|
public SasayasEssenceManaEffect(final SasayasEssenceManaEffect effect) {
|
||||||
super(effect);
|
super(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SasayasEssenceManaEffectEffect copy() {
|
public SasayasEssenceManaEffect copy() {
|
||||||
return new SasayasEssenceManaEffectEffect(this);
|
return new SasayasEssenceManaEffect(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
controller.getManaPool().addMana(getMana(game, source), game, source);
|
|
||||||
checkToFirePossibleEvents(getMana(game, source), game, source);
|
checkToFirePossibleEvents(getMana(game, source), game, source);
|
||||||
|
controller.getManaPool().addMana(getMana(game, source), game, source);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -211,7 +210,7 @@ class SasayasEssenceManaEffectEffect extends ManaEffect {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return mana;
|
return newMana;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
package org.mage.test.cards.flip;
|
||||||
|
|
||||||
|
import mage.abilities.mana.ManaOptions;
|
||||||
|
import mage.constants.ManaType;
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
import static org.mage.test.utils.ManaOptionsTestUtils.assertDuplicatedManaOptions;
|
||||||
|
import static org.mage.test.utils.ManaOptionsTestUtils.assertManaOptions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author LevelX2
|
||||||
|
*/
|
||||||
|
public class SasayaOrochiAscendantTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSasayasEssence() {
|
||||||
|
addCard(Zone.HAND, playerA, "Plains", 7);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
|
|
||||||
|
// Reveal your hand: If you have seven or more land cards in your hand, flip Sasaya, Orochi Ascendant.
|
||||||
|
// Sasaya's Essence: Legendary Enchantment
|
||||||
|
// Whenever a land you control is tapped for mana, for each other land you control with the same name, add one mana of any type that land produced.
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Sasaya, Orochi Ascendant", 1);
|
||||||
|
// Mana pools don't empty as steps and phases end.
|
||||||
|
addCard(Zone.HAND, playerA, "Upwelling", 1); // Enchantment {3}{G}
|
||||||
|
|
||||||
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Reveal your hand: If you have seven or more land cards in your hand, flip");
|
||||||
|
activateManaAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: Add {G}");
|
||||||
|
activateManaAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: Add {G}");
|
||||||
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Upwelling");
|
||||||
|
|
||||||
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertPermanentCount(playerA, "Sasaya's Essence", 1);
|
||||||
|
assertPermanentCount(playerA, "Upwelling", 1);
|
||||||
|
|
||||||
|
assertManaPool(playerA, ManaType.GREEN, 2);
|
||||||
|
|
||||||
|
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
|
||||||
|
assertDuplicatedManaOptions(manaOptions);
|
||||||
|
|
||||||
|
Assert.assertEquals("mana variations don't fit", 1, manaOptions.size());
|
||||||
|
assertManaOptions("{G}", manaOptions);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue