From af7ff3df58286bd94c7740ab0ca166fcbd4d55e2 Mon Sep 17 00:00:00 2001 From: TfT_02 Date: Wed, 24 Dec 2014 11:00:43 +0100 Subject: [PATCH] Make Archery distance multiplier configurable Add #2385 --- Changelog.txt | 1 + .../gmail/nossr50/config/experience/ExperienceConfig.java | 8 ++++++++ .../java/com/gmail/nossr50/skills/archery/Archery.java | 3 ++- src/main/resources/experience.yml | 2 ++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index b7c01002c..96a57d744 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -13,6 +13,7 @@ Version 1.5.02-dev = Fixed bug where MobHealthbarTypes were not saved between server restarts ! Changed Flux Mining mechanics. In order to use the ability, you need to infuse a pickaxe with furnace powers first. ! Scoreboard tips are only shown a couple of times to the player, instead of once per login session + ! Changed Archery distance multiplier to be configurable Version 1.5.01 + Added new child skill; Salvage diff --git a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java index 9f593b6e6..3f9e7f1cf 100644 --- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java +++ b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java @@ -88,6 +88,11 @@ public class ExperienceConfig extends AutoUpdateConfigLoader { } } + /* Archery */ + if (getArcheryDistanceMultiplier() < 0) { + reason.add("Experience.Archery.Distance_Multiplier should be at least 0!"); + } + /* Combat XP Multipliers */ if (getAnimalsXP() < 0) { reason.add("Experience.Combat.Multiplier.Animals should be at least 0!"); @@ -213,6 +218,9 @@ public class ExperienceConfig extends AutoUpdateConfigLoader { /* Alchemy */ public double getPotionXP(PotionStage stage) { return config.getDouble("Experience.Alchemy.Potion_Stage_" + stage.toNumerical(), 10D); } + /* Archery */ + public double getArcheryDistanceMultiplier() { return config.getDouble("Experience.Archery.Distance_Multiplier", 0.025); } + /* Excavation */ public int getDirtAndSandXp(MaterialData data) { Material type = data.getItemType(); diff --git a/src/main/java/com/gmail/nossr50/skills/archery/Archery.java b/src/main/java/com/gmail/nossr50/skills/archery/Archery.java index aa1a19fd7..158e31346 100644 --- a/src/main/java/com/gmail/nossr50/skills/archery/Archery.java +++ b/src/main/java/com/gmail/nossr50/skills/archery/Archery.java @@ -9,6 +9,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.inventory.ItemStack; import com.gmail.nossr50.config.AdvancedConfig; +import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.util.Misc; public class Archery { @@ -21,7 +22,7 @@ public class Archery { public static double dazeBonusDamage = AdvancedConfig.getInstance().getDazeBonusDamage(); - public static final double DISTANCE_XP_MULTIPLIER = 0.025; + public static final double DISTANCE_XP_MULTIPLIER = ExperienceConfig.getInstance().getArcheryDistanceMultiplier(); protected static void incrementTrackerValue(LivingEntity livingEntity) { for (TrackedEntity trackedEntity : trackedEntities) { diff --git a/src/main/resources/experience.yml b/src/main/resources/experience.yml index cdb5eed8b..302b15132 100644 --- a/src/main/resources/experience.yml +++ b/src/main/resources/experience.yml @@ -116,6 +116,8 @@ Experience: Potion_Stage_3: 60 Potion_Stage_4: 120 Potion_Stage_5: 0 + Archery: + Distance_Multiplier: 0.025 Fishing: Raw_Fish: 800 Raw_Salmon: 800