* Fixed cards with skip untap optional ability that cause game freezes (#5606)

This commit is contained in:
Oleg Agafonov 2019-03-01 18:10:32 +04:00
parent 4a14940414
commit 6846db75f4
169 changed files with 754 additions and 1172 deletions

View file

@ -150,7 +150,7 @@ class AgyremRestrictionEffect extends RestrictionEffect {
}
@Override
public boolean canAttack(Permanent attacker, UUID defenderId, Ability source, Game game) {
public boolean canAttack(Permanent attacker, UUID defenderId, Ability source, Game game, boolean canUseChooseDialogs) {
if (defenderId == null) {
return true;
}

View file

@ -1,9 +1,5 @@
package mage.game.command.planes;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
@ -24,8 +20,11 @@ import mage.target.Target;
import mage.watchers.common.AttackedThisTurnWatcher;
import mage.watchers.common.PlanarRollWatcher;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
*
* @author spjspj
*/
public class AstralArenaPlane extends Plane {
@ -81,15 +80,11 @@ class AstralArenaAttackRestrictionEffect extends RestrictionEffect {
if (cPlane == null) {
return false;
}
if (!cPlane.getName().equalsIgnoreCase("Plane - Astral Arena")) {
return false;
}
return true;
return cPlane.getName().equalsIgnoreCase("Plane - Astral Arena");
}
@Override
public boolean canAttack(Permanent attacker, UUID defenderId, Ability source, Game game) {
public boolean canAttack(Permanent attacker, UUID defenderId, Ability source, Game game, boolean canUseChooseDialogs) {
return game.getCombat().getAttackers().isEmpty();
}
}
@ -116,14 +111,11 @@ class AstralArenaBlockRestrictionEffect extends RestrictionEffect {
if (cPlane == null) {
return false;
}
if (!cPlane.getName().equalsIgnoreCase("Plane - Astral Arena")) {
return false;
}
return true;
return cPlane.getName().equalsIgnoreCase("Plane - Astral Arena");
}
@Override
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) {
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game, boolean canUseChooseDialogs) {
return game.getCombat().getBlockers().isEmpty();
}
}

View file

@ -1,8 +1,5 @@
package mage.game.command.planes;
import java.util.ArrayList;
import java.util.List;
import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
@ -21,12 +18,14 @@ import mage.filter.predicate.mageobject.PowerPredicate;
import mage.game.Game;
import mage.game.command.Plane;
import mage.game.permanent.Permanent;
import mage.game.permanent.token.EldraziAnnihilatorToken;
import mage.target.Target;
import mage.watchers.common.PlanarRollWatcher;
import mage.game.permanent.token.EldraziAnnihilatorToken;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author spjspj
*/
public class HedronFieldsOfAgadeemPlane extends Plane {
@ -80,12 +79,12 @@ class HedronFieldsOfAgadeemRestrictionEffect extends RestrictionEffect {
}
@Override
public boolean canAttack(Game game) {
public boolean canAttack(Game game, boolean canUseChooseDialogs) {
return false;
}
@Override
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) {
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game, boolean canUseChooseDialogs) {
return false;
}

View file

@ -1,8 +1,5 @@
package mage.game.command.planes;
import java.util.ArrayList;
import java.util.List;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
@ -25,8 +22,10 @@ import mage.game.permanent.Permanent;
import mage.target.Target;
import mage.watchers.common.PlanarRollWatcher;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author spjspj
*/
public class TazeemPlane extends Plane {
@ -83,7 +82,7 @@ class TazeemCantBlockAllEffect extends RestrictionEffect {
}
@Override
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game) {
public boolean canBlock(Permanent attacker, Permanent blocker, Ability source, Game game, boolean canUseChooseDialogs) {
return false;
}