mirror of
https://github.com/correl/mage.git
synced 2024-11-15 19:19:33 +00:00
Card fixes
This commit is contained in:
parent
7053c84ded
commit
a63cebc455
4 changed files with 24 additions and 70 deletions
|
@ -36,7 +36,6 @@ import mage.abilities.TriggeredAbilityImpl;
|
||||||
import mage.abilities.effects.common.ExileTargetEffect;
|
import mage.abilities.effects.common.ExileTargetEffect;
|
||||||
import mage.abilities.keyword.FirstStrikeAbility;
|
import mage.abilities.keyword.FirstStrikeAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.filter.Filter;
|
|
||||||
import mage.filter.Filter.ComparisonScope;
|
import mage.filter.Filter.ComparisonScope;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
@ -79,12 +78,6 @@ class LightwielderPaladinTriggeredAbility extends TriggeredAbilityImpl<Lightwiel
|
||||||
|
|
||||||
public LightwielderPaladinTriggeredAbility() {
|
public LightwielderPaladinTriggeredAbility() {
|
||||||
super(Zone.BATTLEFIELD, new ExileTargetEffect(), true);
|
super(Zone.BATTLEFIELD, new ExileTargetEffect(), true);
|
||||||
FilterPermanent filter = new FilterPermanent("black or red permanent");
|
|
||||||
filter.getColor().setBlack(true);
|
|
||||||
filter.getColor().setRed(true);
|
|
||||||
filter.setUseColor(true);
|
|
||||||
filter.setScopeColor(ComparisonScope.Any);
|
|
||||||
this.addTarget(new TargetPermanent(filter));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public LightwielderPaladinTriggeredAbility(final LightwielderPaladinTriggeredAbility ability) {
|
public LightwielderPaladinTriggeredAbility(final LightwielderPaladinTriggeredAbility ability) {
|
||||||
|
@ -100,12 +93,14 @@ class LightwielderPaladinTriggeredAbility extends TriggeredAbilityImpl<Lightwiel
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
if (event.getType() == EventType.DAMAGED_PLAYER && event.getSourceId().equals(this.sourceId)
|
if (event.getType() == EventType.DAMAGED_PLAYER && event.getSourceId().equals(this.sourceId)
|
||||||
&& ((DamagedPlayerEvent) event).isCombatDamage()) {
|
&& ((DamagedPlayerEvent) event).isCombatDamage()) {
|
||||||
Filter filter = this.getTargets().get(0).getFilter();
|
FilterPermanent filter = new FilterPermanent("black or red permanent");
|
||||||
if (filter instanceof FilterPermanent) {
|
filter.getColor().setBlack(true);
|
||||||
FilterPermanent filterPermanent = ((FilterPermanent) filter);
|
filter.getColor().setRed(true);
|
||||||
filterPermanent.getControllerId().add(event.getTargetId());
|
filter.setUseColor(true);
|
||||||
filterPermanent.setNotController(false);
|
filter.setScopeColor(ComparisonScope.Any);
|
||||||
}
|
filter.getControllerId().add(event.getTargetId());
|
||||||
|
filter.setNotController(false);
|
||||||
|
this.addTarget(new TargetPermanent(filter));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -97,15 +97,10 @@ class GruesomeEncoreEffect extends OneShotEffect<GruesomeEncoreEffect> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player player = game.getPlayer(source.getControllerId());
|
|
||||||
Card card = game.getCard(source.getFirstTarget());
|
Card card = game.getCard(source.getFirstTarget());
|
||||||
|
if (card != null) {
|
||||||
if (player != null & card != null) {
|
|
||||||
Player opponent = game.getPlayer(card.getOwnerId());
|
Player opponent = game.getPlayer(card.getOwnerId());
|
||||||
if (opponent != null) {
|
if (opponent != null && opponent.removeFromGraveyard(card, game)) {
|
||||||
opponent.removeFromGraveyard(card, game);
|
|
||||||
}
|
|
||||||
|
|
||||||
card.addAbility(HasteAbility.getInstance());
|
card.addAbility(HasteAbility.getInstance());
|
||||||
card.putOntoBattlefield(game, Zone.GRAVEYARD, source.getId(), source.getControllerId());
|
card.putOntoBattlefield(game, Zone.GRAVEYARD, source.getId(), source.getControllerId());
|
||||||
|
|
||||||
|
@ -118,6 +113,7 @@ class GruesomeEncoreEffect extends OneShotEffect<GruesomeEncoreEffect> {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ class PawnOfUlamogTriggeredAbility extends TriggeredAbilityImpl<PawnOfUlamogTrig
|
||||||
if (event.getType() == EventType.ZONE_CHANGE) {
|
if (event.getType() == EventType.ZONE_CHANGE) {
|
||||||
UUID targetId = event.getTargetId();
|
UUID targetId = event.getTargetId();
|
||||||
Card card = game.getLastKnownInformation(targetId, Zone.BATTLEFIELD);
|
Card card = game.getLastKnownInformation(targetId, Zone.BATTLEFIELD);
|
||||||
if (card != null && card instanceof Permanent) {
|
if (card != null && card instanceof Permanent && !(card instanceof PermanentToken)) {
|
||||||
Permanent permanent = (Permanent) card;
|
Permanent permanent = (Permanent) card;
|
||||||
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
|
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
|
||||||
if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD
|
if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD
|
||||||
|
|
|
@ -50,7 +50,7 @@ import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.TargetCard;
|
import mage.target.common.TargetCardInOpponentsGraveyard;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -77,7 +77,7 @@ public class GethLordOfTheVault extends CardImpl<GethLordOfTheVault> {
|
||||||
|
|
||||||
this.addAbility(IntimidateAbility.getInstance());
|
this.addAbility(IntimidateAbility.getInstance());
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GethLordOfTheVaultEffect(), new ManaCostsImpl("{X}{B}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GethLordOfTheVaultEffect(), new ManaCostsImpl("{X}{B}"));
|
||||||
ability.addTarget(new GethLordOfTheVaultEffectTarget(filter));
|
ability.addTarget(new TargetCardInOpponentsGraveyard(filter));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,40 +156,3 @@ class GethLordOfTheVaultEffect extends OneShotEffect<GethLordOfTheVaultEffect> {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class GethLordOfTheVaultEffectTarget extends TargetCard<GethLordOfTheVaultEffectTarget> {
|
|
||||||
|
|
||||||
public GethLordOfTheVaultEffectTarget(FilterCard filter) {
|
|
||||||
this(1, 1, filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GethLordOfTheVaultEffectTarget(int minNumTargets, int maxNumTargets, FilterCard filter) {
|
|
||||||
super(minNumTargets, maxNumTargets, Zone.GRAVEYARD, filter);
|
|
||||||
this.targetName = filter.getMessage() + " from an opponent's graveyard";
|
|
||||||
}
|
|
||||||
|
|
||||||
public GethLordOfTheVaultEffectTarget(final GethLordOfTheVaultEffectTarget target) {
|
|
||||||
super(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canTarget(UUID id, Ability source, Game game) {
|
|
||||||
Card card = game.getCard(id);
|
|
||||||
if (card != null && game.getZone(card.getId()) == Zone.GRAVEYARD) {
|
|
||||||
if (game.getOpponents(source.getControllerId()).contains(card.getOwnerId())) {
|
|
||||||
return filter.match(card);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canChoose(UUID sourceControllerId, Game game) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GethLordOfTheVaultEffectTarget copy() {
|
|
||||||
return new GethLordOfTheVaultEffectTarget(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue