mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08:00
* Fixed some cards with "When a spell or ability an opponent controls causes you to discard" trigger (e.g. Guerilla Tactics).
This commit is contained in:
parent
ac35b41e26
commit
af61e8b43b
3 changed files with 32 additions and 17 deletions
|
|
@ -57,10 +57,10 @@ public class Quagnoth extends CardImpl {
|
||||||
|
|
||||||
// Split second
|
// Split second
|
||||||
this.addAbility(new SplitSecondAbility());
|
this.addAbility(new SplitSecondAbility());
|
||||||
|
|
||||||
// Shroud
|
// Shroud
|
||||||
this.addAbility(ShroudAbility.getInstance());
|
this.addAbility(ShroudAbility.getInstance());
|
||||||
|
|
||||||
// When a spell or ability an opponent controls causes you to discard Quagnoth, return it to your hand.
|
// When a spell or ability an opponent controls causes you to discard Quagnoth, return it to your hand.
|
||||||
this.addAbility(new QuagnothTriggeredAbility());
|
this.addAbility(new QuagnothTriggeredAbility());
|
||||||
}
|
}
|
||||||
|
|
@ -97,13 +97,17 @@ class QuagnothTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
return game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
if (getSourceId().equals(event.getTargetId())) {
|
||||||
StackObject.class.isInstance(game.getObject(event.getSourceId())) &&
|
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
|
||||||
getSourceId().equals(event.getTargetId());
|
if (stackObject != null) {
|
||||||
|
return game.getOpponents(this.getControllerId()).contains(stackObject.getControllerId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "When a spell or ability an opponent controls causes you to discard {this}, " + super.getRule();
|
return "When a spell or ability an opponent controls causes you to discard {this}, " + super.getRule();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,6 @@ public class GuerrillaTactics extends CardImpl {
|
||||||
super(ownerId, 196, "Guerrilla Tactics", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{R}");
|
super(ownerId, 196, "Guerrilla Tactics", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{R}");
|
||||||
this.expansionSetCode = "9ED";
|
this.expansionSetCode = "9ED";
|
||||||
|
|
||||||
|
|
||||||
// Guerrilla Tactics deals 2 damage to target creature or player.
|
// Guerrilla Tactics deals 2 damage to target creature or player.
|
||||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||||
|
|
@ -91,9 +90,13 @@ class GuerrillaTacticsTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
return game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
if (getSourceId().equals(event.getTargetId())) {
|
||||||
StackObject.class.isInstance(game.getObject(event.getSourceId())) &&
|
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
|
||||||
getSourceId().equals(event.getTargetId());
|
if (stackObject != null) {
|
||||||
|
return game.getOpponents(this.getControllerId()).contains(stackObject.getControllerId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -92,11 +92,12 @@ class PureIntentionsAllTriggeredAbility extends DelayedTriggeredAbility {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
if (game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
|
||||||
StackObject.class.isInstance(game.getObject(event.getSourceId()))) {
|
if (stackObject != null
|
||||||
|
&& game.getOpponents(this.getControllerId()).contains(stackObject.getControllerId())) {
|
||||||
Card card = game.getCard(event.getTargetId());
|
Card card = game.getCard(event.getTargetId());
|
||||||
if (card != null && card.getOwnerId().equals(getControllerId())) {
|
if (card != null && card.getOwnerId().equals(getControllerId())) {
|
||||||
for(Effect effect : getEffects()) {
|
for (Effect effect : getEffects()) {
|
||||||
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
|
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -116,7 +117,6 @@ class PureIntentionsAllTriggeredAbility extends DelayedTriggeredAbility {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class PureIntentionsTriggeredAbility extends TriggeredAbilityImpl {
|
class PureIntentionsTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
public PureIntentionsTriggeredAbility() {
|
public PureIntentionsTriggeredAbility() {
|
||||||
|
|
@ -140,9 +140,17 @@ class PureIntentionsTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
return game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
if (getSourceId().equals(event.getTargetId())) {
|
||||||
StackObject.class.isInstance(game.getObject(event.getSourceId())) &&
|
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
|
||||||
event.getTargetId().equals(getSourceId());
|
if (stackObject != null
|
||||||
|
&& game.getOpponents(this.getControllerId()).contains(stackObject.getControllerId())) {
|
||||||
|
for (Effect effect : getEffects()) {
|
||||||
|
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue