mirror of
https://github.com/magefree/mage.git
synced 2025-12-30 07:22:03 -08:00
* 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).
This commit is contained in:
parent
816812f695
commit
042552aa1e
2 changed files with 8 additions and 12 deletions
|
|
@ -64,10 +64,7 @@ public class SacrificeSourceCost extends CostImpl<SacrificeSourceCost> {
|
|||
return false;
|
||||
}
|
||||
Permanent permanent = game.getPermanent(sourceId);
|
||||
if (permanent != null) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return permanent != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -826,15 +826,14 @@ public abstract class PermanentImpl<T extends PermanentImpl<T>> 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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue