Newer
Older
import achievements.Achievement;
import achievements.AchievementHandler;
import achievements.Achievement.Status;
import javafx.animation.TranslateTransition;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Point2D;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.SnapshotParameters;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
@FXML private ImageView iconLastCard;
@FXML private ImageView iconDeck;
@FXML private Label labelWishColor;
@FXML private Circle circleWishColor;
@FXML private ImageView imageViewWishColor;
@FXML private HBox hboxInfo;
@FXML private Label labelInfo;
@FXML private Button buttonInfo;
@FXML private Label labelChallengeCounter;
@FXML private ImageView imageViewDirection;
@FXML private Label labelDirection;
@FXML private Label labelAI1Name;
@FXML private Label labelAI2Name;
@FXML private Label labelAI3Name;
@FXML private Button buttonStart;
@FXML private MenuItem menuItem2;
@FXML private MenuItem menuItem3;
@FXML private ImageView imageViewLogo;
@FXML private Label labelLogo;
@FXML private Button buttonNewGame;
public AchievementHandler handler;
private int secretCounter;
private final ResourceBundle bundle = ResourceBundle.getBundle("application/", Locale.GERMANY);
private final double CARD_SPACING_LARGE = 14.0;
private final double CARD_SPACING_SMALL = - 25.0;
private final double CARD_SPACING_ULTRA_SMALL = - 35.0;
private final Point2D AI_1_STARTING_POINT = new Point2D(100.0, 75.0);
private Point2D AI_2_STARTING_POINT;
private Point2D AI_3_STARTING_POINT;
private final javafx.scene.paint.Color COLOR_YELLOW = javafx.scene.paint.Color.web("#FFAA00");
private final javafx.scene.paint.Color COLOR_RED = javafx.scene.paint.Color.web("#FF5555");
private final javafx.scene.paint.Color COLOR_BLUE = javafx.scene.paint.Color.web("#5555FD");
private final javafx.scene.paint.Color COLOR_GREEN = javafx.scene.paint.Color.web("#55AA55");
imageViewWishColor.setImage(new Image("/images/circle-all.png"));
PLAYER_STARTING_POINT = new Point2D(100.0, stage.getScene().getHeight() - 50.0 - CARD_HEIGHT);
AI_2_STARTING_POINT = new Point2D(stage.getScene().getWidth() - CARD_HEIGHT - 30, 70.0);
AI_3_STARTING_POINT = new Point2D(60.0, 70.0);
clearAll();
settings = new Settings();
try
{
settings.load();
}
catch(Exception e)
{
e.printStackTrace();
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
}
handler = new AchievementHandler(stage);
handler.setPath(System.getenv("APPDATA") + "/Deadlocker/UNO/achievements.save");
try
{
handler.loadAchievements();
}
catch(Exception e)
{
//falls die Datei nicht existiert, wird versucht die neu zu erzeugen
createAchievements();
try
{
handler.loadAchievements();
}
catch(Exception ex)
{
}
}
iconLastCard.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent event)
{
if(secretCounter < 5)
{
secretCounter++;
if(secretCounter == 5)
{
try
{
handler.unlockAchievement(9);
handler.saveAndLoad();
}
catch(Exception e)
{
}
}
}
else
{
}
}
});
public void setStage(Stage stage)
{
this.stage = stage;
}
public void startGame()
{
iconDeck.setImage(createEmptyBackCard());
iconDeck.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent event)
{
if(game.isRunning() && game.getCurrentPlayer() == 1 && !game.isShowingInfo() && !playerHasDrawn)
Card drawedCard = game.getDeck().drawCard(game.getDeadDeck());
ArrayList<Card> allCards = new ArrayList<Card>();
allCards.add(drawedCard);
moveCardFromDeckToPlayer(allCards);
game = new Game(this, settings.getNumberOfAIs(), settings.getAiSpeed());
setLabelNames(game.getPlayer(), game.getAIs());
buttonStart.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
buttonStart.setVisible(false);
game.start();
}
});
buttonStart.setVisible(true);
public void showNeutralUI()
{
imageViewLogo.setVisible(true);
labelLogo.setVisible(true);
buttonNewGame.setVisible(true);
}
public void hideNeutralUI()
{
imageViewLogo.setVisible(false);
labelLogo.setVisible(false);
buttonNewGame.setVisible(false);
}
public void setLabelNames(Player player, ArrayList<AI> ais)
{
labelAI2Name.setVisible(false);
labelAI3Name.setVisible(false);
labelAI1Name.setText(ais.get(0).getName());
labelAI1Name.setVisible(true);
if(ais.size() >= 2)
{
labelAI2Name.setText(ais.get(1).getName());
labelAI2Name.setVisible(true);
}
if(ais.size() == 3)
{
labelAI1Name.setText(ais.get(1).getName());
labelAI2Name.setText(ais.get(2).getName());
labelAI3Name.setText(ais.get(0).getName());
case YELLOW:
circleWishColor.setFill(COLOR_YELLOW);
circleWishColor.setVisible(true);
break;
case RED:
circleWishColor.setFill(COLOR_RED);
circleWishColor.setVisible(true);
break;
case BLUE:
circleWishColor.setFill(COLOR_BLUE);
circleWishColor.setVisible(true);
break;
case GREEN:
circleWishColor.setFill(COLOR_GREEN);
circleWishColor.setVisible(true);
break;
case ALL:
showImageViewWishColor();
break;
default:
break;
public void showImageViewWishColor()
{
hideCircleWishColor();
imageViewWishColor.setVisible(true);
}
public void hideCircleWishColor()
{
labelWishColor.setVisible(false);
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
circleWishColor.setVisible(false);
}
public void hideImageViewWishColor()
{
imageViewWishColor.setVisible(false);
circleWishColor.setVisible(false);
}
public void hideWishColor()
{
hideCircleWishColor();
hideImageViewWishColor();
}
public void hideInfo()
{
hboxInfo.setVisible(false);
}
public void showInfo(String text, int numberOfCards)
{
labelInfo.setText(text);
buttonInfo.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
if(game.getChallengeCounter() > 10 )
{
try
{
handler.unlockAchievement(5);
handler.saveAndLoad();
}
catch(Exception e)
{
}
}
moveCardFromDeckToPlayer(game.getDeck().drawCards(game.getChallengeCounter(), game.getDeadDeck()));
}
});
hboxInfo.setVisible(true);
public void hideLabelChallengeCounter()
{
labelChallengeCounter.setVisible(false);
}
public void showLabelChallengeCounter(String text)
{
labelChallengeCounter.setText(text);
labelChallengeCounter.setVisible(true);
}
public void hideImageViewDirection()
{
imageViewDirection.setVisible(false);
labelDirection.setVisible(false);
}
public void setImageViewDirection(Direction direction)
{
imageViewDirection.setVisible(true);
labelDirection.setVisible(true);
if(direction.equals(Direction.RIGHT))
{
imageViewDirection.setImage(new Image("/images/DIRECTION_RIGHT.png"));
}
else
{
imageViewDirection.setImage(new Image("/images/DIRECTION_LEFT.png"));
}
}
public void setLabelCurrentPlayer(String text)
{
labelCurrentPlayer.setText(text);
}
iconLastCard.setImage(createCard(card, true).getImage());
private ImageView createBackCard()
{
ImageView imageView = new ImageView(new Image("images/card-back.png"));
imageView.setFitHeight(CARD_HEIGHT);
imageView.setFitWidth(CARD_WIDTH);
private ImageView createCard(Card card, boolean valid)
ImageView imageView = new ImageView(new Image("images/" + card.getType() + "-" + card.getColor() + ".png"));
imageView.setFitHeight(CARD_HEIGHT);
imageView.setFitWidth(CARD_WIDTH);
SnapshotParameters parameters = new SnapshotParameters();
parameters.setFill(javafx.scene.paint.Color.TRANSPARENT);
WritableImage snapshot = imageView.snapshot(parameters, null);
if(card.getType().equals(CardType.DRAW_FOUR) && card.getType().equals(CardType.WILD))
javafx.scene.paint.Color oldColor = snapshot.getPixelReader().getColor(x, y).desaturate().desaturate().brighter();
snapshot.getPixelWriter().setColor(x, y, new javafx.scene.paint.Color(oldColor.getRed(), oldColor.getGreen(), oldColor.getBlue(), oldColor.getOpacity() * 1.0));
}
else
{
for(int x = 0; x < snapshot.getWidth(); x++)
{
for(int y = 0; y < snapshot.getHeight(); y++)
{
javafx.scene.paint.Color oldColor = snapshot.getPixelReader().getColor(x, y).darker().desaturate();
snapshot.getPixelWriter().setColor(x, y, new javafx.scene.paint.Color(oldColor.getRed(), oldColor.getGreen(), oldColor.getBlue(), oldColor.getOpacity() * 1.0));
}
}
imageView.setImage(snapshot);
}
imageView.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent event)
{
if(game.isRunning() && game.getCurrentPlayer() == 1)
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
if(card.getType().equals(CardType.WILD) || card.getType().equals(CardType.DRAW_FOUR))
{
try
{
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/application/ColorChooser.fxml"));
Parent root = (Parent)fxmlLoader.load();
Stage newStage = new Stage();
newStage.setScene(new Scene(root, 300, 300));
newStage.setTitle("Wunschfarbe");
newStage.initOwner(stage);
newStage.getIcons().add(icon);
ColorChooserController newController = fxmlLoader.getController();
newController.init(newStage, main);
newStage.initModality(Modality.APPLICATION_MODAL);
newStage.setResizable(false);
newStage.showAndWait();
}
catch(IOException e1)
{
e1.printStackTrace();
}
}
else
{
chosenWishColor = null;
}
moveCardToDeadDeck(imageView, card, chosenWishColor);
public void moveCardToDeadDeck(ImageView view, Card card, Color newWishColor)
{
Point2D deckPosition = iconLastCard.localToScene(Point2D.ZERO);
TranslateTransition translateTransition = new TranslateTransition();
translateTransition.setDuration(Duration.millis(500));
translateTransition.setNode(view);
translateTransition.setCycleCount(1);
translateTransition.setAutoReverse(false);
translateTransition.setFromX(0);
translateTransition.setFromY(0);
translateTransition.setToX( - (view.getX() - deckPosition.getX()));
translateTransition.setToY( - (view.getY() - deckPosition.getY()));
translateTransition.setOnFinished(new EventHandler<ActionEvent>()
@Override
public void handle(ActionEvent event)
{
if(newWishColor != null)
{
showCircleWishColor(newWishColor);
}
else
{
if(playedCard.getType().equals(CardType.DRAW_FOUR) && game.getDeadDeck().getCards().get(game.getDeadDeck().getCards().size()-1).getType().equals(CardType.DRAW_FOUR) && game.getChallengeCounter() > 0)
{
try
{
handler.unlockAchievement(6);
handler.saveAndLoad();
}
catch(Exception e)
{
}
}
if(playedCard.getType().equals(CardType.WILD))
{
try
{
handler.unlockAchievement(7);
handler.saveAndLoad();
}
catch(Exception e)
{
}
}
public void moveAICardToDeadDeck(AI ai, int currentPlayer, Card card, Color newWishColor)
ObservableList<Node> nodes = mainPane.getChildren();
ArrayList<Integer> possibleNodes = new ArrayList<Integer>();
for(int i = 0; i < nodes.size(); i++)
int viewNumber = random.nextInt(possibleNodes.size());
ImageView view = (ImageView)mainPane.getChildren().get(possibleNodes.get(viewNumber));
view.setImage(new Image("images/" + card.getType() + "-" + card.getColor() + ".png"));
Point2D deckPosition = iconLastCard.localToScene(Point2D.ZERO);
TranslateTransition translateTransition = new TranslateTransition();
translateTransition.setDuration(Duration.millis(500));
translateTransition.setNode(view);
translateTransition.setCycleCount(1);
translateTransition.setAutoReverse(false);
translateTransition.setFromX(0);
translateTransition.setFromY(0);
translateTransition.setToX( - (view.getX() - deckPosition.getX()));
translateTransition.setToY( - (view.getY() - deckPosition.getY()));
translateTransition.setOnFinished(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
if(newWishColor != null)
{
showCircleWishColor(newWishColor);
}
else
{
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
public void moveCardFromDeckToPlayer(ArrayList<Card> cards)
{
Point2D deckPosition = iconDeck.localToScene(Point2D.ZERO);
ImageView view = createCard(cards.get(drawCounter), true);
view.setId("drawAnimation");
view.setX(deckPosition.getX());
view.setY(deckPosition.getY());
mainPane.getChildren().add(view);
TranslateTransition translateTransition = new TranslateTransition();
translateTransition.setDuration(Duration.millis(500));
translateTransition.setNode(view);
translateTransition.setCycleCount(1);
translateTransition.setAutoReverse(false);
translateTransition.setFromX(0);
translateTransition.setFromY(0);
translateTransition.setToX( - (view.getX() - getPositionOfRightCard(null)));
translateTransition.setToY( - (view.getY() - PLAYER_STARTING_POINT.getY()));
translateTransition.setOnFinished(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
ObservableList<Node> nodes = mainPane.getChildren();
Iterator<Node> iterator = nodes.iterator();
while(iterator.hasNext())
{
if(iterator.next().getId().equals("drawAnimation"))
{
iterator.remove();
}
}
game.getPlayer().drawCard(cards.get(drawCounter));
setPlayerDeck(game.getPlayer().getDeck());
drawCounter++;
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
if(drawCounter < cards.size())
{
moveCardFromDeckToPlayer(cards);
}
else
{
game.setShowingInfo(false);
hideInfo();
drawCounter = 0;
game.draw();
}
}
});
translateTransition.play();
}
private double getPositionOfRightCard(AI ai)
{
if(ai == null)
{
double maxWidth = stage.getScene().getWidth() - (PLAYER_STARTING_POINT.getX() * 2) - CARD_WIDTH;
int deckSize = game.getPlayer().getDeckSize();
if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth)
{
if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth)
{
if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth)
{
return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL;
return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL;
return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM;
return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE;
}
}
//AI 1 (Above Player)
else
{
double maxWidth = stage.getScene().getWidth() - (AI_1_STARTING_POINT.getX() * 2) - CARD_WIDTH;
int deckSize = ai.getDeckSize();
if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth)
{
if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth)
{
if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth)
{
return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL;
return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL;
return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM;
return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE;
}
}
}
private double getPositionOfBottomCard(AI ai)
{
double maxHeight = stage.getScene().getHeight() - ((AI_2_STARTING_POINT.getY() + 40.0) * 2) - CARD_WIDTH;
int deckSize = ai.getDeckSize();
if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxHeight)
{
if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxHeight)
{
if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxHeight)
{
return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL;
return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL;
return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM;
return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE;
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
public void moveCardFromDeckToAI(AI ai, ArrayList<Card> cards)
{
Card card = game.getDeck().drawCard(game.getDeadDeck());
Point2D deckPosition = iconDeck.localToScene(Point2D.ZERO);
ImageView view = createBackCard();
view.setId("drawAnimation");
view.setX(deckPosition.getX());
view.setY(deckPosition.getY());
mainPane.getChildren().add(view);
TranslateTransition translateTransition = new TranslateTransition();
translateTransition.setDuration(Duration.millis(500));
translateTransition.setNode(view);
translateTransition.setCycleCount(1);
translateTransition.setAutoReverse(false);
translateTransition.setFromX(0);
translateTransition.setFromY(0);
switch(ai.getID())
{
case 1: translateTransition.setToX( - (view.getX() - getPositionOfRightCard(ai)));
translateTransition.setToY( - (view.getY() - AI_1_STARTING_POINT.getY()));
break;
case 2: translateTransition.setToX( - (view.getX() - AI_2_STARTING_POINT.getX()));
translateTransition.setToY( - (view.getY() - getPositionOfBottomCard(ai)));
break;
case 3: translateTransition.setToX( - (view.getX() - AI_3_STARTING_POINT.getX()));
translateTransition.setToY( - (view.getY() - getPositionOfBottomCard(ai)));
break;
default: break;
}
translateTransition.setOnFinished(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
ObservableList<Node> nodes = mainPane.getChildren();
Iterator<Node> iterator = nodes.iterator();
while(iterator.hasNext())
{
if(iterator.next().getId().equals("drawAnimation"))
{
iterator.remove();
}
}
ai.drawCard(cards.get(drawCounter));
setAIDeck(ai);
drawCounter++;
if(drawCounter < cards.size())
{
moveCardFromDeckToAI(ai, cards);
}
else
{
game.setShowingInfo(false);
hideInfo();
drawCounter = 0;
game.draw();
}
}
});
translateTransition.play();
}
ObservableList<Node> nodes = mainPane.getChildren();
Iterator<Node> iterator = nodes.iterator();
{
if(iterator.next().getId().equals("player"))
{
iterator.remove();
}
}
}
public void setPlayerDeck(ArrayList<Card> deck)
for(int i = 0; i < deck.size(); i++)
{
ImageView current = createCard(deck.get(i), true);
current.setX(AI_1_STARTING_POINT.getX() + CARD_WIDTH);
}
else
{
double maxWidth = stage.getScene().getWidth() - (PLAYER_STARTING_POINT.getX() * 2) - CARD_WIDTH;
if((deck.size() * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth)
if((deck.size() * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth)
if((deck.size() * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth)
{
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL);
}
else
{
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL);
}
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM);
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE);
current.setY(PLAYER_STARTING_POINT.getY());
public void setValidPlayerDeck(ArrayList<Card> deck, ArrayList<Card> validDeck)
for(int i = 0; i < deck.size(); i++)
{
Card currentCard = deck.get(i);
current.setY(PLAYER_STARTING_POINT.getY() - CARD_HEIGHT/4);
current.setY(PLAYER_STARTING_POINT.getY());
current.setId("player");
mainPane.getChildren().add(current);
current.setX(AI_1_STARTING_POINT.getX() + CARD_WIDTH);
}
else
{
double maxWidth = stage.getScene().getWidth() - (PLAYER_STARTING_POINT.getX() * 2) - CARD_WIDTH;
if((deck.size() * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth)
if((deck.size() * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth)
if((deck.size() * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth)
{
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL);
}
else
{
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL);
}
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM);
current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE);
{
ObservableList<Node> nodes = mainPane.getChildren();
Iterator<Node> iterator = nodes.iterator();
if(iterator.next().getId().contains("ai" + ai.getID()))
ArrayList<Card> deck = ai.getDeck();
double maxWidth;
double maxHeight;
case 1: maxWidth = stage.getScene().getWidth() - ((AI_1_STARTING_POINT.getX() + 25.0) * 2) - CARD_WIDTH;
deckSize = ai.getDeckSize();
current.setX(AI_1_STARTING_POINT.getX() + CARD_WIDTH);
}
else
{
if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth)
if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth)
if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth)
{
current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL);
}
else
{
current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL);
}