Wire up Acrobatics XP config + PVP XP

This commit is contained in:
nossr50 2019-04-10 02:25:47 -07:00
parent 8ddbb3aa91
commit fb6e5e41ad
10 changed files with 61 additions and 44 deletions

View File

@ -148,7 +148,7 @@ Version 2.2.0
Update_Check, Prefer_Beta, Ability_Activation_Level_Gate, Max_Tries_At_Same_Location, Prevent_AFK_Leveling, Items_Pickup_Disabled_Full_Inventory Update_Check, Prefer_Beta, Ability_Activation_Level_Gate, Max_Tries_At_Same_Location, Prevent_AFK_Leveling, Items_Pickup_Disabled_Full_Inventory
Removed the following config settings for being unwanted Removed the following config settings for being unwanted
Config_Update_Overwrite, Tool_Mods_Enabled, Armor_Mods_Enabled, Block_Mods_Enabled, Entity_Mods_Enabled Config_Update_Overwrite, Tool_Mods_Enabled, Armor_Mods_Enabled, Block_Mods_Enabled, Entity_Mods_Enabled,
API Changes API Changes
SimpleRepairable/SimpleSalvageable renamed to just Repairable/Salvageable, and their unnecessary interface classes were removed SimpleRepairable/SimpleSalvageable renamed to just Repairable/Salvageable, and their unnecessary interface classes were removed

View File

@ -178,18 +178,6 @@ public class ExperienceConfig extends ConfigValidated {
reason.add(EXPERIENCE + "." + COMBAT + "." + MULTIPLIER + "." + ANIMALS + " should be at least 0!"); reason.add(EXPERIENCE + "." + COMBAT + "." + MULTIPLIER + "." + ANIMALS + " should be at least 0!");
} }
if (getDodgeXPModifier() < 0) {
reason.add("Skills." + ACROBATICS + "." + DODGE + "_XP_" + MODIFIER + " should be at least 0!");
}
if (getRollXPModifier() < 0) {
reason.add("Skills." + ACROBATICS + "." + ROLL + "_XP_" + MODIFIER + " should be at least 0!");
}
if (getFallXPModifier() < 0) {
reason.add("Skills." + ACROBATICS + "." + FALL + "_XP_" + MODIFIER + " should be at least 0!");
}
/* Fishing */ /* Fishing */
// TODO: Add validation for each fish type once enum is available. // TODO: Add validation for each fish type once enum is available.
@ -315,11 +303,6 @@ public class ExperienceConfig extends ConfigValidated {
* XP SETTINGS * XP SETTINGS
*/ */
/* General Settings */
public boolean getExperienceGainsPlayerVersusPlayerEnabled() {
return getBooleanValue(EXPERIENCE, PVP, REWARDS);
}
/* Combat XP Multipliers */ /* Combat XP Multipliers */
public double getCombatXP(EntityType entity) { public double getCombatXP(EntityType entity) {
return getDoubleValue(EXPERIENCE, COMBAT, MULTIPLIER, StringUtils.getEntityConfigName(entity)); return getDoubleValue(EXPERIENCE, COMBAT, MULTIPLIER, StringUtils.getEntityConfigName(entity));
@ -404,23 +387,6 @@ public class ExperienceConfig extends ConfigValidated {
return BarStyle.SOLID; return BarStyle.SOLID;
} }
/* Acrobatics */
public int getDodgeXPModifier() {
return getIntValue(EXPERIENCE, ACROBATICS, DODGE);
}
public int getRollXPModifier() {
return getIntValue(EXPERIENCE, ACROBATICS, ROLL);
}
public int getFallXPModifier() {
return getIntValue(EXPERIENCE, ACROBATICS, FALL);
}
public double getFeatherFallXPModifier() {
return getDoubleValue(EXPERIENCE, ACROBATICS, FEATHER_FALL_MULTIPLIER);
}
/* Alchemy */ /* Alchemy */
public double getPotionXP(PotionStage stage) { public double getPotionXP(PotionStage stage) {
return getDoubleValue(EXPERIENCE, ALCHEMY, POTION_STAGE + stage.toNumerical()); return getDoubleValue(EXPERIENCE, ALCHEMY, POTION_STAGE + stage.toNumerical());

View File

@ -119,4 +119,28 @@ public class ConfigExperience {
public int getFallXP() { public int getFallXP() {
return experienceAcrobatics.getFallXP(); return experienceAcrobatics.getFallXP();
} }
public int getStageOnePotionXP() {
return experienceAlchemy.getStageOnePotionXP();
}
public int getStageTwoPotionXP() {
return experienceAlchemy.getStageTwoPotionXP();
}
public int getStageThreePotionXP() {
return experienceAlchemy.getStageThreePotionXP();
}
public int getStageFourPotionXP() {
return experienceAlchemy.getStageFourPotionXP();
}
public int getStageFivePotionXP() {
return experienceAlchemy.getStageFivePotionXP();
}
public boolean isPvpXPEnabled() {
return experienceCombat.isPvpXPEnabled();
}
} }

View File

@ -5,4 +5,6 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
@ConfigSerializable @ConfigSerializable
public class ConfigExperienceArchery { public class ConfigExperienceArchery {
} }

View File

@ -1,8 +1,20 @@
package com.gmail.nossr50.config.hocon.experience; package com.gmail.nossr50.config.hocon.experience;
import ninja.leaping.configurate.objectmapping.Setting;
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
@ConfigSerializable @ConfigSerializable
public class ConfigExperienceCombat { public class ConfigExperienceCombat {
private static final boolean PVP_XP_ENABLED_DEFAULT = false;
@Setting(value = "PVP-XP", comment = "If true, players will gain XP from PVP interactions." +
"\nBe careful turning this on as this can potentially allow for unwanted behaviour from players." +
"\nDefault value: "+PVP_XP_ENABLED_DEFAULT)
private boolean pvpXPEnabled = PVP_XP_ENABLED_DEFAULT;
public boolean isPvpXPEnabled() {
return pvpXPEnabled;
}
} }

View File

@ -1,5 +1,6 @@
package com.gmail.nossr50.config.hocon.skills.acrobatics; package com.gmail.nossr50.config.hocon.skills.acrobatics;
import com.gmail.nossr50.config.hocon.skills.ConfigSubSkillScalingRNG;
import com.gmail.nossr50.config.hocon.skills.acrobatics.dodge.ConfigDodge; import com.gmail.nossr50.config.hocon.skills.acrobatics.dodge.ConfigDodge;
import com.gmail.nossr50.config.hocon.skills.acrobatics.roll.ConfigRoll; import com.gmail.nossr50.config.hocon.skills.acrobatics.roll.ConfigRoll;
import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.Setting;
@ -24,4 +25,11 @@ public class ConfigAcrobatics {
return dodge; return dodge;
} }
public ConfigSubSkillScalingRNG getRNGSettings() {
return dodge.getRNGSettings();
}
public double getDamageReductionDivisor() {
return dodge.getDamageReductionDivisor();
}
} }

View File

@ -301,10 +301,10 @@ public class Roll extends AcrobaticsSubSkill {
private float calculateRollXP(Player player, double damage, boolean isRoll) { private float calculateRollXP(Player player, double damage, boolean isRoll) {
ItemStack boots = player.getInventory().getBoots(); ItemStack boots = player.getInventory().getBoots();
float xp = (float) (damage * (isRoll ? ExperienceConfig.getInstance().getRollXPModifier() : ExperienceConfig.getInstance().getFallXPModifier())); float xp = (float) (damage * (isRoll ? mcMMO.getConfigManager().getConfigExperience().getRollXP() : mcMMO.getConfigManager().getConfigExperience().getFallXP()));
if (boots != null && boots.containsEnchantment(Enchantment.PROTECTION_FALL)) { if (boots != null && boots.containsEnchantment(Enchantment.PROTECTION_FALL)) {
xp *= ExperienceConfig.getInstance().getFeatherFallXPModifier(); xp *= mcMMO.getConfigManager().getConfigExperience().getFeatherFallMultiplier();
} }
return xp; return xp;

View File

@ -3,13 +3,18 @@ package com.gmail.nossr50.skills.acrobatics;
import com.gmail.nossr50.config.AdvancedConfig; import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.MainConfig; import com.gmail.nossr50.config.MainConfig;
import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.mcMMO;
public final class Acrobatics { public final class Acrobatics {
public static double dodgeDamageModifier = AdvancedConfig.getInstance().getDodgeDamageModifier(); public static double dodgeDamageModifier;
public static int dodgeXpModifier = ExperienceConfig.getInstance().getDodgeXPModifier(); public static int dodgeXpModifier;
public static boolean dodgeLightningDisabled = MainConfig.getInstance().getDodgeLightningDisabled(); // public static boolean dodgeLightningDisabled;
private Acrobatics() {} private Acrobatics() {
dodgeDamageModifier = mcMMO.getConfigManager().getConfigAcrobatics().getDamageReductionDivisor();
dodgeXpModifier = mcMMO.getConfigManager().getExperienceConfig().getDodgeXPModifier();
// dodgeLightningDisabled = MainConfig.getInstance().getDodgeLightningDisabled();
}
protected static double calculateModifiedDodgeDamage(double damage, double damageModifier) { protected static double calculateModifiedDodgeDamage(double damage, double damageModifier) {
return Math.max(damage / damageModifier, 1.0); return Math.max(damage / damageModifier, 1.0);

View File

@ -52,9 +52,9 @@ public class AcrobaticsManager extends SkillManager {
return false; return false;
if (Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.ACROBATICS_DODGE)) { if (Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.ACROBATICS_DODGE)) {
if (damager instanceof LightningStrike && Acrobatics.dodgeLightningDisabled) { /*if (damager instanceof LightningStrike && Acrobatics.dodgeLightningDisabled) {
return false; return false;
} }*/
return skill.shouldProcess(damager); return skill.shouldProcess(damager);
} }

View File

@ -551,7 +551,7 @@ public final class CombatUtils {
XPGainReason xpGainReason; XPGainReason xpGainReason;
if (target instanceof Player) { if (target instanceof Player) {
if (!ExperienceConfig.getInstance().getExperienceGainsPlayerVersusPlayerEnabled() || PartyManager.inSameParty(mcMMOPlayer.getPlayer(), (Player) target)) { if (!mcMMO.getConfigManager().getConfigExperience().isPvpXPEnabled() || PartyManager.inSameParty(mcMMOPlayer.getPlayer(), (Player) target)) {
return; return;
} }