forked from External/mage
[refactoring][minor] Replaced all tabs with four spaces.
This commit is contained in:
parent
e646e4768d
commit
239a4fb100
2891 changed files with 79411 additions and 79411 deletions
|
|
@ -48,105 +48,105 @@ import mage.target.TargetCard;
|
|||
*/
|
||||
|
||||
public class LookLibraryAndPickControllerEffect extends LookLibraryControllerEffect {
|
||||
|
||||
|
||||
protected FilterCard filter; // which kind of cards to reveal
|
||||
protected DynamicValue numberToPick;
|
||||
protected boolean revealPickedCards = true;
|
||||
protected Zone targetPickedCards = Zone.HAND; // HAND
|
||||
protected int foundCardsToPick = 0;
|
||||
protected boolean optional;
|
||||
|
||||
protected boolean optional;
|
||||
|
||||
public LookLibraryAndPickControllerEffect(DynamicValue numberOfCards, boolean mayShuffleAfter, DynamicValue numberToPick, FilterCard pickFilter, boolean putOnTop) {
|
||||
this(numberOfCards, mayShuffleAfter, numberToPick, pickFilter, putOnTop, true);
|
||||
}
|
||||
|
||||
public LookLibraryAndPickControllerEffect(DynamicValue numberOfCards, boolean mayShuffleAfter, DynamicValue numberToPick, FilterCard pickFilter, boolean putOnTop, boolean reveal) {
|
||||
public LookLibraryAndPickControllerEffect(DynamicValue numberOfCards, boolean mayShuffleAfter, DynamicValue numberToPick, FilterCard pickFilter, boolean putOnTop, boolean reveal) {
|
||||
this(numberOfCards, mayShuffleAfter, numberToPick, pickFilter, Zone.LIBRARY, putOnTop, reveal);
|
||||
}
|
||||
|
||||
public LookLibraryAndPickControllerEffect(DynamicValue numberOfCards, boolean mayShuffleAfter, DynamicValue numberToPick, FilterCard pickFilter, Zone targetZoneLookedCards, boolean putOnTop, boolean reveal) {
|
||||
|
||||
public LookLibraryAndPickControllerEffect(DynamicValue numberOfCards, boolean mayShuffleAfter, DynamicValue numberToPick, FilterCard pickFilter, Zone targetZoneLookedCards, boolean putOnTop, boolean reveal) {
|
||||
super(Outcome.DrawCard, numberOfCards, mayShuffleAfter, targetZoneLookedCards, putOnTop);
|
||||
this.numberToPick = numberToPick;
|
||||
this.filter = pickFilter;
|
||||
this.revealPickedCards = reveal;
|
||||
this.revealPickedCards = reveal;
|
||||
}
|
||||
|
||||
public LookLibraryAndPickControllerEffect(final LookLibraryAndPickControllerEffect effect) {
|
||||
public LookLibraryAndPickControllerEffect(final LookLibraryAndPickControllerEffect effect) {
|
||||
super(effect);
|
||||
this.numberToPick = effect.numberToPick.clone();
|
||||
this.filter = effect.filter.copy();
|
||||
this.revealPickedCards = effect.revealPickedCards;
|
||||
this.targetPickedCards = effect.targetPickedCards;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public LookLibraryAndPickControllerEffect copy() {
|
||||
return new LookLibraryAndPickControllerEffect(this);
|
||||
|
||||
|
||||
}
|
||||
@Override
|
||||
protected void cardLooked(Card card, Game game, Ability source) {
|
||||
|
||||
|
||||
if (numberToPick.calculate(game, source) > 0 && filter.match(card, game))
|
||||
++foundCardsToPick;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void actionWithSelectedCards(Cards cards, Game game, Ability source, String windowName) {
|
||||
Player player = game.getPlayer(source.getControllerId());
|
||||
if (player != null && foundCardsToPick > 0) {
|
||||
if (!optional || player.chooseUse(Outcome.DrawCard, "Do you wish to reveal "+filter.getMessage()+" and put it into your hand?", game)) {
|
||||
FilterCard pickFilter = filter.copy();
|
||||
// Set the pick message
|
||||
StringBuilder sb = new StringBuilder(filter.getMessage()).append(" to ");
|
||||
if (revealPickedCards) {
|
||||
sb.append("reveal and ");
|
||||
}
|
||||
sb.append("put into your hand");
|
||||
|
||||
pickFilter.setMessage(sb.toString());
|
||||
TargetCard target = new TargetCard(Zone.PICK, pickFilter);
|
||||
if (player.choose(Outcome.DrawCard, cards, target, game)) {
|
||||
Card card = cards.get(target.getFirstTarget(), game);
|
||||
if (card != null) {
|
||||
cards.remove(card);
|
||||
card.moveToZone(targetPickedCards, source.getId(), game, false);
|
||||
if (revealPickedCards) {
|
||||
Cards reveal = new CardsImpl(Zone.OUTSIDE);
|
||||
reveal.add(card);
|
||||
player.revealCards(windowName, reveal, game);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!optional || player.chooseUse(Outcome.DrawCard, "Do you wish to reveal "+filter.getMessage()+" and put it into your hand?", game)) {
|
||||
FilterCard pickFilter = filter.copy();
|
||||
// Set the pick message
|
||||
StringBuilder sb = new StringBuilder(filter.getMessage()).append(" to ");
|
||||
if (revealPickedCards) {
|
||||
sb.append("reveal and ");
|
||||
}
|
||||
sb.append("put into your hand");
|
||||
|
||||
pickFilter.setMessage(sb.toString());
|
||||
TargetCard target = new TargetCard(Zone.PICK, pickFilter);
|
||||
if (player.choose(Outcome.DrawCard, cards, target, game)) {
|
||||
Card card = cards.get(target.getFirstTarget(), game);
|
||||
if (card != null) {
|
||||
cards.remove(card);
|
||||
card.moveToZone(targetPickedCards, source.getId(), game, false);
|
||||
if (revealPickedCards) {
|
||||
Cards reveal = new CardsImpl(Zone.OUTSIDE);
|
||||
reveal.add(card);
|
||||
player.revealCards(windowName, reveal, game);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getText(Mode mode) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (numberToPick.calculate(null, null) > 0) {
|
||||
if (revealPickedCards) {
|
||||
sb.append(". You may reveal a ");
|
||||
sb.append(filter.getMessage()).append(" from among them and put it into your ");
|
||||
} else {
|
||||
sb.append(". Put one of them into your ");
|
||||
}
|
||||
sb.append(targetPickedCards.toString().toLowerCase());
|
||||
if (revealPickedCards) {
|
||||
sb.append(". You may reveal a ");
|
||||
sb.append(filter.getMessage()).append(" from among them and put it into your ");
|
||||
} else {
|
||||
sb.append(". Put one of them into your ");
|
||||
}
|
||||
sb.append(targetPickedCards.toString().toLowerCase());
|
||||
if (targetZoneLookedCards == Zone.LIBRARY) {
|
||||
sb.append(". Put the rest ");
|
||||
if (putOnTop)
|
||||
sb.append("back ");
|
||||
else
|
||||
sb.append("on the bottom of your library ");
|
||||
sb.append("in any order");
|
||||
} else if (targetZoneLookedCards == Zone.GRAVEYARD) {
|
||||
sb.append(" and the other into your graveyard");
|
||||
}
|
||||
sb.append(". Put the rest ");
|
||||
if (putOnTop)
|
||||
sb.append("back ");
|
||||
else
|
||||
sb.append("on the bottom of your library ");
|
||||
sb.append("in any order");
|
||||
} else if (targetZoneLookedCards == Zone.GRAVEYARD) {
|
||||
sb.append(" and the other into your graveyard");
|
||||
}
|
||||
}
|
||||
// get text frame from super class and inject action text
|
||||
return setText(mode, sb.toString());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue