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.
This commit is contained in:
Adam
2018-06-30 11:55:13 -04:00
parent 1dea5755bc
commit abce07bcc7
2 changed files with 17 additions and 4 deletions

View File

@@ -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;
}

View File

@@ -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);