From a7a85d22d58f16592237c52bc2993b1bc86c788f Mon Sep 17 00:00:00 2001 From: Sloth Date: Mon, 21 Oct 2013 20:18:05 +0000 Subject: [PATCH] - Added some card specific AI for Serene Master and Shape Stealer. --- .../forge/game/ai/ComputerUtilCombat.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/forge/game/ai/ComputerUtilCombat.java b/src/main/java/forge/game/ai/ComputerUtilCombat.java index 33f6a213088..e55d9032594 100644 --- a/src/main/java/forge/game/ai/ComputerUtilCombat.java +++ b/src/main/java/forge/game/ai/ComputerUtilCombat.java @@ -735,6 +735,13 @@ public class ComputerUtilCombat { if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) { power -= attacker.getAmountOfKeyword("Flanking"); } + + // Serene Master switches power with attacker + if (defender.getName().equals("Serene Master")) { + power += attacker.getNetAttack() - defender.getNetAttack(); + } else if (defender.getName().equals("Shape Stealer")) { + power += attacker.getNetAttack() - defender.getNetAttack(); + } // if the attacker has first strike and wither the blocker will deal // less damage than expected @@ -882,6 +889,10 @@ public class ComputerUtilCombat { if (attacker.hasKeyword("Flanking") && !defender.hasKeyword("Flanking")) { toughness -= attacker.getAmountOfKeyword("Flanking"); } + + if (defender.getName().equals("Shape Stealer")) { + toughness += attacker.getNetDefense() - defender.getNetDefense(); + } toughness += defender.getKeywordMagnitude("Bushido"); final Game game = attacker.getGame(); @@ -1015,6 +1026,13 @@ public class ComputerUtilCombat { } } + // Serene Master switches power with attacker + if (defender!= null && defender.getName().equals("Serene Master")) { + power += defender.getNetAttack() - attacker.getNetAttack(); + } else if (defender != null && attacker.getName().equals("Shape Stealer")) { + power += defender.getNetAttack() - attacker.getNetAttack(); + } + final Game game = attacker.getGame(); final ArrayList theTriggers = new ArrayList(); for (Card card : game.getCardsIn(ZoneType.Battlefield)) { @@ -1184,6 +1202,10 @@ public class ComputerUtilCombat { } } + if (defender != null && attacker.getName().equals("Shape Stealer")) { + toughness += defender.getNetDefense() - attacker.getNetDefense(); + } + final Game game = attacker.getGame(); final ArrayList theTriggers = new ArrayList(); for (Card card : game.getCardsIn(ZoneType.Battlefield)) {