1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-04-02 03:18:09 -09:00

* Teferi, Temporal Archmage - Fixed that Loyality abilities could be used at instant timing.

This commit is contained in:
LevelX2 2014-12-06 18:28:15 +01:00
parent f6a05208f2
commit 5dc314c68a
3 changed files with 13 additions and 8 deletions
Mage.Sets/src/mage/sets/commander2014
Mage/src/mage/abilities

View file

@ -107,7 +107,7 @@ class TeferiTemporalArchmageEmblem extends Emblem {
class TeferiTemporalArchmageAsThoughEffect extends AsThoughEffectImpl {
public TeferiTemporalArchmageAsThoughEffect() {
super(AsThoughEffectType.CAST_AS_INSTANT, Duration.EndOfGame, Outcome.Benefit);
super(AsThoughEffectType.ACTIVATE_AS_INSTANT, Duration.EndOfGame, Outcome.Benefit);
staticText = "You may activate loyalty abilities of planeswalkers you control on any player's turn any time you could cast an instant";
}
@ -126,14 +126,17 @@ class TeferiTemporalArchmageAsThoughEffect extends AsThoughEffectImpl {
return new TeferiTemporalArchmageAsThoughEffect(this);
}
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
Permanent permanent= game.getPermanent(objectId);
if (permanent != null && permanent.getCardType().contains(CardType.PLANESWALKER) && permanent.getControllerId().equals(source.getControllerId())) {
public boolean applies(UUID objectId, Ability affectedAbility, Ability source, Game game) {
if (affectedAbility.getControllerId().equals(source.getControllerId()) && affectedAbility instanceof LoyaltyAbility) {
return true;
}
return false;
}
@Override
public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) {
return false; // Not used
}
}

View file

@ -40,6 +40,7 @@ import mage.abilities.costs.mana.PhyrexianManaCost;
import mage.abilities.effects.Effect;
import mage.abilities.effects.Effects;
import mage.cards.Card;
import mage.constants.AsThoughEffectType;
import mage.constants.TargetController;
import mage.game.Game;
@ -182,7 +183,8 @@ public abstract class ActivatedAbilityImpl extends AbilityImpl implements Activa
break;
}
//20091005 - 602.5d/602.5e
if (timing == TimingRule.INSTANT || game.canPlaySorcery(playerId)) {
if (timing == TimingRule.INSTANT || game.canPlaySorcery(playerId) ||
game.getContinuousEffects().asThough(sourceId, AsThoughEffectType.ACTIVATE_AS_INSTANT, this, controllerId, game)) {
if (costs.canPay(this, sourceId, controllerId, game) && canChooseTarget(game)) {
this.activatorId = playerId;
return true;

View file

@ -56,8 +56,8 @@ public abstract class AsThoughEffectImpl extends ContinuousEffectImpl implements
}
@Override
public boolean applies(UUID sourceId, Ability affectedAbility, Ability source, Game game) {
return applies(sourceId, source, affectedAbility.getControllerId(), game);
public boolean applies(UUID objectId, Ability affectedAbility, Ability source, Game game) {
return applies(objectId, source, affectedAbility.getControllerId(), game);
}
@Override