From 5c564906cda00b9bbf2f33ed1534de4eec2d93fd Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 12 Sep 2014 19:01:43 +0200 Subject: [PATCH] [KTK] Added TurnedFaceUpAllTriggeredAbility. Changed name of TurnedFaceUpTriggeredAbility. --- Mage.Common/src/mage/view/PermanentView.java | 2 +- .../mage/sets/jacevschandra/FathomSeer.java | 4 +- .../sets/khansoftarkir/AshcloudPhoenix.java | 4 +- .../sets/khansoftarkir/DragonsEyeSavants.java | 4 +- .../sets/khansoftarkir/HordeAmbusher.java | 4 +- .../sets/khansoftarkir/IcefeatherAven.java | 4 +- .../sets/khansoftarkir/JeeringInstigator.java | 4 +- .../khansoftarkir/KheruSpellsnatcher.java | 4 +- .../sets/khansoftarkir/MasterOfPearls.java | 4 +- .../sets/khansoftarkir/RattleclawMystic.java | 4 +- .../sets/khansoftarkir/RuthlessRipper.java | 4 +- .../mage/sets/khansoftarkir/TemurCharger.java | 4 +- .../sets/khansoftarkir/ThousandWinds.java | 4 +- .../sets/khansoftarkir/WatcherOfTheRoost.java | 4 +- .../mage/sets/legions/NantukoVigilante.java | 4 +- .../mage/sets/timespiral/TheloniteHermit.java | 4 +- .../TurnedFaceUpAllTriggeredAbility.java | 96 +++++++++++++++++++ .../TurnedFaceUpSourceTriggeredAbility.java | 64 +++++++++++++ .../common/TurnedFaceUpTriggeredAbility.java | 47 --------- 19 files changed, 191 insertions(+), 78 deletions(-) create mode 100644 Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java create mode 100644 Mage/src/mage/abilities/common/TurnedFaceUpSourceTriggeredAbility.java delete mode 100644 Mage/src/mage/abilities/common/TurnedFaceUpTriggeredAbility.java diff --git a/Mage.Common/src/mage/view/PermanentView.java b/Mage.Common/src/mage/view/PermanentView.java index abae79b7e92..870409e30bd 100644 --- a/Mage.Common/src/mage/view/PermanentView.java +++ b/Mage.Common/src/mage/view/PermanentView.java @@ -30,7 +30,7 @@ package mage.view; import mage.abilities.Ability; import mage.abilities.common.TurnFaceUpAbility; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.cards.Card; import mage.constants.Rarity; import mage.game.Game; diff --git a/Mage.Sets/src/mage/sets/jacevschandra/FathomSeer.java b/Mage.Sets/src/mage/sets/jacevschandra/FathomSeer.java index 0674276e091..3f4e1e169b5 100644 --- a/Mage.Sets/src/mage/sets/jacevschandra/FathomSeer.java +++ b/Mage.Sets/src/mage/sets/jacevschandra/FathomSeer.java @@ -29,7 +29,7 @@ package mage.sets.jacevschandra; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.common.ReturnToHandTargetCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.MorphAbility; @@ -63,7 +63,7 @@ public class FathomSeer extends CardImpl { // Morph-Return two Islands you control to their owner's hand. this.addAbility(new MorphAbility(this, new ReturnToHandTargetCost(new TargetControlledPermanent(2,2, filter, true)))); // When Fathom Seer is turned face up, draw two cards. - this.addAbility(new TurnedFaceUpTriggeredAbility(new DrawCardSourceControllerEffect(2))); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new DrawCardSourceControllerEffect(2))); } public FathomSeer(final FathomSeer card) { diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/AshcloudPhoenix.java b/Mage.Sets/src/mage/sets/khansoftarkir/AshcloudPhoenix.java index 4a1a0939afd..1aff68c6bab 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/AshcloudPhoenix.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/AshcloudPhoenix.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesTriggeredAbility; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; @@ -75,7 +75,7 @@ public class AshcloudPhoenix extends CardImpl { // When Ashcloud Phoenix is turned face up, it deals 2 damage to each player. Effect effect = new DamagePlayersEffect(2, TargetController.ANY); effect.setText("it deals 2 damage to each player"); - this.addAbility(new TurnedFaceUpTriggeredAbility(effect)); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(effect)); } public AshcloudPhoenix(final AshcloudPhoenix card) { diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/DragonsEyeSavants.java b/Mage.Sets/src/mage/sets/khansoftarkir/DragonsEyeSavants.java index e6511d1397e..19712ad2993 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/DragonsEyeSavants.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/DragonsEyeSavants.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.LookAtTargetPlayerHandEffect; @@ -71,7 +71,7 @@ public class DragonsEyeSavants extends CardImpl { // When Dragon's Eye Savants is turned face up, look at target opponent's hand. Effect effect = new LookAtTargetPlayerHandEffect(); effect.setText("look at target opponent's hand"); - Ability ability = new TurnedFaceUpTriggeredAbility(effect); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(effect); ability.addTarget(new TargetOpponent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/HordeAmbusher.java b/Mage.Sets/src/mage/sets/khansoftarkir/HordeAmbusher.java index 8e2b864aaf4..ecc8febea6b 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/HordeAmbusher.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/HordeAmbusher.java @@ -32,7 +32,7 @@ import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.common.BlocksTriggeredAbility; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageControllerEffect; @@ -77,7 +77,7 @@ public class HordeAmbusher extends CardImpl { // When Horde Ambusher is turned face up, target creature can't block this turn. Effect effect = new CantBlockTargetEffect(Duration.EndOfTurn); effect.setText("target creature can't block this turn"); - Ability ability = new TurnedFaceUpTriggeredAbility(effect); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(effect); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/IcefeatherAven.java b/Mage.Sets/src/mage/sets/khansoftarkir/IcefeatherAven.java index e2b6aa245aa..dd3000c012d 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/IcefeatherAven.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/IcefeatherAven.java @@ -30,7 +30,7 @@ package mage.sets.khansoftarkir; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.keyword.FlyingAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandTargetEffect; @@ -70,7 +70,7 @@ public class IcefeatherAven extends CardImpl { // Morph {1}{G}{U} this.addAbility(new MorphAbility(this, new ManaCostsImpl("{1}{G}{U}"))); // When Icefeather Aven is turned face up, you may return another target creature to its owner's hand. - Ability ability = new TurnedFaceUpTriggeredAbility(new ReturnToHandTargetEffect()); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(new ReturnToHandTargetEffect()); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/JeeringInstigator.java b/Mage.Sets/src/mage/sets/khansoftarkir/JeeringInstigator.java index fe173b684e6..97cd72e28cb 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/JeeringInstigator.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/JeeringInstigator.java @@ -30,7 +30,7 @@ package mage.sets.khansoftarkir; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalContinousEffect; @@ -72,7 +72,7 @@ public class JeeringInstigator extends CardImpl { this.addAbility(new MorphAbility(this, new ManaCostsImpl<>("{2}{R}"))); // When Jeering Instigator is turned face up, if it's your turn, gain control of another target creature until end of turn. Untap it. That creature gains haste until end of turn. - Ability ability = new TurnedFaceUpTriggeredAbility(new ConditionalContinousEffect(new GainControlTargetEffect(Duration.EndOfTurn), MyTurnCondition.getInstance(), "if it's your turn, gain control of another target creature until end of turn. Untap it. That creature gains haste until end of turn.")); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(new ConditionalContinousEffect(new GainControlTargetEffect(Duration.EndOfTurn), MyTurnCondition.getInstance(), "if it's your turn, gain control of another target creature until end of turn. Untap it. That creature gains haste until end of turn.")); ability.addEffect(new UntapTargetEffect()); ability.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)); ability.addTarget(new TargetCreaturePermanent(filter)); diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/KheruSpellsnatcher.java b/Mage.Sets/src/mage/sets/khansoftarkir/KheruSpellsnatcher.java index 39aa519fcb4..544f1ca2fd4 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/KheruSpellsnatcher.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/KheruSpellsnatcher.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.ContinuousEffect; @@ -73,7 +73,7 @@ public class KheruSpellsnatcher extends CardImpl { this.addAbility(new MorphAbility(this, new ManaCostsImpl<>("{4}{U}{U}"))); // When Kheru Spellthief is turned face up, counter target spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard. You may cast that card without paying its mana cost as long as it remains exiled. - Ability ability = new TurnedFaceUpTriggeredAbility(new KheruSpellsnatcherEffect()); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(new KheruSpellsnatcherEffect()); ability.addTarget(new TargetSpell()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/MasterOfPearls.java b/Mage.Sets/src/mage/sets/khansoftarkir/MasterOfPearls.java index 2fca8788dde..a3913ea83b3 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/MasterOfPearls.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/MasterOfPearls.java @@ -29,7 +29,7 @@ package mage.sets.khansoftarkir; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continious.BoostControlledEffect; import mage.abilities.keyword.MorphAbility; @@ -58,7 +58,7 @@ public class MasterOfPearls extends CardImpl { // Morph {3}{W}{W} this.addAbility(new MorphAbility(this, new ManaCostsImpl("{3}{W}{W}"))); // When Master of Pearls is turned face up, creatures you control get +2/+2 until end of turn. - this.addAbility(new TurnedFaceUpTriggeredAbility(new BoostControlledEffect(2,2, Duration.EndOfTurn, new FilterCreaturePermanent("creatures")))); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new BoostControlledEffect(2,2, Duration.EndOfTurn, new FilterCreaturePermanent("creatures")))); } public MasterOfPearls(final MasterOfPearls card) { diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java b/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java index 24d576dcb8c..e053267f4a4 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/RattleclawMystic.java @@ -30,7 +30,7 @@ package mage.sets.khansoftarkir; import java.util.UUID; import mage.MageInt; import mage.Mana; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.AddManaToControllersManaPoolEffect; import mage.abilities.keyword.MorphAbility; @@ -66,7 +66,7 @@ public class RattleclawMystic extends CardImpl { this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}"))); // When Rattleclaw Mystic is turned face up, add {G}{U}{R} to your mana pool. - this.addAbility(new TurnedFaceUpTriggeredAbility(new AddManaToControllersManaPoolEffect(new Mana(1,1,1,0,0,0,0)))); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new AddManaToControllersManaPoolEffect(new Mana(1,1,1,0,0,0,0)))); } diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/RuthlessRipper.java b/Mage.Sets/src/mage/sets/khansoftarkir/RuthlessRipper.java index 6ab61dfc92e..e097bc8f3e5 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/RuthlessRipper.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/RuthlessRipper.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.LoseLifeTargetEffect; @@ -75,7 +75,7 @@ public class RuthlessRipper extends CardImpl { // When Ruthless Ripper is turned face up, target player loses 2 life. Effect effect = new LoseLifeTargetEffect(2); effect.setText("target player loses 2 life"); - Ability ability = new TurnedFaceUpTriggeredAbility(effect); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(effect); ability.addTarget(new TargetPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/TemurCharger.java b/Mage.Sets/src/mage/sets/khansoftarkir/TemurCharger.java index 4d4ae050e04..c689ccec325 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/TemurCharger.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/TemurCharger.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.MorphAbility; @@ -70,7 +70,7 @@ public class TemurCharger extends CardImpl { this.addAbility(new MorphAbility(this, new RevealTargetFromHandCost(new TargetCardInHand(filter)))); // When Temur Charger is turned face up, target creature gains trample until end of turn. - Ability ability = new TurnedFaceUpTriggeredAbility(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/ThousandWinds.java b/Mage.Sets/src/mage/sets/khansoftarkir/ThousandWinds.java index ec6b8eeb5cd..c990eee5a3b 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/ThousandWinds.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/ThousandWinds.java @@ -29,7 +29,7 @@ package mage.sets.khansoftarkir; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect; import mage.abilities.keyword.FlyingAbility; @@ -68,7 +68,7 @@ public class ThousandWinds extends CardImpl { // Morph {5}{U}{U} this.addAbility(new MorphAbility(this, new ManaCostsImpl("{5}{U}{U}"))); // When Thousand Winds is turned face up, return all other tapped creatures to their owners' hands. - this.addAbility(new TurnedFaceUpTriggeredAbility(new ReturnToHandFromBattlefieldAllEffect(filter))); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new ReturnToHandFromBattlefieldAllEffect(filter))); } public ThousandWinds(final ThousandWinds card) { diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/WatcherOfTheRoost.java b/Mage.Sets/src/mage/sets/khansoftarkir/WatcherOfTheRoost.java index 9544fedc039..902c3adf2d5 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/WatcherOfTheRoost.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/WatcherOfTheRoost.java @@ -30,7 +30,7 @@ package mage.sets.khansoftarkir; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.common.RevealTargetFromHandCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.GainLifeEffect; @@ -73,7 +73,7 @@ public class WatcherOfTheRoost extends CardImpl { // When Watcher of the Roost is turned face up, you gain 2 life. Effect effect = new GainLifeEffect(2); effect.setText("you gain 2 life"); - this.addAbility(new TurnedFaceUpTriggeredAbility(effect)); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(effect)); } public WatcherOfTheRoost(final WatcherOfTheRoost card) { diff --git a/Mage.Sets/src/mage/sets/legions/NantukoVigilante.java b/Mage.Sets/src/mage/sets/legions/NantukoVigilante.java index 8675ea60928..87a02d191bd 100644 --- a/Mage.Sets/src/mage/sets/legions/NantukoVigilante.java +++ b/Mage.Sets/src/mage/sets/legions/NantukoVigilante.java @@ -30,7 +30,7 @@ package mage.sets.legions; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.MorphAbility; @@ -70,7 +70,7 @@ public class NantukoVigilante extends CardImpl { // Morph {1}{G} this.addAbility(new MorphAbility(this,new ManaCostsImpl("{1}{G}"))); // When Nantuko Vigilante is turned face up, destroy target artifact or enchantment. - Ability ability = new TurnedFaceUpTriggeredAbility(new DestroyTargetEffect()); + Ability ability = new TurnedFaceUpSourceTriggeredAbility(new DestroyTargetEffect()); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/timespiral/TheloniteHermit.java b/Mage.Sets/src/mage/sets/timespiral/TheloniteHermit.java index 9aa23f13388..c61a7bd5b6d 100644 --- a/Mage.Sets/src/mage/sets/timespiral/TheloniteHermit.java +++ b/Mage.Sets/src/mage/sets/timespiral/TheloniteHermit.java @@ -30,7 +30,7 @@ package mage.sets.timespiral; import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.common.TurnedFaceUpTriggeredAbility; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continious.BoostAllEffect; @@ -73,7 +73,7 @@ public class TheloniteHermit extends CardImpl { this.addAbility(new MorphAbility(this, new ManaCostsImpl("{3}{G}{G}"))); // When Thelonite Hermit is turned face up, put four 1/1 green Saproling creature tokens onto the battlefield. - this.addAbility(new TurnedFaceUpTriggeredAbility(new CreateTokenEffect(new SaprolingToken(), 4))); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new CreateTokenEffect(new SaprolingToken(), 4))); } public TheloniteHermit(final TheloniteHermit card) { diff --git a/Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java b/Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java new file mode 100644 index 00000000000..64e5cfcf08f --- /dev/null +++ b/Mage/src/mage/abilities/common/TurnedFaceUpAllTriggeredAbility.java @@ -0,0 +1,96 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.abilities.common; + +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.constants.Zone; +import mage.filter.FilterPermanent; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author LevelX2 + */ + +public class TurnedFaceUpAllTriggeredAbility extends TriggeredAbilityImpl { + + private FilterPermanent filter; + private boolean setTargetPointer; + + public TurnedFaceUpAllTriggeredAbility(Effect effect, FilterPermanent filter) { + this(effect, filter, false); + } + + public TurnedFaceUpAllTriggeredAbility(Effect effect, FilterPermanent filter, boolean setTargetPointer) { + super(Zone.BATTLEFIELD, effect); + // has to be set so the ability triggers if card is turn faced up + this.setWorksFaceDown(true); + this.filter = filter; + this.setTargetPointer = setTargetPointer; + + } + + public TurnedFaceUpAllTriggeredAbility(final TurnedFaceUpAllTriggeredAbility ability) { + super(ability); + this.setTargetPointer = ability.setTargetPointer; + this.filter = ability.filter; + } + + @Override + public TurnedFaceUpAllTriggeredAbility copy() { + return new TurnedFaceUpAllTriggeredAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (EventType.TURNEDFACEUP.equals(event.getType())) { + Permanent permanent = game.getPermanent(event.getTargetId()); + if (filter.match(permanent, getSourceId(), getControllerId(), game)) { + if (setTargetPointer) { + for (Effect effect: getEffects()) { + effect.setTargetPointer(new FixedTarget(event.getTargetId())); + } + } + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "When " + filter.getMessage() + " is turned face up, " + super.getRule(); + } +} + diff --git a/Mage/src/mage/abilities/common/TurnedFaceUpSourceTriggeredAbility.java b/Mage/src/mage/abilities/common/TurnedFaceUpSourceTriggeredAbility.java new file mode 100644 index 00000000000..43312a0d0d7 --- /dev/null +++ b/Mage/src/mage/abilities/common/TurnedFaceUpSourceTriggeredAbility.java @@ -0,0 +1,64 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package mage.abilities.common; + +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.Effect; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author LevelX2 + */ + +public class TurnedFaceUpSourceTriggeredAbility extends TriggeredAbilityImpl { + + private boolean setTargetPointer; + + public TurnedFaceUpSourceTriggeredAbility(Effect effect) { + this(effect, false); + } + + public TurnedFaceUpSourceTriggeredAbility(Effect effect, boolean setTargetPointer) { + super(Zone.BATTLEFIELD, effect); + // has to be set so the ability triggers if card is turn faced up + this.setWorksFaceDown(true); + this.setTargetPointer = setTargetPointer; + } + + public TurnedFaceUpSourceTriggeredAbility(final TurnedFaceUpSourceTriggeredAbility ability) { + super(ability); + this.setTargetPointer = ability.setTargetPointer; + } + + @Override + public TurnedFaceUpSourceTriggeredAbility copy() { + return new TurnedFaceUpSourceTriggeredAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (EventType.TURNEDFACEUP.equals(event.getType()) && event.getTargetId().equals(this.getSourceId())) { + if (setTargetPointer) { + for (Effect effect: getEffects()) { + effect.setTargetPointer(new FixedTarget(event.getTargetId())); + } + } + return true; + } + return false; + } + + @Override + public String getRule() { + return "When {this} is turned face up, " + super.getRule(); + } +} diff --git a/Mage/src/mage/abilities/common/TurnedFaceUpTriggeredAbility.java b/Mage/src/mage/abilities/common/TurnedFaceUpTriggeredAbility.java deleted file mode 100644 index 5b1b1c35dc0..00000000000 --- a/Mage/src/mage/abilities/common/TurnedFaceUpTriggeredAbility.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -package mage.abilities.common; - -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.Effect; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; - -/** - * - * @author LevelX2 - */ - -public class TurnedFaceUpTriggeredAbility extends TriggeredAbilityImpl { - - public TurnedFaceUpTriggeredAbility(Effect effect) { - super(Zone.BATTLEFIELD, effect); - // has to be set so the ability triggers if card is turn faced up - this.setWorksFaceDown(true); - } - - public TurnedFaceUpTriggeredAbility(final TurnedFaceUpTriggeredAbility ability) { - super(ability); - } - - @Override - public TurnedFaceUpTriggeredAbility copy() { - return new TurnedFaceUpTriggeredAbility(this); - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - return EventType.TURNEDFACEUP.equals(event.getType()) && event.getTargetId().equals(this.getSourceId()); - } - - @Override - public String getRule() { - return "When {this} is turned face up, " + super.getRule(); - } -}