mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
[TMT] Implement Kitsune, Dragon's Daughter
This commit is contained in:
parent
05c31b3c30
commit
cb790da40d
2 changed files with 105 additions and 0 deletions
104
Mage.Sets/src/mage/cards/k/KitsuneDragonsDaughter.java
Normal file
104
Mage.Sets/src/mage/cards/k/KitsuneDragonsDaughter.java
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.ExchangeControlTargetEffect;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.abilities.meta.OrTriggeredAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class KitsuneDragonsDaughter extends CardImpl {
|
||||
|
||||
public KitsuneDragonsDaughter(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}");
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.FOX);
|
||||
this.subtype.add(SubType.WARLOCK);
|
||||
this.subtype.add(SubType.AVATAR);
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(6);
|
||||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Whenever Kitsune enters or deals combat damage to a player, you may exchange control of two other target creatures controlled by different players.
|
||||
Ability ability = new OrTriggeredAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new ExchangeControlTargetEffect(
|
||||
Duration.Custom, "exchange control of two other " +
|
||||
"target creatures controlled by different players"
|
||||
), true, "Whenever {this} enters or deals combat damage to a player, ",
|
||||
new EntersBattlefieldTriggeredAbility(null),
|
||||
new DealsCombatDamageToAPlayerTriggeredAbility(null)
|
||||
);
|
||||
ability.addTarget(new KitsuneDragonsDaughterTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private KitsuneDragonsDaughter(final KitsuneDragonsDaughter card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KitsuneDragonsDaughter copy() {
|
||||
return new KitsuneDragonsDaughter(this);
|
||||
}
|
||||
}
|
||||
|
||||
class KitsuneDragonsDaughterTarget extends TargetPermanent {
|
||||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterCreaturePermanent("other creatures controlled by different players");
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
KitsuneDragonsDaughterTarget() {
|
||||
super(2, 2, filter, false);
|
||||
}
|
||||
|
||||
private KitsuneDragonsDaughterTarget(final KitsuneDragonsDaughterTarget target) {
|
||||
super(target);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KitsuneDragonsDaughterTarget copy() {
|
||||
return new KitsuneDragonsDaughterTarget(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canTarget(UUID playerId, UUID id, Ability source, Game game) {
|
||||
if (!super.canTarget(playerId, id, source, game)) {
|
||||
return false;
|
||||
}
|
||||
Permanent creature = game.getPermanent(id);
|
||||
if (creature == null) {
|
||||
return false;
|
||||
}
|
||||
return this.getTargets()
|
||||
.stream()
|
||||
.map(game::getPermanent)
|
||||
.filter(Objects::nonNull)
|
||||
.noneMatch(permanent -> !creature.getId().equals(permanent.getId())
|
||||
&& creature.isControlledBy(permanent.getControllerId())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -37,6 +37,7 @@ public final class TeenageMutantNinjaTurtles extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Island", 254, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS));
|
||||
cards.add(new SetCardInfo("Island", 311, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS));
|
||||
cards.add(new SetCardInfo("Kitsune's Technique", 42, Rarity.RARE, mage.cards.k.KitsunesTechnique.class));
|
||||
cards.add(new SetCardInfo("Kitsune, Dragon's Daughter", 41, Rarity.RARE, mage.cards.k.KitsuneDragonsDaughter.class));
|
||||
cards.add(new SetCardInfo("Krang, Master Mind", 43, Rarity.RARE, mage.cards.k.KrangMasterMind.class));
|
||||
cards.add(new SetCardInfo("Krang, Utrom Warlord", 175, Rarity.MYTHIC, mage.cards.k.KrangUtromWarlord.class));
|
||||
cards.add(new SetCardInfo("Leader's Talent", 13, Rarity.RARE, mage.cards.l.LeadersTalent.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue