diff --git a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java index 3ccc8f9f72b..d736fdf1011 100644 --- a/forge-gui-mobile/src/forge/screens/match/MatchScreen.java +++ b/forge-gui-mobile/src/forge/screens/match/MatchScreen.java @@ -83,9 +83,13 @@ public class MatchScreen extends FScreen { scroller = add(new FieldScroller()); + int humanCount = 0; + for (VPlayerPanel playerPanel : playerPanels0) { playerPanels.put(playerPanel.getPlayer(), scroller.add(playerPanel)); playerPanel.setFlipped(true); + if(!playerPanel.getPlayer().isAI()) + humanCount++; } bottomPlayerPanel = playerPanels0.get(0); bottomPlayerPanel.setFlipped(false); @@ -110,31 +114,26 @@ public class MatchScreen extends FScreen { } })); - if (MatchController.instance.getLocalPlayerCount() <= 1 || MatchController.instance.hotSeatMode()) { + if (humanCount < 2 || MatchController.instance.hotSeatMode() || GuiBase.isNetworkplay()) topPlayerPrompt = null; - } else { - if (GuiBase.isNetworkplay()) { - topPlayerPrompt = null; - } else { - //show top prompt if multiple human players and not playing in Hot Seat mode and not in network play - topPlayerPrompt = add(new VPrompt("", "", - new FEventHandler() { - @Override - public void handleEvent(FEvent e) { - getGameController().selectButtonOk(); - } - }, - new FEventHandler() { - @Override - public void handleEvent(FEvent e) { - getGameController().selectButtonCancel(); - } - })); - topPlayerPrompt.setRotate180(true); - topPlayerPanel.setRotate180(true); - getHeader().setRotate90(true); - } + //show top prompt if multiple human players and not playing in Hot Seat mode and not in network play + topPlayerPrompt = add(new VPrompt("", "", + new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + getGameController().selectButtonOk(); + } + }, + new FEventHandler() { + @Override + public void handleEvent(FEvent e) { + getGameController().selectButtonCancel(); + } + })); + topPlayerPrompt.setRotate180(true); + topPlayerPanel.setRotate180(true); + getHeader().setRotate90(true); } gameMenu = new VGameMenu(); diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java b/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java index fbd00c54e0f..048d9e4502d 100644 --- a/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java +++ b/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java @@ -24,7 +24,7 @@ public class OnlineLobbyScreen extends LobbyScreen implements IOnlineLobby { private static GameLobby gameLobby; - public GameLobby getGameLobby() { + public static GameLobby getGameLobby() { return gameLobby; } @@ -114,6 +114,8 @@ public class OnlineLobbyScreen extends LobbyScreen implements IOnlineLobby { } }); } + //update menu buttons + OnlineScreen.Lobby.update(); } }); } diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java index a187388a60c..dc9cbf1a33c 100644 --- a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java +++ b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java @@ -16,11 +16,13 @@ import forge.toolbox.FOptionPane; import forge.util.Callback; import forge.util.Localizer; +import static forge.screens.online.OnlineLobbyScreen.getGameLobby; + public class OnlineMenu extends FPopupMenu { public enum OnlineScreen { Lobby("lblLobby", FSkinImage.FAVICON, OnlineLobbyScreen.class), Chat("lblChat", FSkinImage.QUEST_NOTES, OnlineChatScreen.class), - Disconnect("lblDisconnect", FSkinImage.EXILE, null); + Disconnect("lblDisconnect", FSkinImage.DELETE, null); private final FMenuItem item; private final Class screenClass; @@ -73,6 +75,7 @@ public class OnlineMenu extends FPopupMenu { return; } } + update(); } public void open() { @@ -89,6 +92,17 @@ public class OnlineMenu extends FPopupMenu { initializeScreen(); return screen; } + + public void update(){ + for (OnlineScreen ngs : OnlineScreen.values()) { + if (ngs.ordinal() == 2){ //disconect + if (getGameLobby() == null) + ngs.item.setEnabled(false); + else + ngs.item.setEnabled(true); + } + } + } } private static final ForgePreferences prefs = FModel.getPreferences(); diff --git a/forge-gui/res/cardsfolder/upcoming/back_for_more.txt b/forge-gui/res/cardsfolder/upcoming/back_for_more.txt index 3ccf437129a..368297d8182 100755 --- a/forge-gui/res/cardsfolder/upcoming/back_for_more.txt +++ b/forge-gui/res/cardsfolder/upcoming/back_for_more.txt @@ -2,5 +2,5 @@ Name:Back for More ManaCost:4 B G Types:Instant A:SP$ ChangeZone | Cost$ 4 B G | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouOwn | SubAbility$ DBFight | StackDescription$ SpellDescription | SpellDescription$ Return target creature card from your graveyard to the battlefield. When you do, it fights up to one target creature you don't control. -SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Choose target creature you don't control | SubAbility$ DBCleanup | StackDescription$ None +SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Choose target creature you don't control | StackDescription$ None Oracle:Return target creature card from your graveyard to the battlefield. When you do, it fights up to one target creature you don't control. (Each deals damage equal to its power to the other.) diff --git a/forge-gui/res/cardsfolder/upcoming/bastion_of_remembrance.txt b/forge-gui/res/cardsfolder/upcoming/bastion_of_remembrance.txt new file mode 100755 index 00000000000..8d6bbae56fe --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bastion_of_remembrance.txt @@ -0,0 +1,9 @@ +Name:Bastion of Remembrance +ManaCost:2 B +Types:Enchantment +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 1/1 white Human Soldier creature token. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_human_soldier | TokenOwner$ You | LegacyImage$ w 1 1 human soldier iko +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature you control dies, each opponent loses 1 life and you gain 1 life. +SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 +Oracle:When Bastion of Remembrance enters the battlefield, create a 1/1 white Human Soldier creature token.\nWhenever a creature you control dies, each opponent loses 1 life and you gain 1 life. diff --git a/forge-gui/res/cardsfolder/upcoming/blood_curdle.txt b/forge-gui/res/cardsfolder/upcoming/blood_curdle.txt new file mode 100755 index 00000000000..386a96f9a2a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/blood_curdle.txt @@ -0,0 +1,6 @@ +Name:Blood Curdle +ManaCost:3 B +Types:Instant +A:SP$ Destroy | Cost$ 3 B | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBPutCounter | StackDescription$ SpellDescription | SpellDescription$ Destroy target creature. Put a menace counter on a creature you control. +SVar:DBPutCounter:DB$ PutCounter | Choices$ Creature.YouCtrl | CounterType$ MENACE | CounterNum$ 1 +Oracle:Destroy target creature. Put a menace counter on a creature you control. (It can't be blocked except by two or more creatures.) diff --git a/forge-gui/res/cardsfolder/upcoming/crystalline_giant.txt b/forge-gui/res/cardsfolder/upcoming/crystalline_giant.txt new file mode 100755 index 00000000000..411a3781772 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/crystalline_giant.txt @@ -0,0 +1,19 @@ +Name:Crystalline Giant +ManaCost:3 +Types:Artifact Creature Giant +PT:3/3 +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, choose flying, first strike, deathtouch, hexproof, lifelink, menace, reach, trample, vigilance, or +1/+1 at random. Put a counter of that kind on CARDNAME. +SVar:TrigCharm:DB$ Charm | Random$ True | Choices$ Flying,FirstStrike,Deathtouch,Hexproof,Lifelink,Menace,Reach,Trample,Vigilance,P1P1 +SVar:Flying:DB$ PutCounter | CounterType$ FLYING | CounterNum$ 1 | SpellDescription$ Flying +SVar:FirstStrike:DB$ PutCounter | CounterType$ FIRST STRIKE | CounterNum$ 1 | SpellDescription$ First Strike +SVar:Deathtouch:DB$ PutCounter | CounterType$ DEATHTOUCH | CounterNum$ 1 | SpellDescription$ Deathtouch +SVar:Hexproof:DB$ PutCounter | CounterType$ HEXPROOF | CounterNum$ 1 | SpellDescription$ Hexproof +SVar:Lifelink:DB$ PutCounter | CounterType$ LIFELINK | CounterNum$ 1 | SpellDescription$ Lifelink +SVar:Menace:DB$ PutCounter | CounterType$ MENACE | CounterNum$ 1 | SpellDescription$ Menace +SVar:Reach:DB$ PutCounter | CounterType$ REACH | CounterNum$ 1 | SpellDescription$ Reach +SVar:Trample:DB$ PutCounter | CounterType$ TRAMPLE | CounterNum$ 1 | SpellDescription$ Trample +SVar:Vigilance:DB$ PutCounter | CounterType$ VIGILANCE | CounterNum$ 1 | SpellDescription$ Vigilance +SVar:P1P1:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ +1/+1 +SVar:PlayMain1:TRUE +DeckHas:Ability$Counters +Oracle:At the beginning of combat on your turn, choose flying, first strike, deathtouch, hexproof, lifelink, menace, reach, trample, vigilance, or +1/+1 at random. Put a counter of that kind on Crystalline Giant. diff --git a/forge-gui/res/cardsfolder/upcoming/footfall_crater.txt b/forge-gui/res/cardsfolder/upcoming/footfall_crater.txt new file mode 100755 index 00000000000..7d33bd9b541 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/footfall_crater.txt @@ -0,0 +1,11 @@ +Name:Footfall Crater +ManaCost:R +Types:Enchantment Aura +K:Enchant land +K:Cycling:1 +A:SP$ Attach | Cost$ R | ValidTgts$ Land | TgtPrompt$ Select target land | AILogic$ Pump +S:Mode$ Continuous | Affected$ Land.AttachedBy | AddAbility$ DBPump | Description$ Enchanted land has "{T}: Target creature gains trample and haste until end of turn." +SVar:DBPump:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Trample & Haste | SpellDescription$ Target creature gains trample and haste until end of turn. +SVar:NonStackingAttachEffect:True +SVar:PlayMain1:TRUE +Oracle:Enchant land\nEnchanted land has "{T}: Target creature gains trample and haste until end of turn."\nCycling {1} ({1}, Discard this card: Draw a card.) diff --git a/forge-gui/res/cardsfolder/upcoming/grimdancer.txt b/forge-gui/res/cardsfolder/upcoming/grimdancer.txt new file mode 100755 index 00000000000..23037a2fe79 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/grimdancer.txt @@ -0,0 +1,13 @@ +Name:Grimdancer +ManaCost:1 B B +Types:Creature Nightmare +PT:3/3 +K:ETBReplacement:Other:CounterChoice +SVar:CounterChoice:DB$ GenericChoice | Defined$ You | Choices$ MeDe,DeLi,MeLi | SpellDescription$ CARDNAME enters the battlefield with your choice of two different counters on it from among menace, deathtouch, and lifelink. +SVar:MeDe:DB$ PutCounter | CounterType$ MENACE | CounterNum$ 1 | SubAbility$ Deathtouch | SpellDescription$ Menace and Deathtouch +SVar:Deathtouch:DB$ PutCounter | CounterType$ DEATHTOUCH | CounterNum$ 1 +SVar:DeLi:DB$ PutCounter | CounterType$ DEATHTOUCH | CounterNum$ 1 | SubAbility$ Lifelink | SpellDescription$ Deathtouch and Lifelink +SVar:Lifelink:DB$ PutCounter | CounterType$ LIFELINK | CounterNum$ 1 +SVar:MeLi:DB$ PutCounter | CounterType$ MENACE | CounterNum$ 1 | SubAbility$ Lifelink | SpellDescription$ Menace and Lifelink +DeckHas:Ability$Counters +Oracle:Grimdancer enters the battlefield with your choice of two different counters on it from among menace, deathtouch, and lifelink. diff --git a/forge-gui/res/cardsfolder/upcoming/luminous_broodmoth.txt b/forge-gui/res/cardsfolder/upcoming/luminous_broodmoth.txt new file mode 100755 index 00000000000..4c31a46ea3f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/luminous_broodmoth.txt @@ -0,0 +1,9 @@ +Name:Luminous Broodmoth +ManaCost:2 W W +Types:Creature Insect +PT:3/4 +K:Flying +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+withoutFlying | Execute$ TrigReturn | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature you control without flying dies, return it to the battlefield under its owner's control with a flying counter on it. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ TriggeredCard | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | CounterType$ FLYING | CounterNum$ 1 | Defined$ TriggeredCard +Oracle:Flying\nWhenever a creature you control without flying dies, return it to the battlefield under its owner's control with a flying counter on it. diff --git a/forge-gui/res/cardsfolder/upcoming/primal_empathy.txt b/forge-gui/res/cardsfolder/upcoming/primal_empathy.txt index 4f16e19ecca..0f7a0520c31 100755 --- a/forge-gui/res/cardsfolder/upcoming/primal_empathy.txt +++ b/forge-gui/res/cardsfolder/upcoming/primal_empathy.txt @@ -2,14 +2,10 @@ Name:Primal Empathy ManaCost:1 G U Types:Enchantment T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigBranch | TriggerDescription$ At the beginning of your upkeep, draw a card if you control a creature with the greatest power among creatures on the battlefield. Otherwise, put a +1/+1 counter on a creature you control. -SVar:TrigBranch:DB$ Branch | BranchConditionSVar$ X | References$ X | TrueSubAbility TrigBranch2 | FalseSubAbility$ DBPutCounter -SVar:TrigBranch2:DB$ Branch | BranchConditionSVar$ GreatPow | References$ GreatPow | TrueSubAbility$ DBDraw | FalseSubAbility$ DBPutCounter -SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 -SVar:DBPutCounter:DB$ PutCounter | Choices$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 -SVar:GreatPow:Count$Compare Diff GE0.1.0 -SVar:X:Count$Valid Creature.YouCtrl -SVar:Y:Count$GreatestPower_Creature.YouDontCtrl -SVar:Z:Count$GreatestPower_Creature.YouCtrl -SVar:Diff:SVar$Z/Minus.Y +SVar:TrigBranch:DB$ Branch | References$ Y,Z | ConditionPresent$ Creature.YouCtrl | ConditionCompare$ GE1 | BranchConditionSVar$ Y | BranchConditionSVarCompare$ GEZ | TrueSubAbility$ Draw | FalseSubAbility$ PutCounter +SVar:Draw:DB$ Draw | Defined$ You | NumCards$ 1 +SVar:PutCounter:DB$ PutCounter | Choices$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 +SVar:Y:Count$GreatestPower_Creature.YouCtrl +SVar:Z:Count$GreatestPower_Creature.YouDontCtrl DeckHas:Ability$Counters Oracle:At the beginning of your upkeep, draw a card if you control a creature with the greatest power among creatures on the battlefield. Otherwise, put a +1/+1 counter on a creature you control. diff --git a/forge-gui/res/cardsfolder/upcoming/thieving_otter.txt b/forge-gui/res/cardsfolder/upcoming/thieving_otter.txt new file mode 100755 index 00000000000..0a67e4425e9 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/thieving_otter.txt @@ -0,0 +1,7 @@ +Name:Thieving Otter +ManaCost:2 U +Types:Creature Otter +PT:2/2 +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever CARDNAME deals damage to an opponent, draw a card. +SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ 1 +Oracle:Whenever Thieving Otter deals damage to an opponent, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/titanoth_rex.txt b/forge-gui/res/cardsfolder/upcoming/titanoth_rex.txt new file mode 100755 index 00000000000..8379bdf041c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/titanoth_rex.txt @@ -0,0 +1,9 @@ +Name:Titanoth Rex +ManaCost:7 G G +Types:Creature Dinosaur Beast +PT:11/11 +K:Trample +K:Cycling:1 G +T:Mode$ Cycled | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When you cycle CARDNAME, put a trample counter on target creature you control. +SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ TRAMPLE | CounterNum$ 1 +Oracle:Trample\nCycling {1}{G} ({1}{G}, Discard this card: Draw a card.)\nWhen you cycle Titanoth Rex, put a trample counter on target creature you control. diff --git a/forge-gui/res/cardsfolder/upcoming/void_beckoner.txt b/forge-gui/res/cardsfolder/upcoming/void_beckoner.txt new file mode 100755 index 00000000000..1ecf14e8418 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/void_beckoner.txt @@ -0,0 +1,9 @@ +Name:Void Beckoner +ManaCost:6 B B +Types:Creature Nightmare Horror +PT:8/8 +K:Deathtouch +K:Cycling:2 B +T:Mode$ Cycled | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When you cycle CARDNAME, put a deathtouch counter on target creature you control. +SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ DEATHTOUCH | CounterNum$ 1 +Oracle:Deathtouch\nCycling {2}{B} ({2}{B}, Discard this card: Draw a card.)\nWhen you cycle Void Beckoner, put a deathtouch counter on target creature you control. diff --git a/forge-gui/res/cardsfolder/upcoming/voracious_greatshark.txt b/forge-gui/res/cardsfolder/upcoming/voracious_greatshark.txt new file mode 100755 index 00000000000..3af9def8de2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/voracious_greatshark.txt @@ -0,0 +1,8 @@ +Name:Voracious Greatshark +ManaCost:3 U U +Types:Creature Shark +PT:5/4 +K:Flash +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigCounter | TriggerDescription$ When CARDNAME enters the battlefield, counter target artifact or creature spell. +SVar:TrigCounter:DB$ Counter | TargetType$ Spell | ValidTgts$ Artifact,Creature | TgtPrompt$ Select target artifact or creature spell +Oracle:Flash\nWhen Voracious Greatshark enters the battlefield, counter target artifact or creature spell. diff --git a/forge-gui/res/cardsfolder/upcoming/wingfold_pteron.txt b/forge-gui/res/cardsfolder/upcoming/wingfold_pteron.txt new file mode 100755 index 00000000000..82a824a3195 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wingfold_pteron.txt @@ -0,0 +1,10 @@ +Name:Wingfold Pteron +ManaCost:5 U +Types:Creature Dinosaur +PT:3/6 +K:ETBReplacement:Other:CounterChoice +SVar:CounterChoice:DB$ GenericChoice | Defined$ You | Choices$ Flying,Hexproof | SpellDescription$ CARDNAME enters the battlefield with your choice of a flying counter or a hexproof counter on it. +SVar:Flying:DB$ PutCounter | CounterType$ FLYING | CounterNum$ 1 | SpellDescription$ CARDNAME enters the battlefield with a flying counter +SVar:Hexproof:DB$ PutCounter | CounterType$ HEXPROOF | CounterNum$ 1 | SpellDescription$ CARDNAME enters the battlefield with a hexproof counter +DeckHas:Ability$Counters +Oracle:Wingfold Pteron enters the battlefield with your choice of a flying counter or a hexproof counter on it. (A creature with hexproof can't be the target of spells or abilities your opponents control.) diff --git a/forge-gui/res/cardsfolder/upcoming/yidaro_wandering_monster.txt b/forge-gui/res/cardsfolder/upcoming/yidaro_wandering_monster.txt new file mode 100755 index 00000000000..c18dd785670 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/yidaro_wandering_monster.txt @@ -0,0 +1,14 @@ +Name:Yidaro, Wandering Monster +ManaCost:5 R R +Types:Legendary Creature Dinosaur Turtle +PT:8/8 +K:Haste +K:Trample +K:Cycling:1 R +T:Mode$ Cycled | ValidCard$ Card.Self | Execute$ DBEffect | TriggerDescription$ When you cycle CARDNAME, shuffle it into your library from your graveyard. If you've cycled a card named CARDNAME four or more times this game, put it onto the battlefield from your graveyard instead. (Do this before you draw.) +SVar:DBEffect:DB$ Effect | Duration$ Permanent | Name$ Wandering Effect | SubAbility$ DBBranch +SVar:DBBranch:DB$ Branch | References$ X | BranchConditionSVar$ X | BranchConditionSVarCompare$ GE4 | TrueSubAbility$ DBChangeZone1 | FalseSubAbility$ DBChangeZone2 +SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ TriggeredCard +SVar:DBChangeZone2:DB$ ChangeZone | Origin$ Graveyard | Destination$ Library | Shuffle$ True | Defined$ TriggeredCard +SVar:X:Count$ValidCommand Effect.YouCtrl+namedWandering Effect +Oracle:Trample, haste\nCycling {1}{R}\nWhen you cycle Yidaro, Wandering Monster, shuffle it into your library from your graveyard. If you've cycled a card named Yidaro, Wandering Monster four or more times this game, put it onto the battlefield from your graveyard instead. (Do this before you draw.) diff --git a/forge-gui/res/cardsfolder/upcoming/zagoth_crystal.txt b/forge-gui/res/cardsfolder/upcoming/zagoth_crystal.txt new file mode 100755 index 00000000000..38828a97c16 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/zagoth_crystal.txt @@ -0,0 +1,8 @@ +Name:Zagoth Crystal +ManaCost:3 +Types:Artifact +A:AB$ Mana | Cost$ T | Produced$ B | SpellDescription$ Add {B}. +A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G}. +A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}. +K:Cycling:2 +Oracle:{T}: Add {B}, {G}, or {U}.\nCycling {2} ({2}, Discard this card: Draw a card.) diff --git a/forge-gui/res/editions/Secret Lair Drop Series.txt b/forge-gui/res/editions/Secret Lair Drop Series.txt index 1ac7b9f8930..473a0ef4d5e 100644 --- a/forge-gui/res/editions/Secret Lair Drop Series.txt +++ b/forge-gui/res/editions/Secret Lair Drop Series.txt @@ -45,6 +45,10 @@ Type=Other 53 M Narset, Enlightened Master 54 M Oona, Queen of the Fae 55 M Saskia the Unyielding +59 R Squire +60 R Storm Crow +61 R Goblin Snowman +62 R Mudhole 68 M Heliod, God of the Sun 69 M Karametra, God of Harvests 70 M Iroas, God of Victory