Now Planeswalkers use counters for loyalty. Fixed Issue 69.

This commit is contained in:
magenoxx 2011-05-15 16:42:45 +04:00
parent 13497ec651
commit d5c4ac371a
32 changed files with 169 additions and 64 deletions

View file

@ -39,15 +39,19 @@ import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.Effects;
import mage.abilities.effects.common.continious.GainAbilityControlledEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.AddPlusOneCountersControlledEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -65,7 +69,7 @@ public class AjaniGoldmane extends CardImpl<AjaniGoldmane> {
this.expansionSetCode = "M10";
this.subtype.add("Ajani");
this.color.setWhite(true);
this.loyalty = new MageInt(4);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(4)), ""));
this.addAbility(new LoyaltyAbility(new GainLifeEffect(2), 1));

View file

@ -33,11 +33,14 @@ import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.Effects;
import mage.abilities.effects.common.DamageAllControlledTargetEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.DamageXTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.TargetPlayer;
import mage.target.common.TargetCreaturePermanent;
@ -53,7 +56,8 @@ public class ChandraNalaar extends CardImpl<ChandraNalaar> {
this.expansionSetCode = "M10";
this.subtype.add("Chandra ");
this.color.setRed(true);
this.loyalty = new MageInt(6);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(6)), ""));
LoyaltyAbility ability1 = new LoyaltyAbility(new DamageTargetEffect(1), 1);
ability1.addTarget(new TargetPlayer());

View file

@ -34,13 +34,16 @@ import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.Effects;
import mage.abilities.effects.common.continious.BoostControlledEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continious.GainAbilityControlledEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.UntapTargetEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.permanent.token.BeastToken;
import mage.target.common.TargetLandPermanent;
@ -58,7 +61,8 @@ public class GarrukWildspeaker extends CardImpl<GarrukWildspeaker> {
this.expansionSetCode = "M10";
this.subtype.add("Garruk");
this.color.setGreen(true);
this.loyalty = new MageInt(3);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), ""));
LoyaltyAbility ability1 = new LoyaltyAbility(new UntapTargetEffect(), 1);
ability1.addTarget(new TargetLandPermanent(2));

View file

@ -33,10 +33,13 @@ import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.common.DrawCardAllEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.target.TargetPlayer;
/**
@ -50,7 +53,8 @@ public class JaceBeleren extends CardImpl<JaceBeleren> {
this.expansionSetCode = "M10";
this.subtype.add("Jace");
this.color.setBlue(true);
this.loyalty = new MageInt(3);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), ""));
this.addAbility(new LoyaltyAbility(new DrawCardAllEffect(1), 2));

View file

@ -36,11 +36,14 @@ import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DiscardTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetPlayer;
@ -57,7 +60,7 @@ public class LilianaVess extends CardImpl<LilianaVess> {
this.expansionSetCode = "M10";
this.subtype.add("Liliana");
this.color.setBlack(true);
this.loyalty = new MageInt(5);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(5)), ""));
LoyaltyAbility ability1 = new LoyaltyAbility(new DiscardTargetEffect(1), 1);
ability1.addTarget(new TargetPlayer());

View file

@ -36,11 +36,14 @@ import mage.Constants.TurnPhase;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.RequirementEffect;
import mage.abilities.effects.common.continious.BecomesCreatureSourceEOTEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.PreventAllDamageSourceEffect;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -66,7 +69,7 @@ public class GideonJura extends CardImpl<GideonJura> {
this.expansionSetCode = "ROE";
this.subtype.add("Gideon");
this.color.setWhite(true);
this.loyalty = new MageInt(6);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(6)), ""));
LoyaltyAbility ability1 = new LoyaltyAbility(new GideonJuraEffect(), 2);
ability1.addTarget(new TargetOpponent());

View file

@ -36,11 +36,14 @@ import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.counters.CounterType;
import mage.filter.common.FilterControlledPermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -60,7 +63,7 @@ public class SarkhantheMad extends CardImpl<SarkhantheMad> {
super(ownerId, 214, "Sarkhan the Mad", Rarity.MYTHIC, new CardType[]{CardType.PLANESWALKER}, "{3}{B}{R}");
this.expansionSetCode = "ROE";
this.subtype.add("Sarkhan");
this.loyalty = new MageInt(7);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(7)), ""));
this.color.setBlack(true);
this.color.setRed(true);

View file

@ -36,9 +36,12 @@ import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -57,7 +60,9 @@ public class ElspethTirel extends CardImpl<ElspethTirel> {
this.expansionSetCode = "SOM";
this.subtype.add("Elspeth");
this.color.setWhite(true);
this.loyalty = new MageInt(4);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(4)), ""));
this.addAbility(new LoyaltyAbility(new ElspethTirelFirstEffect(), 2));
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new SoldierToken(), 3), -2));
this.addAbility(new LoyaltyAbility(new ElspethTirelThirdEffect(), -5));

View file

@ -38,6 +38,7 @@ import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.ContinuousEffectImpl;
@ -45,7 +46,9 @@ import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.ManaEffect;
import mage.abilities.effects.common.UntapTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.Filter;
import mage.filter.common.FilterLandPermanent;
import mage.game.Game;
@ -70,7 +73,8 @@ public class KothoftheHammer extends CardImpl<KothoftheHammer> {
this.expansionSetCode = "SOM";
this.subtype.add("Koth");
this.color.setRed(true);
this.loyalty = new MageInt(3);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), ""));
Ability ability = new LoyaltyAbility(new UntapTargetEffect(), 1);
ability.addEffect(new KothoftheHammerFirstEffect());
ability.addTarget(new TargetLandPermanent(filter));

View file

@ -107,7 +107,7 @@ public class QuicksilverGargantuan extends CardImpl<QuicksilverGargantuan> {
for (Ability ability : card.getAbilities()) {
permanent.addAbility(ability);
}
permanent.getLoyalty().setValue(card.getLoyalty().getValue());
//permanent.getLoyalty().setValue(card.getLoyalty().getValue());
permanent.setArt(card.getArt());
return true;

View file

@ -33,12 +33,15 @@ import mage.Constants.CardType;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.Effects;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.DestroyAllControlledTargetEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.SkipNextUntapTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.FilterPermanent;
import mage.target.TargetPermanent;
import mage.target.TargetPlayer;
@ -56,7 +59,8 @@ public class AjaniVengeant extends CardImpl<AjaniVengeant> {
this.subtype.add("Ajani");
this.color.setRed(true);
this.color.setWhite(true);
this.loyalty = new MageInt(3);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), ""));
LoyaltyAbility ability1 = new LoyaltyAbility(new SkipNextUntapTargetEffect(), 1);
ability1.addTarget(new TargetPermanent());

View file

@ -38,14 +38,17 @@ import mage.Constants.SubLayer;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.Effects;
import mage.abilities.effects.common.continious.BoostTargetEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continious.GainAbilityTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.Filter.ComparisonScope;
import mage.filter.FilterPermanent;
import mage.game.Game;
@ -66,7 +69,7 @@ public class ElspethKnightErrant extends CardImpl<ElspethKnightErrant> {
this.expansionSetCode = "ALA";
this.subtype.add("Elspeth");
this.color.setWhite(true);
this.loyalty = new MageInt(4);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(4)), ""));
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(soldierToken), 1));

View file

@ -34,14 +34,17 @@ import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.Effects;
import mage.abilities.effects.common.continious.*;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continious.GainAbilityControlledEffect;
import mage.abilities.effects.common.continious.GainControlTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.UntapTargetEffect;
import mage.abilities.keyword.HasteAbility;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.permanent.token.DragonToken;
import mage.target.common.TargetCreaturePermanent;
@ -60,7 +63,7 @@ public class SarkhanVol extends CardImpl<SarkhanVol> {
this.subtype.add("Sarkhan");
this.color.setRed(true);
this.color.setGreen(true);
this.loyalty = new MageInt(4);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(4)), ""));
Effects effects1 = new Effects();
effects1.add(new BoostControlledEffect(1, 1, Duration.EndOfTurn));

View file

@ -36,12 +36,15 @@ import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.counters.CounterType;
import mage.game.ExileZone;
import mage.game.Game;
import mage.players.Player;
@ -61,7 +64,8 @@ public class JaceTheMindSculptor extends CardImpl<JaceTheMindSculptor> {
this.expansionSetCode = "WWK";
this.subtype.add("Jace");
this.color.setBlue(true);
this.loyalty = new MageInt(3);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), ""));
LoyaltyAbility ability1 = new LoyaltyAbility(new JaceTheMindSculptorEffect1(), 2);
ability1.addTarget(new TargetPlayer());

View file

@ -34,9 +34,12 @@ import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
import mage.cards.CardImpl;
import mage.counters.CounterType;
import mage.filter.FilterCard;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.game.Game;
@ -63,7 +66,7 @@ public class NissaRevane extends CardImpl<NissaRevane> {
super(ownerId, 170, "Nissa Revane", Rarity.MYTHIC, new CardType[]{ CardType.PLANESWALKER }, "{2}{G}{G}");
this.expansionSetCode = "ZEN";
this.subtype.add("Nissa");
this.loyalty = new MageInt(2);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(2)), ""));
this.color.setGreen(true);

View file

@ -28,6 +28,7 @@
package mage.sets.zendikar;
import java.util.UUID;
import mage.Constants.CardType;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
@ -94,19 +95,15 @@ class VampireHexmageEffect extends OneShotEffect<VampireHexmageEffect> {
Permanent permanent = game.getPermanent(target.getFirstTarget());
if ( permanent != null ) {
String[ ] counterNames = permanent.getCounters().keySet().toArray(new String[0]);
if (permanent != null) {
String[] counterNames = permanent.getCounters().keySet().toArray(new String[0]);
if ( permanent.getLoyalty() != null ) {
permanent.getLoyalty().setValue(0);
}
for (String counterName : counterNames) {
permanent.getCounters().remove(counterName);
}
for ( String counterName : counterNames ) {
permanent.getCounters().remove(counterName);
}
return true;
}
return true;
}
return false;
}