From a9bffe4d25a6925a9c36c98e3cc3ea2d56b62eab Mon Sep 17 00:00:00 2001 From: Grath <1895280+Grath@users.noreply.github.com> Date: Fri, 14 Mar 2025 20:45:15 -0400 Subject: [PATCH] Fix missing ProcessAction between the last mana being paid and the spell being cast. (#13396) This is necessary so that, among other things, the Rain of Riches watcher can see that the last mana of a spell was a Treasure before the spell is cast - at which point it needs to already have Cascade. --- .../java/org/mage/test/cards/single/ncc/RainOfRichesTest.java | 3 --- Mage/src/main/java/mage/players/PlayerImpl.java | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/RainOfRichesTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/RainOfRichesTest.java index 2a65b1976db..d798d2dd873 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/RainOfRichesTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/ncc/RainOfRichesTest.java @@ -2,7 +2,6 @@ package org.mage.test.cards.single.ncc; import mage.constants.PhaseStep; import mage.constants.Zone; -import org.junit.Ignore; import org.junit.Test; import org.mage.test.serverside.base.CardTestPlayerBase; @@ -63,7 +62,6 @@ public class RainOfRichesTest extends CardTestPlayerBase { } @Test - @Ignore("Does not work until actions are processed between the last mana being paid and the spell being cast.") public void test_Cast_Two_Using_Treasures() { setStrictChooseMode(true); skipInitShuffling(); @@ -91,7 +89,6 @@ public class RainOfRichesTest extends CardTestPlayerBase { } @Test - @Ignore("Does not work until actions are processed between the last mana being paid and the spell being cast.") public void test_Cast_SomethingElse_Then_Cast_Using_Treasure() { setStrictChooseMode(true); diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index 4db86272845..a6f3ac1dd88 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -1346,6 +1346,7 @@ public abstract class PlayerImpl implements Player, Serializable { castEvent.setZone(fromZone); game.fireEvent(castEvent); if (spell.activate(game, allowedIdentifiers, noMana)) { + game.processAction(); GameEvent castedEvent = GameEvent.getEvent(GameEvent.EventType.SPELL_CAST, ability.getId(), ability, playerId, approvingObject); castedEvent.setZone(fromZone);