[SOI] Added 7 blue cards.

This commit is contained in:
LevelX2 2016-03-27 00:20:12 +01:00
parent d4408931a9
commit 0b695d5704
10 changed files with 757 additions and 4 deletions

View file

@ -27,13 +27,17 @@
*/
package mage.abilities.effects.common;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.Card;
import mage.cards.CardsImpl;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.game.ExileZone;
import mage.game.Game;
import mage.players.Player;
import mage.util.CardUtil;
/**
*
@ -42,20 +46,27 @@ import mage.players.Player;
public class ReturnToBattlefieldUnderOwnerControlTargetEffect extends OneShotEffect {
private boolean tapped;
protected boolean fromExileZone;
public ReturnToBattlefieldUnderOwnerControlTargetEffect() {
this(false);
}
public ReturnToBattlefieldUnderOwnerControlTargetEffect(boolean tapped) {
this(tapped, false);
}
public ReturnToBattlefieldUnderOwnerControlTargetEffect(boolean tapped, boolean fromExileZone) {
super(Outcome.Benefit);
staticText = "return that card to the battlefield under its owner's control";
this.tapped = tapped;
this.fromExileZone = fromExileZone;
}
public ReturnToBattlefieldUnderOwnerControlTargetEffect(final ReturnToBattlefieldUnderOwnerControlTargetEffect effect) {
super(effect);
this.tapped = effect.tapped;
this.fromExileZone = effect.fromExileZone;
}
@Override
@ -67,9 +78,23 @@ public class ReturnToBattlefieldUnderOwnerControlTargetEffect extends OneShotEff
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
controller.moveCards(new CardsImpl(getTargetPointer().getTargets(game, source)).getCards(game),
Zone.BATTLEFIELD, source, game, tapped, false, true, null);
return true;
Card card = null;
if (fromExileZone) {
UUID exilZoneId = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter());
if (exilZoneId != null) {
ExileZone exileZone = game.getExile().getExileZone(exilZoneId);
if (exileZone != null && getTargetPointer().getFirst(game, source) != null) {
card = exileZone.get(getTargetPointer().getFirst(game, source), game);
}
}
} else {
card = game.getCard(getTargetPointer().getFirst(game, source));
}
if (card != null) {
controller.moveCards(new CardsImpl(card).getCards(game),
Zone.BATTLEFIELD, source, game, tapped, false, true, null);
return true;
}
}
return false;
}

View file

@ -5,7 +5,10 @@
*/
package mage.abilities.effects.keyword;
import mage.abilities.Ability;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.token.ClueArtifactToken;
/**
@ -23,8 +26,17 @@ public class InvestigateEffect extends CreateTokenEffect {
super(effect);
}
@Override
public boolean apply(Game game, Ability source) {
if (super.apply(game, source)) {
game.fireEvent(GameEvent.getEvent(GameEvent.EventType.INVESTIGATED, source.getSourceId(), source.getSourceId(), source.getControllerId()));
return true;
}
return false;
}
@Override
public InvestigateEffect copy() {
return new InvestigateEffect(this);
}
}
}

View file

@ -91,6 +91,7 @@ public class GameEvent implements Serializable {
DRAW_CARD, DREW_CARD,
MIRACLE_CARD_REVEALED,
MADNESS_CARD_EXILED,
INVESTIGATED,
DISCARD_CARD,
DISCARDED_CARD,
CYCLE_CARD, CYCLED_CARD,