mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
Repair Config Pt 3
This commit is contained in:
parent
ff986ec97d
commit
ef6bec4ffc
@ -45,6 +45,7 @@ import com.gmail.nossr50.config.treasure.ExcavationTreasureConfig;
|
||||
import com.gmail.nossr50.config.treasure.FishingTreasureConfig;
|
||||
import com.gmail.nossr50.config.treasure.HerbalismTreasureConfig;
|
||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
||||
import com.gmail.nossr50.skills.repair.repairables.SimpleRepairableManager;
|
||||
@ -92,6 +93,8 @@ public final class ConfigManager {
|
||||
|
||||
/* MISC MANAGERS */
|
||||
|
||||
SkillPropertiesManager skillPropertiesManager;
|
||||
|
||||
private ExperienceMapManager experienceMapManager;
|
||||
|
||||
//private ModManager modManager;
|
||||
@ -212,7 +215,6 @@ public final class ConfigManager {
|
||||
TypeSerializers.getDefaultSerializers().registerType(new TypeToken<Material>() {}, new CustomEnumValueSerializer());
|
||||
TypeSerializers.getDefaultSerializers().registerType(new TypeToken<PartyFeature>() {}, new CustomEnumValueSerializer());
|
||||
|
||||
|
||||
mcMMO.p.getLogger().info("Deserializing configs...");
|
||||
//TODO: Not sure about the order of MainConfig
|
||||
//Serialized Configs
|
||||
@ -254,6 +256,9 @@ public final class ConfigManager {
|
||||
//Serialized Data
|
||||
partyData = new SerializedConfigLoader<>(ConfigPartyData.class, "partydata.conf", "PartyData", null);
|
||||
|
||||
skillPropertiesManager = new SkillPropertiesManager();
|
||||
skillPropertiesManager.fillRegisters();
|
||||
|
||||
//Assign Maps
|
||||
partyItemWeights = Maps.newHashMap(configParty.getConfig().getPartyItemShare().getItemShareMap()); //Item Share Weights
|
||||
partyFeatureUnlocks = Maps.newHashMap(configParty.getConfig().getPartyXP().getPartyLevel().getPartyFeatureUnlockMap()); //Party Progression
|
||||
@ -585,4 +590,14 @@ public final class ConfigManager {
|
||||
public ConfigSalvage getConfigSalvage() {
|
||||
return configSalvage.getConfig();
|
||||
}
|
||||
|
||||
public double getSkillMaxBonusLevel(SubSkillType subSkillType)
|
||||
{
|
||||
return skillPropertiesManager.getMaxBonusLevel(subSkillType);
|
||||
}
|
||||
|
||||
public double getSkillMaxChance(SubSkillType subSkillType)
|
||||
{
|
||||
return skillPropertiesManager.getMaxChance(subSkillType);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,56 @@
|
||||
package com.gmail.nossr50.config;
|
||||
|
||||
import com.gmail.nossr50.config.hocon.skills.ConfigSubSkillScalingRNG;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* Hacky way to do this until I rewrite the skill system fully
|
||||
*/
|
||||
public class SkillPropertiesManager {
|
||||
private HashMap<SubSkillType, Double> maxChanceMap;
|
||||
private HashMap<SubSkillType, Double> maxBonusLevelMap;
|
||||
private HashMap<SubSkillType, Double> maxBonusPercentage;
|
||||
|
||||
public SkillPropertiesManager()
|
||||
{
|
||||
maxChanceMap = new HashMap<>();
|
||||
maxBonusLevelMap = new HashMap<>();
|
||||
maxBonusPercentage = new HashMap<>();
|
||||
}
|
||||
|
||||
public void registerRNG(SubSkillType subSkillType, ConfigSubSkillScalingRNG config)
|
||||
{
|
||||
maxChanceMap.put(subSkillType, config.getMaxChance());
|
||||
maxBonusLevelMap.put(subSkillType, config.getMaxBonusLevel());
|
||||
}
|
||||
|
||||
public double getMaxChance(SubSkillType subSkillType)
|
||||
{
|
||||
return maxChanceMap.get(subSkillType);
|
||||
}
|
||||
|
||||
public double getMaxBonusLevel(SubSkillType subSkillType)
|
||||
{
|
||||
return maxBonusLevelMap.get(subSkillType);
|
||||
}
|
||||
|
||||
public void fillRegisters()
|
||||
{
|
||||
|
||||
fillRNGRegisters();
|
||||
}
|
||||
|
||||
private void fillRNGRegisters()
|
||||
{
|
||||
//Acrobatics
|
||||
registerRNG(SubSkillType.ACROBATICS_DODGE, mcMMO.getConfigManager().getConfigAcrobatics().getDodge().getRNGSettings());
|
||||
registerRNG(SubSkillType.ACROBATICS_DODGE, mcMMO.getConfigManager().getConfigAcrobatics().getRoll().getRNGSettings());
|
||||
|
||||
//Repair
|
||||
registerRNG(SubSkillType.REPAIR_SUPER_REPAIR, mcMMO.getConfigManager().getConfigRepair().getSuperRepair().getSuperRepair());
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package com.gmail.nossr50.config.hocon.skills;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import ninja.leaping.configurate.objectmapping.Setting;
|
||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
|
||||
@ -30,4 +31,22 @@ public class ConfigSubSkillScalingRNG {
|
||||
public ConfigScalingSubSkillRetro getRetroSettings() {
|
||||
return retroSettings;
|
||||
}
|
||||
|
||||
/**
|
||||
* The max chance for the RNG component of a subskill from the user config
|
||||
* @return the max chance for the RNG component of a subskill
|
||||
*/
|
||||
public double getMaxChance() {
|
||||
if(mcMMO.getConfigManager().getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().isRetroModeEnabled())
|
||||
return getRetroSettings().getChanceAtMaxSkill();
|
||||
else
|
||||
return getStandardSettings().getChanceAtMaxSkill();
|
||||
}
|
||||
|
||||
public double getMaxBonusLevel() {
|
||||
if(mcMMO.getConfigManager().getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().isRetroModeEnabled())
|
||||
return getRetroSettings().getMaxBonusLevel();
|
||||
else
|
||||
return getStandardSettings().getMaxBonusLevel();
|
||||
}
|
||||
}
|
@ -19,7 +19,7 @@ public class ConfigDodge {
|
||||
@Setting(value = "RNG-Settings", comment = "Settings related to random chance elements for this Sub-Skill.")
|
||||
private ConfigSubSkillScalingRNG rng = new ConfigSubSkillScalingRNG();
|
||||
|
||||
public ConfigSubSkillScalingRNG getRng() {
|
||||
public ConfigSubSkillScalingRNG getRNGSettings() {
|
||||
return rng;
|
||||
}
|
||||
|
||||
|
@ -8,34 +8,33 @@ import java.util.HashMap;
|
||||
@ConfigSerializable
|
||||
public class ConfigRepairArcaneForging {
|
||||
|
||||
public static final boolean LOSE_ENCHANTS_DEFAULT = true;
|
||||
public static final boolean DOWNGRADES_ENABLED_DEFAULT = true;
|
||||
public static final HashMap<Integer, Double> FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
public static final HashMap<Integer, Double> PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
public static final HashMap<Integer, Double> KEEP_ENCHANT_MAP;
|
||||
public static final HashMap<Integer, Double> DOWNGRADE_MAP_DEFAULT;
|
||||
|
||||
static {
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT = new HashMap<>();
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT = new HashMap<>();
|
||||
KEEP_ENCHANT_MAP = new HashMap<>();
|
||||
KEEP_ENCHANT_MAP.put(1, 10.0D);
|
||||
KEEP_ENCHANT_MAP.put(2, 20.0D);
|
||||
KEEP_ENCHANT_MAP.put(3, 30.0D);
|
||||
KEEP_ENCHANT_MAP.put(4, 40.0D);
|
||||
KEEP_ENCHANT_MAP.put(5, 50.0D);
|
||||
KEEP_ENCHANT_MAP.put(6, 55.0D);
|
||||
KEEP_ENCHANT_MAP.put(7, 60.0D);
|
||||
KEEP_ENCHANT_MAP.put(8, 65.0D);
|
||||
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(1, 2.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(2, 5.0);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(3, 7.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(4, 10.0);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(5, 12.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(6, 17.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(7, 25.0);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(8, 32.5);
|
||||
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(1, 2.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(2, 2.5);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(3, 5.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(4, 7.5);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(5, 10.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(6, 12.5);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(7, 15.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(8, 17.5);
|
||||
DOWNGRADE_MAP_DEFAULT = new HashMap<>();
|
||||
DOWNGRADE_MAP_DEFAULT.put(1, 75.0D);
|
||||
DOWNGRADE_MAP_DEFAULT.put(2, 50.0D);
|
||||
DOWNGRADE_MAP_DEFAULT.put(3, 40.0D);
|
||||
DOWNGRADE_MAP_DEFAULT.put(4, 30.0D);
|
||||
DOWNGRADE_MAP_DEFAULT.put(5, 25.0D);
|
||||
DOWNGRADE_MAP_DEFAULT.put(6, 20.0D);
|
||||
DOWNGRADE_MAP_DEFAULT.put(7, 15.0D);
|
||||
DOWNGRADE_MAP_DEFAULT.put(8, 10.0D);
|
||||
}
|
||||
|
||||
public static final boolean LOSE_ENCHANTS_DEFAULT = true;
|
||||
public static final boolean DOWNGRADES_ENABLED_DEFAULT = true;
|
||||
|
||||
@Setting(value = "May-Lose-Enchants", comment = "With this on, players have a chance to have enchantments stripped from" +
|
||||
"\n their item when repairing." +
|
||||
@ -48,13 +47,19 @@ public class ConfigRepairArcaneForging {
|
||||
"\nDefault value: "+DOWNGRADES_ENABLED_DEFAULT)
|
||||
private boolean downgradesEnabled = DOWNGRADES_ENABLED_DEFAULT;
|
||||
|
||||
@Setting(value = "Extract-Full-Enchant-Percentage-Chance-Per-Rank", comment = "The chance to extract the enchantment from the item during salvage without any downgrade." +
|
||||
"\nIf this fails, a check to see if you can extract a downgraded version of the enchantment executes.")
|
||||
private HashMap<Integer, Double> extractFullEnchantChance = FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
@Setting(value = "Downgrade-Chance-Per-Rank", comment = "Chance to downgrade enchants per rank in this Sub-Skill.")
|
||||
private HashMap<Integer, Double> downgradeChanceMap = DOWNGRADE_MAP_DEFAULT;
|
||||
|
||||
@Setting(value = "Extract-Partial-Enchant-Percentage-Chance-Per-Rank", comment = "The chance to extract a downgraded enchantment from the item during salvage." +
|
||||
"\nThis check happens if you fail to extract the full enchant from the item.")
|
||||
private HashMap<Integer, Double> extractPartialEnchantChance = PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
@Setting(value = "Keep-Enchant-Chance-Per-Rank", comment = "Chance to keep the enchant without any downgrades per rank in this Sub-Skill")
|
||||
private HashMap<Integer, Double> keepEnchantChanceMap = KEEP_ENCHANT_MAP;
|
||||
|
||||
public HashMap<Integer, Double> getDowngradeChanceMap() {
|
||||
return downgradeChanceMap;
|
||||
}
|
||||
|
||||
public HashMap<Integer, Double> getKeepEnchantChanceMap() {
|
||||
return keepEnchantChanceMap;
|
||||
}
|
||||
|
||||
public boolean isMayLoseEnchants() {
|
||||
return mayLoseEnchants;
|
||||
@ -64,11 +69,4 @@ public class ConfigRepairArcaneForging {
|
||||
return downgradesEnabled;
|
||||
}
|
||||
|
||||
public HashMap<Integer, Double> getExtractFullEnchantChance() {
|
||||
return extractFullEnchantChance;
|
||||
}
|
||||
|
||||
public HashMap<Integer, Double> getExtractPartialEnchantChance() {
|
||||
return extractPartialEnchantChance;
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package com.gmail.nossr50.config.hocon.skills.salvage;
|
||||
|
||||
import ninja.leaping.configurate.objectmapping.Setting;
|
||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@ConfigSerializable
|
||||
public class ConfigArcaneSalvage {
|
||||
public static final HashMap<Integer, Double> FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
public static final HashMap<Integer, Double> PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
|
||||
static {
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT = new HashMap<>();
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT = new HashMap<>();
|
||||
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(1, 2.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(2, 5.0);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(3, 7.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(4, 10.0);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(5, 12.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(6, 17.5);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(7, 25.0);
|
||||
FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(8, 32.5);
|
||||
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(1, 2.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(2, 2.5);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(3, 5.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(4, 7.5);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(5, 10.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(6, 12.5);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(7, 15.0);
|
||||
PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT.put(8, 17.5);
|
||||
}
|
||||
|
||||
@Setting(value = "Extract-Full-Enchant-Percentage-Chance-Per-Rank", comment = "The chance to extract the enchantment from the item during salvage without any downgrade." +
|
||||
"\nIf this fails, a check to see if you can extract a downgraded version of the enchantment executes.")
|
||||
private HashMap<Integer, Double> extractFullEnchantChance = FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
|
||||
@Setting(value = "Extract-Partial-Enchant-Percentage-Chance-Per-Rank", comment = "The chance to extract a downgraded enchantment from the item during salvage." +
|
||||
"\nThis check happens if you fail to extract the full enchant from the item.")
|
||||
private HashMap<Integer, Double> extractPartialEnchantChance = PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
|
||||
|
||||
|
||||
public HashMap<Integer, Double> getExtractFullEnchantChance() {
|
||||
return extractFullEnchantChance;
|
||||
}
|
||||
|
||||
public HashMap<Integer, Double> getExtractPartialEnchantChance() {
|
||||
return extractPartialEnchantChance;
|
||||
}
|
||||
}
|
@ -3,6 +3,7 @@ package com.gmail.nossr50.util.random;
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.Permissions;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -35,7 +36,7 @@ public class RandomChanceSkill implements RandomChanceExecution {
|
||||
public RandomChanceSkill(Player player, SubSkillType subSkillType, boolean hasCap)
|
||||
{
|
||||
if(hasCap)
|
||||
this.probabilityCap = AdvancedConfig.getInstance().getMaximumProbability(subSkillType);
|
||||
this.probabilityCap = mcMMO.getConfigManager().getSkillMaxChance(subSkillType);
|
||||
else
|
||||
this.probabilityCap = RandomChanceUtil.LINEAR_CURVE_VAR;
|
||||
|
||||
@ -86,7 +87,7 @@ public class RandomChanceSkill implements RandomChanceExecution {
|
||||
* @return the maximum bonus from skill level for this skill
|
||||
*/
|
||||
public double getMaximumBonusLevelCap() {
|
||||
return AdvancedConfig.getInstance().getMaxBonusLevel(subSkillType);
|
||||
return mcMMO.getConfigManager().getSkillMaxBonusLevel(subSkillType);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user