prevent destroy logic should only be checked if destroy is true
fixes issue 231.master
parent
2897a5c6ad
commit
720b700fc1
|
@ -29,12 +29,12 @@ public class MagicDestroyAction extends MagicAction {
|
|||
final MagicPermanent permanent = (MagicPermanent)target;
|
||||
|
||||
// Indestructible
|
||||
if (permanent.hasAbility(MagicAbility.Indestructible)) {
|
||||
if (destroy && permanent.hasAbility(MagicAbility.Indestructible)) {
|
||||
destroy = false;
|
||||
}
|
||||
|
||||
// Regeneration
|
||||
if (permanent.isRegenerated()) {
|
||||
if (destroy && permanent.isRegenerated()) {
|
||||
game.logAppendMessage(permanent.getController(),permanent.getName()+" is regenerated.");
|
||||
game.doAction(new MagicTapAction(permanent,false));
|
||||
game.doAction(new MagicRemoveAllDamageAction(permanent));
|
||||
|
@ -44,7 +44,7 @@ public class MagicDestroyAction extends MagicAction {
|
|||
}
|
||||
|
||||
// Totem armor
|
||||
if (permanent.isEnchanted()) {
|
||||
if (destroy && permanent.isEnchanted()) {
|
||||
for (final MagicPermanent aura : permanent.getAuraPermanents()) {
|
||||
if (aura.getCardDefinition().hasAbility(MagicAbility.TotemArmor)) {
|
||||
game.logAppendMessage(permanent.getController(),"Remove all damage from "+permanent.getName()+'.');
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package magic.test;
|
||||
|
||||
import magic.model.MagicGame;
|
||||
import magic.model.MagicPlayer;
|
||||
import magic.model.MagicPlayerDefinition;
|
||||
import magic.model.MagicPlayerProfile;
|
||||
import magic.model.MagicDuel;
|
||||
import magic.model.phase.MagicMainPhase;
|
||||
|
||||
class TestTotemArmorIndestructible extends TestGameBuilder {
|
||||
public MagicGame getGame() {
|
||||
final MagicDuel duel=new MagicDuel();
|
||||
duel.setDifficulty(6);
|
||||
|
||||
final MagicPlayerProfile profile=new MagicPlayerProfile("bgruw");
|
||||
final MagicPlayerDefinition player1=new MagicPlayerDefinition("Player",false,profile,15);
|
||||
final MagicPlayerDefinition player2=new MagicPlayerDefinition("Computer",true,profile,14);
|
||||
duel.setPlayers(new MagicPlayerDefinition[]{player1,player2});
|
||||
duel.setStartPlayer(0);
|
||||
|
||||
final MagicGame game=duel.nextGame(true);
|
||||
game.setPhase(MagicMainPhase.getFirstInstance());
|
||||
final MagicPlayer player=game.getPlayer(0);
|
||||
final MagicPlayer opponent=game.getPlayer(1);
|
||||
|
||||
MagicPlayer P = player;
|
||||
|
||||
P.setLife(20);
|
||||
addToLibrary(P, "Plains", 10);
|
||||
createPermanent(game,P,"Rupture Spire",false,8);
|
||||
createPermanent(game,P,"Grizzly Bears",false,1);
|
||||
createPermanent(game,P,"Darksteel Plate",false,1);
|
||||
addToHand(P,"Spider Umbra",1);
|
||||
addToHand(P,"Doom Blade",1);
|
||||
|
||||
|
||||
P = opponent;
|
||||
|
||||
P.setLife(20);
|
||||
addToLibrary(P, "Plains", 10);
|
||||
createPermanent(game,P,"Rupture Spire",false,8);
|
||||
|
||||
return game;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue