mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[FDN] Implement Fiendish Panda
This commit is contained in:
parent
7a47de1bc4
commit
e22c3e1f17
2 changed files with 90 additions and 0 deletions
89
Mage.Sets/src/mage/cards/f/FiendishPanda.java
Normal file
89
Mage.Sets/src/mage/cards/f/FiendishPanda.java
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.GainLifeControllerTriggeredAbility;
|
||||
import mage.abilities.effects.Effects;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
import mage.target.targetadjustment.TargetAdjuster;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author ciaccona007
|
||||
*/
|
||||
public final class FiendishPanda extends CardImpl {
|
||||
|
||||
public FiendishPanda(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{B}");
|
||||
|
||||
this.subtype.add(SubType.BEAR);
|
||||
this.subtype.add(SubType.DEMON);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever you gain life, put a +1/+1 counter on this creature.
|
||||
this.addAbility(new GainLifeControllerTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false
|
||||
));
|
||||
|
||||
// When this creature dies, return another target non-Bear creature card with mana value less than or equal to this creature's power from your graveyard to the battlefield.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect()
|
||||
.setText("return another target non-Bear creature card "
|
||||
+ "with mana value less than or equal to this creature's power "
|
||||
+ "from your graveyard to the battlefield")
|
||||
);
|
||||
ability.setTargetAdjuster(FiendishPandaAdjuster.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private FiendishPanda(final FiendishPanda card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FiendishPanda copy() {
|
||||
return new FiendishPanda(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum FiendishPandaAdjuster implements TargetAdjuster {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public void adjustTargets(Ability ability, Game game) {
|
||||
int power = 0;
|
||||
Effects effects = ability.getEffects();
|
||||
if (!effects.isEmpty()) {
|
||||
Object died = effects.get(0).getValue("permanentLeftBattlefield");
|
||||
if (died instanceof Permanent) {
|
||||
power = ((Permanent) died).getPower().getValue();
|
||||
}
|
||||
}
|
||||
FilterCreatureCard filter = new FilterCreatureCard(
|
||||
"another target non-Bear creature card "
|
||||
+ "with mana value less than or equal to this creature's power from your graveyard"
|
||||
);
|
||||
filter.add(AnotherPredicate.instance);
|
||||
filter.add(Predicates.not(SubType.BEAR.getPredicate()));
|
||||
filter.add(new ManaValuePredicate(ComparisonType.OR_LESS, power));
|
||||
ability.getTargets().clear();
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
}
|
||||
}
|
||||
|
|
@ -191,6 +191,7 @@ public final class Foundations extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Felidar Retreat", 574, Rarity.RARE, mage.cards.f.FelidarRetreat.class));
|
||||
cards.add(new SetCardInfo("Felidar Savior", 12, Rarity.COMMON, mage.cards.f.FelidarSavior.class));
|
||||
cards.add(new SetCardInfo("Felling Blow", 105, Rarity.UNCOMMON, mage.cards.f.FellingBlow.class));
|
||||
cards.add(new SetCardInfo("Fiendish Panda", 120, Rarity.UNCOMMON, mage.cards.f.FiendishPanda.class));
|
||||
cards.add(new SetCardInfo("Fierce Empath", 636, Rarity.COMMON, mage.cards.f.FierceEmpath.class));
|
||||
cards.add(new SetCardInfo("Fiery Annihilation", 86, Rarity.UNCOMMON, mage.cards.f.FieryAnnihilation.class));
|
||||
cards.add(new SetCardInfo("Finale of Revelation", 589, Rarity.MYTHIC, mage.cards.f.FinaleOfRevelation.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue