mirror of
https://github.com/magefree/mage.git
synced 2026-01-25 20:59:14 -08:00
* Genesis Wave - Fixed multiple bugs.
This commit is contained in:
parent
a58c699880
commit
8ff7e04e85
1 changed files with 12 additions and 12 deletions
|
|
@ -88,37 +88,37 @@ class GenesisWaveEffect extends OneShotEffect {
|
||||||
if (controller == null) {
|
if (controller == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Cards cards = new CardsImpl(Zone.PICK);
|
Cards cards = new CardsImpl(Zone.LIBRARY);
|
||||||
int count = source.getManaCostsToPay().getX();
|
int xValue = source.getManaCostsToPay().getX();
|
||||||
count = Math.min(controller.getLibrary().size(), count);
|
int numberCards = Math.min(controller.getLibrary().size(), xValue);
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < numberCards; i++) {
|
||||||
Card card = controller.getLibrary().removeFromTop(game);
|
Card card = controller.getLibrary().removeFromTop(game);
|
||||||
cards.add(card);
|
cards.add(card);
|
||||||
game.setZone(card.getId(), Zone.PICK);
|
|
||||||
}
|
}
|
||||||
FilterCard filter = new FilterCard("card with converted mana cost " + count + " or less to put onto the battlefield");
|
FilterCard filter = new FilterCard("card with converted mana cost " + xValue + " or less to put onto the battlefield");
|
||||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, count + 1));
|
filter.add(new ConvertedManaCostPredicate(ComparisonType.LessThan, xValue + 1));
|
||||||
filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT),
|
filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT),
|
||||||
new CardTypePredicate(CardType.CREATURE),
|
new CardTypePredicate(CardType.CREATURE),
|
||||||
new CardTypePredicate(CardType.ENCHANTMENT),
|
new CardTypePredicate(CardType.ENCHANTMENT),
|
||||||
new CardTypePredicate(CardType.LAND),
|
new CardTypePredicate(CardType.LAND),
|
||||||
new CardTypePredicate(CardType.PLANESWALKER)
|
new CardTypePredicate(CardType.PLANESWALKER)
|
||||||
));
|
));
|
||||||
TargetCard target1 = new TargetCard(Zone.PICK, filter);
|
TargetCard target1 = new TargetCard(Zone.LIBRARY, filter);
|
||||||
while (cards.size() > 0 && controller.choose(Outcome.PutCardInPlay, cards, target1, game)) {
|
while (cards.size() > 0 && controller.choose(Outcome.PutCardInPlay, cards, target1, game)) {
|
||||||
Card card = cards.get(target1.getFirstTarget(), game);
|
Card card = cards.get(target1.getFirstTarget(), game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
cards.remove(card);
|
cards.remove(card);
|
||||||
card.putOntoBattlefield(game, Zone.PICK, source.getSourceId(), source.getControllerId());
|
controller.putOntoBattlefieldWithInfo(card, game, Zone.LIBRARY, source.getSourceId());
|
||||||
}
|
}
|
||||||
target1.clearChosen();
|
target1.clearChosen();
|
||||||
|
if (!controller.isInGame()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
while (cards.size() > 0) {
|
while (cards.size() > 0) {
|
||||||
Card card = cards.get(cards.iterator().next(), game);
|
Card card = cards.get(cards.iterator().next(), game);
|
||||||
cards.remove(card);
|
cards.remove(card);
|
||||||
controller.putOntoBattlefieldWithInfo(card, game, Zone.LIBRARY, source.getSourceId());
|
controller.moveCardToGraveyardWithInfo(card, source.getId(), game, Zone.LIBRARY);
|
||||||
|
|
||||||
card.moveToZone(Zone.GRAVEYARD, source.getId(), game, true);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue