From 6801ac18431fbfd8da9fad5e556536f50d5e4f6f Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 14 Jan 2018 10:42:55 -0500 Subject: [PATCH] runelite-api: fix combat fornula --- .../main/java/net/runelite/api/Experience.java | 16 ++++++++-------- .../java/net/runelite/api/ExperienceTest.java | 1 + 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/Experience.java b/runelite-api/src/main/java/net/runelite/api/Experience.java index cec50e2ff8..21f839837e 100644 --- a/runelite-api/src/main/java/net/runelite/api/Experience.java +++ b/runelite-api/src/main/java/net/runelite/api/Experience.java @@ -24,6 +24,9 @@ */ package net.runelite.api; +import static java.lang.Math.floor; +import static java.lang.Math.max; + public class Experience { /** @@ -93,16 +96,13 @@ public class Experience int defenceLevel, int hitpointsLevel, int magicLevel, int rangeLevel, int prayerLevel) { - double melee = 0.25 * (defenceLevel + hitpointsLevel + Math.floor(prayerLevel / 2)) - + 0.325 * (attackLevel + strengthLevel); + double base = 0.25 * (defenceLevel + hitpointsLevel + floor(prayerLevel / 2)); - double range = 0.25 * (defenceLevel + hitpointsLevel + Math.floor(prayerLevel / 2)) - + 0.325 * (Math.floor(rangeLevel / 2)); + double melee = 0.325 * (attackLevel + strengthLevel); + double range = 0.325 * (floor(rangeLevel / 2) + rangeLevel); + double magic = 0.325 * (floor(magicLevel / 2) + magicLevel); - double magic = 0.25 * (defenceLevel + hitpointsLevel + Math.floor(prayerLevel / 2)) - + 0.325 * (Math.floor(magicLevel / 2)); - - return Math.max(melee, Math.max(range, magic)); + return base + max(melee, max(range, magic)); } public static int getCombatLevel(int attackLevel, int strengthLevel, diff --git a/runelite-api/src/test/java/net/runelite/api/ExperienceTest.java b/runelite-api/src/test/java/net/runelite/api/ExperienceTest.java index e17f06752d..55aec91784 100644 --- a/runelite-api/src/test/java/net/runelite/api/ExperienceTest.java +++ b/runelite-api/src/test/java/net/runelite/api/ExperienceTest.java @@ -78,5 +78,6 @@ public class ExperienceTest public void testGetCombatLevel() { Assert.assertEquals(126, Experience.getCombatLevel(99, 99, 99, 99, 70, 42, 98)); + Assert.assertEquals(40, Experience.getCombatLevel(27, 22, 1, 36, 64, 45, 1)); } }