mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
ChooseName now uses ICardFaces for selecting a CardName.
that now makes it working for naming an alternate state of a card.
This commit is contained in:
@@ -38,7 +38,9 @@ import forge.GuiBase;
|
||||
import forge.LobbyPlayer;
|
||||
import forge.achievement.AchievementCollection;
|
||||
import forge.ai.GameState;
|
||||
import forge.card.CardDb;
|
||||
import forge.card.ColorSet;
|
||||
import forge.card.ICardFace;
|
||||
import forge.card.MagicColor;
|
||||
import forge.card.mana.ManaCost;
|
||||
import forge.card.mana.ManaCostShard;
|
||||
@@ -1148,9 +1150,9 @@ public class PlayerControllerHuman
|
||||
}
|
||||
|
||||
@Override
|
||||
public PaperCard chooseSinglePaperCard(final SpellAbility sa, final String message, final Predicate<PaperCard> cpp, final String name) {
|
||||
final Iterable<PaperCard> cardsFromDb = FModel.getMagicDb().getCommonCards().getUniqueCards();
|
||||
final List<PaperCard> cards = Lists.newArrayList(Iterables.filter(cardsFromDb, cpp));
|
||||
public ICardFace chooseSingleCardFace(final SpellAbility sa, final String message, final Predicate<ICardFace> cpp, final String name) {
|
||||
final Iterable<ICardFace> cardsFromDb = FModel.getMagicDb().getCommonCards().getAllFaces();
|
||||
final List<ICardFace> cards = Lists.newArrayList(Iterables.filter(cardsFromDb, cpp));
|
||||
Collections.sort(cards);
|
||||
return getGui().one(message, cards);
|
||||
}
|
||||
@@ -1372,9 +1374,10 @@ public class PlayerControllerHuman
|
||||
}
|
||||
|
||||
@Override
|
||||
public String chooseCardName(final SpellAbility sa, final Predicate<PaperCard> cpp, final String valid, final String message) {
|
||||
public String chooseCardName(final SpellAbility sa, final Predicate<ICardFace> cpp, final String valid, final String message) {
|
||||
while (true) {
|
||||
final PaperCard cp = chooseSinglePaperCard(sa, message, cpp, sa.getHostCard().getName());
|
||||
final ICardFace cardFace = chooseSingleCardFace(sa, message, cpp, sa.getHostCard().getName());
|
||||
final PaperCard cp = FModel.getMagicDb().getCommonCards().getCard(cardFace.getName());
|
||||
final Card instanceForPlayer = Card.fromPaperCard(cp, player); // the Card instance for test needs a game to be tested
|
||||
if (instanceForPlayer.isValid(valid, sa.getHostCard().getController(), sa.getHostCard(), sa)) {
|
||||
return cp.getName();
|
||||
@@ -1768,15 +1771,18 @@ public class PlayerControllerHuman
|
||||
return;
|
||||
}
|
||||
|
||||
final List<PaperCard> cards = Lists.newArrayList(FModel.getMagicDb().getCommonCards().getUniqueCards());
|
||||
Collections.sort(cards);
|
||||
final CardDb carddb = FModel.getMagicDb().getCommonCards();
|
||||
final List<ICardFace> faces = Lists.newArrayList(carddb.getAllFaces());
|
||||
Collections.sort(faces);
|
||||
|
||||
// use standard forge's list selection dialog
|
||||
final IPaperCard c = getGui().oneOrNone("Name the card", cards);
|
||||
if (c == null) {
|
||||
final ICardFace f = getGui().oneOrNone("Name the card", faces);
|
||||
if (f == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final PaperCard c = carddb.getUniqueByName(f.getName());
|
||||
|
||||
game.getAction().invoke(new Runnable() { @Override public void run() {
|
||||
game.getAction().moveToHand(Card.fromPaperCard(c, p));
|
||||
}});
|
||||
@@ -1792,15 +1798,18 @@ public class PlayerControllerHuman
|
||||
return;
|
||||
}
|
||||
|
||||
final List<PaperCard> cards = Lists.newArrayList(FModel.getMagicDb().getCommonCards().getUniqueCards());
|
||||
Collections.sort(cards);
|
||||
final CardDb carddb = FModel.getMagicDb().getCommonCards();
|
||||
final List<ICardFace> faces = Lists.newArrayList(carddb.getAllFaces());
|
||||
Collections.sort(faces);
|
||||
|
||||
// use standard forge's list selection dialog
|
||||
final IPaperCard c = getGui().oneOrNone("Name the card", cards);
|
||||
if (c == null) {
|
||||
final ICardFace f = getGui().oneOrNone("Name the card", faces);
|
||||
if (f == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final PaperCard c = carddb.getUniqueByName(f.getName());
|
||||
|
||||
game.getAction().invoke(new Runnable() {
|
||||
@Override public void run() {
|
||||
final Card forgeCard = Card.fromPaperCard(c, p);
|
||||
@@ -1931,4 +1940,10 @@ public class PlayerControllerHuman
|
||||
hand.reorder(game.getCard(card), index);
|
||||
player.updateZoneForView(hand);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String chooseCardName(SpellAbility sa, List<ICardFace> faces, String message) {
|
||||
ICardFace face = getGui().one(message, faces);
|
||||
return face == null ? "" : face.getName();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user