mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 03:22: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
|
|
@ -97,9 +97,13 @@ class QuagnothTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
||||
StackObject.class.isInstance(game.getObject(event.getSourceId())) &&
|
||||
getSourceId().equals(event.getTargetId());
|
||||
if (getSourceId().equals(event.getTargetId())) {
|
||||
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
|
||||
if (stackObject != null) {
|
||||
return game.getOpponents(this.getControllerId()).contains(stackObject.getControllerId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ public class GuerrillaTactics extends CardImpl {
|
|||
super(ownerId, 196, "Guerrilla Tactics", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{R}");
|
||||
this.expansionSetCode = "9ED";
|
||||
|
||||
|
||||
// Guerrilla Tactics deals 2 damage to target creature or player.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
|
|
@ -91,9 +90,13 @@ class GuerrillaTacticsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
||||
StackObject.class.isInstance(game.getObject(event.getSourceId())) &&
|
||||
getSourceId().equals(event.getTargetId());
|
||||
if (getSourceId().equals(event.getTargetId())) {
|
||||
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
|
||||
if (stackObject != null) {
|
||||
return game.getOpponents(this.getControllerId()).contains(stackObject.getControllerId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -92,11 +92,12 @@ class PureIntentionsAllTriggeredAbility extends DelayedTriggeredAbility {
|
|||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
||||
StackObject.class.isInstance(game.getObject(event.getSourceId()))) {
|
||||
StackObject stackObject = game.getStack().getStackObject(event.getSourceId());
|
||||
if (stackObject != null
|
||||
&& game.getOpponents(this.getControllerId()).contains(stackObject.getControllerId())) {
|
||||
Card card = game.getCard(event.getTargetId());
|
||||
if (card != null && card.getOwnerId().equals(getControllerId())) {
|
||||
for(Effect effect : getEffects()) {
|
||||
for (Effect effect : getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
|
||||
}
|
||||
return true;
|
||||
|
|
@ -116,7 +117,6 @@ class PureIntentionsAllTriggeredAbility extends DelayedTriggeredAbility {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
class PureIntentionsTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
public PureIntentionsTriggeredAbility() {
|
||||
|
|
@ -140,9 +140,17 @@ class PureIntentionsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
return game.getOpponents(this.getControllerId()).contains(game.getControllerId(event.getSourceId())) &&
|
||||
StackObject.class.isInstance(game.getObject(event.getSourceId())) &&
|
||||
event.getTargetId().equals(getSourceId());
|
||||
if (getSourceId().equals(event.getTargetId())) {
|
||||
StackObject stackObject = game.getStack().getStackObject(event.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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue