From 546c4bcf1eb4f9518f7967017d33d9f7a5e267f6 Mon Sep 17 00:00:00 2001 From: tool4ever Date: Tue, 1 Aug 2023 20:18:40 +0200 Subject: [PATCH] Fix TriggersWhenSpent affected by Veyran (#3586) Co-authored-by: tool4EvEr --- .../src/main/java/forge/game/ability/AbilityApiBased.java | 2 +- .../src/main/java/forge/game/ability/SpellApiBased.java | 2 +- .../main/java/forge/game/spellability/AbilityManaPart.java | 5 ++++- .../src/main/java/forge/game/spellability/AbilitySub.java | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityApiBased.java b/forge-game/src/main/java/forge/game/ability/AbilityApiBased.java index dba8ae6d801..4ff1ad2d3f2 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityApiBased.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityApiBased.java @@ -19,7 +19,7 @@ public class AbilityApiBased extends AbilityActivated { effect = api.getSpellEffect(); if (api.equals(ApiType.Mana) || api.equals(ApiType.ManaReflected)) { - this.setManaPart(new AbilityManaPart(sourceCard, mapParams)); + this.setManaPart(new AbilityManaPart(this, mapParams)); this.setUndoable(true); // will try at least } diff --git a/forge-game/src/main/java/forge/game/ability/SpellApiBased.java b/forge-game/src/main/java/forge/game/ability/SpellApiBased.java index 113360ecef5..0bba72f13c2 100644 --- a/forge-game/src/main/java/forge/game/ability/SpellApiBased.java +++ b/forge-game/src/main/java/forge/game/ability/SpellApiBased.java @@ -25,7 +25,7 @@ public class SpellApiBased extends Spell { this.setIntrinsic(true); if (api.equals(ApiType.Mana) || api.equals(ApiType.ManaReflected)) { - this.setManaPart(new AbilityManaPart(sourceCard, mapParams)); + this.setManaPart(new AbilityManaPart(this, mapParams)); } if (api.equals(ApiType.ChangeZone) || api.equals(ApiType.ChangeZoneAll)) { diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index c78ca96fde3..b4e5934d3cd 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -85,7 +85,7 @@ public class AbilityManaPart implements java.io.Serializable { /** *

- * Constructor for AbilityMana. + * Dev Mode Constructor for AbilityMana. *

* * @param sourceCard @@ -320,6 +320,9 @@ public class AbilityManaPart implements java.io.Serializable { TriggerHandler handler = card.getGame().getTriggerHandler(); Trigger trig = TriggerHandler.parseTrigger(sVarHolder.getSVar(this.triggersWhenSpent), sourceCard, false, sVarHolder); + if (sVarHolder instanceof SpellAbility) { + trig.setSpawningAbility((SpellAbility) sVarHolder); + } handler.registerOneTrigger(trig); } diff --git a/forge-game/src/main/java/forge/game/spellability/AbilitySub.java b/forge-game/src/main/java/forge/game/spellability/AbilitySub.java index ceed6161705..7a9af91c512 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilitySub.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilitySub.java @@ -87,7 +87,7 @@ public final class AbilitySub extends SpellAbility implements java.io.Serializab effect = api.getSpellEffect(); if (api.equals(ApiType.Mana) || api.equals(ApiType.ManaReflected)) { - this.setManaPart(new AbilityManaPart(ca, mapParams)); + this.setManaPart(new AbilityManaPart(this, mapParams)); } if (api.equals(ApiType.ChangeZone) || api.equals(ApiType.ChangeZoneAll)) {