YNEO: Molten Impact and support

This commit is contained in:
Tim Mocny
2022-03-21 17:36:33 +00:00
committed by Michael Kamensky
parent b317e46353
commit eaaea4a2b3
2 changed files with 16 additions and 4 deletions

View File

@@ -56,20 +56,24 @@ public class DelayedTriggerEffect extends SpellAbilityEffect {
if (sa.hasParam("RememberObjects")) { if (sa.hasParam("RememberObjects")) {
for (final String rem : sa.getParam("RememberObjects").split(",")) { for (final String rem : sa.getParam("RememberObjects").split(",")) {
for (final Object o : AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa)) { for (final Object o : AbilityUtils.getDefinedEntities(host, rem, sa)) {
delTrig.addRemembered(o); delTrig.addRemembered(o);
} }
} }
} }
if (sa.hasParam("RememberNumber")) { if (sa.hasParam("RememberNumber")) {
for (final Object o : sa.getHostCard().getRemembered()) { for (final Object o : host.getRemembered()) {
if (o instanceof Integer) { if (o instanceof Integer) {
delTrig.addRemembered(o); delTrig.addRemembered(o);
} }
} }
} }
if (sa.hasParam("RememberSVarAmount")) {
delTrig.addRemembered(AbilityUtils.calculateAmount(host, host.getSVar(sa.getParam("RememberSVarAmount")), sa));
}
if (sa.hasAdditionalAbility("Execute")) { if (sa.hasAdditionalAbility("Execute")) {
SpellAbility overridingSA = sa.getAdditionalAbility("Execute").copy(lki, sa.getActivatingPlayer(), false); SpellAbility overridingSA = sa.getAdditionalAbility("Execute").copy(lki, sa.getActivatingPlayer(), false);
// need to reset the parent, additionalAbility does set it to this // need to reset the parent, additionalAbility does set it to this
@@ -78,7 +82,7 @@ public class DelayedTriggerEffect extends SpellAbilityEffect {
} }
// Set Transform timestamp when the delayed trigger is created // Set Transform timestamp when the delayed trigger is created
if (ApiType.SetState == overridingSA.getApi()) { if (ApiType.SetState == overridingSA.getApi()) {
overridingSA.setSVar("StoredTransform", String.valueOf(sa.getHostCard().getTransformedTimestamp())); overridingSA.setSVar("StoredTransform", String.valueOf(host.getTransformedTimestamp()));
} }
if (sa.hasParam("CopyTriggeringObjects")) { if (sa.hasParam("CopyTriggeringObjects")) {
@@ -89,7 +93,7 @@ public class DelayedTriggerEffect extends SpellAbilityEffect {
} }
final TriggerHandler trigHandler = game.getTriggerHandler(); final TriggerHandler trigHandler = game.getTriggerHandler();
if (mapParams.containsKey("DelayedTriggerDefinedPlayer")) { // on sb's next turn if (mapParams.containsKey("DelayedTriggerDefinedPlayer")) { // on sb's next turn
Player p = Iterables.getFirst(AbilityUtils.getDefinedPlayers(sa.getHostCard(), mapParams.get("DelayedTriggerDefinedPlayer"), sa), null); Player p = Iterables.getFirst(AbilityUtils.getDefinedPlayers(host, mapParams.get("DelayedTriggerDefinedPlayer"), sa), null);
trigHandler.registerPlayerDefinedDelayedTrigger(p, delTrig); trigHandler.registerPlayerDefinedDelayedTrigger(p, delTrig);
} else if (mapParams.containsKey("ThisTurn")) { } else if (mapParams.containsKey("ThisTurn")) {
trigHandler.registerThisTurnDelayedTrigger(delTrig); trigHandler.registerThisTurnDelayedTrigger(delTrig);

View File

@@ -0,0 +1,8 @@
Name:Molten Impact
ManaCost:1 R
Types:Sorcery
A:SP$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 4 | ExcessSVar$ Excess | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 4 damage to target creature or planeswalker.
SVar:DBDelayedTrigger:DB$ DelayedTrigger | ConditionCheckSVar$ Excess | ConditionSVarCompare$ GE1 | RememberSVarAmount$ Excess | Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | Execute$ TrigDamage | TriggerDescription$ If excess damage was dealt this way, when you cast your next instant or sorcery spell, CARDNAME deals damage equal to the excess to target creature or planeswalker.
SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ X
SVar:X:Count$TriggerRememberAmount
Oracle:Molten Impact deals 4 damage to target creature or planeswalker. If excess damage was dealt this way, when you cast your next instant or sorcery spell, Molten Impact deals damage equal to the excess to target creature or planeswalker.