mirror of
https://github.com/correl/mage.git
synced 2024-11-24 19:19:56 +00:00
simplify implementation and remove redundant class
This commit is contained in:
parent
23a6185f70
commit
7e15ca92c5
2 changed files with 11 additions and 61 deletions
|
@ -5,10 +5,10 @@ import java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.condition.InvertCondition;
|
|
||||||
import mage.abilities.condition.common.HateCondition;
|
import mage.abilities.condition.common.HateCondition;
|
||||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||||
import mage.abilities.effects.common.ReturnTargetToOwnersLibraryPermanentEffect;
|
import mage.abilities.effects.Effect;
|
||||||
|
import mage.abilities.effects.common.PutOnLibraryTargetEffect;
|
||||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
@ -31,18 +31,16 @@ public final class SithManipulator extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// When Sith Manipulator enters the battlefield, return target creature to its owner's hand.
|
// When Sith Manipulator enters the battlefield, return target creature to its owner's hand.
|
||||||
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
|
||||||
new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect()),
|
|
||||||
new InvertCondition(HateCondition.instance),
|
|
||||||
"When Sith Manipulator enters the battlefield, return target creature to its owner's hand");
|
|
||||||
ability.addTarget(new TargetCreaturePermanent());
|
|
||||||
this.addAbility(ability, new LifeLossOtherFromCombatWatcher());
|
|
||||||
|
|
||||||
// <i>Hate</i> — If opponent lost life from source other than combat damage this turn, put that card on top of its owner's library instead.
|
// <i>Hate</i> — If opponent lost life from source other than combat damage this turn, put that card on top of its owner's library instead.
|
||||||
ability = new ConditionalInterveningIfTriggeredAbility(
|
Effect effect = new ConditionalOneShotEffect(
|
||||||
new EntersBattlefieldTriggeredAbility(new ReturnTargetToOwnersLibraryPermanentEffect(true)),
|
new PutOnLibraryTargetEffect(true),
|
||||||
|
new ReturnToHandTargetEffect(),
|
||||||
HateCondition.instance,
|
HateCondition.instance,
|
||||||
"<i>Hate</i> — If opponent lost life from source other than combat damage this turn, put that card on top of its owner's library instead");
|
"return target creature to its owner's hand." +
|
||||||
|
"<br><i>Hate</i> — If opponent lost life from source other than combat damage this turn, " +
|
||||||
|
"put that card on top of its owner's library instead"
|
||||||
|
);
|
||||||
|
Ability ability = new EntersBattlefieldTriggeredAbility(effect);
|
||||||
ability.addTarget(new TargetCreaturePermanent());
|
ability.addTarget(new TargetCreaturePermanent());
|
||||||
this.addAbility(ability, new LifeLossOtherFromCombatWatcher());
|
this.addAbility(ability, new LifeLossOtherFromCombatWatcher());
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
|
|
||||||
package mage.abilities.effects.common;
|
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.cards.Card;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.Game;
|
|
||||||
import mage.players.Player;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Merlingilb
|
|
||||||
*/
|
|
||||||
public class ReturnTargetToOwnersLibraryPermanentEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
private final boolean toTop;
|
|
||||||
|
|
||||||
public ReturnTargetToOwnersLibraryPermanentEffect(boolean top) {
|
|
||||||
super(Outcome.Neutral);
|
|
||||||
staticText = "Put target card on "+ (top ? "top":"the bottom") + " of its owner's library";
|
|
||||||
this.toTop = top;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ReturnTargetToOwnersLibraryPermanentEffect(final ReturnTargetToOwnersLibraryPermanentEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
this.toTop = effect.toTop;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Card card = game.getPermanent(source.getFirstTarget());
|
|
||||||
if (card != null) {
|
|
||||||
Player owner = game.getPlayer(card.getOwnerId());
|
|
||||||
if (owner != null) {
|
|
||||||
owner.moveCardToLibraryWithInfo(card, source, game, Zone.STACK, toTop, true);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ReturnTargetToOwnersLibraryPermanentEffect copy() {
|
|
||||||
return new ReturnTargetToOwnersLibraryPermanentEffect(this);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue