mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
* Narset, Enlightened Master - Fixed that it was also wrongly allowed to play exiled lands.
This commit is contained in:
parent
e6c4be6b5b
commit
be0346c71d
23 changed files with 27 additions and 27 deletions
|
@ -77,7 +77,7 @@ public class MisthollowGriffin extends CardImpl {
|
|||
class MisthollowGriffinPlayEffect extends AsThoughEffectImpl {
|
||||
|
||||
public MisthollowGriffinPlayEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
staticText = "You may cast {this} from exile";
|
||||
}
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ class StolenGoodsEffect extends OneShotEffect {
|
|||
class StolenGoodsCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
public StolenGoodsCastFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "You may cast card from exile";
|
||||
}
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ class OrnateKanzashiEffect extends OneShotEffect {
|
|||
class OrnateKanzashiCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
public OrnateKanzashiCastFromExileEffect(UUID cardId) {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "You may play that card from exile this turn";
|
||||
}
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ class KaradorGhostChieftainContinuousEffect extends ContinuousEffectImpl {
|
|||
class KaradorGhostChieftainCastFromGraveyardEffect extends AsThoughEffectImpl {
|
||||
|
||||
KaradorGhostChieftainCastFromGraveyardEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "You may cast one creature card from your graveyard";
|
||||
}
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ class FiendOfTheShadowsEffect extends AsThoughEffectImpl {
|
|||
private final UUID exileId;
|
||||
|
||||
public FiendOfTheShadowsEffect(UUID exileId) {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
this.exileId = exileId;
|
||||
staticText = "You may play that card for as long as it remains exiled";
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ class GravecrawlerPlayEffect extends AsThoughEffectImpl {
|
|||
}
|
||||
|
||||
public GravecrawlerPlayEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
staticText = "You may cast {this} from your graveyard as long as you control a Zombie";
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ public class HavengulLich extends CardImpl {
|
|||
class HavengulLichPlayEffect extends AsThoughEffectImpl {
|
||||
|
||||
public HavengulLichPlayEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "You may cast target creature card in a graveyard this turn";
|
||||
}
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ class NightveilSpecterExileEffect extends OneShotEffect {
|
|||
class NightveilSpecterEffect extends AsThoughEffectImpl {
|
||||
|
||||
public NightveilSpecterEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
staticText = "You may play cards exiled with {this}";
|
||||
}
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ class PropheticFlamespeakerExileEffect extends OneShotEffect {
|
|||
class PropheticFlamespeakerCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
public PropheticFlamespeakerCastFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "You may play the card from exile";
|
||||
}
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ class KheruSpellsnatcherEffect extends OneShotEffect {
|
|||
class KheruSpellsnatcherCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
KheruSpellsnatcherCastFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.Custom, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.Custom, Outcome.Benefit);
|
||||
staticText = "You may cast that card without paying its mana cost as long as it remains exiled";
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ class NarsetEnlightenedMasterExileEffect extends OneShotEffect {
|
|||
Card card = player.getLibrary().getFromTop(game);
|
||||
if (card != null) {
|
||||
player.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), sourceObject.getLogName(), source.getSourceId(), game, Zone.LIBRARY);
|
||||
if (!card.getCardType().contains(CardType.CREATURE)) {
|
||||
if (!card.getCardType().contains(CardType.CREATURE) && !card.getCardType().contains(CardType.LAND)) {
|
||||
ContinuousEffect effect = new NarsetEnlightenedMasterCastFromExileEffect();
|
||||
effect.setTargetPointer(new FixedTarget(card.getId()));
|
||||
game.addEffect(effect, source);
|
||||
|
@ -131,7 +131,7 @@ class NarsetEnlightenedMasterExileEffect extends OneShotEffect {
|
|||
class NarsetEnlightenedMasterCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
public NarsetEnlightenedMasterCastFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "Until end of turn, you may cast noncreature cards exiled with {this} this turn without paying their mana costs";
|
||||
}
|
||||
|
||||
|
|
|
@ -229,7 +229,7 @@ class ChandraPyromasterEffect2 extends OneShotEffect {
|
|||
class ChandraPyromasterCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
public ChandraPyromasterCastFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "You may play the card from exile this turn";
|
||||
}
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@ class ActOnImpulseMayPlayExiledEffect extends AsThoughEffectImpl {
|
|||
public List<UUID> cards = new ArrayList<>();
|
||||
|
||||
public ActOnImpulseMayPlayExiledEffect(List<UUID> cards) {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
this.cards.addAll(cards);
|
||||
}
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ class PraetorsGraspPlayEffect extends AsThoughEffectImpl {
|
|||
private UUID cardId;
|
||||
|
||||
public PraetorsGraspPlayEffect(UUID cardId) {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
this.cardId = cardId;
|
||||
staticText = "You may look at and play that card for as long as it remains exiled";
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ class KnacksawCliqueCastFromExileEffect extends AsThoughEffectImpl {
|
|||
private final UUID exileId;
|
||||
|
||||
public KnacksawCliqueCastFromExileEffect(UUID cardId, UUID exileId) {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "Until end of turn, you may play that card";
|
||||
this.cardId = cardId;
|
||||
this.exileId = exileId;
|
||||
|
|
|
@ -150,7 +150,7 @@ class DaxosOfMeletisCastFromExileEffect extends AsThoughEffectImpl {
|
|||
private UUID exileId;
|
||||
|
||||
public DaxosOfMeletisCastFromExileEffect(UUID cardId, UUID exileId) {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "Until end of turn, you may cast that card and you may spend mana as though it were mana of any color to cast it";
|
||||
this.cardId = cardId;
|
||||
this.exileId = exileId;
|
||||
|
|
|
@ -157,7 +157,7 @@ class PsychicIntrusionExileEffect extends OneShotEffect {
|
|||
class PsychicIntrusionCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
public PsychicIntrusionCastFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.Custom, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.Custom, Outcome.Benefit);
|
||||
staticText = "You may cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell";
|
||||
}
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ class GrinningTotemSearchAndExileEffect extends OneShotEffect {
|
|||
class GrinningTotemMayPlayEffect extends AsThoughEffectImpl {
|
||||
|
||||
public GrinningTotemMayPlayEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.Custom, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.Custom, Outcome.Benefit);
|
||||
this.staticText = "Until the beginning of your next upkeep, you may play that card.";
|
||||
}
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ class MindsDesireEffect extends OneShotEffect {
|
|||
class MindsDesireCastFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
MindsDesireCastFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "you may play that card without paying its mana cost";
|
||||
}
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ class ThadaAdelAcquisitorEffect extends OneShotEffect {
|
|||
class ThadaAdelPlayFromExileEffect extends AsThoughEffectImpl {
|
||||
|
||||
public ThadaAdelPlayFromExileEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.EndOfTurn, Outcome.Benefit);
|
||||
staticText = "You may play this card from exile";
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public class PlayTheTopCardEffect extends AsThoughEffectImpl {
|
|||
}
|
||||
|
||||
public PlayTheTopCardEffect(FilterCard filter) {
|
||||
super(AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, Duration.WhileOnBattlefield, Outcome.Benefit);
|
||||
super(AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, Duration.WhileOnBattlefield, Outcome.Benefit);
|
||||
this.filter = filter;
|
||||
staticText = "You may play the top card of your library if it's a " + filter.getMessage();
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ public enum AsThoughEffectType {
|
|||
BLOCK_TAPPED,
|
||||
BLOCK_SHADOW,
|
||||
BE_BLOCKED,
|
||||
CAST_FROM_NON_HAND_ZONE,
|
||||
PLAY_FROM_NON_HAND_ZONE,
|
||||
CAST_AS_INSTANT,
|
||||
DAMAGE,
|
||||
HEXPROOF,
|
||||
|
|
|
@ -1133,7 +1133,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (zone != Zone.BATTLEFIELD && game.getContinuousEffects().asThough(object.getId(), AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, this.getId(), game)) {
|
||||
if (zone != Zone.BATTLEFIELD && game.getContinuousEffects().asThough(object.getId(), AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, this.getId(), game)) {
|
||||
for (Ability ability: object.getAbilities()) {
|
||||
ability.setControllerId(this.getId());
|
||||
if (ability instanceof ActivatedAbility && ability.getZone().match(Zone.HAND)
|
||||
|
@ -2171,7 +2171,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
}
|
||||
}
|
||||
for (Card card : graveyard.getUniqueCards(game)) {
|
||||
boolean asThoughtCast = game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, this.getId(), game);
|
||||
boolean asThoughtCast = game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, this.getId(), game);
|
||||
for (ActivatedAbility ability : card.getAbilities().getActivatedAbilities(Zone.ALL)) {
|
||||
boolean possible = false;
|
||||
if (ability.getZone().match(Zone.GRAVEYARD)) {
|
||||
|
@ -2193,7 +2193,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
}
|
||||
for (ExileZone exile : game.getExile().getExileZones()) {
|
||||
for (Card card : exile.getCards(game)) {
|
||||
if (game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, this.getId(), game)) {
|
||||
if (game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, this.getId(), game)) {
|
||||
for (Ability ability : card.getAbilities()) {
|
||||
if (ability.getZone().match(Zone.HAND)) {
|
||||
ability.setControllerId(this.getId()); // controller must be set for case owner != caster
|
||||
|
@ -2209,7 +2209,7 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
}
|
||||
for (Cards cards : game.getState().getRevealed().values()) {
|
||||
for (Card card : cards.getCards(game)) {
|
||||
if (game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.CAST_FROM_NON_HAND_ZONE, this.getId(), game)) {
|
||||
if (game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.PLAY_FROM_NON_HAND_ZONE, this.getId(), game)) {
|
||||
for (ActivatedAbility ability : card.getAbilities().getActivatedAbilities(Zone.HAND)) {
|
||||
if (ability instanceof SpellAbility || ability instanceof PlayLandAbility) {
|
||||
playable.add(ability);
|
||||
|
|
Loading…
Reference in a new issue