From 99655173299dcd6b863aeb265b80bcdcfff430cb Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Jul 2021 14:46:04 -0400 Subject: [PATCH 1/6] loyal_warhound.txt --- forge-gui/res/cardsfolder/upcoming/loyal_warhound.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/loyal_warhound.txt diff --git a/forge-gui/res/cardsfolder/upcoming/loyal_warhound.txt b/forge-gui/res/cardsfolder/upcoming/loyal_warhound.txt new file mode 100644 index 00000000000..4f45d501793 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/loyal_warhound.txt @@ -0,0 +1,10 @@ +Name:Loyal Warhound +ManaCost:1 W +Types:Creature Dog +PT:3/1 +K:Vigilance +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | CheckSVar$ Y | SVarCompare$ GTX | TriggerDescription$ When CARDNAME enters the battlefield, if an opponent controls more lands than you, search your library for a basic Plains card, put it onto the battlefield tapped, then shuffle. +SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Plains.Basic | ChangeNum$ 1 | Mandatory$ True +SVar:X:Count$Valid Land.YouCtrl +SVar:Y:PlayerCountOpponents$HighestValid Land.YouCtrl +Oracle:Vigilance\nWhen Loyal Warhound enters the battlefield, if an opponent controls more lands than you, search your library for a basic Plains card, put it onto the battlefield tapped, then shuffle. From a2fa475c43a098628f394c2ae9572a8319b95959 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Jul 2021 14:46:20 -0400 Subject: [PATCH 2/6] white_dragon.txt --- forge-gui/res/cardsfolder/upcoming/white_dragon.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/white_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/white_dragon.txt b/forge-gui/res/cardsfolder/upcoming/white_dragon.txt new file mode 100644 index 00000000000..2743eaf0e71 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/white_dragon.txt @@ -0,0 +1,10 @@ +Name:White Dragon +ManaCost:4 W W +Types:Creature Dragon +PT:4/4 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Cold Breath — When CARDNAME enters the battlefield, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. +SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls. | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent +SVar:PlayMain1:TRUE +Oracle:Flying\nCold Breath — When White Dragon enters the battlefield, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. From 10bbd4d07fea13f440044a2147e1a9cc90ecd07a Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Jul 2021 15:05:21 -0400 Subject: [PATCH 3/6] blue_dragon.txt --- forge-gui/res/cardsfolder/upcoming/blue_dragon.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/blue_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blue_dragon.txt b/forge-gui/res/cardsfolder/upcoming/blue_dragon.txt new file mode 100644 index 00000000000..3d4dec9e5ec --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/blue_dragon.txt @@ -0,0 +1,12 @@ +Name:Blue Dragon +ManaCost:5 U U +Types:Creature Dragon +PT:5/5 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Cold Breath — When CARDNAME enters the battlefield, until your next turn, target creature an opponent controls gets -3/-0, up to one other target creature gets -2/-0, and up to one other target creature gets -1/-0. +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls (-3/-0) | NumAtt$ -3 | Duration$ UntilYourNextTurn | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose up to one other target creature an opponent controls (-2/-0) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ -2 | TargetUnique$ True | Duration$ UntilYourNextTurn | SubAbility$ DBPump2 +SVar:DBPump2:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose up to one other target creature an opponent controls (-1/-0) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ -1 | TargetUnique$ True | Duration$ UntilYourNextTurn +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:PlayMain1:TRUE +Oracle:Flying\nLightning Breath — When Blue Dragon enters the battlefield, until your next turn, target creature an opponent controls gets -3/-0, up to one other target creature gets -2/-0, and up to one other target creature gets -1/-0. From 27624ae6e2af7cc059c22b4508e54db59bb6802e Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Jul 2021 15:13:08 -0400 Subject: [PATCH 4/6] blue_dragon.txt fix --- forge-gui/res/cardsfolder/upcoming/blue_dragon.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/blue_dragon.txt b/forge-gui/res/cardsfolder/upcoming/blue_dragon.txt index 3d4dec9e5ec..9dac913ad9a 100644 --- a/forge-gui/res/cardsfolder/upcoming/blue_dragon.txt +++ b/forge-gui/res/cardsfolder/upcoming/blue_dragon.txt @@ -3,7 +3,7 @@ ManaCost:5 U U Types:Creature Dragon PT:5/5 K:Flying -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Cold Breath — When CARDNAME enters the battlefield, until your next turn, target creature an opponent controls gets -3/-0, up to one other target creature gets -2/-0, and up to one other target creature gets -1/-0. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Lightning Breath — When CARDNAME enters the battlefield, until your next turn, target creature an opponent controls gets -3/-0, up to one other target creature gets -2/-0, and up to one other target creature gets -1/-0. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls (-3/-0) | NumAtt$ -3 | Duration$ UntilYourNextTurn | SubAbility$ DBPump SVar:DBPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose up to one other target creature an opponent controls (-2/-0) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ -2 | TargetUnique$ True | Duration$ UntilYourNextTurn | SubAbility$ DBPump2 SVar:DBPump2:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose up to one other target creature an opponent controls (-1/-0) | TargetMin$ 0 | TargetMax$ 1 | NumAtt$ -1 | TargetUnique$ True | Duration$ UntilYourNextTurn From d020e8a7d1315d9845d7562d73be5819eaef4c4d Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Jul 2021 16:06:37 -0400 Subject: [PATCH 5/6] acererak_the_archlich.txt --- .../upcoming/acererak_the_archlich.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/acererak_the_archlich.txt diff --git a/forge-gui/res/cardsfolder/upcoming/acererak_the_archlich.txt b/forge-gui/res/cardsfolder/upcoming/acererak_the_archlich.txt new file mode 100644 index 00000000000..f46cd17b46d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/acererak_the_archlich.txt @@ -0,0 +1,15 @@ +Name:Acererak the Archlich +ManaCost:2 B +Types:Legendary Creature Zombie Wizard +PT:5/5 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | CheckSVar$ X | SVarCompare$ LT1 | Execute$ TrigBounce | TriggerDescription$ When CARDNAME enters the battlefield, if you haven't completed Tomb of Annihilation, return CARDNAME to its owner's hand and venture into the dungeon. +SVar:TrigBounce:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBVenture +SVar:DBVenture:DB$ Venture +SVar:X:PlayerCountPropertyYou$DungeonCompletedNamed_Tomb of Annihilation +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigRepeat | TriggerDescription$ Whenever CARDNAME attacks, for each opponent, you create a 2/2 black Zombie creature token unless that player sacrifices a creature. +SVar:TrigRepeat:DB$ RepeatEach | RepeatPlayers$ Opponent | RepeatSubAbility$ DBToken +SVar:DBToken:DB$ Token | TokenScript$ b_2_2_zombie | UnlessCost$ Sac<1/Creature> | UnlessPayer$ Player.IsRemembered +SVar:HasAttackEffect:TRUE +DeckHas:Ability$Token +DeckHints:Type$Zombie +Oracle:When Acererak the Archlich enters the battlefield, if you haven't completed Tomb of Annihilation, return Acererak the Archlich to its owner's hand and venture into the dungeon.\nWhenever Acererak the Archlich attacks, for each opponent, you create a 2/2 black Zombie creature token unless that player sacrifices a creature. From 74b439adafe70419d98e92fd26fff0bddde2ffa0 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 7 Jul 2021 16:10:59 -0400 Subject: [PATCH 6/6] AbilityUtils.java support "DungeonCompletedNamed" --- .../main/java/forge/game/ability/AbilityUtils.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index decce0025e1..bfc9a1c0e04 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -3372,6 +3372,18 @@ public class AbilityUtils { if (value.equals("DungeonsCompleted")) { return doXMath(player.getCompletedDungeons().size(), m, source, ctb); } + if (value.startsWith("DungeonCompletedNamed")) { + String [] full = value.split("_"); + String name = full[1]; + int completed = 0; + List dungeons = player.getCompletedDungeons(); + for (Card c : dungeons) { + if (c.getName().equals(name)) { + ++completed; + } + } + return doXMath(completed, m, source, ctb); + } if (value.equals("DifferentlyNamedDungeonsCompleted")) { int amount = 0; List dungeons = player.getCompletedDungeons();