Improve DelayedTrigger for effects "during its controller's next turn"

This commit is contained in:
tool4EvEr
2022-04-24 10:23:00 +02:00
parent 7512986748
commit 1adc9a9129
4 changed files with 14 additions and 3 deletions

View File

@@ -108,6 +108,17 @@ public class DelayedTriggerEffect extends SpellAbilityEffect {
}
};
game.getCleanup().addUntil(nextTurnTrig);
} else if (mapParams.containsKey("UpcomingTurn")) {
final GameCommand upcomingTurnTrig = new GameCommand() {
private static final long serialVersionUID = -5860518814760461373L;
@Override
public void run() {
trigHandler.registerDelayedTrigger(delTrig);
}
};
game.getCleanup().addUntil(upcomingTurnTrig);
} else {
trigHandler.registerDelayedTrigger(delTrig);
}

View File

@@ -3,7 +3,7 @@ ManaCost:2 W W
Types:Legendary Planeswalker Bahamut
Loyalty:3
S:Mode$ Continuous | Affected$ Card.Self | IsPresent$ Card.Self+counters_GE7_LOYALTY | AddKeyword$ Flying & Indestructible | AddType$ Creature & Dragon & God | SetPower$ 7 | SetToughness$ 7 | RemoveCardTypes$ True | CharacteristicDefining$ True | Description$ As long as CARDNAME has seven or more loyalty counters on him, he's a 7/7 Dragon God creature with flying and indestructible.
A:AB$ Pump | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature.withoutFirst Strike+withoutDouble Strike+withoutVigilance | TgtPrompt$ Target creature without first strike, double strike, or vigilance | Select KW$ HIDDEN CARDNAME can't attack or block. | IsCurse$ True | Duration$ UntilYourNextTurn | AILogic$ DetainNonLand | SpellDescription$ Target creature without first strike, double strike, or vigilance can't attack or block until your next turn.
A:AB$ Pump | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature.withoutFirst Strike+withoutDouble Strike+withoutVigilance | TgtPrompt$ Target creature without first strike, double strike, or vigilance | KW$ HIDDEN CARDNAME can't attack or block. | IsCurse$ True | Duration$ UntilYourNextTurn | AILogic$ DetainNonLand | SpellDescription$ Target creature without first strike, double strike, or vigilance can't attack or block until your next turn.
A:AB$ ChangeZone | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Hand | ChangeType$ Card.namedMonk of the Open Hand | ChangeNum$ 1 | Optional$ True | SpellDescription$ Search your library and/or graveyard for a card named Monk of the Open Hand, reveal it, and put it into your hand. If you search your library this way, shuffle.
DeckHas:Type$Dragon|God
DeckHints:Name$Monk of the Open Hand

View File

@@ -20,7 +20,7 @@ ManaCost:no cost
Colors:white
Types:Legendary Planeswalker Gideon
Loyalty:3
A:AB$ DelayedTrigger | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | Mode$ Phase | Phase$ Upkeep-> | Player$ TargetedController | NextTurn$ True | RememberObjects$ Targeted | Execute$ TrigEffect | Static$ True | SpellDescription$ Up to one target creature an opponent controls attacks CARDNAME during its controller's next turn if able.
A:AB$ DelayedTrigger | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | Mode$ Phase | Phase$ Upkeep-> | ValidPlayer$ Player.controlsCard.IsTriggerRemembered | UpcomingTurn$ True | RememberObjects$ Targeted | Execute$ TrigEffect | Static$ True | SpellDescription$ Up to one target creature an opponent controls attacks CARDNAME during its controller's next turn if able.
SVar:TrigEffect:DB$ Effect | RememberObjects$ DelayTriggerRemembered | StaticAbilities$ MustAttack | SubAbility$ DBCleanup
SVar:MustAttack:Mode$ MustAttack | EffectZone$ Command | ValidCreature$ Remembered | MustAttack$ EffectSource | Description$ This creature attacks EFFECTSOURCE during its controller's next turn if able.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True

View File

@@ -4,6 +4,6 @@ Types:Creature Wall
PT:1/4
K:Defender
T:Mode$ AttackerBlocked | ValidBlocker$ Card.Self | Execute$ DelTrig | TriggerDescription$ Whenever CARDNAME blocks a creature, that creature can't attack during its controller's next turn.
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Opponent | Execute$ TrigPump | RememberObjects$ TriggeredAttacker | TriggerDescription$ Creatures blocked by CARDNAME can't attack this turn.
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep-> | ValidPlayer$ Player.controlsCard.IsTriggerRemembered | UpcomingTurn$ True | Static$ True | Execute$ TrigPump | RememberObjects$ TriggeredAttacker | TriggerDescription$ Creatures blocked by CARDNAME can't attack this turn.
SVar:TrigPump:DB$ Pump | IsCurse$ True | Defined$ DelayTriggerRemembered | KW$ HIDDEN CARDNAME can't attack.
Oracle:Defender (This creature can't attack.)\nWhenever Wall of Dust blocks a creature, that creature can't attack during its controller's next turn.