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 341f2659c37..7a5583272a1 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -3376,6 +3376,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(); 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. 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..9dac913ad9a --- /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$ 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 +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. 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. 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.