1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-03-31 01:07:39 -09:00

[MOC] Implement Sidar Jabari of Zhalfir

This commit is contained in:
PurpleCrowbar 2023-04-18 14:18:21 +01:00
parent 282bb77c8c
commit 1168a7b92c
2 changed files with 77 additions and 0 deletions

View file

@ -0,0 +1,74 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksWithCreaturesTriggeredAbility;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.condition.common.SourceOnBattlefieldOrCommandZoneCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.DrawDiscardControllerEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.common.FilterCreatureCard;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.common.TargetCardInYourGraveyard;
import java.util.UUID;
/**
* @author PurpleCrowbar
*/
public final class SidarJabariOfZhalfir extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.KNIGHT, "Knights");
private static final FilterCreatureCard filter2 = new FilterCreatureCard("Knight creature card from your graveyard");
static {
filter2.add(SubType.KNIGHT.getPredicate());
}
public SidarJabariOfZhalfir(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}{B}");
addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN, SubType.KNIGHT);
this.power = new MageInt(4);
this.toughness = new MageInt(3);
// Eminence Whenever you attack with one or more Knights, if Sidar Jabari of Zhalfir
// is in the command zone or on the battlefield, draw a card, then discard a card.
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new AttacksWithCreaturesTriggeredAbility(
Zone.ALL, new DrawDiscardControllerEffect(), 1, filter
), SourceOnBattlefieldOrCommandZoneCondition.instance,
"Whenever you attack with one or more Knights, if {this} is in the command" +
" zone or on the battlefield, draw a card, then discard a card"
);
ability.setAbilityWord(AbilityWord.EMINENCE);
this.addAbility(ability);
// Flying
this.addAbility(FlyingAbility.getInstance());
// First strike
this.addAbility(FirstStrikeAbility.getInstance());
// Whenever Sidar Jabari deals combat damage to a player, return target
// Knight creature card from your graveyard to the battlefield.
ability = new DealsCombatDamageToAPlayerTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), false);
ability.addTarget(new TargetCardInYourGraveyard(filter2));
this.addAbility(ability);
}
private SidarJabariOfZhalfir(final SidarJabariOfZhalfir card) {
super(card);
}
@Override
public SidarJabariOfZhalfir copy() {
return new SidarJabariOfZhalfir(this);
}
}

View file

@ -274,6 +274,9 @@ public final class MarchOfTheMachineCommander extends ExpansionSet {
cards.add(new SetCardInfo("Shimmer Dragon", 236, Rarity.RARE, mage.cards.s.ShimmerDragon.class));
cards.add(new SetCardInfo("Shimmer Myr", 376, Rarity.UNCOMMON, mage.cards.s.ShimmerMyr.class));
cards.add(new SetCardInfo("Shineshadow Snarl", 422, Rarity.RARE, mage.cards.s.ShineshadowSnarl.class));
cards.add(new SetCardInfo("Sidar Jabari of Zhalfir", 5, Rarity.RARE, mage.cards.s.SidarJabariOfZhalfir.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Sidar Jabari of Zhalfir", 97, Rarity.RARE, mage.cards.s.SidarJabariOfZhalfir.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Sidar Jabari of Zhalfir", 138, Rarity.RARE, mage.cards.s.SidarJabariOfZhalfir.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Sigiled Sword of Valeron", 377, Rarity.RARE, mage.cards.s.SigiledSwordOfValeron.class));
cards.add(new SetCardInfo("Silverquill Campus", 423, Rarity.COMMON, mage.cards.s.SilverquillCampus.class));
cards.add(new SetCardInfo("Silverwing Squadron", 207, Rarity.RARE, mage.cards.s.SilverwingSquadron.class));