mirror of
https://github.com/magefree/mage.git
synced 2026-01-24 20:29:19 -08:00
ACTIVATE_ABILITY and ACTIVATED_ABILITY events were used with source and target reversed.
This commit is contained in:
parent
8fbc9da473
commit
b2d9b467ef
6 changed files with 22 additions and 24 deletions
|
|
@ -30,16 +30,16 @@ package mage.sets.guildpact;
|
|||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.Constants.AbilityType;
|
||||
import mage.Constants.CardType;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.Constants.Zone;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.game.stack.StackAbility;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ public class BurningTreeShaman extends CardImpl<BurningTreeShaman> {
|
|||
|
||||
class BurningTreeShamanTriggeredAbility extends TriggeredAbilityImpl<BurningTreeShamanTriggeredAbility> {
|
||||
BurningTreeShamanTriggeredAbility() {
|
||||
super(Constants.Zone.BATTLEFIELD, new DamageTargetEffect(1));
|
||||
super(Zone.BATTLEFIELD, new DamageTargetEffect(1));
|
||||
this.addTarget(new TargetPlayer());
|
||||
}
|
||||
|
||||
|
|
@ -89,8 +89,8 @@ class BurningTreeShamanTriggeredAbility extends TriggeredAbilityImpl<BurningTree
|
|||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.ACTIVATED_ABILITY) {
|
||||
StackAbility stackAbility = (StackAbility) game.getStack().getStackObject(event.getTargetId());
|
||||
if (stackAbility.getAbilityType() == Constants.AbilityType.ACTIVATED) {
|
||||
StackAbility stackAbility = (StackAbility) game.getStack().getStackObject(event.getSourceId());
|
||||
if (stackAbility.getAbilityType() == AbilityType.ACTIVATED) {
|
||||
this.getTargets().get(0).add(event.getPlayerId(), game);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,12 +36,10 @@ import mage.MageObject;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.watchers.Watcher;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -111,12 +109,12 @@ class GrandAbolisherEffect extends ReplacementEffectImpl<GrandAbolisherEffect> {
|
|||
}
|
||||
|
||||
// check source of activated ability
|
||||
Permanent permanent = game.getPermanent(event.getTargetId());
|
||||
Permanent permanent = game.getPermanent(event.getSourceId());
|
||||
if (permanent != null) {
|
||||
return permanent.getCardType().contains(CardType.ARTIFACT) || permanent.getCardType().contains(CardType.CREATURE)
|
||||
|| permanent.getCardType().contains(CardType.ENCHANTMENT);
|
||||
} else {
|
||||
MageObject object = game.getObject(event.getTargetId());
|
||||
MageObject object = game.getObject(event.getSourceId());
|
||||
if (object != null) {
|
||||
return object.getCardType().contains(CardType.ARTIFACT) || object.getCardType().contains(CardType.CREATURE)
|
||||
|| object.getCardType().contains(CardType.ENCHANTMENT);
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ import mage.abilities.keyword.EnchantAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
|
@ -105,17 +106,15 @@ class ArrestEffect extends ReplacementEffectImpl<ArrestEffect> {
|
|||
|
||||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.DECLARE_ATTACKER || event.getType() == GameEvent.EventType.DECLARE_BLOCKER || event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) {
|
||||
Permanent enchantment = game.getPermanent(source.getSourceId());
|
||||
if (enchantment != null && enchantment.getAttachedTo() != null) {
|
||||
if ((event.getType() == GameEvent.EventType.DECLARE_ATTACKER || event.getType() == GameEvent.EventType.DECLARE_BLOCKER) && event.getSourceId().equals(enchantment.getAttachedTo())) {
|
||||
return true;
|
||||
} else if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY && event.getTargetId().equals(enchantment.getAttachedTo())) {
|
||||
if (event.getType() == EventType.DECLARE_ATTACKER || event.getType() == EventType.DECLARE_BLOCKER || event.getType() == EventType.ACTIVATE_ABILITY) {
|
||||
Permanent enchantment = game.getPermanent(source.getSourceId());
|
||||
if (enchantment != null && enchantment.getAttachedTo() != null) {
|
||||
if (event.getSourceId().equals(enchantment.getAttachedTo())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.ReplacementEffectImpl;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.choices.Choice;
|
||||
import mage.choices.ChoiceImpl;
|
||||
|
|
@ -140,7 +139,7 @@ class PhyrexianRevokerEffect2 extends ReplacementEffectImpl<PhyrexianRevokerEffe
|
|||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
if (event.getType() == EventType.ACTIVATE_ABILITY) {
|
||||
MageObject object = game.getObject(event.getTargetId());
|
||||
MageObject object = game.getObject(event.getSourceId());
|
||||
if (object != null && object.getName().equals(game.getState().getValue(source.getSourceId().toString()))) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ class LinvalaKeeperOfSilenceEffect extends ReplacementEffectImpl<LinvalaKeeperOf
|
|||
|
||||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
Permanent p = game.getPermanent(event.getTargetId());
|
||||
Permanent p = game.getPermanent(event.getSourceId());
|
||||
if ( event.getType() == GameEvent.EventType.ACTIVATE_ABILITY && game.getOpponents(source.getControllerId()).contains(event.getPlayerId())
|
||||
&& p != null && p.getCardType().contains(CardType.CREATURE)) {
|
||||
return true;
|
||||
|
|
@ -101,7 +101,7 @@ class LinvalaKeeperOfSilenceEffect extends ReplacementEffectImpl<LinvalaKeeperOf
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
throw new UnsupportedOperationException("Not supported.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue