- Added the global rule change: "The legend rule doesn't apply.".

- Converted Mirror Gallery to script.
This commit is contained in:
Sloth
2012-11-14 12:23:15 +00:00
parent cb8b3feded
commit 199805d183
6 changed files with 24 additions and 4 deletions

View File

@@ -1,7 +1,8 @@
Name:Mirror Gallery Name:Mirror Gallery
ManaCost:5 ManaCost:5
Types:Artifact Types:Artifact
Text:The "legend rule" doesn't apply. Text:no text
S:Mode$ Continuous | GlobalRule$ The legend rule doesn't apply. | Description$ The "legend rule" doesn't apply.
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Rarity:Rare SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/mirror_gallery.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/mirror_gallery.jpg

View File

@@ -1283,7 +1283,7 @@ public class GameAction {
*/ */
private void destroyLegendaryCreatures() { private void destroyLegendaryCreatures() {
final List<Card> a = CardLists.getType(game.getCardsIn(ZoneType.Battlefield), "Legendary"); final List<Card> a = CardLists.getType(game.getCardsIn(ZoneType.Battlefield), "Legendary");
if (a.isEmpty() || game.isCardInPlay("Mirror Gallery")) { if (a.isEmpty() || game.getStaticEffects().isNoLegendRule()) {
return; return;
} }

View File

@@ -49,6 +49,7 @@ public class StaticEffects {
//Global rule changes //Global rule changes
private boolean noPrevention = false; private boolean noPrevention = false;
private boolean alwaysWither = false; private boolean alwaysWither = false;
private boolean noLegendRule = false;
/** /**
* clearStaticEffect. TODO Write javadoc for this method. * clearStaticEffect. TODO Write javadoc for this method.
@@ -56,6 +57,7 @@ public class StaticEffects {
public final void clearStaticEffects() { public final void clearStaticEffects() {
noPrevention = false; noPrevention = false;
alwaysWither = false; alwaysWither = false;
noLegendRule = false;
// remove all static effects // remove all static effects
for (int i = 0; i < this.staticEffects.size(); i++) { for (int i = 0; i < this.staticEffects.size(); i++) {
@@ -95,6 +97,21 @@ public class StaticEffects {
} }
/**
* @return the noLegendRule
*/
public boolean isNoLegendRule() {
return noLegendRule;
}
/**
* @param noLegendRule0 the noLegendRule to set
*/
public void setNoLegendRule(boolean noLegends) {
this.noLegendRule = noLegends;
}
/** /**
* addStaticEffect. TODO Write javadoc for this method. * addStaticEffect. TODO Write javadoc for this method.
* *

View File

@@ -189,7 +189,7 @@ public class ChangeZoneAi extends SpellAiLogic {
//Ninjutsu //Ninjutsu
if (sa.hasParam("Ninjutsu")) { if (sa.hasParam("Ninjutsu")) {
if (source.isType("Legendary") && !Singletons.getModel().getGame().isCardInPlay("Mirror Gallery")) { if (source.isType("Legendary") && !Singletons.getModel().getGame().getStaticEffects().isNoLegendRule()) {
final List<Card> list = ai.getCardsIn(ZoneType.Battlefield); final List<Card> list = ai.getCardsIn(ZoneType.Battlefield);
if (Iterables.any(list, CardPredicates.nameEquals(source.getName()))) { if (Iterables.any(list, CardPredicates.nameEquals(source.getName()))) {
return false; return false;

View File

@@ -348,7 +348,7 @@ public class SpellPermanent extends Spell {
} }
// check on legendary // check on legendary
if (card.isType("Legendary") && !Singletons.getModel().getGame().isCardInPlay("Mirror Gallery")) { if (card.isType("Legendary") && !Singletons.getModel().getGame().getStaticEffects().isNoLegendRule()) {
final List<Card> list = ai.getCardsIn(ZoneType.Battlefield); final List<Card> list = ai.getCardsIn(ZoneType.Battlefield);
if (Iterables.any(list, CardPredicates.nameEquals(card.getName()))) { if (Iterables.any(list, CardPredicates.nameEquals(card.getName()))) {
return false; return false;

View File

@@ -98,6 +98,8 @@ public class StaticAbilityContinuous {
effects.setNoPrevention(true); effects.setNoPrevention(true);
} else if (params.get("GlobalRule").equals("All damage is dealt as though it's source had wither.")) { } else if (params.get("GlobalRule").equals("All damage is dealt as though it's source had wither.")) {
effects.setAlwayWither(true); effects.setAlwayWither(true);
} else if (params.get("GlobalRule").equals("The legend rule doesn't apply.")) {
effects.setNoLegendRule(true);
} }
} }