From 042552aa1ed5d5281326fb35dc21c40a76d01c4a Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sat, 5 Apr 2014 02:46:21 +0200 Subject: [PATCH] * Sacrifice cost - Fixed a bug that made wrongly sacrificing invalid, because sacrificed permanent did not go to graveyard (e.g. Rest in Peace in play). --- .../costs/common/SacrificeSourceCost.java | 5 +---- Mage/src/mage/game/permanent/PermanentImpl.java | 15 +++++++-------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Mage/src/mage/abilities/costs/common/SacrificeSourceCost.java b/Mage/src/mage/abilities/costs/common/SacrificeSourceCost.java index 7a84ee12c4f..1b82d89e346 100644 --- a/Mage/src/mage/abilities/costs/common/SacrificeSourceCost.java +++ b/Mage/src/mage/abilities/costs/common/SacrificeSourceCost.java @@ -64,10 +64,7 @@ public class SacrificeSourceCost extends CostImpl { return false; } Permanent permanent = game.getPermanent(sourceId); - if (permanent != null) { - return true; - } - return false; + return permanent != null; } @Override diff --git a/Mage/src/mage/game/permanent/PermanentImpl.java b/Mage/src/mage/game/permanent/PermanentImpl.java index 1b60e635171..c734c09ac45 100644 --- a/Mage/src/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/mage/game/permanent/PermanentImpl.java @@ -826,15 +826,14 @@ public abstract class PermanentImpl> extends CardImpl public boolean sacrifice(UUID sourceId, Game game) { //20091005 - 701.13 if (!game.replaceEvent(GameEvent.getEvent(EventType.SACRIFICE_PERMANENT, objectId, sourceId, controllerId))) { - // Commander replacement effect does not prevent successful sacrifice - if (moveToZone(Zone.GRAVEYARD, sourceId, game, true) || game.getState().getZone(this.getId()).equals(Zone.COMMAND)) { - Player player = game.getPlayer(getControllerId()); - if (player != null) { - game.informPlayers(new StringBuilder(player.getName()).append(" sacrificed ").append(this.getName()).toString()); - } - game.fireEvent(GameEvent.getEvent(EventType.SACRIFICED_PERMANENT, objectId, sourceId, controllerId)); - return true; + // Commander replacement effect or Rest in Peace (exile instead of graveyard) in play does not prevent successful sacrifice + moveToZone(Zone.GRAVEYARD, sourceId, game, true); + Player player = game.getPlayer(getControllerId()); + if (player != null) { + game.informPlayers(new StringBuilder(player.getName()).append(" sacrificed ").append(this.getName()).toString()); } + game.fireEvent(GameEvent.getEvent(EventType.SACRIFICED_PERMANENT, objectId, sourceId, controllerId)); + return true; } return false; }