diff --git a/pom.xml b/pom.xml index a9f53f868..c1663a51a 100755 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ jar - mcMMO.jar + ${project.artifactId} ${basedir}/src/main/java @@ -77,9 +77,6 @@ src/main/assembly/package.xml - @@ -245,7 +242,6 @@ - UNDEFINED UTF-8 diff --git a/src/main/assembly/package.xml b/src/main/assembly/package.xml index daa812cb8..465536829 100644 --- a/src/main/assembly/package.xml +++ b/src/main/assembly/package.xml @@ -6,9 +6,9 @@ - ${project.build.directory}/${project.artifactId}.jar + ${project.build.directory}/${artifactId}.jar / - + mcMMO.jar \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/config/ConfigConstants.java b/src/main/java/com/gmail/nossr50/config/ConfigConstants.java index 382f71c8d..37882454a 100644 --- a/src/main/java/com/gmail/nossr50/config/ConfigConstants.java +++ b/src/main/java/com/gmail/nossr50/config/ConfigConstants.java @@ -12,6 +12,9 @@ public class ConfigConstants { private final static String[] EXAMPLE_BLACKLIST_WORLDS = {"Example_15434453", "Example_2324423", "Example_323423465"}; public final static ArrayList EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT; + public final static String SKILL_SCALING_BENEFIT_EXPLANATION = "\nSub-Skills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " + + "\n a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of that sub-skill."; + //Add the worlds to the list static { EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT = new ArrayList<>(); diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillRetro.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillRetro.java index b6bd13f94..cf2580a91 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillRetro.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillRetro.java @@ -12,16 +12,18 @@ public class ConfigScalingSubSkillRetro { public static final int MAX_BONUS_LEVEL_DEFAULT = 1000; public static final double CHANCE_AT_MAX_SKILL_DEFAULT = 100.0D; - @Setting(value = "Retro-Mode-Max-Bonus-Level", comment = "At the max bonus level a player will have full benefits from this scaling skill." + + @Setting(value = "Max-Bonus-Level", comment = "Max bonus level is the level a player needs to reach in this skill to receive maximum benefits, such as better RNG odds or otherwise." + "\nSkills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " + "\n a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of the sub-skill." + "\nNote: This is the setting for RETRO MODE!" + "\nDefault value: "+MAX_BONUS_LEVEL_DEFAULT) private int maxBonusLevel = MAX_BONUS_LEVEL_DEFAULT; - @Setting(value = "Retro-Mode-Success-Rate-Cap-Percentage", comment = "This is the odds for RNG components of this sub-skill to succeed when a player has reached \"Max-Bonus-Level\"." + + @Setting(value = "Max-Success-Chance", comment = "The maximum success chance for this Sub-Skill." + + "\nA value of 100.0 would be equivalent to 100% chance of success." + + "\nPlayers only have Max-Success-Chance when their skill level has reached the maximum bonus level." + "\nMax skill chance is dynamically adjusted based on the players level difference from the \"Max-Bonus-Level\", you can think of it as a curve where reaching \"Max-Bonus-Level\" is the peak." + - "\nAs an example, imagine \"Retro-Mode-Success-Rate-Cap-Percentage\" was set to " + FIFTY_PERCENT_EXAMPLE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + + "\nAs an example, imagine \"Max-Success-Chance\" was set to " + FIFTY_PERCENT_EXAMPLE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + "\n and the player was level " + FIFTY_PERCENT_EXAMPLE + " for this skill, that would give the player " + ODDS_PERCENTAGE_EXAMPLE + " odds to succeed with this skill." + "\nNote: This is the setting for RETRO MODE!" + "\nDefault value: "+CHANCE_AT_MAX_SKILL_DEFAULT) diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillStandard.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillStandard.java index 8d78cefbc..a99f69b8d 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillStandard.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkillStandard.java @@ -12,16 +12,18 @@ public class ConfigScalingSubSkillStandard { public static final int MAX_BONUS_LEVEL_DEFAULT = 100; public static final double CHANCE_AT_MAX_SKILL_DEFAULT = 100.0D; - @Setting(value = "Standard-Mode-Max-Bonus-Level", comment = "At the max bonus level a player will have full benefits from this scaling skill." + + @Setting(value = "Max-Bonus-Level", comment = "Max bonus level is the level a player needs to reach in this skill to receive maximum benefits, such as better RNG odds or otherwise." + "\nSkills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " + "\n a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of the sub-skill." + "\nNote: This is the setting for STANDARD MODE!" + "\nDefault value: "+MAX_BONUS_LEVEL_DEFAULT) private int maxBonusLevel = MAX_BONUS_LEVEL_DEFAULT; - @Setting(value = "Standard-Mode-Success-Rate-Cap-Percentage", comment = "This is the odds for RNG components of this sub-skill to succeed when a player has reached \"Max-Bonus-Level\"." + + @Setting(value = "Max-Success-Chance", comment = "The maximum success chance for this Sub-Skill." + + "\nA value of 100.0 would be equivalent to 100% chance of success." + + "\nPlayers only have Max-Success-Chance when their skill level has reached the maximum bonus level." + "\nMax skill chance is dynamically adjusted based on the players level difference from the \"Max-Bonus-Level\", you can think of it as a curve where reaching \"Max-Bonus-Level\" is the peak." + - "\nAs an example, imagine \"Standard-Mode-Success-Rate-Cap-Percentage\" was set to " + FIFTY_PERCENT_EXAMPLE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + + "\nAs an example, imagine \"Max-Success-Chance\" was set to " + FIFTY_PERCENT_EXAMPLE + " and the \"Max-Bonus-Level\" was " + MAX_BONUS_LEVEL_EXAMPLE + "," + "\n and the player was level " + FIFTY_PERCENT_EXAMPLE + " for this skill, that would give the player " + ODDS_PERCENTAGE_EXAMPLE + " odds to succeed with this skill." + "\nNote: This is the setting for STANDARD MODE!" + "\nDefault value: "+CHANCE_AT_MAX_SKILL_DEFAULT) diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkill.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigSubSkillScalingRNG.java similarity index 98% rename from src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkill.java rename to src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigSubSkillScalingRNG.java index 2fac211a4..01dca3273 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigScalingSubSkill.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/ConfigSubSkillScalingRNG.java @@ -4,7 +4,7 @@ import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @ConfigSerializable -public class ConfigScalingSubSkill { +public class ConfigSubSkillScalingRNG { @Setting(value = "Standard-Mode-Scaling-Settings", comment = "Standard mode is the new default level scaling for mcMMO" + "\nMost skills in standard mode scale from 1-100, maxing out at 100." + diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/ConfigAcrobatics.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/ConfigAcrobatics.java index d48333ab2..31b76866e 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/ConfigAcrobatics.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/ConfigAcrobatics.java @@ -1,8 +1,27 @@ package com.gmail.nossr50.config.hocon.skills.acrobatics; +import com.gmail.nossr50.config.hocon.skills.acrobatics.dodge.ConfigDodge; +import com.gmail.nossr50.config.hocon.skills.acrobatics.roll.ConfigRoll; +import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @ConfigSerializable public class ConfigAcrobatics { + @Setting(value = "Roll", comment = "Settings related to the Roll Sub-Skill." + + "\nSettings related to preventing abuse of this skill can be found in the anti_exploit config file.") + private ConfigRoll roll = new ConfigRoll(); + + public ConfigRoll getRoll() { + return roll; + } + + @Setting(value = "Dodge", comment = "Settings related to the Dodge Sub-Skill." + + "\nSettings related to preventing abuse of this skill can be found in the anti_exploit config file.") + private ConfigDodge dodge = new ConfigDodge(); + + public ConfigDodge getDodge() { + return dodge; + } + } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/dodge/ConfigDodge.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/dodge/ConfigDodge.java new file mode 100644 index 000000000..adb607caf --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/dodge/ConfigDodge.java @@ -0,0 +1,29 @@ +package com.gmail.nossr50.config.hocon.skills.acrobatics.dodge; + +import com.gmail.nossr50.config.hocon.skills.ConfigSubSkillScalingRNG; +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; + +@ConfigSerializable +public class ConfigDodge { + + public static final double DAMAGE_REDUCTION_DIVISOR_DEFAULT = 2.0D; + + @Setting(value = "Damage-Reduction-Divisor", comment = "If a player successfully dodges the incoming damage will be divided by this value." + + "\nPlayers can dodge almost all types of damage from other entities, such as player damage, monster damage, etc." + + "\nAs an example, a value of 2.0 for this setting would result in the player taking half damage." + + "\nHigher values would further decrease the amount of damage the player takes after a successful dodge." + + "\nDefault value: "+DAMAGE_REDUCTION_DIVISOR_DEFAULT) + private double damageReductionDivisor = DAMAGE_REDUCTION_DIVISOR_DEFAULT; + + @Setting(value = "RNG-Settings", comment = "Settings related to random chance elements for this Sub-Skill.") + private ConfigSubSkillScalingRNG rng = new ConfigSubSkillScalingRNG(); + + public ConfigSubSkillScalingRNG getRng() { + return rng; + } + + public double getDamageReductionDivisor() { + return damageReductionDivisor; + } +} \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/roll/ConfigRoll.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/roll/ConfigRoll.java new file mode 100644 index 000000000..679ef22f8 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/acrobatics/roll/ConfigRoll.java @@ -0,0 +1,27 @@ +package com.gmail.nossr50.config.hocon.skills.acrobatics.roll; + +import com.gmail.nossr50.config.hocon.skills.ConfigSubSkillScalingRNG; +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; + +@ConfigSerializable +public class ConfigRoll { + + public static final double ROLL_DAMAGE_THRESHOLD_DEFAULT = 7.0D; + + @Setting(value = "Damage-Threshold", comment = "Rolling will reduce up to this much damage." + + "\nGraceful Rolls will reduce twice this value." + + "\nDefault value: "+ROLL_DAMAGE_THRESHOLD_DEFAULT) + private double damageTheshold = ROLL_DAMAGE_THRESHOLD_DEFAULT; + + @Setting(value = "RNG-Settings", comment = "Settings related to random chance elements for this Sub-Skill.") + private ConfigSubSkillScalingRNG rng = new ConfigSubSkillScalingRNG(); + + public ConfigSubSkillScalingRNG getRNGSettings() { + return rng; + } + + public double getDamageTheshold() { + return damageTheshold; + } +} \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepairSuperRepair.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepairSuperRepair.java index 78f89265b..adffced3d 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepairSuperRepair.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepairSuperRepair.java @@ -1,6 +1,6 @@ package com.gmail.nossr50.config.hocon.skills.repair; -import com.gmail.nossr50.config.hocon.skills.ConfigScalingSubSkill; +import com.gmail.nossr50.config.hocon.skills.ConfigSubSkillScalingRNG; import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @@ -8,9 +8,9 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; public class ConfigRepairSuperRepair { @Setting(value = "Settings") - private ConfigScalingSubSkill superRepair = new ConfigScalingSubSkill(); + private ConfigSubSkillScalingRNG superRepair = new ConfigSubSkillScalingRNG(); - public ConfigScalingSubSkill getSuperRepair() { + public ConfigSubSkillScalingRNG getSuperRepair() { return superRepair; } } \ No newline at end of file