From 21792001f7d2ff62aaf5edbeb58e2346220d1b91 Mon Sep 17 00:00:00 2001 From: Joshua Perry <45966243+jpez-development@users.noreply.github.com> Date: Tue, 31 Jan 2023 14:54:05 +0000 Subject: [PATCH] packaged valorant classes --- .../java/org/r0r5chach/ValorantPlayer.java | 155 ------------------ src/main/java/org/r0r5chach/ValorantRank.java | 33 ---- .../{ => valorant}/ValorantAgent.java | 2 +- .../r0r5chach/valorant/ValorantPlayer.java | 51 ++++++ 4 files changed, 52 insertions(+), 189 deletions(-) delete mode 100644 src/main/java/org/r0r5chach/ValorantPlayer.java delete mode 100644 src/main/java/org/r0r5chach/ValorantRank.java rename src/main/java/org/r0r5chach/{ => valorant}/ValorantAgent.java (95%) create mode 100644 src/main/java/org/r0r5chach/valorant/ValorantPlayer.java diff --git a/src/main/java/org/r0r5chach/ValorantPlayer.java b/src/main/java/org/r0r5chach/ValorantPlayer.java deleted file mode 100644 index 5d5fb6a..0000000 --- a/src/main/java/org/r0r5chach/ValorantPlayer.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.r0r5chach; - -import java.text.DecimalFormat; -import java.util.Arrays; - -/** - * Class that defines the various attributes and methods associated with a Valorant Player - * @author r0r5chach - */ -public class ValorantPlayer { - /** - * The format to use when converting decimal numbers to strings - */ - private static final DecimalFormat df = new DecimalFormat("0.00"); - /** - * The number of the player in the competition - */ - private int playerNumber; - /** - * The name of the player in the competition - */ - private Name playerName; - /** - * The level the player plays at in the competition - * These are derived from the first 4 ranks of the normal game - */ - private ValorantRank playerLevel; - /** - * The character the player plays the most - */ - private ValorantAgent favouriteAgent; - /** - * The scores the player has received - */ - private int[] scores; - /** - * Constructs an object with attributes matching the parameters passed - * @param playerNumber the number of the player - * @param playerName the name of the player - * @param playerLevel the level of the player - * @param favouriteAgent the character the player plays most - */ - public ValorantPlayer(int playerNumber, Name playerName, ValorantRank playerLevel, ValorantAgent favouriteAgent, int[] scores) { - this.playerNumber = playerNumber; - this.playerName = playerName; - this.playerLevel = playerLevel; - this.favouriteAgent = favouriteAgent; - this.scores = scores; - } - /** - * Set the player's number to that of the parameter - * @param playerNumber the new number of the player - */ - public void setPlayerNumber(int playerNumber) { - this.playerNumber = playerNumber; - } - /** - * Set the player's name to that of the parameter - * @param playerName the new name of the player - */ - public void setPlayerName(Name playerName) { - this.playerName = playerName; - } - /** - * Set the player's level to that of the parameter - * @param playerLevel the new level of the player - */ - public void setPlayerLevel(ValorantRank playerLevel) { - this.playerLevel = playerLevel; - } - /** - * Set the player's most played character to that of the parameter - * @param favouriteAgent the new most played character of the player - */ - public void setFavouriteAgent(ValorantAgent favouriteAgent) { - this.favouriteAgent = favouriteAgent; - } - /** - * Set the player's scores - * @param scores the new scores for the player - */ - public void setScores(int[] scores) { - this.scores = scores; - } - /** - * Get the player's number - * @return the player's number - */ - public int getPlayerNumber() { - return this.playerNumber; - } - /** - * Get the player's name - * @return the player's name - */ - public Name getPlayerName() { - return this.playerName; - } - /** - * Get the player's level - * @return the player's level - */ - public ValorantRank getPlayerLevel() { - return this.playerLevel; - } - /** - * Get the player's most played character - * @return the player's most played character - */ - public ValorantAgent getFavouriteAgent() { - return this.favouriteAgent; - } - /** - * Get the player's scores - * @return an array containing the scores - */ - public int[] getScores() { - return this.scores; - } - /** - * Calculates and then returns the overall score of the player. - * The score is calculated by taking the natural log of each score and then dividing the sum by 1.93 - * @return an aggregate of the individual scores the player has achieved - */ - public double getOverallScore() { - double output = 0; - for (int score: getScores()) { - output += Math.log(score); //get the sum of the natural log of the scores - } - output /= 1.93; //divide the sum by 1.93 - if (output == Double.NEGATIVE_INFINITY) { - output = 0; - } - return Double.parseDouble(df.format(output)); //df.format() allows the scores to be formatted to 2 decimal places - } - /** - * Get all the attributes of the player - * @return all attributes of the player in a formatted string - */ - public String getFullDetails() { - return "Player Number: " + getPlayerNumber() + - "\nName: " + getPlayerName().getFullName() + - "\nPlayer Level: " + getPlayerLevel().getRank() + - "\nFavourite Agent: " + getFavouriteAgent().getAgent() + - "\nScores: " + Arrays.toString(getScores()).replace("[","").replace("]", "") + //replace() allows the array to not be surrounded by brackets - "\nOverall Score: " + getOverallScore(); - } - /** - * Get the important attributes of the player - * @return a formatted string containing the playerNumber, playerName, and overall score - */ - public String getShortDetails() { - return "CN " + getPlayerNumber() + " (" + getPlayerName().getInitials() + ") has overall score " + getOverallScore(); - } -} diff --git a/src/main/java/org/r0r5chach/ValorantRank.java b/src/main/java/org/r0r5chach/ValorantRank.java deleted file mode 100644 index 144ab28..0000000 --- a/src/main/java/org/r0r5chach/ValorantRank.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.r0r5chach; - -import java.util.Locale; - -/** - * All levels a ValorantPlayer can be - * @author r0r5chach - */ -public enum ValorantRank { - /** - * First Level - */ - IRON, - /** - * Second Level - */ - BRONZE, - /** - * Third Level - */ - SILVER, - /** - * Four Level - */ - GOLD; - /** - * Get the name of a level - * @return a formatted string containing the level name - */ - public String getRank() { - return this.name().charAt(0) + this.name().substring(1).toLowerCase(Locale.ROOT); //Capitalises the first letter and makes sure the other letters are lowercase - } -} diff --git a/src/main/java/org/r0r5chach/ValorantAgent.java b/src/main/java/org/r0r5chach/valorant/ValorantAgent.java similarity index 95% rename from src/main/java/org/r0r5chach/ValorantAgent.java rename to src/main/java/org/r0r5chach/valorant/ValorantAgent.java index 031e69f..0d80360 100644 --- a/src/main/java/org/r0r5chach/ValorantAgent.java +++ b/src/main/java/org/r0r5chach/valorant/ValorantAgent.java @@ -1,4 +1,4 @@ -package org.r0r5chach; +package org.r0r5chach.valorant; import java.util.Locale; diff --git a/src/main/java/org/r0r5chach/valorant/ValorantPlayer.java b/src/main/java/org/r0r5chach/valorant/ValorantPlayer.java new file mode 100644 index 0000000..883c7d8 --- /dev/null +++ b/src/main/java/org/r0r5chach/valorant/ValorantPlayer.java @@ -0,0 +1,51 @@ +package org.r0r5chach.valorant; + +import java.util.Arrays; + +import org.r0r5chach.Competitor; +import org.r0r5chach.Name; +import org.r0r5chach.Rank; +/** + * Class that defines the various attributes and methods associated with a Valorant Player + * @author r0r5chach + */ +public class ValorantPlayer extends Competitor { + private ValorantAgent favoriteAgent; + /** + * Constructs an object with attributes matching the parameters passed + * @param playerNumber the number of the player + * @param playerName the name of the player + * @param playerLevel the level of the player + * @param favoriteAgent the character the player plays most + */ + public ValorantPlayer(int playerNumber, Name playerName, Rank playerLevel, ValorantAgent favoriteAgent, int[] scores) { + super(playerNumber, playerName, playerLevel, scores); + this.favoriteAgent = favoriteAgent; + } + /** + * Set the player's most played character to that of the parameter + * @param favoriteAgent the new most played character of the player + */ + public void setFavoriteAgent(ValorantAgent favoriteAgent) { + this.favoriteAgent = favoriteAgent; + } + /** + * Get the player's most played character + * @return the player's most played character + */ + public ValorantAgent getFavoriteAgent() { + return this.favoriteAgent; + } + /** + * Get all the attributes of the player + * @return all attributes of the player in a formatted string + */ + public String getFullDetails() { + return "Player Number: " + getPlayerNumber() + + "\nName: " + getPlayerName().getFullName() + + "\nPlayer Level: " + getPlayerLevel().getRank() + + "\nFavorite Agent: " + getFavoriteAgent().getAgent() + + "\nScores: " + Arrays.toString(getScores()).replace("[","").replace("]", "") + //replace() allows the array to not be surrounded by brackets + "\nOverall Score: " + getOverallScore(); + } +}