diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java index 5ecdda516b..2771e6ad5b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java @@ -225,7 +225,7 @@ public interface AgilityConfig extends Config keyName = "highlightSepulchreNpcs", name = "Highlight Sepulchre Projectiles", description = "Highlights arrows and swords in the Sepulchre", - position = 15 + position = 17 ) default boolean highlightSepulchreNpcs() { @@ -236,10 +236,32 @@ public interface AgilityConfig extends Config keyName = "sepulchreHighlightColor", name = "Sepulchre Highlight", description = "Overlay color for arrows and swords", - position = 16 + position = 18 ) default Color sepulchreHighlightColor() { return Color.GREEN; } + + @ConfigItem( + keyName = "highlightSepulchreObstacles", + name = "Highlight Sepulchre Obstacles", + description = "Highlights pillars and stairs in the Sepulchre", + position = 19 + ) + default boolean highlightSepulchreObstacles() + { + return true; + } + + @ConfigItem( + keyName = "highlightSepulchreSkilling", + name = "Highlight Sepulchre Skill Challenges", + description = "Highlights skilling challenges in the Sepulchre", + position = 20 + ) + default boolean highlightSepulchreSkilling() + { + return true; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java index a7118cc1ab..96e52d22f8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java @@ -78,7 +78,9 @@ class AgilityOverlay extends Overlay { if (Obstacles.SHORTCUT_OBSTACLE_IDS.containsKey(object.getId()) && !config.highlightShortcuts() || Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !config.showTrapOverlay() || - Obstacles.COURSE_OBSTACLE_IDS.contains(object.getId()) && !config.showClickboxes()) + Obstacles.COURSE_OBSTACLE_IDS.contains(object.getId()) && !config.showClickboxes() || + Obstacles.SEPULCHRE_OBSTACLE_IDS.contains(object.getId()) && !config.highlightSepulchreObstacles() || + Obstacles.SEPULCHRE_SKILL_OBSTACLE_IDS.contains(object.getId()) && !config.highlightSepulchreSkilling()) { return; } 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 a430c0e6d7..a13d9b3689 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 @@ -438,7 +438,9 @@ public class AgilityPlugin extends Plugin if (Obstacles.COURSE_OBSTACLE_IDS.contains(newObject.getId()) || Obstacles.PORTAL_OBSTACLE_IDS.contains(newObject.getId()) || (Obstacles.TRAP_OBSTACLE_IDS.contains(newObject.getId()) - && Obstacles.TRAP_OBSTACLE_REGIONS.contains(newObject.getWorldLocation().getRegionID()))) + && Obstacles.TRAP_OBSTACLE_REGIONS.contains(newObject.getWorldLocation().getRegionID())) || + Obstacles.SEPULCHRE_OBSTACLE_IDS.contains(newObject.getId()) || + Obstacles.SEPULCHRE_SKILL_OBSTACLE_IDS.contains(newObject.getId())) { obstacles.put(newObject, new Obstacle(tile, null)); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/Obstacles.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/Obstacles.java index b1b58b5f17..dd8809820b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/Obstacles.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/Obstacles.java @@ -95,12 +95,7 @@ class Obstacles ZIP_LINE_11645, ZIP_LINE_11646, // Prifddinas LADDER_36221, TIGHTROPE_36225, CHIMNEY_36227, ROOF_EDGE, DARK_HOLE_36229, LADDER_36231, LADDER_36232, - ROPE_BRIDGE_36233, TIGHTROPE_36234, ROPE_BRIDGE_36235, TIGHTROPE_36236, TIGHTROPE_36237, DARK_HOLE_36238, - // Hallowed Sepulchre - GATE_38460, PLATFORM_38455, PLATFORM_38456, PLATFORM_38457, PLATFORM_38458, PLATFORM_38459, - PLATFORM_38470, PLATFORM_38477, STAIRS_38462, STAIRS_38463, STAIRS_38464, STAIRS_38465, - STAIRS_38466, STAIRS_38467, STAIRS_38468, STAIRS_38469, STAIRS_38471, STAIRS_38472, - STAIRS_38473, STAIRS_38474, STAIRS_38475, STAIRS_38476 + ROPE_BRIDGE_36233, TIGHTROPE_36234, ROPE_BRIDGE_36235, TIGHTROPE_36236, TIGHTROPE_36237, DARK_HOLE_36238 ); static final Set PORTAL_OBSTACLE_IDS = ImmutableSet.of( @@ -129,4 +124,18 @@ class Obstacles } SHORTCUT_OBSTACLE_IDS = builder.build(); } + + static final Set SEPULCHRE_OBSTACLE_IDS = ImmutableSet.of( + // Stairs and Platforms (and one Gate) + GATE_38460, PLATFORM_38455, PLATFORM_38456, PLATFORM_38457, PLATFORM_38458, PLATFORM_38459, + PLATFORM_38470, PLATFORM_38477, STAIRS_38462, STAIRS_38463, STAIRS_38464, STAIRS_38465, + STAIRS_38466, STAIRS_38467, STAIRS_38468, STAIRS_38469, STAIRS_38471, STAIRS_38472, + STAIRS_38473, STAIRS_38474, STAIRS_38475, STAIRS_38476 + ); + + static final Set SEPULCHRE_SKILL_OBSTACLE_IDS = ImmutableSet.of( + // Grapple, Portal, and Bridge skill obstacles + // They are multilocs, thus we use the NullObjectID + NULL_39524, NULL_39525, NULL_39526, NULL_39527, NULL_39528, NULL_39533 + ); }