* Stack - Fixed that name of face down cards were unintended shown while moving effect is on the stack (Necropotence).

This commit is contained in:
LevelX2 2015-07-14 23:56:44 +02:00
parent f6ef8e7e85
commit 60c7a2b34b
3 changed files with 60 additions and 64 deletions

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.view;
import java.util.ArrayList;
@ -34,6 +33,7 @@ import java.util.UUID;
import mage.MageObject;
import mage.abilities.Modes;
import mage.abilities.effects.Effect;
import mage.cards.Card;
import mage.constants.AbilityType;
import mage.constants.CardType;
import mage.constants.MageObjectType;
@ -47,10 +47,10 @@ import mage.target.targetpointer.TargetPointer;
* @author BetaSteward_at_googlemail.com
*/
public class StackAbilityView extends CardView {
private static final long serialVersionUID = 1L;
private final CardView sourceCard;
private final AbilityType abilityType;
public StackAbilityView(Game game, StackAbility ability, String sourceName, CardView sourceCard) {
this.id = ability.getId();
@ -115,6 +115,9 @@ public class StackAbilityView extends CardView {
for (UUID uuid : targetList) {
MageObject mageObject = game.getObject(uuid);
if (mageObject != null) {
if ((mageObject instanceof Card) && ((Card) mageObject).isFaceDown(game)) {
continue;
}
names.add(mageObject.getName());
}
}

View file

@ -25,15 +25,9 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.sets.dragonsmaze;
import java.util.UUID;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.abilities.Ability;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
@ -42,7 +36,11 @@ import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.HasteAbility;
import mage.cards.Card;
import mage.cards.SplitCard;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.filter.common.FilterCreatureCard;
import mage.game.Game;
import mage.players.Player;
@ -51,12 +49,6 @@ import mage.target.TargetPlayer;
import mage.target.common.TargetCardInGraveyard;
import mage.target.targetpointer.FixedTarget;
/**
*
* @author LevelX2
*/
public class BreakingEntering extends SplitCard {
public BreakingEntering(UUID ownerId) {
@ -106,19 +98,19 @@ class EnteringReturnFromGraveyardToBattlefieldEffect extends OneShotEffect {
if (player != null) {
Target target = new TargetCardInGraveyard(new FilterCreatureCard());
target.setNotTarget(true);
if (target.canChoose(source.getSourceId(), source.getControllerId(), game) &&
player.chooseTarget(outcome, target, source, game)) {
if (target.canChoose(source.getSourceId(), source.getControllerId(), game)
&& player.chooseTarget(outcome, target, source, game)) {
Card card = game.getCard(target.getFirstTarget());
if (card != null) {
if (card.putOntoBattlefield(game, Zone.GRAVEYARD, source.getSourceId(), source.getControllerId())) {
ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn);
effect.setTargetPointer(new FixedTarget(card.getId()));
game.addEffect(effect, source);
}
}
}
return true;
}
}
}
}
return false;
}
}

View file

@ -85,6 +85,7 @@ public class Necropotence extends CardImpl {
}
class NecropotenceTriggeredAbility extends TriggeredAbilityImpl {
NecropotenceTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect, false);
}
@ -144,7 +145,7 @@ class NecropotenceEffect extends OneShotEffect {
card.setFaceDown(true, game);
Effect returnToHandeffect = new ReturnToHandTargetEffect(false);
returnToHandeffect.setText("put that face down card into your hand");
returnToHandeffect.setTargetPointer(new FixedTarget(card.getId()));
returnToHandeffect.setTargetPointer(new FixedTarget(card.getId(), card.getZoneChangeCounter(game)));
DelayedTriggeredAbility delayedAbility = new AtTheBeginOfNextEndStepDelayedTriggeredAbility(returnToHandeffect, TargetController.YOU);
delayedAbility.setSourceId(source.getSourceId());
delayedAbility.setControllerId(source.getControllerId());