From abce07bcc7f875a88a0d7d5dd0b654d6b539a737 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 30 Jun 2018 11:55:13 -0400 Subject: [PATCH] agility plugin: fix Al Kharid lap counter The tightrope has the same XP as the final obstacle, so add additional support for checking location of the final obstacle. --- .../client/plugins/agility/AgilityPlugin.java | 5 ++++- .../runelite/client/plugins/agility/Courses.java | 16 +++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java index 781ddcdcad..ca60b9312e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java @@ -26,6 +26,7 @@ package net.runelite.client.plugins.agility; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -179,7 +180,9 @@ public class AgilityPlugin extends Plugin // Get course Courses course = Courses.getCourse(client.getLocalPlayer().getWorldLocation().getRegionID()); - if (course == null || Math.abs(course.getLastObstacleXp() - skillGained) > 1) + if (course == null + || Math.abs(course.getLastObstacleXp() - skillGained) > 1 + || (course.getCourseEndWorldPoints().length > 0 && Arrays.stream(course.getCourseEndWorldPoints()).noneMatch(wp -> wp.equals(client.getLocalPlayer().getWorldLocation())))) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/Courses.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/Courses.java index d5bf40f19b..4184549de5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/Courses.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/Courses.java @@ -26,15 +26,14 @@ package net.runelite.client.plugins.agility; import java.util.HashMap; import java.util.Map; -import lombok.AllArgsConstructor; import lombok.Getter; +import net.runelite.api.coords.WorldPoint; -@AllArgsConstructor public enum Courses { GNOME(86.5, 46, 9781), DRAYNOR(120.0, 79, 12338), - AL_KARID(180.0, 30, 13105), + AL_KARID(180.0, 30, 13105, new WorldPoint(3299, 3194, 0)), PYRAMID(722.0, 300, 13356), VARROCK(238.0, 125, 12853), PENGUIN(540.0, 65, 10559), @@ -59,6 +58,9 @@ public enum Courses @Getter private final int regionId; + @Getter + private final WorldPoint[] courseEndWorldPoints; + static { for (Courses course : values()) @@ -67,6 +69,14 @@ public enum Courses } } + Courses(double totalXp, int lastObstacleXp, int regionId, WorldPoint... courseEndWorldPoints) + { + this.totalXp = totalXp; + this.lastObstacleXp = lastObstacleXp; + this.regionId = regionId; + this.courseEndWorldPoints = courseEndWorldPoints; + } + public static Courses getCourse(int regionId) { return coursesByRegion.get(regionId);