From 33ee5a0a17b14f95762822be82666b8efb53c213 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 6 Mar 2019 20:54:06 +0300 Subject: [PATCH 1/5] - Added puzzle PS_RNA6. --- forge-gui/res/puzzle/PS_RNA6.pzl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 forge-gui/res/puzzle/PS_RNA6.pzl diff --git a/forge-gui/res/puzzle/PS_RNA6.pzl b/forge-gui/res/puzzle/PS_RNA6.pzl new file mode 100644 index 00000000000..b5eeec2e2ec --- /dev/null +++ b/forge-gui/res/puzzle/PS_RNA6.pzl @@ -0,0 +1,16 @@ +[metadata] +Name:Possibility Storm - Ravnica Allegiance #06 +URL:http://www.possibilitystorm.com/wp-content/uploads/2019/02/103.-RNA6.jpg +Goal:Win +Turns:1 +Difficulty:Uncommon +Description:Win this turn. Your solution must satisfy all possible blocking scenarios. +[state] +humanlife=20 +ailife=8 +turn=1 +activeplayer=human +activephase=MAIN1 +humanhand=Skirk Prospector;Metamorphic Alteration;Luminous Bonds;Electrodominance +humanbattlefield=Fresh-Faced Recruit;Juggernaut;Ledev Champion;Biomancer's Familiar;Gateway Plaza;Gateway Plaza;Gateway Plaza;Temple Garden;Temple Garden;Temple Garden;Temple Garden +aibattlefield=Queen's Agent|Counters:P1P1=1;Azorius Knight-Arbiter;Queen's Agent|Counters:P1P1=1 From 12ee419158b987d18e99daaf4aa94e4f2be54912 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 6 Mar 2019 20:57:52 +0300 Subject: [PATCH 2/5] - Fix PS_RNA6. --- forge-gui/res/puzzle/PS_RNA6.pzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/puzzle/PS_RNA6.pzl b/forge-gui/res/puzzle/PS_RNA6.pzl index b5eeec2e2ec..e3e659f6809 100644 --- a/forge-gui/res/puzzle/PS_RNA6.pzl +++ b/forge-gui/res/puzzle/PS_RNA6.pzl @@ -12,5 +12,5 @@ turn=1 activeplayer=human activephase=MAIN1 humanhand=Skirk Prospector;Metamorphic Alteration;Luminous Bonds;Electrodominance -humanbattlefield=Fresh-Faced Recruit;Juggernaut;Ledev Champion;Biomancer's Familiar;Gateway Plaza;Gateway Plaza;Gateway Plaza;Temple Garden;Temple Garden;Temple Garden;Temple Garden +humanbattlefield=Fresh-Faced Recruit;Juggernaut;Ledev Champion;Biomancer's Familiar;Gateway Plaza;Gateway Plaza;Gateway Plaza;Temple Garden|NoETBTrigs;Temple Garden|NoETBTrigs;Temple Garden|NoETBTrigs;Temple Garden|NoETBTrigs aibattlefield=Queen's Agent|Counters:P1P1=1;Azorius Knight-Arbiter;Queen's Agent|Counters:P1P1=1 From 9067d676eb7d789f82b79a69f87d4cf9c64b302a Mon Sep 17 00:00:00 2001 From: Hanmac Date: Thu, 7 Mar 2019 20:34:32 +0100 Subject: [PATCH 3/5] GameAction: register from LKI to fix leave the battlefield --- forge-game/src/main/java/forge/game/GameAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 041fde095bf..ffa159ca135 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -423,7 +423,7 @@ public class GameAction { // Need to apply any static effects to produce correct triggers checkStaticAbilities(); game.getTriggerHandler().clearInstrinsicActiveTriggers(c, zoneFrom); - game.getTriggerHandler().registerActiveTrigger(c, false); + game.getTriggerHandler().registerActiveTrigger(lastKnownInfo, false); // do ETB counters after StaticAbilities check if (!suppress) { From a820ba35f71523312f7527f9a3757125be62e365 Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Fri, 8 Mar 2019 09:52:13 +0000 Subject: [PATCH 4/5] Fix the AI not considering Adapt P/T bonus correctly on attack --- forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index 800f623ca5e..48172bc1635 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -1455,7 +1455,7 @@ public class ComputerUtilCombat { continue; } - if (ability.hasParam("Adapt") && blocker != null && blocker.getCounters(CounterType.P1P1) > 0) { + if (ability.hasParam("Adapt") && attacker.getCounters(CounterType.P1P1) > 0) { continue; } @@ -1692,7 +1692,7 @@ public class ComputerUtilCombat { continue; } - if (ability.hasParam("Adapt") && blocker.getCounters(CounterType.P1P1) > 0) { + if (ability.hasParam("Adapt") && attacker.getCounters(CounterType.P1P1) > 0) { continue; } From f7d40687b6196c959a763e9058d88b2e081ea479 Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Fri, 8 Mar 2019 10:11:15 -0500 Subject: [PATCH 5/5] Log after clashing so players know what happened to top of library --- .../java/forge/game/ability/effects/ClashEffect.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java index 76aa3b43f33..930f2b28477 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java @@ -1,6 +1,7 @@ package forge.game.ability.effects; import forge.game.GameAction; +import forge.game.GameLogEntryType; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -59,9 +60,7 @@ public class ClashEffect extends SpellAbilityEffect { *

* clashWithOpponent. *

- * - * @param source - * a {@link forge.game.card.Card} object. + * * @return a boolean. */ private static boolean clashWithOpponent(final SpellAbility sa) { @@ -126,11 +125,14 @@ public class ClashEffect extends SpellAbilityEffect { private static void clashMoveToTopOrBottom(final Player p, final Card c, final SpellAbility sa) { final GameAction action = p.getGame().getAction(); final boolean putOnTop = p.getController().willPutCardOnTop(c); + final String location = putOnTop ? "top" : "bottom"; + final String clashOutcome = p.getName() + " clashed and put " + c.getName() + " to the " + location + " of library."; + if (putOnTop) { action.moveToLibrary(c, sa); } else { action.moveToBottomOfLibrary(c, sa); } - // computer just puts the card back until such time it can make a smarter decision + p.getGame().getGameLog().add(GameLogEntryType.STACK_RESOLVE, clashOutcome); } }