CSY2030-assignment-2/src/main/java/com/r0r5chach/MainController.java

119 lines
3.3 KiB
Java
Raw Normal View History

2023-01-31 17:19:32 +00:00
package com.r0r5chach;
import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle;
import com.r0r5chach.r6.R6Player;
import com.r0r5chach.valorant.ValorantPlayer;
2023-01-31 17:19:32 +00:00
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
2023-01-31 17:19:32 +00:00
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.text.Text;
2023-01-31 17:19:32 +00:00
public class MainController implements Initializable {
2023-01-31 17:19:32 +00:00
private CompetitorList competitors;
private ArrayList<Integer> competitorIds;
@FXML
ListView<Integer> competitorsList;
@FXML
TextField playerNumber;
@FXML
TextField playerName;
@FXML
TextField playerLevel;
@FXML
Text favoriteCharacters;
@FXML
TextField favoriteAttacker;
2023-01-31 17:19:32 +00:00
@FXML
TextField favoriteDefender;
2023-02-01 13:51:13 +00:00
@FXML
TextField scores0;
@FXML
TextField scores1;
@FXML
TextField scores2;
@FXML
TextField scores3;
@FXML
TextField scores4;
@FXML
TextField scores5;
@FXML
TextField overallScore;
TextField[] scores;
@Override
public void initialize(URL url, ResourceBundle rb) {
2023-01-31 17:19:32 +00:00
loadCompetitors();
2023-02-01 13:51:13 +00:00
this.scores = new TextField[]{scores0, scores1, scores2, scores3, scores4, scores5};
loadView();
}
2023-01-31 17:19:32 +00:00
private void loadCompetitors(){
this.competitors = new Manager().getCompetitors();
this.competitorIds = new ArrayList<Integer>();
for (Competitor player : this.competitors.getCompetitors()) {
this.competitorIds.add(player.getPlayerNumber());
}
}
private void loadView() {
competitorsList.setItems(FXCollections.observableArrayList(this.competitorIds));
}
@FXML
public void getCompetitor() {
Competitor player = this.competitors.getCompetitors().get(this.competitorIds.indexOf(this.competitorsList.getSelectionModel().getSelectedItem()));
loadPlayer(player);
}
private void loadPlayer(Competitor player) {
this.playerNumber.setText(String.valueOf(player.getPlayerNumber()));
this.playerName.setText(player.getPlayerName().getFullName());
this.playerLevel.setText(player.getPlayerLevel().getRank());
2023-02-01 13:51:13 +00:00
loadFavoriteCharacters(player);
loadScores(player);
this.overallScore.setText(String.valueOf(player.getOverallScore()));
}
2023-02-01 13:51:13 +00:00
private void loadFavoriteCharacters(Competitor player) {
if (player instanceof R6Player) {
this.favoriteAttacker.setText(((R6Player) player).getFavoriteAttacker().getAttacker());
this.favoriteDefender.setText(((R6Player) player).getFavoriteDefender().getDefender());
this.favoriteDefender.visibleProperty().set(true);
this.favoriteCharacters.setText("Favorite Operators");
}
else if (player instanceof ValorantPlayer) {
this.favoriteAttacker.setText(((ValorantPlayer) player).getFavoriteAgent().getAgent());
this.favoriteDefender.visibleProperty().set(false);
this.favoriteCharacters.setText("Favorite Agent");
}
2023-02-01 13:51:13 +00:00
}
2023-02-01 13:51:13 +00:00
private void loadScores(Competitor player) {
int[] playerScores = player.getScores();
for (int i = 0; i < playerScores.length; i++) {
this.scores[i].setText(String.valueOf(playerScores[i]));
}
2023-01-31 17:19:32 +00:00
}
2023-01-31 18:25:23 +00:00
}