From 93b968d92abc5ff365755e12969305901f7876a1 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sun, 6 Apr 2014 17:24:44 +0200 Subject: [PATCH] * Desecration Demon - Made AI not using the sacrifice ability any more. --- .../src/main/java/mage/player/ai/ComputerPlayer.java | 2 +- .../mage/sets/returntoravnica/DesecrationDemon.java | 10 ++++------ Mage/src/mage/constants/Outcome.java | 6 +++--- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index 968d8d3abd0..57d454c00ef 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -1064,7 +1064,7 @@ public class ComputerPlayer> extends PlayerImpl i // Be proactive! Always use abilities, the evaluation function will decide if it's good or not // Otherwise some abilities won't be used by AI like LoseTargetEffect that has "bad" outcome // but still is good when targets opponent - return true; + return !outcome.equals(Outcome.AIDontUseIt); // Added for Desecration Demon sacrifice ability } @Override diff --git a/Mage.Sets/src/mage/sets/returntoravnica/DesecrationDemon.java b/Mage.Sets/src/mage/sets/returntoravnica/DesecrationDemon.java index 4cb5bd1a129..b1dacaa604c 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/DesecrationDemon.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/DesecrationDemon.java @@ -103,17 +103,15 @@ class DesecrationDemonEffect extends OneShotEffect { filter.add(new ControllerPredicate(TargetController.YOU)); TargetControlledPermanent target = new TargetControlledPermanent(1, 1, filter, false); if (target.canChoose(opponent.getId(), game)) { - if (opponent.chooseUse(Outcome.Detriment, new StringBuilder("Sacrifice a creature to tap ").append(descrationDemon.getName()).append("and put a +1/+1 counter on it?").toString(), game)) + if (opponent.chooseUse(Outcome.AIDontUseIt, new StringBuilder("Sacrifice a creature to tap ").append(descrationDemon.getName()).append("and put a +1/+1 counter on it?").toString(), game)) { opponent.choose(Outcome.Sacrifice, target, source.getSourceId(), game); Permanent permanent = game.getPermanent(target.getFirstTarget()); if (permanent != null) { - permanent.sacrifice(source.getId(), game); + permanent.sacrifice(source.getSourceId(), game); game.informPlayers(new StringBuilder(opponent.getName()).append(" sacrifices ").append(permanent.getName()).append(" to tap ").append(descrationDemon.getName()).append(". A +1/+1 counter was put on it").toString()); - if (descrationDemon != null) { - descrationDemon.tap(game); - descrationDemon.addCounters(CounterType.P1P1.createInstance(), game); - } + descrationDemon.tap(game); + descrationDemon.addCounters(CounterType.P1P1.createInstance(), game); } } } diff --git a/Mage/src/mage/constants/Outcome.java b/Mage/src/mage/constants/Outcome.java index f7c8f2f4a55..9bb39604651 100644 --- a/Mage/src/mage/constants/Outcome.java +++ b/Mage/src/mage/constants/Outcome.java @@ -38,9 +38,9 @@ public enum Outcome { Benefit(true), Detriment(false), Neutral(true), - Removal(false); - - private boolean good; + Removal(false), + AIDontUseIt(false); + private final boolean good; private boolean canTargetAll; Outcome(boolean good) {