Fix pile effects (Fact or Fiction) for new GUI code.

This commit is contained in:
elcnesh
2014-09-19 07:39:45 +00:00
parent cdcb9c84be
commit 66768b6ddf

View File

@@ -1220,32 +1220,47 @@ public class PlayerControllerHuman extends PlayerController {
final String[] possibleValues = { p1Str , p2Str }; final String[] possibleValues = { p1Str , p2Str };
return SGuiDialog.confirm(getGui(), gameView.getCardView(sa.getHostCard()), "Choose a Pile", possibleValues); return SGuiDialog.confirm(getGui(), gameView.getCardView(sa.getHostCard()), "Choose a Pile", possibleValues);
} }
else {
final Card[] disp = new Card[pile1.size() + pile2.size() + 2]; mayLookAt.addAll(pile1);
disp[0] = new Card(-1); mayLookAt.addAll(pile2);
disp[0].setName("Pile 1");
for (int i = 0; i < pile1.size(); i++) { final int idPile1 = Integer.MIN_VALUE, idPile2 = Integer.MIN_VALUE + 1;
disp[1 + i] = pile1.get(i); final List<CardView> cards = Lists.newArrayListWithCapacity(pile1.size() + pile2.size() + 2);
final CardView pileView1 = new CardView(true) {
@Override
public String toString() {
return "--- Pile 1 ---";
} }
disp[pile1.size() + 1] = new Card(-2); };
disp[pile1.size() + 1].setName("Pile 2"); pileView1.setId(idPile1);
for (int i = 0; i < pile2.size(); i++) { cards.add(pileView1);
disp[pile1.size() + i + 2] = pile2.get(i); cards.addAll(getCardViews(pile1));
final CardView pileView2 = new CardView(true) {
@Override
public String toString() {
return "--- Pile 2 ---";
} }
};
pileView2.setId(idPile2);
cards.add(pileView2);
cards.addAll(getCardViews(pile2));
// make sure Pile 1 or Pile 2 is clicked on // make sure Pile 1 or Pile 2 is clicked on
while (true) { boolean result;
final Object o = SGuiChoose.one(getGui(), "Choose a pile", disp); while (true) {
final Card c = (Card) o; final CardView chosen = SGuiChoose.one(getGui(), "Choose a pile", cards);
String name = c.getName(); if (chosen.equals(pileView1)) {
result = true;
if (!(name.equals("Pile 1") || name.equals("Pile 2"))) { break;
continue; } else if (chosen.equals(pileView2)) {
} result = false;
break;
return name.equals("Pile 1");
} }
} }
mayLookAt.clear();
return result;
} }
@Override @Override