mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
[MB2] Implement Hish of the Snake Cult (#13102)
This commit is contained in:
parent
695f8e5c4d
commit
9ddafd16ed
4 changed files with 79 additions and 4 deletions
66
Mage.Sets/src/mage/cards/h/HishOfTheSnakeCult.java
Normal file
66
Mage.Sets/src/mage/cards/h/HishOfTheSnakeCult.java
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
package mage.cards.h;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BecomesSubtypeAllEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.DauntAbility;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.abilities.keyword.PoisonousAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author PurpleCrowbar
|
||||
*/
|
||||
public final class HishOfTheSnakeCult extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.SERPENT, "Serpents you control");
|
||||
private static final FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent(SubType.SNAKE, "Snakes you control");
|
||||
|
||||
static {
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
}
|
||||
|
||||
public HishOfTheSnakeCult(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{G}{U}");
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.SNAKE);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// Serpents you control are Snakes.
|
||||
this.addAbility(new SimpleStaticAbility(new BecomesSubtypeAllEffect(
|
||||
Duration.WhileOnBattlefield, Arrays.asList(SubType.SNAKE), filter, true
|
||||
).setText("Serpents you control are Snakes.")));
|
||||
|
||||
// Snakes you control have daunt, deathtouch, and poisonous 2.
|
||||
Ability ability = new SimpleStaticAbility(new GainAbilityControlledEffect(
|
||||
new DauntAbility(true), Duration.WhileOnBattlefield, filter2
|
||||
).setText("Snakes you control have daunt"));
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
DeathtouchAbility.getInstance(), Duration.WhileOnBattlefield, filter2
|
||||
).concatBy(", ").setText("deathtouch"));
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
new PoisonousAbility(2), Duration.WhileOnBattlefield, filter2
|
||||
).concatBy(", and").setText("poisonous 2. " +
|
||||
"<i>(A creature with daunt can't be blocked by creatures with power 2 or less. Whenever a creature with poisonous 2 deals combat damage to a player, that player gets two poison counters.)</i>"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private HishOfTheSnakeCult(final HishOfTheSnakeCult card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HishOfTheSnakeCult copy() {
|
||||
return new HishOfTheSnakeCult(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -119,6 +119,7 @@ public class MysteryBooster2 extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Greater Good", 207, Rarity.RARE, mage.cards.g.GreaterGood.class));
|
||||
cards.add(new SetCardInfo("Grinding Station", 223, Rarity.UNCOMMON, mage.cards.g.GrindingStation.class));
|
||||
cards.add(new SetCardInfo("Gush", 164, Rarity.COMMON, mage.cards.g.Gush.class));
|
||||
cards.add(new SetCardInfo("Hish of the Snake Cult", 356, Rarity.RARE, mage.cards.h.HishOfTheSnakeCult.class));
|
||||
cards.add(new SetCardInfo("Hogaak, Arisen Necropolis", 136, Rarity.RARE, mage.cards.h.HogaakArisenNecropolis.class));
|
||||
cards.add(new SetCardInfo("Hollow One", 95, Rarity.RARE, mage.cards.h.HollowOne.class));
|
||||
cards.add(new SetCardInfo("Hoodwink", 123, Rarity.COMMON, mage.cards.h.Hoodwink.class));
|
||||
|
|
|
|||
|
|
@ -13,9 +13,10 @@ import mage.filter.predicate.mageobject.PowerPredicate;
|
|||
public class DauntAbility extends SimpleEvasionAbility {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with power 2 or less");
|
||||
private final boolean asKeyword;
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 3));
|
||||
filter.add(new PowerPredicate(ComparisonType.OR_LESS, 2));
|
||||
}
|
||||
|
||||
public static FilterCreaturePermanent getFilter() {
|
||||
|
|
@ -23,11 +24,17 @@ public class DauntAbility extends SimpleEvasionAbility {
|
|||
}
|
||||
|
||||
public DauntAbility() {
|
||||
this(false);
|
||||
}
|
||||
|
||||
public DauntAbility(boolean asKeyword) {
|
||||
super(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield));
|
||||
this.asKeyword = asKeyword;
|
||||
}
|
||||
|
||||
private DauntAbility(final DauntAbility ability) {
|
||||
super(ability);
|
||||
this.asKeyword = ability.asKeyword;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -37,6 +44,7 @@ public class DauntAbility extends SimpleEvasionAbility {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "{this} can't be blocked by creatures with power 2 or less.";
|
||||
return this.asKeyword ? "Daunt <i>({this} can't be blocked by creatures with power 2 or less.)</i>" :
|
||||
"{this} can't be blocked by creatures with power 2 or less.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public class PoisonousAbility extends DealsCombatDamageToAPlayerTriggeredAbility
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return String.format("Poisonous %d. <i>(%s)</i>", n, super.getRule());
|
||||
return String.format("Poisonous %d <i>(%s)</i>", n, super.getRule());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue