[VOW] Implemented Apprentice Sharpshooter

This commit is contained in:
Evan Kranzler 2021-10-28 20:29:15 -04:00
parent 06f76eadec
commit d8718a5fb5
5 changed files with 104 additions and 0 deletions

View file

@ -0,0 +1,41 @@
package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.constants.SubType;
import mage.abilities.keyword.ReachAbility;
import mage.abilities.keyword.TrainingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
/**
*
* @author TheElk801
*/
public final class ApprenticeSharpshooter extends CardImpl {
public ApprenticeSharpshooter(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.ARCHER);
this.power = new MageInt(1);
this.toughness = new MageInt(4);
// Reach
this.addAbility(ReachAbility.getInstance());
// Training
this.addAbility(new TrainingAbility());
}
private ApprenticeSharpshooter(final ApprenticeSharpshooter card) {
super(card);
}
@Override
public ApprenticeSharpshooter copy() {
return new ApprenticeSharpshooter(this);
}
}

View file

@ -31,6 +31,7 @@ public final class InnistradCrimsonVow extends ExpansionSet {
this.ratioBoosterMythic = 8;
this.numBoosterDoubleFaced = 1;
cards.add(new SetCardInfo("Apprentice Sharpshooter", 185, Rarity.COMMON, mage.cards.a.ApprenticeSharpshooter.class));
cards.add(new SetCardInfo("Dig Up", 197, Rarity.RARE, mage.cards.d.DigUp.class));
cards.add(new SetCardInfo("Forest", 276, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Gluttonous Guest", 114, Rarity.COMMON, mage.cards.g.GluttonousGuest.class));

View file

@ -0,0 +1,60 @@
package mage.abilities.keyword;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import java.util.Objects;
/**
* @author TheElk801
*/
public class TrainingAbility extends TriggeredAbilityImpl {
public TrainingAbility() {
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
}
private TrainingAbility(final TrainingAbility ability) {
super(ability);
}
@Override
public TrainingAbility copy() {
return new TrainingAbility(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.DECLARED_ATTACKERS;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (!game.getCombat().getAttackers().contains(this.getSourceId())) {
return false;
}
Permanent permanent = getSourcePermanentIfItStillExists(game);
return permanent != null && game
.getCombat()
.getAttackers()
.stream()
.map(game::getPermanent)
.filter(Objects::nonNull)
.map(MageObject::getPower)
.mapToInt(MageInt::getValue)
.anyMatch(x -> x > permanent.getPower().getValue());
}
@Override
public String getRule() {
return "Training <i>(Whenever this creature attacks with another creature " +
"with greater power, put a +1/+1 counter on this creature.)</i>";
}
}

View file

@ -104,6 +104,7 @@ Suspend|number, cost, card|
Swampcycling|cost|
Swampwalk|new|
Totem armor|new|
Training|new|
Trample|instance|
Tribute|number|
Unblockable|new|

View file

@ -43022,6 +43022,7 @@ Gluttonous Guest|Innistrad: Crimson Vow|114|C|{2}{B}|Creature - Vampire|1|4|When
Sorin the Mirthless|Innistrad: Crimson Vow|131|M|{2}{B}{B}|Legendary Planeswalker - Sorin|4|+1: Look at the top card of your library. You may reveal that card and put it into your hand. If you do, you lose life equal to its mana value.$2: Create a 2/3 black Vampire creature token with flying and lifelink.$7: Sorin the Mirthless deals 13 damage to any target. You gain 13 life.|
Voldaren Bloodcaster|Innistrad: Crimson Vow|137|R|{1}{B}|Creature - Vampire Wizard|2|1|Flying$Whenever or another nontoken creature you control dies, create a Blood token.$Whenever you create a Blood token, if you control five or more Blood tokens, transform Voldaren Bloodcaster.|
Bloodbat Summoner|Innistrad: Crimson Vow|137|R||Creature - Vampire Wizard|3|3|Flying$At the beginning of combat on your turn, up to one target Blood token you control becomes a 2/2 black Bat creature with flying and haste in addition to its other types.|
Apprentice Sharpshooter|Innistrad: Crimson Vow|185|C|{2}{G}|Creature - Human Archer|1|4|Reach$Training|
Dig Up|Innistrad: Crimson Vow|197|R|{G}|Sorcery|||Cleave {1}{B}{B}{G}$Search your library for a [basic land] card, [reveal it,] put it into your hand, then shuffle.|
Dorothea, Vengeful Victim|Innistrad: Crimson Vow|235|C|{W}{U}|Legendary Creature - Spirit|4|4|Flying$When Dorothea, Vengeful Victim attacks or blocks, sacrifice it at end of combat.$Disturb {1}{W}{U}|
Dorothea's Retribution|Innistrad: Crimson Vow|235|C||Enchantment - Aura|||Enchant creature$Enchanted creature has "Whenever this creature attacks, create a 4/4 white Spirit creature token with flying that's tapped and attacking. Sacrifice that token at end of combat."$If Dorothea's Retribution would be put into a graveyard from anywhere, exile it instead.|