mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
Implemented Garruk, Cursed Huntsman
This commit is contained in:
parent
d99e77d944
commit
39ce76f82a
4 changed files with 131 additions and 0 deletions
54
Mage.Sets/src/mage/cards/g/GarrukCursedHuntsman.java
Normal file
54
Mage.Sets/src/mage/cards/g/GarrukCursedHuntsman.java
Normal file
|
@ -0,0 +1,54 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.GetEmblemEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.game.command.emblems.GarrukCursedHuntsmanEmblem;
|
||||
import mage.game.permanent.token.GarrukCursedHuntsmanToken;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class GarrukCursedHuntsman extends CardImpl {
|
||||
|
||||
public GarrukCursedHuntsman(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{B}{G}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.GARRUK);
|
||||
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5));
|
||||
|
||||
// 0: Create two 2/2 black and green Wolf creature tokens with "When this creature dies, put a loyalty counter on each Garruk you control."
|
||||
this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new GarrukCursedHuntsmanToken(), 2), 0));
|
||||
|
||||
// −3: Destroy target creature. Draw a card.
|
||||
Ability ability = new LoyaltyAbility(new DestroyTargetEffect(), -3);
|
||||
ability.addEffect(new DrawCardSourceControllerEffect(1).setText("Draw a card"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
// −6: You get an emblem with "Creatures you control get +3/+3 and have trample."
|
||||
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new GarrukCursedHuntsmanEmblem()), -6));
|
||||
}
|
||||
|
||||
private GarrukCursedHuntsman(final GarrukCursedHuntsman card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GarrukCursedHuntsman copy() {
|
||||
return new GarrukCursedHuntsman(this);
|
||||
}
|
||||
}
|
|
@ -39,6 +39,7 @@ public final class ThroneOfEldraine extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Embereth Skyblazer", 321, Rarity.RARE, mage.cards.e.EmberethSkyblazer.class));
|
||||
cards.add(new SetCardInfo("Eye Collector", 86, Rarity.COMMON, mage.cards.e.EyeCollector.class));
|
||||
cards.add(new SetCardInfo("Fireborn Knight", 210, Rarity.UNCOMMON, mage.cards.f.FirebornKnight.class));
|
||||
cards.add(new SetCardInfo("Garruk, Cursed Huntsman", 270, Rarity.MYTHIC, mage.cards.g.GarrukCursedHuntsman.class));
|
||||
cards.add(new SetCardInfo("Gilded Goose", 160, Rarity.RARE, mage.cards.g.GildedGoose.class));
|
||||
cards.add(new SetCardInfo("Golden Egg", 220, Rarity.COMMON, mage.cards.g.GoldenEgg.class));
|
||||
cards.add(new SetCardInfo("Heraldic Banner", 222, Rarity.UNCOMMON, mage.cards.h.HeraldicBanner.class));
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
package mage.game.command.emblems;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.command.Emblem;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class GarrukCursedHuntsmanEmblem extends Emblem {
|
||||
|
||||
// -6: You get an emblem with "Creatures you control get +3/+3 and have trample."
|
||||
public GarrukCursedHuntsmanEmblem() {
|
||||
this.setName("Emblem Garruk");
|
||||
this.setExpansionSetCodeForImage("ELD");
|
||||
Ability ability = new SimpleStaticAbility(
|
||||
Zone.COMMAND,
|
||||
new BoostControlledEffect(
|
||||
3, 3, Duration.EndOfGame,
|
||||
StaticFilters.FILTER_PERMANENT_CREATURES,
|
||||
false
|
||||
).setText("creatures you control get +3/+3")
|
||||
);
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
TrampleAbility.getInstance(),
|
||||
Duration.EndOfGame,
|
||||
StaticFilters.FILTER_PERMANENT_CREATURES
|
||||
).setText("and have trample"));
|
||||
this.getAbilities().add(ability);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package mage.game.permanent.token;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesTriggeredAbility;
|
||||
import mage.abilities.effects.common.counter.AddCountersAllEffect;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class GarrukCursedHuntsmanToken extends TokenImpl {
|
||||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterControlledPermanent(SubType.GARRUK, "Garruk you control");
|
||||
|
||||
public GarrukCursedHuntsmanToken() {
|
||||
super("Wolf", "2/2 black and green Wolf creature token with \"When this creature dies, put a loyalty counter on each Garruk you control.\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlack(true);
|
||||
color.setGreen(true);
|
||||
subtype.add(SubType.WOLF);
|
||||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
|
||||
this.addAbility(new DiesTriggeredAbility(new AddCountersAllEffect(CounterType.LOYALTY.createInstance(), filter)));
|
||||
}
|
||||
|
||||
public GarrukCursedHuntsmanToken(final GarrukCursedHuntsmanToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public GarrukCursedHuntsmanToken copy() {
|
||||
return new GarrukCursedHuntsmanToken(this);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue