@Override public List<Mana> getNetMana(Game game, Ability source) { ArrayList<Mana> netMana = new ArrayList<>(); netMana.add(Mana.GreenMana(1)); netMana.add(Mana.WhiteMana(1)); netMana.add(Mana.BlueMana(1)); netMana.add(Mana.RedMana(1)); netMana.add(Mana.BlackMana(1)); return netMana; }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { ManaEvent manaEvent = (ManaEvent) event; Mana mana = manaEvent.getMana(); mana.setToMana(Mana.BlackMana(mana.count())); return false; }
public CabalRitual(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{B}"); // Add {B}{B}{B}. // Threshold — Add {B}{B}{B}{B}{B} instead if seven or more cards are in your graveyard. this.getSpellAbility().addEffect(new ConditionalManaEffect( new BasicManaEffect(Mana.BlackMana(5)), new BasicManaEffect(Mana.BlackMana(3)), new CardsInControllerGraveCondition(7), "Add {B}{B}{B}.<br/><br/><i>Threshold</i> — Add {B}{B}{B}{B}{B} instead if seven or more cards are in your graveyard")); }
public BloodVassal(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add(SubType.THRULL); this.power = new MageInt(2); this.toughness = new MageInt(2); // Sacrifice Blood Vassal: Add {B}{B}. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new SacrificeSourceCost())); }
public BloodPet(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}"); this.subtype.add(SubType.THRULL); this.power = new MageInt(1); this.toughness = new MageInt(1); // Sacrifice Blood Pet: Add {B}. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(1), new SacrificeSourceCost())); }
public CabalCoffers(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {2}, {T}: Add {B} for each Swamp you control. Ability ability = new DynamicManaAbility(Mana.BlackMana(1), new PermanentsOnBattlefieldCount(filter), new GenericManaCost(2)); ability.addCost(new TapSourceCost()); this.addAbility(ability); }
public CullingTheWeak(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}"); // As an additional cost to cast Culling the Weak, sacrifice a creature. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); // Add {B}{B}{B}{B}. this.getSpellAbility().addEffect(new BasicManaEffect(Mana.BlackMana(4))); }
public BasalThrull(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}"); this.subtype.add(SubType.THRULL); this.power = new MageInt(1); this.toughness = new MageInt(2); // {T}, Sacrifice Basal Thrull: Add {B}{B}. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); }
public CarnivalOfSouls(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}"); // Whenever a creature enters the battlefield, you lose 1 life and add {B}. Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new LoseLifeSourceControllerEffect(1), new FilterCreaturePermanent("a creature"), false, SetTargetPointer.PERMANENT, null, false); Effect effect = new AddManaToManaPoolSourceControllerEffect(Mana.BlackMana(1)); effect.setText("and add {B}."); ability.addEffect(effect); this.addAbility(ability); }
public LiturgyOfBlood(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}{B}"); // Destroy target creature. Add {B}{B}{B}. this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new BasicManaEffect(Mana.BlackMana(3))); }
public SkirgeFamiliar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}"); this.subtype.add(SubType.IMP); this.power = new MageInt(3); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // Discard a card: Add {B}. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(1), new DiscardCardCost(false))); }
public EbonStronghold(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Ebon Stronghold enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // {tap}: Add {B}. this.addAbility(new BlackManaAbility()); // {tap}, Sacrifice Ebon Stronghold: Add {B}{B}. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); }
public DarkPetition(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}{B}"); // Search your library for a card and put that card into your hand. Then shuffle your library. this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary())); // <i>Spell mastery</i> — If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B}. Effect effect = new ConditionalOneShotEffect(new AddManaToManaPoolSourceControllerEffect(Mana.BlackMana(3)), SpellMasteryCondition.instance, "<br><i>Spell mastery</i> — If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B}"); this.getSpellAbility().addEffect(effect); }
public OvereagerApprentice(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.MINION); this.power = new MageInt(1); this.toughness = new MageInt(2); // Discard a card, Sacrifice Overeager Apprentice: Add {B}{B}{B}. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(3), new DiscardCardCost()); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); }
public SithCitadel(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Sith Citadel enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Sith Citadel enters the battlefield , add {B}. this.addAbility(new EntersBattlefieldTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.BlackMana(1)))); // {T}: Add {U} or {R} to you mana pool. this.addAbility(new BlueManaAbility()); this.addAbility(new RedManaAbility()); }
public CabalStronghold(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {T}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {3}, {T}: Add {B} for each basic Swamp you control. Ability ability = new DynamicManaAbility(Mana.BlackMana(1), new PermanentsOnBattlefieldCount(filter), new GenericManaCost(3)); ability.addCost(new TapSourceCost()); this.addAbility(ability); }
public MagusOfTheCoffers(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(4); this.toughness = new MageInt(4); // {2}, {T}: Add {B} for each Swamp you control. Ability ability = new DynamicManaAbility(Mana.BlackMana(1), new PermanentsOnBattlefieldCount(filter), new GenericManaCost(2)); ability.addCost(new TapSourceCost()); this.addAbility(ability); }
public CavesOfKoilos(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Tap: Add 1. this.addAbility(new ColorlessManaAbility()); // Tap: Add White or Black. Caves of Koilos deals 1 damage to you. Ability whiteManaAbility = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(1), new TapSourceCost()); whiteManaAbility.addEffect(new DamageControllerEffect(1)); this.addAbility(whiteManaAbility); Ability blackManaAbility = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(1), new TapSourceCost()); blackManaAbility.addEffect(new DamageControllerEffect(1)); this.addAbility(blackManaAbility); }
public PeatBog(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Peat Bog enters the battlefield tapped with two depletion counters on it. this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.DEPLETION.createInstance(2)))); // {T}, Remove a depletion counter from Peat Bog: Add {B}{B}. If there are no depletion counters on Peat Bog, sacrifice it. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new TapSourceCost()); ability.addCost(new RemoveCountersSourceCost(CounterType.DEPLETION.createInstance(1))); ability.addEffect(new ConditionalOneShotEffect(new SacrificeSourceEffect(), new SourceHasCounterCondition(CounterType.DEPLETION, 0,0), "If there are no depletion counters on {this}, sacrifice it")); this.addAbility(ability); }
public LakeOfTheDead(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // If Lake of the Dead would enter the battlefield, sacrifice a Swamp instead. If you do, put Lake of the Dead onto the battlefield. If you don't, put it into its owner's graveyard. this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))))); // {tap}: Add {B}. this.addAbility(new BlackManaAbility()); // {tap}, Sacrifice a Swamp: Add {B}{B}{B}{B}. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(4), new TapSourceCost()); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); this.addAbility(ability); }