From cb89a80fd80f9145b54975cb7086fb596d4d79a4 Mon Sep 17 00:00:00 2001 From: t00thpick1 Date: Thu, 31 Jan 2019 19:55:09 -0500 Subject: [PATCH] Only have 1 xp gain instance for archery. --- .../com/gmail/nossr50/skills/archery/ArcheryManager.java | 6 +++--- .../java/com/gmail/nossr50/util/skills/CombatUtils.java | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java index 2ffa9dd5d..32e38190b 100644 --- a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java +++ b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java @@ -52,15 +52,15 @@ public class ArcheryManager extends SkillManager { * @param target The {@link LivingEntity} damaged by the arrow * @param damager The {@link Entity} who shot the arrow */ - public void distanceXpBonus(LivingEntity target, Entity damager) { + public double distanceXpBonusMultiplier(LivingEntity target, Entity damager) { Location firedLocation = (Location) damager.getMetadata(mcMMO.arrowDistanceKey).get(0).value(); Location targetLocation = target.getLocation(); if (firedLocation.getWorld() != targetLocation.getWorld()) { - return; + return 1; } - applyXpGain((int) (Math.min(firedLocation.distanceSquared(targetLocation), 2500) * Archery.DISTANCE_XP_MULTIPLIER), getXPGainReason(target, damager)); + return 1 + Math.min(firedLocation.distance(targetLocation), 50) * Archery.DISTANCE_XP_MULTIPLIER; } /** diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index 144c2ec86..9da6fba57 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -194,10 +194,10 @@ public final class CombatUtils { archeryManager.retrieveArrows(target); } - archeryManager.distanceXpBonus(target, arrow); + double distanceMultiplier = archeryManager.distanceXpBonusMultiplier(target, arrow); applyScaledModifiers(initialDamage, finalDamage, event); - startGainXp(mcMMOPlayer, target, PrimarySkillType.ARCHERY, arrow.getMetadata(mcMMO.bowForceKey).get(0).asDouble()); + startGainXp(mcMMOPlayer, target, PrimarySkillType.ARCHERY, arrow.getMetadata(mcMMO.bowForceKey).get(0).asDouble() * distanceMultiplier); } /**