diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java index 0a8e95acce5..83dd306a5e9 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java @@ -55,6 +55,7 @@ import mage.game.stack.StackAbility; import mage.game.stack.StackObject; import mage.game.turn.*; import mage.player.ai.ma.optimizers.TreeOptimizer; +import mage.player.ai.ma.optimizers.impl.DiscardCardOptimizer; import mage.player.ai.ma.optimizers.impl.EquipOptimizer; import mage.player.ai.ma.optimizers.impl.LevelUpOptimizer; import mage.player.ai.util.CombatInfo; @@ -96,6 +97,7 @@ public class ComputerPlayer6 extends ComputerPlayer implements static { optimizers.add(new LevelUpOptimizer()); optimizers.add(new EquipOptimizer()); + optimizers.add(new DiscardCardOptimizer()); } public ComputerPlayer6(String name, RangeOfInfluence range, int skill) { diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java index 57e63066623..42f990a8b15 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java @@ -62,7 +62,7 @@ public class GameStateEvaluator2 { int permanentScore = 0; try { for (Permanent permanent: game.getBattlefield().getAllActivePermanents(playerId)) { - permanentScore += 10 * evaluatePermanent(permanent, game); + permanentScore += evaluatePermanent(permanent, game); } for (Permanent permanent: game.getBattlefield().getAllActivePermanents(opponent.getId())) { permanentScore -= evaluatePermanent(permanent, game); diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java index 0f63ac787f3..d5c7fad04d1 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/SimulatedPlayer2.java @@ -101,7 +101,7 @@ public class SimulatedPlayer2 extends ComputerPlayer { } for (Ability a : allActions) { - System.out.println("ability=="+a); + //System.out.println("ability=="+a); if (a.getTargets().size() > 0) { Player player = game.getPlayer(a.getFirstTarget()); if (player != null) { diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java index 108cd9191f5..72c87c98990 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java @@ -119,9 +119,9 @@ public class ArtificialScoringSystem { if (permanent.getCardType().contains(Constants.CardType.CREATURE)) { return -100; } else if (permanent.getCardType().contains(Constants.CardType.LAND)) { - return -10; + return -1; } else { - return -50; + return -2; } } diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/DiscardCardOptimizer.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/DiscardCardOptimizer.java new file mode 100644 index 00000000000..a4875452add --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/optimizers/impl/DiscardCardOptimizer.java @@ -0,0 +1,23 @@ +package mage.player.ai.ma.optimizers.impl; + +import mage.abilities.Ability; +import mage.game.Game; + +import java.util.List; + +/** + * Removes abilities that require only discard a card for activation. + * + * @author magenoxx_at_gmail.com + */ +public class DiscardCardOptimizer extends BaseTreeOptimizer { + + @Override + public void filter(Game game, List actions) { + for (Ability ability : actions) { + if (ability.toString().startsWith("Discard card")) { + removeAbility(ability); + } + } + } +} diff --git a/Mage.Server/plugins/mage-player-ai-ma.jar b/Mage.Server/plugins/mage-player-ai-ma.jar index ae0c9abc9ff..5c41f240243 100644 Binary files a/Mage.Server/plugins/mage-player-ai-ma.jar and b/Mage.Server/plugins/mage-player-ai-ma.jar differ diff --git a/Mage.Server/plugins/mage-player-ai.jar b/Mage.Server/plugins/mage-player-ai.jar index 8dfc3c893e3..5cb22be62c7 100644 Binary files a/Mage.Server/plugins/mage-player-ai.jar and b/Mage.Server/plugins/mage-player-ai.jar differ diff --git a/Mage.Server/plugins/mage-player-aiminimax.jar b/Mage.Server/plugins/mage-player-aiminimax.jar index 9f8516089c3..63de76241bc 100644 Binary files a/Mage.Server/plugins/mage-player-aiminimax.jar and b/Mage.Server/plugins/mage-player-aiminimax.jar differ