mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
Implemented See the Truth
This commit is contained in:
parent
bc69b8b5a9
commit
0d9d4b6705
2 changed files with 84 additions and 0 deletions
83
Mage.Sets/src/mage/cards/s/SeeTheTruth.java
Normal file
83
Mage.Sets/src/mage/cards/s/SeeTheTruth.java
Normal file
|
@ -0,0 +1,83 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CastFromHandSourceCondition;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.cards.Cards;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
import mage.watchers.common.CastFromHandWatcher;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SeeTheTruth extends CardImpl {
|
||||
|
||||
public SeeTheTruth(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}");
|
||||
|
||||
// Look at the top three cards of your library. Put one of those cards into your hand and the rest on the bottom of your library in any order. If this spell was cast from anywhere other than your hand, put each of those cards into your hand instead.
|
||||
this.getSpellAbility().addEffect(new SeeTheTruthEffect());
|
||||
this.getSpellAbility().addWatcher(new CastFromHandWatcher());
|
||||
}
|
||||
|
||||
private SeeTheTruth(final SeeTheTruth card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SeeTheTruth copy() {
|
||||
return new SeeTheTruth(this);
|
||||
}
|
||||
}
|
||||
|
||||
class SeeTheTruthEffect extends OneShotEffect {
|
||||
|
||||
SeeTheTruthEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "Look at the top three cards of your library. " +
|
||||
"Put one of those cards into your hand and the rest on the bottom of your library in any order. " +
|
||||
"If this spell was cast from anywhere other than your hand, " +
|
||||
"put each of those cards into your hand instead.";
|
||||
}
|
||||
|
||||
private SeeTheTruthEffect(final SeeTheTruthEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SeeTheTruthEffect copy() {
|
||||
return new SeeTheTruthEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
if (player == null) {
|
||||
return false;
|
||||
}
|
||||
Cards cards = new CardsImpl(player.getLibrary().getTopCards(game, 3));
|
||||
if (cards.size() < 1) {
|
||||
return false;
|
||||
}
|
||||
if (CastFromHandSourceCondition.instance.apply(game, source)) {
|
||||
TargetCardInLibrary target = new TargetCardInLibrary();
|
||||
player.choose(outcome, cards, target, game);
|
||||
cards.removeIf(target.getFirstTarget()::equals);
|
||||
player.moveCards(game.getCard(target.getFirstTarget()), Zone.HAND, source, game);
|
||||
player.putCardsOnBottomOfLibrary(cards, game, source, true);
|
||||
} else {
|
||||
player.moveCards(cards, Zone.HAND, source, game);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -97,6 +97,7 @@ public final class CoreSet2021 extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Rin and Seri, Inseparable", 278, Rarity.MYTHIC, mage.cards.r.RinAndSeriInseparable.class));
|
||||
cards.add(new SetCardInfo("Runed Halo", 32, Rarity.RARE, mage.cards.r.RunedHalo.class));
|
||||
cards.add(new SetCardInfo("Seasoned Hallowblade", 34, Rarity.UNCOMMON, mage.cards.s.SeasonedHallowblade.class));
|
||||
cards.add(new SetCardInfo("See the Truth", 69, Rarity.RARE, mage.cards.s.SeeTheTruth.class));
|
||||
cards.add(new SetCardInfo("Shipwreck Dowser", 71, Rarity.UNCOMMON, mage.cards.s.ShipwreckDowser.class));
|
||||
cards.add(new SetCardInfo("Sigiled Contender", 323, Rarity.UNCOMMON, mage.cards.s.SigiledContender.class));
|
||||
cards.add(new SetCardInfo("Solemn Simulacrum", 239, Rarity.RARE, mage.cards.s.SolemnSimulacrum.class));
|
||||
|
|
Loading…
Reference in a new issue