From 8dcfead462f43fba2d862afea75c5834f4fc83dd Mon Sep 17 00:00:00 2001 From: jeffwadsworth <> Date: Thu, 8 Nov 2012 11:57:13 -0600 Subject: [PATCH] - Attempt to fix the AI attacking with your creatures. Small enchancements to AI attacking. --- .../src/mage/player/ai/ComputerPlayer6.java | 5 ++++- Mage/src/mage/players/PlayerImpl.java | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) 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 7d10dc4afa2..fe3effb71e4 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 @@ -1099,7 +1099,10 @@ public class ComputerPlayer6 extends ComputerPlayer implements || blocker.getAbilities().containsKey(DoubleStrikeAbility.getInstance().getId()) || blocker.getAbilities().contains(new ExaltedAbility()) || blocker.getAbilities().containsKey(DeathtouchAbility.getInstance().getId()) - || blocker.getAbilities().contains(new IndestructibleAbility())) { + || blocker.getAbilities().contains(new IndestructibleAbility()) + || !attacker.getAbilities().containsKey(FirstStrikeAbility.getInstance().getId()) + || !attacker.getAbilities().containsKey(DoubleStrikeAbility.getInstance().getId()) + || !attacker.getAbilities().contains(new ExaltedAbility())) { safeToAttack = false; } } diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 5ce11460eac..b427b1aa9df 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -1111,7 +1111,7 @@ public abstract class PlayerImpl> implements Player, Ser @Override public void declareAttacker(UUID attackerId, UUID defenderId, Game game) { Permanent attacker = game.getPermanent(attackerId); - if (attacker != null && attacker.canAttack(game)) { + if (attacker != null && attacker.canAttack(game) && attacker.getControllerId().equals(playerId)) { if (!game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.DECLARE_ATTACKER, defenderId, attackerId, playerId))) { game.getCombat().declareAttacker(attackerId, defenderId, game); } @@ -1122,7 +1122,7 @@ public abstract class PlayerImpl> implements Player, Ser public void declareBlocker(UUID blockerId, UUID attackerId, Game game) { Permanent blocker = game.getPermanent(blockerId); CombatGroup group = game.getCombat().findGroup(attackerId); - if (blocker != null && group != null && group.canBlock(blocker, game)) { + if (blocker != null && group != null && group.canBlock(blocker, game) && blocker.getControllerId().equals(playerId)) { group.addBlocker(blockerId, playerId, game); game.getCombat().addBlockingGroup(blockerId, attackerId, playerId, game); }