diff --git a/forge-ai/src/main/java/forge/ai/ability/MillAi.java b/forge-ai/src/main/java/forge/ai/ability/MillAi.java index 05c813613e2..0b5c53382a5 100644 --- a/forge-ai/src/main/java/forge/ai/ability/MillAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/MillAi.java @@ -39,8 +39,6 @@ public class MillAi extends SpellAbilityAi { } else if (aiLogic.equals("LilianaMill")) { // Only mill if a "Raise Dead" target is available, in case of control decks with few creatures return CardLists.filter(ai.getCardsIn(ZoneType.Graveyard), CardPredicates.Presets.CREATURES).size() >= 1; - } else if (aiLogic.equals("Rebirth")) { - return ai.getLife() <= 8; } return true; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 2c8ca87cf51..9a8ca6c6a6b 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -549,7 +549,6 @@ public class ChangeZoneEffect extends SpellAbilityEffect { final Zone originZone = game.getZoneOf(gameCard); // if Target isn't in the expected Zone, continue - if (originZone == null || (!origin.isEmpty() && !origin.contains(originZone.getZoneType()))) { continue; } @@ -559,10 +558,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (destination.equals(ZoneType.Library)) { // library position is zero indexed int libraryPosition = 0; - if (!altDest) { - libraryPosition = sa.hasParam("LibraryPosition") ? AbilityUtils.calculateAmount(hostCard, sa.getParam("LibraryPosition"), sa) : 0; - } else { + if (altDest) { libraryPosition = sa.hasParam("LibraryPositionAlternative") ? Integer.parseInt(sa.getParam("LibraryPositionAlternative")) : 0; + } else { + libraryPosition = sa.hasParam("LibraryPosition") ? AbilityUtils.calculateAmount(hostCard, sa.getParam("LibraryPosition"), sa) : 0; } // If a card is moved to library from the stack, remove its spells from the stack diff --git a/forge-gui/res/cardsfolder/a/amulet_of_quoz.txt b/forge-gui/res/cardsfolder/a/amulet_of_quoz.txt index f22b07f61e3..ae79d3d002f 100644 --- a/forge-gui/res/cardsfolder/a/amulet_of_quoz.txt +++ b/forge-gui/res/cardsfolder/a/amulet_of_quoz.txt @@ -2,7 +2,7 @@ Name:Amulet of Quoz ManaCost:6 Types:Artifact K:Remove CARDNAME from your deck before playing if you're not playing for ante. -A:AB$ Dig | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Opponent | DestinationZone$ Ante | DigNum$ 1 | ChangeNum$ All | RememberChanged$ True | Optional$ True | SubAbility$ DBFlip | PlayerTurn$ True | ActivationPhases$ Upkeep | SpellDescription$ Target opponent may ante the top card of their library. If they don't, you flip a coin. If you win the flip, that player loses the game. If you lose the flip, you lose the game. Activate only during your upkeep. +A:AB$ Dig | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Opponent | DestinationZone$ Ante | DigNum$ 1 | ChangeNum$ All | RememberChanged$ True | Optional$ True | PromptToSkipOptionalAbility$ True | SubAbility$ DBFlip | PlayerTurn$ True | ActivationPhases$ Upkeep | SpellDescription$ Target opponent may ante the top card of their library. If they don't, you flip a coin. If you win the flip, that player loses the game. If you lose the flip, you lose the game. Activate only during your upkeep. SVar:DBFlip:DB$ FlipACoin | Caller$ You | WinSubAbility$ OppLoseGame | LoseSubAbility$ YouLoseGame | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup SVar:OppLoseGame:DB$ LosesGame | Defined$ Targeted SVar:YouLoseGame:DB$ LosesGame | Defined$ You diff --git a/forge-gui/res/cardsfolder/d/demonic_attorney.txt b/forge-gui/res/cardsfolder/d/demonic_attorney.txt index ee26573174c..52ef8ade9c1 100644 --- a/forge-gui/res/cardsfolder/d/demonic_attorney.txt +++ b/forge-gui/res/cardsfolder/d/demonic_attorney.txt @@ -2,7 +2,7 @@ Name:Demonic Attorney ManaCost:1 B B Types:Sorcery K:Remove CARDNAME from your deck before playing if you're not playing for ante. -A:SP$ Dig | Cost$ 1 B B | Defined$ Player | DigNum$ 1 | DestinationZone$ Ante | SpellDescription$ Each player antes the top card of their library. +A:SP$ Dig | Cost$ 1 B B | Defined$ Player | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Ante | SpellDescription$ Each player antes the top card of their library. AI:RemoveDeck:All AI:RemoveDeck:Random Oracle:Remove Demonic Attorney from your deck before playing if you're not playing for ante.\nEach player antes the top card of their library. diff --git a/forge-gui/res/cardsfolder/r/rebirth.txt b/forge-gui/res/cardsfolder/r/rebirth.txt index 6b00761c1c2..ee3c2853052 100644 --- a/forge-gui/res/cardsfolder/r/rebirth.txt +++ b/forge-gui/res/cardsfolder/r/rebirth.txt @@ -2,8 +2,7 @@ Name:Rebirth ManaCost:3 G G G Types:Sorcery K:Remove CARDNAME from your deck before playing if you're not playing for ante. -A:SP$ RepeatEach | Cost$ 3 G G G | RepeatPlayers$ Player | RepeatSubAbility$ Ante | SpellDescription$ Each player may ante the top card of their library. If a player does, that player's life total becomes 20. -SVar:Ante:DB$ Dig | Defined$ Player.IsRemembered | Destination$ Ante | DigNum$ 1 | ChangeNum$ All | RememberChanged$ True | Optional$ True | SubAbility$ 20Life | AILogic$ Rebirth -SVar:20Life:DB$ SetLife | Defined$ Player.IsRemembered | LifeAmount$ 20 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ1 | SubAbility$ DBCleanup +A:SP$ Dig | Defined$ Player | DestinationZone$ Ante | DigNum$ 1 | ChangeNum$ All | RememberChanged$ True | Optional$ True | PromptToSkipOptionalAbility$ True | SubAbility$ 20Life | SpellDescription$ Each player may ante the top card of their library. If a player does, that player's life total becomes 20. +SVar:20Life:DB$ SetLife | Defined$ RememberedOwner | LifeAmount$ 20 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Remove Rebirth from your deck before playing if you're not playing for ante.\nEach player may ante the top card of their library. If a player does, that player's life total becomes 20. diff --git a/forge-gui/res/cardsfolder/t/timmerian_fiends.txt b/forge-gui/res/cardsfolder/t/timmerian_fiends.txt index 363f71c8392..13c465b9dbc 100644 --- a/forge-gui/res/cardsfolder/t/timmerian_fiends.txt +++ b/forge-gui/res/cardsfolder/t/timmerian_fiends.txt @@ -4,7 +4,7 @@ Types:Creature Horror PT:1/1 K:Remove CARDNAME from your deck before playing if you're not playing for ante. A:AB$ Pump | Cost$ B B B Sac<1/CARDNAME> | ValidTgts$ Artifact | SubAbility$ DBAnte | ImprintCards$ Targeted | RememberObjects$ TargetedController | StackDescription$ SpellDescription | SpellDescription$ The owner of target artifact may ante the top card of their library. If that player doesn't, exchange ownership of that artifact and CARDNAME. Put the artifact card into your graveyard and CARDNAME from anywhere into that player's graveyard. This change in ownership is permanent. -SVar:DBAnte:DB$ Dig | Defined$ Player.IsRemembered | DestinationZone$ Ante | DigNum$ 1 | ChangeNum$ All | RememberChanged$ True | Optional$ True | SubAbility$ ExchangeOwn1 | AILogic$ TimmerianFiends | StackDescription$ None +SVar:DBAnte:DB$ Dig | Defined$ Player.IsRemembered | DestinationZone$ Ante | DigNum$ 1 | ChangeNum$ All | RememberChanged$ True | Optional$ True | PromptToSkipOptionalAbility$ True | SubAbility$ ExchangeOwn1 | AILogic$ TimmerianFiends | StackDescription$ None SVar:ExchangeOwn1:DB$ GainOwnership | Defined$ Imprinted | DefinedPlayer$ You | SubAbility$ ToGrave1 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 SVar:ToGrave1:DB$ ChangeZone | Defined$ Imprinted | Origin$ Battlefield | Destination$ Graveyard | SubAbility$ ExchangeOwn2 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | StackDescription$ None SVar:ExchangeOwn2:DB$ GainOwnership | Defined$ Self | DefinedPlayer$ Remembered | SubAbility$ ToGrave | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0