[ONE]Implementing Sword of Forge and Frontier (#9899)

* Implementing Sword of Forge and Frontier

* Added code for testing of Noxious Assault

---------

Co-authored-by: AhmadYProjects <yousufa@kean.edu>
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
This commit is contained in:
AhmadYProjects 2023-01-28 18:13:58 -05:00 committed by GitHub
parent cdef28e1b4
commit 5312a1ef87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1,54 @@
package mage.cards.s;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.ExileTopXMayPlayUntilEndOfTurnEffect;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.effects.common.continuous.PlayAdditionalLandsControllerEffect;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.ProtectionAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import java.util.UUID;
/**
*
* @author AhmadYProjects
*/
public final class SwordOfForgeAndFrontier extends CardImpl {
public SwordOfForgeAndFrontier(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
this.subtype.add(SubType.EQUIPMENT);
// Equipped creature gets +2/+2 and has protection from red and from green.
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2,2));
ability.addEffect(new GainAbilityAttachedEffect(
ProtectionAbility.from(ObjectColor.GREEN,ObjectColor.RED), AttachmentType.EQUIPMENT).setText(
"and has protection from red and from green"));
this.addAbility(ability);
// Whenever equipped creature deals combat damage to a player, exile the top two cards of your library. You may play those cards this turn. You may play an additional land this turn.
Ability ability2 = new DealsDamageToAPlayerAttachedTriggeredAbility(new ExileTopXMayPlayUntilEndOfTurnEffect(2),"equipped creature", false);
ability2.addEffect(new PlayAdditionalLandsControllerEffect(1, Duration.EndOfTurn));
this.addAbility(ability2);
// Equip {2}
this.addAbility(new EquipAbility(Outcome.Benefit,new GenericManaCost(2), false));
}
private SwordOfForgeAndFrontier(final SwordOfForgeAndFrontier card) {
super(card);
}
@Override
public SwordOfForgeAndFrontier copy() {
return new SwordOfForgeAndFrontier(this);
}
}

View file

@ -162,6 +162,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet {
cards.add(new SetCardInfo("Surgical Skullbomb", 243, Rarity.COMMON, mage.cards.s.SurgicalSkullbomb.class));
cards.add(new SetCardInfo("Swamp", 274, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Swooping Lookout", 35, Rarity.UNCOMMON, mage.cards.s.SwoopingLookout.class));
cards.add(new SetCardInfo("Sword of Forge and Frontier", 244, Rarity.MYTHIC, mage.cards.s.SwordOfForgeAndFrontier.class));
cards.add(new SetCardInfo("Sylvok Battle-Chair", 184, Rarity.UNCOMMON, mage.cards.s.SylvokBattleChair.class));
cards.add(new SetCardInfo("Tablet of Compleation", 245, Rarity.RARE, mage.cards.t.TabletOfCompleation.class));
cards.add(new SetCardInfo("Tainted Observer", 217, Rarity.UNCOMMON, mage.cards.t.TaintedObserver.class));