From bc841bd13ee53de94c228330fbf34748b49070a5 Mon Sep 17 00:00:00 2001 From: Alexander Novotny Date: Thu, 16 Jun 2022 11:16:55 -0700 Subject: [PATCH] [AFC] Fix Share the Spoils exiling from wrong library for #9046 (#9073) --- .../src/mage/cards/s/ShareTheSpoils.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Mage.Sets/src/mage/cards/s/ShareTheSpoils.java b/Mage.Sets/src/mage/cards/s/ShareTheSpoils.java index e62853cb08b..9f6ad430dac 100644 --- a/Mage.Sets/src/mage/cards/s/ShareTheSpoils.java +++ b/Mage.Sets/src/mage/cards/s/ShareTheSpoils.java @@ -262,6 +262,8 @@ class ShareTheSpoilsSpendAnyManaEffect extends AsThoughEffectImpl implements AsT //-- Exile another card when a card is played that was exiled with Share the Spoils --// class ShareTheSpoilsExileCardWhenPlayACardAbility extends TriggeredAbilityImpl { + private UUID triggeringPlayerID; + ShareTheSpoilsExileCardWhenPlayACardAbility() { super(Zone.BATTLEFIELD, new ShareTheSpoilsExileSingleCardEffect()); setRuleVisible(false); @@ -269,6 +271,8 @@ class ShareTheSpoilsExileCardWhenPlayACardAbility extends TriggeredAbilityImpl { private ShareTheSpoilsExileCardWhenPlayACardAbility(final ShareTheSpoilsExileCardWhenPlayACardAbility ability) { super(ability); + + triggeringPlayerID = ability.triggeringPlayerID; } @Override @@ -290,6 +294,19 @@ class ShareTheSpoilsExileCardWhenPlayACardAbility extends TriggeredAbilityImpl { public String getTriggerPhrase() { return "When they do"; } + + @Override + public void trigger(Game game, UUID controllerId, GameEvent triggeringEvent) { + // Keep track of who triggered this ability, so the effect can know later. + // Do this before the ability is copied in super.trigger() + triggeringPlayerID = triggeringEvent.getPlayerId(); + + super.trigger(game, controllerId, triggeringEvent); + } + + public UUID getTriggeringPlayerID() { + return triggeringPlayerID; + } } class ShareTheSpoilsExileSingleCardEffect extends OneShotEffect { @@ -305,7 +322,7 @@ class ShareTheSpoilsExileSingleCardEffect extends OneShotEffect { return false; } - Player player = game.getPlayer(source.getControllerId()); + Player player = game.getPlayer(((ShareTheSpoilsExileCardWhenPlayACardAbility) source).getTriggeringPlayerID()); if (player == null) { return false; }