mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 05:06:45 +01:00
Added level thresholds to hardcore modes
Players will not lose stats when their level is below the Level_Threshold.
This commit is contained in:
parent
f99e5e015d
commit
ea4c424e0f
@ -14,6 +14,7 @@ Version 1.4.08-dev
|
||||
+ Smelting now works with custom ores - add smelting XP value to blocks.yml, or it will default to 1/10th of normal XP.
|
||||
+ Added automatic cleanup of backups folder.
|
||||
+ Added bypass permission for finding Fishing traps
|
||||
+ Added level threshold settings to hardcore modes. When a players skill level is below this threshold, they will not lose any stats
|
||||
= Fixed bug where LeafBlower permissions were ignored
|
||||
= Fixed bug with toggle commands not properly displaying the success message.
|
||||
= Fixed IllegalArgumentException caused by an empty Fishing treasure category
|
||||
|
@ -302,12 +302,16 @@ public class Config extends AutoUpdateConfigLoader {
|
||||
public double getHardcoreDeathStatPenaltyPercentage() { return config.getDouble("Hardcore.Death_Stat_Loss.Penalty_Percentage", 75.0D); }
|
||||
public void setHardcoreDeathStatPenaltyPercentage(double value) { config.set("Hardcore.Death_Stat_Loss.Penalty_Percentage", value); }
|
||||
|
||||
public int getHardcoreDeathStatPenaltyLevelThreshold() { return config.getInt("Hardcore.Death_Stat_Loss.Level_Threshold", 0); }
|
||||
|
||||
public boolean getHardcoreVampirismEnabled(SkillType skillType) { return config.getBoolean("Hardcore.Vampirism.Enabled." + StringUtils.getCapitalized(skillType.toString()), false); }
|
||||
public void setHardcoreVampirismEnabled(SkillType skillType, boolean enabled) { config.set("Hardcore.Vampirism.Enabled." + StringUtils.getCapitalized(skillType.toString()), enabled); }
|
||||
|
||||
public double getHardcoreVampirismStatLeechPercentage() { return config.getDouble("Hardcore.Vampirism.Leech_Percentage", 5.0D); }
|
||||
public void setHardcoreVampirismStatLeechPercentage(double value) { config.set("Hardcore.Vampirism.Leech_Percentage", value); }
|
||||
|
||||
public int getHardcoreVampirismLevelThreshold() { return config.getInt("Hardcore.Vampirism.Level_Threshold", 0); }
|
||||
|
||||
/* SMP Mods */
|
||||
public boolean getToolModsEnabled() { return config.getBoolean("Mods.Tool_Mods_Enabled", false); }
|
||||
public boolean getArmorModsEnabled() { return config.getBoolean("Mods.Armor_Mods_Enabled", false); }
|
||||
|
@ -14,6 +14,7 @@ public final class HardcoreManager {
|
||||
|
||||
public static void invokeStatPenalty(Player player) {
|
||||
double statLossPercentage = Config.getInstance().getHardcoreDeathStatPenaltyPercentage();
|
||||
int levelThreshold = Config.getInstance().getHardcoreDeathStatPenaltyLevelThreshold();
|
||||
|
||||
PlayerProfile playerProfile = UserManager.getPlayer(player).getProfile();
|
||||
int totalLevelsLost = 0;
|
||||
@ -26,7 +27,7 @@ public final class HardcoreManager {
|
||||
int playerSkillLevel = playerProfile.getSkillLevel(skillType);
|
||||
int playerSkillXpLevel = playerProfile.getSkillXpLevel(skillType);
|
||||
|
||||
if (playerSkillLevel <= 0) {
|
||||
if (playerSkillLevel <= 0 || playerSkillLevel <= levelThreshold) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -53,6 +54,7 @@ public final class HardcoreManager {
|
||||
|
||||
public static void invokeVampirism(Player killer, Player victim) {
|
||||
double vampirismStatLeechPercentage = Config.getInstance().getHardcoreVampirismStatLeechPercentage();
|
||||
int levelThreshold = Config.getInstance().getHardcoreVampirismLevelThreshold();
|
||||
|
||||
McMMOPlayer killerPlayer = UserManager.getPlayer(killer);
|
||||
PlayerProfile killerProfile = killerPlayer.getProfile();
|
||||
@ -67,7 +69,7 @@ public final class HardcoreManager {
|
||||
int killerSkillLevel = killerProfile.getSkillLevel(skillType);
|
||||
int victimSkillLevel = victimProfile.getSkillLevel(skillType);
|
||||
|
||||
if (victimSkillLevel <= 0 || victimSkillLevel < killerSkillLevel / 2) {
|
||||
if (victimSkillLevel <= 0 || victimSkillLevel < killerSkillLevel / 2 || victimSkillLevel <= levelThreshold) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -131,6 +131,8 @@ MySQL:
|
||||
Hardcore:
|
||||
Death_Stat_Loss:
|
||||
Penalty_Percentage: 75.0
|
||||
# Players will not lose stats when their level is below the Level_Threshold
|
||||
Level_Threshold: 0
|
||||
Enabled:
|
||||
Acrobatics: false
|
||||
Archery: false
|
||||
@ -146,6 +148,7 @@ Hardcore:
|
||||
Woodcutting: false
|
||||
Vampirism:
|
||||
Leech_Percentage: 5.0
|
||||
Level_Threshold: 0
|
||||
Enabled:
|
||||
Acrobatics: false
|
||||
Archery: false
|
||||
|
Loading…
Reference in New Issue
Block a user