mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 03:22:00 -08:00
Update Kassandra, Eagle Bearer to reduce player choose dialogues from three to two.
This commit is contained in:
parent
5fcc037cae
commit
9ba12d13d2
1 changed files with 20 additions and 25 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
package mage.cards.k;
|
package mage.cards.k;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
|
|
@ -98,6 +99,14 @@ class KassandraEagleBearerEffect extends OneShotEffect {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (spearCard == null) {
|
||||||
|
FilterCard filter2 = new FilterCard("card from your hand named The Spear of Leonidas");
|
||||||
|
filter2.add(new NamePredicate(spearName));
|
||||||
|
Cards spears = new CardsImpl();
|
||||||
|
spears.addAllCards(controller.getHand().getCards(filter, source.getControllerId(), source, game));
|
||||||
|
Set<Card> spearsInGraveyard = controller.getGraveyard().getCards(filter, source.getControllerId(), source, game);
|
||||||
|
TargetCard target;
|
||||||
|
if (spearsInGraveyard.isEmpty()) {
|
||||||
// Hand is a hidden zone - you may fail to find a Spear of Leonidas that's in your hand.
|
// Hand is a hidden zone - you may fail to find a Spear of Leonidas that's in your hand.
|
||||||
// 701.19b. If a player is searching a hidden zone for cards with a stated quality, such as a card with a
|
// 701.19b. If a player is searching a hidden zone for cards with a stated quality, such as a card with a
|
||||||
// certain card type or color, that player isn't required to find some or all of those cards even if they're
|
// certain card type or color, that player isn't required to find some or all of those cards even if they're
|
||||||
|
|
@ -105,29 +114,15 @@ class KassandraEagleBearerEffect extends OneShotEffect {
|
||||||
// This is true even if your hand is revealed:
|
// This is true even if your hand is revealed:
|
||||||
// 400.2. ... Hidden zones are zones in which not all players can be expected to see the cards' faces.
|
// 400.2. ... Hidden zones are zones in which not all players can be expected to see the cards' faces.
|
||||||
// Library and hand are hidden zones, even if all the cards in one such zone happen to be revealed.
|
// Library and hand are hidden zones, even if all the cards in one such zone happen to be revealed.
|
||||||
if (spearCard == null) {
|
target = new TargetCard(0, 1, Zone.HAND, filter);
|
||||||
FilterCard filter2 = new FilterCard("card from your hand named The Spear of Leonidas");
|
} else {
|
||||||
filter2.add(new NamePredicate(spearName));
|
spears.addAllCards(spearsInGraveyard);
|
||||||
TargetCard target = new TargetCard(0, 1, Zone.HAND, filter2);
|
|
||||||
target.withNotTarget(true);
|
|
||||||
Cards cards = new CardsImpl();
|
|
||||||
cards.addAllCards(controller.getHand().getCards(filter, source.getControllerId(), source, game));
|
|
||||||
if (!cards.isEmpty()) {
|
|
||||||
controller.choose(outcome, cards, target, source, game);
|
|
||||||
for (UUID id : target.getTargets()) {
|
|
||||||
spearCard = game.getCard(id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// You cannot fail to find a spear if there is one in your graveyard, because the graveyard is not hidden.
|
// You cannot fail to find a spear if there is one in your graveyard, because the graveyard is not hidden.
|
||||||
if (spearCard == null) {
|
target = new TargetCard(1, 1, Zone.HAND, filter);
|
||||||
TargetCard target = new TargetCard(1, 1, Zone.GRAVEYARD, filter);
|
}
|
||||||
target.withNotTarget(true);
|
target.withNotTarget(true);
|
||||||
Cards cards = new CardsImpl();
|
if (!spears.isEmpty()) {
|
||||||
cards.addAllCards(controller.getGraveyard().getCards(filter, source.getControllerId(), source, game));
|
controller.choose(outcome, spears, target, source, game);
|
||||||
if (!cards.isEmpty()) {
|
|
||||||
controller.choose(outcome, cards, target, source, game);
|
|
||||||
for (UUID id : target.getTargets()) {
|
for (UUID id : target.getTargets()) {
|
||||||
spearCard = game.getCard(id);
|
spearCard = game.getCard(id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue