Hexproof keyword

This commit is contained in:
Loki 2011-07-12 23:35:23 +03:00
parent 487a5fa76a
commit bd371238b1
4 changed files with 44 additions and 22 deletions

View file

@ -37,6 +37,7 @@ import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.CantTargetSourceEffect;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.filter.FilterStackObject;
@ -45,13 +46,6 @@ import mage.filter.FilterStackObject;
* @author BetaSteward_at_googlemail.com
*/
public class SacredWolf extends CardImpl<SacredWolf> {
private static final FilterStackObject filter = new FilterStackObject("spells or abilities your opponents control");
static {
filter.setTargetController(TargetController.OPPONENT);
}
public SacredWolf(UUID ownerId) {
super(ownerId, 196, "Sacred Wolf", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.expansionSetCode = "M11";
@ -59,7 +53,7 @@ public class SacredWolf extends CardImpl<SacredWolf> {
this.color.setGreen(true);
this.power = new MageInt(3);
this.toughness = new MageInt(1);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantTargetSourceEffect(filter, Duration.WhileOnBattlefield)));
this.addAbility(new HexproofAbility());
}
public SacredWolf(final SacredWolf card) {

View file

@ -39,6 +39,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CantTargetSourceEffect;
import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.filter.FilterStackObject;
@ -47,12 +48,6 @@ import mage.filter.FilterStackObject;
* @author Loki
*/
public class TrollAscetic extends CardImpl<TrollAscetic> {
private static FilterStackObject filter = new FilterStackObject("spells or abilities your opponents control");
static {
filter.setTargetController(Constants.TargetController.OPPONENT);
}
public TrollAscetic (UUID ownerId) {
super(ownerId, 135, "Troll Ascetic", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{G}{G}");
this.expansionSetCode = "MRD";
@ -61,7 +56,7 @@ public class TrollAscetic extends CardImpl<TrollAscetic> {
this.color.setGreen(true);
this.power = new MageInt(3);
this.toughness = new MageInt(2);
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new CantTargetSourceEffect(filter, Constants.Duration.WhileOnBattlefield)));
this.addAbility(new HexproofAbility());
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}")));
}

View file

@ -40,6 +40,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CantCounterSourceEffect;
import mage.abilities.effects.common.CantTargetSourceEffect;
import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.filter.FilterStackObject;
@ -48,12 +49,6 @@ import mage.filter.FilterStackObject;
* @author Loki
*/
public class ThruntheLastTroll extends CardImpl<ThruntheLastTroll> {
private static FilterStackObject filter = new FilterStackObject("spells or abilities your opponents control");
static {
filter.setTargetController(Constants.TargetController.OPPONENT);
}
public ThruntheLastTroll (UUID ownerId) {
super(ownerId, 92, "Thrun, the Last Troll", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
this.expansionSetCode = "MBS";
@ -64,7 +59,7 @@ public class ThruntheLastTroll extends CardImpl<ThruntheLastTroll> {
this.power = new MageInt(4);
this.toughness = new MageInt(4);
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new CantCounterSourceEffect()));
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new CantTargetSourceEffect(filter, Constants.Duration.WhileOnBattlefield)));
this.addAbility(new HexproofAbility());
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}")));
}

View file

@ -0,0 +1,38 @@
package mage.abilities.keyword;
import mage.Constants;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.CantTargetSourceEffect;
import mage.filter.FilterStackObject;
/**
* Hexproof
* (This creature can't be the target of spells or abilities your opponents control.)
*
* @author loki
*/
public class HexproofAbility extends SimpleStaticAbility {
private static FilterStackObject filter = new FilterStackObject("spells or abilities your opponents control");
static {
filter.setTargetController(Constants.TargetController.OPPONENT);
}
public HexproofAbility() {
super(Constants.Zone.BATTLEFIELD, new CantTargetSourceEffect(filter, Constants.Duration.WhileOnBattlefield));
}
public HexproofAbility(final HexproofAbility ability) {
super(ability);
}
@Override
public SimpleStaticAbility copy() {
return new HexproofAbility(this);
}
@Override
public String getRule() {
return "Hexproof";
}
}