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)) {