mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[SLD] Implement Ellie, Vengeful Hunter
This commit is contained in:
parent
7b131673be
commit
7c114272d7
5 changed files with 113 additions and 1 deletions
|
|
@ -27,6 +27,7 @@ public abstract class AbstractCommander extends Constructed {
|
||||||
|
|
||||||
private static List<CommanderValidator> validators = Arrays.asList(
|
private static List<CommanderValidator> validators = Arrays.asList(
|
||||||
PartnerValidator.instance,
|
PartnerValidator.instance,
|
||||||
|
PartnerSurvivorsValidator.instance,
|
||||||
PartnerFatherAndSonValidator.instance,
|
PartnerFatherAndSonValidator.instance,
|
||||||
FriendsForeverValidator.instance,
|
FriendsForeverValidator.instance,
|
||||||
PartnerWithValidator.instance,
|
PartnerWithValidator.instance,
|
||||||
|
|
|
||||||
58
Mage.Sets/src/mage/cards/e/EllieVengefulHunter.java
Normal file
58
Mage.Sets/src/mage/cards/e/EllieVengefulHunter.java
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
package mage.cards.e;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.costs.common.PayLifeCost;
|
||||||
|
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||||
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||||
|
import mage.abilities.keyword.IndestructibleAbility;
|
||||||
|
import mage.abilities.keyword.PartnerSurvivorsAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
import mage.target.TargetPlayer;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class EllieVengefulHunter extends CardImpl {
|
||||||
|
|
||||||
|
public EllieVengefulHunter(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{R}");
|
||||||
|
|
||||||
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.HUMAN);
|
||||||
|
this.subtype.add(SubType.SURVIVOR);
|
||||||
|
this.power = new MageInt(3);
|
||||||
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
|
// Pay 2 life, Sacrifice another creature: Ellie deals 2 damage to target player and gains indestructible until end of turn.
|
||||||
|
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(2), new PayLifeCost(2));
|
||||||
|
ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_ANOTHER_CREATURE));
|
||||||
|
ability.addEffect(new GainAbilitySourceEffect(
|
||||||
|
IndestructibleAbility.getInstance(), Duration.EndOfTurn
|
||||||
|
).setText("and gains indestructible until end of turn"));
|
||||||
|
ability.addTarget(new TargetPlayer());
|
||||||
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
// Partner--Survivors
|
||||||
|
this.addAbility(PartnerSurvivorsAbility.getInstance());
|
||||||
|
}
|
||||||
|
|
||||||
|
private EllieVengefulHunter(final EllieVengefulHunter card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EllieVengefulHunter copy() {
|
||||||
|
return new EllieVengefulHunter(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,7 +7,6 @@ import mage.constants.Zone;
|
||||||
import java.io.ObjectStreamException;
|
import java.io.ObjectStreamException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public class PartnerFatherAndSonAbility extends StaticAbility implements MageSingleton {
|
public class PartnerFatherAndSonAbility extends StaticAbility implements MageSingleton {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package mage.abilities.keyword;
|
||||||
|
|
||||||
|
import mage.abilities.MageSingleton;
|
||||||
|
import mage.abilities.StaticAbility;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
|
||||||
|
import java.io.ObjectStreamException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author LevelX2
|
||||||
|
*/
|
||||||
|
public class PartnerSurvivorsAbility extends StaticAbility implements MageSingleton {
|
||||||
|
|
||||||
|
private static final PartnerSurvivorsAbility instance = new PartnerSurvivorsAbility();
|
||||||
|
|
||||||
|
private Object readResolve() throws ObjectStreamException {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PartnerSurvivorsAbility getInstance() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PartnerSurvivorsAbility() {
|
||||||
|
super(Zone.BATTLEFIELD, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getRule() {
|
||||||
|
return "Partner—Survivors <i>(You can have two commanders if both have this ability.)</i>";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PartnerSurvivorsAbility copy() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package mage.util.validation;
|
||||||
|
|
||||||
|
import mage.abilities.keyword.PartnerSurvivorsAbility;
|
||||||
|
import mage.cards.Card;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public enum PartnerSurvivorsValidator implements CommanderValidator {
|
||||||
|
instance;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkPartner(Card commander1, Card commander2) {
|
||||||
|
return commander1.getAbilities().containsClass(PartnerSurvivorsAbility.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue