Merge pull request #4158 from Nightfirecat/fix-agility-pyramid-laps

Fix agility pyramid laps
This commit is contained in:
Tomas Slusny
2018-07-07 13:12:11 +02:00
committed by GitHub
7 changed files with 24 additions and 29 deletions

View File

@@ -33,9 +33,9 @@ import net.runelite.client.plugins.Plugin;
import net.runelite.client.ui.overlay.infobox.Timer;
@Slf4j
public class AgilityArenaTimer extends Timer
class AgilityArenaTimer extends Timer
{
public AgilityArenaTimer(Plugin plugin)
AgilityArenaTimer(Plugin plugin)
{
super(1, ChronoUnit.MINUTES, getTicketImage(), plugin);
setTooltip("Time left until location changes");

View File

@@ -31,7 +31,6 @@ import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.geom.Area;
import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.Point;
import net.runelite.api.Tile;
@@ -41,8 +40,7 @@ import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.OverlayUtil;
@Slf4j
public class AgilityOverlay extends Overlay
class AgilityOverlay extends Overlay
{
private static final int MAX_DISTANCE = 2350;
@@ -51,7 +49,7 @@ public class AgilityOverlay extends Overlay
private final AgilityConfig config;
@Inject
public AgilityOverlay(Client client, AgilityPlugin plugin, AgilityConfig config)
private AgilityOverlay(Client client, AgilityPlugin plugin, AgilityConfig config)
{
setPosition(OverlayPosition.DYNAMIC);
setLayer(OverlayLayer.ABOVE_SCENE);

View File

@@ -32,7 +32,6 @@ import java.util.Map;
import java.util.Objects;
import javax.inject.Inject;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.api.Item;
import net.runelite.api.ItemID;
@@ -72,7 +71,6 @@ import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
description = "Show helpful information about agility courses and obstacles",
tags = {"grace", "marks", "overlay", "shortcuts", "skilling", "traps"}
)
@Slf4j
public class AgilityPlugin extends Plugin
{
private static final int AGILITY_ARENA_REGION_ID = 11157;
@@ -183,8 +181,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
|| (course.getCourseEndWorldPoints().length > 0 && Arrays.stream(course.getCourseEndWorldPoints()).noneMatch(wp -> wp.equals(client.getLocalPlayer().getWorldLocation()))))
|| (course.getCourseEndWorldPoints().length == 0
? Math.abs(course.getLastObstacleXp() - skillGained) > 1
: Arrays.stream(course.getCourseEndWorldPoints()).noneMatch(wp -> wp.equals(client.getLocalPlayer().getWorldLocation()))))
{
return;
}

View File

@@ -33,23 +33,21 @@ import net.runelite.api.Skill;
@Getter
@Setter
public class AgilitySession
class AgilitySession
{
private final Courses course;
private Instant lastLapCompleted;
private int totalLaps;
private int lapsTillLevel;
public AgilitySession(Courses course)
AgilitySession(Courses course)
{
this.course = course;
}
public void incrementLapCount(Client client)
void incrementLapCount(Client client)
{
Instant now = Instant.now();
lastLapCompleted = now;
lastLapCompleted = Instant.now();
++totalLaps;
int currentExp = client.getSkillExperience(Skill.AGILITY);
@@ -65,7 +63,7 @@ public class AgilitySession
lapsTillLevel = remainingXp > 0 ? (int) Math.ceil(remainingXp / course.getTotalXp()) : 0;
}
public void resetLapCount()
void resetLapCount()
{
totalLaps = 0;
lapsTillLevel = 0;

View File

@@ -29,12 +29,12 @@ import java.util.Map;
import lombok.Getter;
import net.runelite.api.coords.WorldPoint;
public enum Courses
enum Courses
{
GNOME(86.5, 46, 9781),
DRAYNOR(120.0, 79, 12338),
AL_KARID(180.0, 30, 13105, new WorldPoint(3299, 3194, 0)),
PYRAMID(722.0, 300, 13356),
AL_KHARID(180.0, 30, 13105, new WorldPoint(3299, 3194, 0)),
PYRAMID(722.0, 300, 13356, new WorldPoint(3364, 2830, 0)),
VARROCK(238.0, 125, 12853),
PENGUIN(540.0, 65, 10559),
BARBARIAN(139.5, 60, 10039),
@@ -43,7 +43,7 @@ public enum Courses
FALADOR(440, 180, 12084),
WILDERNESS(571.0, 499, 11837),
SEERS(570.0, 435, 10806),
POLLNIVEACH(890.0, 540, 13358),
POLLNIVNEACH(890.0, 540, 13358),
RELLEKA(780.0, 475, 10553),
ARDOUGNE(793.0, 529, 10547);
@@ -77,7 +77,7 @@ public enum Courses
this.courseEndWorldPoints = courseEndWorldPoints;
}
public static Courses getCourse(int regionId)
static Courses getCourse(int regionId)
{
return coursesByRegion.get(regionId);
}

View File

@@ -35,7 +35,7 @@ import net.runelite.client.ui.overlay.OverlayPriority;
import net.runelite.client.ui.overlay.components.LineComponent;
import net.runelite.client.ui.overlay.components.PanelComponent;
public class LapCounterOverlay extends Overlay
class LapCounterOverlay extends Overlay
{
private final AgilityPlugin plugin;
private final AgilityConfig config;
@@ -43,7 +43,7 @@ public class LapCounterOverlay extends Overlay
private final PanelComponent panelComponent = new PanelComponent();
@Inject
LapCounterOverlay(AgilityPlugin plugin, AgilityConfig config)
private LapCounterOverlay(AgilityPlugin plugin, AgilityConfig config)
{
setPosition(OverlayPosition.TOP_LEFT);
setPriority(OverlayPriority.LOW);

View File

@@ -31,9 +31,9 @@ import java.util.Set;
import static net.runelite.api.ObjectID.*;
import static net.runelite.api.NullObjectID.*;
public class Obstacles
class Obstacles
{
public static final Set<Integer> COURSE_OBSTACLE_IDS = ImmutableSet.of(
static final Set<Integer> COURSE_OBSTACLE_IDS = ImmutableSet.of(
// Gnome
OBSTACLE_NET_23134, TREE_BRANCH_23559, TREE_BRANCH_23560, OBSTACLE_NET_23135, OBSTACLE_PIPE_23138,
OBSTACLE_PIPE_23139, LOG_BALANCE_23145, BALANCING_ROPE_23557,
@@ -79,7 +79,7 @@ public class Obstacles
GAP_11406, GAP_11429, GAP_11430, STEEP_ROOF, GAP_11630, PLANK_11631, WOODEN_BEAMS
);
public static final Set<Integer> SHORTCUT_OBSTACLE_IDS = ImmutableSet.of(
static final Set<Integer> SHORTCUT_OBSTACLE_IDS = ImmutableSet.of(
// Grand Exchange
UNDERWALL_TUNNEL_16529, UNDERWALL_TUNNEL_16530,
// South Varrock
@@ -192,10 +192,10 @@ public class Obstacles
CLIMBING_ROCKS_11948, CLIMBING_ROCKS_11949
);
public static final Set<Integer> TRAP_OBSTACLE_IDS = ImmutableSet.of(
static final Set<Integer> TRAP_OBSTACLE_IDS = ImmutableSet.of(
// Agility pyramid
NULL_3550, NULL_10872, NULL_10873
);
public static final List<Integer> TRAP_OBSTACLE_REGIONS = ImmutableList.of(12105, 13356);
static final List<Integer> TRAP_OBSTACLE_REGIONS = ImmutableList.of(12105, 13356);
}