diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index fd69f3422a9..3f5491f7ec7 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -190,7 +190,7 @@ private Card changeZone(final Zone zoneFrom, Zone zoneTo, final Card c, Integer // Make sure the card returns from the battlefield as the original card with two halves resetToOriginal = true; } - } else if (!zoneTo.is(ZoneType.Stack)) { + } else if (!zoneTo.is(ZoneType.Stack) && !zoneTo.is(ZoneType.Battlefield)) { // For regular splits, recreate the original state unless the card is going to stack as one half resetToOriginal = true; } diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index 45891ffedf3..410ae827c90 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -415,7 +415,11 @@ private static void readCardFace(Card c, ICardFace face) { c.setAttractionLights(face.getAttractionLights()); // SpellPermanent only for Original State - if (c.getCurrentStateName() == CardStateName.Original || c.getCurrentStateName() == CardStateName.Modal || c.getCurrentStateName().toString().startsWith("Specialize")) { + if (c.getCurrentStateName() == CardStateName.Original || + c.getCurrentStateName() == CardStateName.LeftSplit || + c.getCurrentStateName() == CardStateName.RightSplit || + c.getCurrentStateName() == CardStateName.Modal || + c.getCurrentStateName().toString().startsWith("Specialize")) { if (c.isLand()) { SpellAbility sa = new LandAbility(c); sa.setCardState(c.getCurrentState()); diff --git a/forge-gui/res/cardsfolder/upcoming/dollmakers_shop_porcelain_gallery.txt b/forge-gui/res/cardsfolder/upcoming/dollmakers_shop_porcelain_gallery.txt new file mode 100644 index 00000000000..d2e7f403511 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dollmakers_shop_porcelain_gallery.txt @@ -0,0 +1,17 @@ +Name:Dollmaker's Shop +ManaCost:1 W +Types:Enchantment Room + +T:Mode$ AttackersDeclaredOneTarget | Execute$ TrigToken | AttackedTarget$ Player | ValidAttackers$ Creature.YouCtrl+!Toy | TriggerZones$ Battlefield | AttackingPlayer$ You | TriggerDescription$ Whenever one or more non-Toy creatures you control attack a player, create a 1/1 white Toy artifact creature token. +SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_a_toy +AlternateMode:Split +Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nWhenever one or more non-Toy creatures you control attack a player, create a 1/1 white Toy artifact creature token. + +ALTERNATE + +Name:Porcelain Gallery +ManaCost:4 W W +Types:Enchantment Room +S:Mode$ Continuous | Affected$ Creature.Other+YouCtrl | AffectedZone$ Battlefield | SetPower$ X | SetToughness$ X | Description$ Creatures you control have base power and toughness each equal to the number of creatures you control. +SVar:X:Count$Valid Creature.YouCtrl +Oracle:(You may cast either half. That door unlocks on the battlefield. As a sorcery, you may pay the mana cost of a locked door to unlock it.)\nCreatures you control have base power and toughness each equal to the number of creatures you control. diff --git a/forge-gui/res/lists/TypeLists.txt b/forge-gui/res/lists/TypeLists.txt index e43dd9b36f5..ddf7270260b 100644 --- a/forge-gui/res/lists/TypeLists.txt +++ b/forge-gui/res/lists/TypeLists.txt @@ -335,6 +335,7 @@ Case Class Curse:Curses Role +Room Rune Saga:Sagas Shrine:Shrines diff --git a/forge-gui/res/tokenscripts/w_1_1_a_toy.txt b/forge-gui/res/tokenscripts/w_1_1_a_toy.txt new file mode 100644 index 00000000000..54e76aca8da --- /dev/null +++ b/forge-gui/res/tokenscripts/w_1_1_a_toy.txt @@ -0,0 +1,6 @@ +Name:Toy Token +ManaCost:no cost +Types:Artifact Creature Toy +Colors:white +PT:1/1 +Oracle: