Merge pull request #7695 from MrGroggle/agility-update
Agility plugin clickbox - High level colours
This commit is contained in:
@@ -0,0 +1,242 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018, SomeoneWithAnInternetConnection
|
||||||
|
* Copyright (c) 2019, MrGroggle
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
* list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
package net.runelite.client.game;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import static net.runelite.api.NullObjectID.*;
|
||||||
|
import static net.runelite.api.ObjectID.*;
|
||||||
|
import net.runelite.api.coords.WorldPoint;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public enum AgilityShortcut
|
||||||
|
{
|
||||||
|
GENERIC_SHORTCUT(1, "Shortcut", null,
|
||||||
|
// Trollheim
|
||||||
|
ROCKS_3790, ROCKS_3791,
|
||||||
|
// Fremennik Slayer Cave
|
||||||
|
STEPS_29993,
|
||||||
|
// Fossil Island
|
||||||
|
LADDER_30938, LADDER_30939, LADDER_30940, LADDER_30941, RUBBER_CAP_MUSHROOM,
|
||||||
|
// Brimhaven dungeon
|
||||||
|
CREVICE_30198,
|
||||||
|
// Lumbridge
|
||||||
|
STILE_12982,
|
||||||
|
// Gu'Tanoth Bridge
|
||||||
|
GAP, GAP_2831,
|
||||||
|
// Lumbridge Swamp Caves
|
||||||
|
STEPPING_STONE_5948, STEPPING_STONE_5949, ROCKS_6673,
|
||||||
|
// Morytania Pirate Ship
|
||||||
|
ROCK_16115,
|
||||||
|
// Lumber Yard
|
||||||
|
BROKEN_FENCE_2618,
|
||||||
|
// McGrubor's Wood
|
||||||
|
LOOSE_RAILING,
|
||||||
|
// Underwater Area Fossil Island
|
||||||
|
TUNNEL_30959, HOLE_30966, OBSTACLE, OBSTACLE_30767, OBSTACLE_30964, OBSTACLE_30962,
|
||||||
|
// Tree Gnome Village
|
||||||
|
LOOSE_RAILING_2186,
|
||||||
|
// Burgh de Rott
|
||||||
|
LOW_FENCE,
|
||||||
|
// Taverley
|
||||||
|
STILE,
|
||||||
|
// Asgarnian Ice Dungeon
|
||||||
|
STEPS,
|
||||||
|
// Fossil Island Wyvern Cave
|
||||||
|
STAIRS_31485),
|
||||||
|
BRIMHAVEN_DUNGEON_MEDIUM_PIPE_RETURN(1, "Pipe Squeeze", null, new WorldPoint(2698, 9491, 0), PIPE_21727),
|
||||||
|
BRIMHAVEN_DUNGEON_PIPE_RETURN(1, "Pipe Squeeze", null, new WorldPoint(2655, 9573, 0), PIPE_21728),
|
||||||
|
BRIMHAVEN_DUNGEON_STEPPING_STONES_RETURN(1, "Pipe Squeeze", null, STEPPING_STONE_21739),
|
||||||
|
BRIMHAVEN_DUNGEON_LOG_BALANCE_RETURN(1, "Log Balance", null, LOG_BALANCE_20884),
|
||||||
|
AGILITY_PYRAMID_ROCKS_WEST(1, "Rocks", null, CLIMBING_ROCKS_11948),
|
||||||
|
CAIRN_ISLE_CLIMBING_ROCKS(1, "Rocks", null, CLIMBING_ROCKS),
|
||||||
|
KARAMJA_GLIDER_LOG(1, "Log Balance", new WorldPoint(2906, 3050, 0), A_WOODEN_LOG ),
|
||||||
|
FALADOR_CRUMBLING_WALL(5, "Crumbling Wall", new WorldPoint(2936, 3357, 0), CRUMBLING_WALL_24222 ),
|
||||||
|
RIVER_LUM_GRAPPLE_WEST(8, "Grapple Broken Raft", new WorldPoint(3245, 3179, 0), BROKEN_RAFT),
|
||||||
|
RIVER_LUM_GRAPPLE_EAST(8, "Grapple Broken Raft", new WorldPoint(3258, 3179, 0), BROKEN_RAFT),
|
||||||
|
CORSAIR_COVE_ROCKS(10, "Rocks", new WorldPoint(2545, 2871, 0), ROCKS_31757),
|
||||||
|
KARAMJA_MOSS_GIANT_SWING(10, "Rope", null, ROPESWING_23568, ROPESWING_23569),
|
||||||
|
FALADOR_GRAPPLE_WALL(11, "Grapple Wall", new WorldPoint(3031, 3391, 0), WALL_17049, WALL_17050),
|
||||||
|
BRIMHAVEN_DUNGEON_STEPPING_STONES(12, "Stepping Stones", null, STEPPING_STONE_21738),
|
||||||
|
VARROCK_SOUTH_FENCE(13, "Fence", new WorldPoint(3239, 3334, 0), FENCE_16518),
|
||||||
|
GOBLIN_VILLAGE_WALL(14, "Wall", new WorldPoint(2925, 3523, 0), TIGHTGAP),
|
||||||
|
CORSAIR_COVE_DUNGEON_PILLAR(15, "Pillar Jump", new WorldPoint(1980, 8996, 0), PILLAR_31809),
|
||||||
|
EDGEVILLE_DUNGEON_MONKEYBARS(15, "Monkey Bars", null, MONKEYBARS_23566),
|
||||||
|
TROLLHEIM_ROCKS(15, "Rocks", null, new WorldPoint(2838, 3614, 0), ROCKS_3748), // No fixed world map location, but rocks near death plateau have a requirement of 15
|
||||||
|
YANILLE_UNDERWALL_TUNNEL(16, "Underwall Tunnel", new WorldPoint(2574, 3109, 0), HOLE_16520, WALL_17047),
|
||||||
|
YANILLE_WATCHTOWER_TRELLIS(18, "Trellis", null, TRELLIS_20056),
|
||||||
|
COAL_TRUCKS_LOG_BALANCE(20, "Log Balance", new WorldPoint(2598, 3475, 0), LOG_BALANCE_23274),
|
||||||
|
GRAND_EXCHANGE_UNDERWALL_TUNNEL(21, "Underwall Tunnel", new WorldPoint(3139, 3515, 0), UNDERWALL_TUNNEL_16529, UNDERWALL_TUNNEL_16530),
|
||||||
|
BRIMHAVEN_DUNGEON_PIPE(22, "Pipe Squeeze", new WorldPoint(2654, 9569, 0), PIPE_21728),
|
||||||
|
OBSERVATORY_SCALE_CLIFF(23, "Grapple Rocks", new WorldPoint(2447, 3155, 0), NULL_31849),
|
||||||
|
EAGLES_PEAK_ROCK_CLIMB(25, "Rock Climb", new WorldPoint(2320, 3499, 0), ROCKS_19849),
|
||||||
|
FALADOR_UNDERWALL_TUNNEL(26, "Underwall Tunnel", new WorldPoint(2947, 3313, 0), UNDERWALL_TUNNEL, UNDERWALL_TUNNEL_16528),
|
||||||
|
MOUNT_KARUULM_LOWER(29, "Rocks", new WorldPoint(1324, 3782, 0), ROCKS_34397),
|
||||||
|
CORSAIR_COVE_RESOURCE_ROCKS(30, "Rocks", new WorldPoint(2486, 2898, 0), ROCKS_31758, ROCKS_31759),
|
||||||
|
SOUTHEAST_KARAJMA_STEPPING_STONES(30, "Stepping Stones", new WorldPoint(2924, 2946, 0), STEPPING_STONES, STEPPING_STONES_23646, STEPPING_STONES_23647),
|
||||||
|
BRIMHAVEN_DUNGEON_LOG_BALANCE(30, "Log Balance", null, LOG_BALANCE_20882),
|
||||||
|
AGILITY_PYRAMID_ROCKS_EAST(30, "Rocks", null, CLIMBING_ROCKS_11949),
|
||||||
|
DRAYNOR_MANOR_STEPPING_STONES(31, "Stepping Stones", new WorldPoint(3150, 3362, 0), STEPPING_STONE_16533),
|
||||||
|
CATHERBY_CLIFFSIDE_GRAPPLE(32, "Grapple Rock", new WorldPoint(2868, 3429, 0), ROCKS_17042),
|
||||||
|
CAIRN_ISLE_ROCKS(32, "Rocks", null, ROCKS_2231),
|
||||||
|
ARDOUGNE_LOG_BALANCE(33, "Log Balance", new WorldPoint(2602, 3336, 0), LOG_BALANCE_16546, LOG_BALANCE_16547, LOG_BALANCE_16548),
|
||||||
|
BRIMHAVEN_DUNGEON_MEDIUM_PIPE(34, "Pipe Squeeze", null, new WorldPoint(2698, 9501, 0), PIPE_21727),
|
||||||
|
CATHERBY_OBELISK_GRAPPLE(36, "Grapple Rock", new WorldPoint(2841, 3434, 0), CROSSBOW_TREE_17062),
|
||||||
|
GNOME_STRONGHOLD_ROCKS(37, "Rocks", new WorldPoint(2485, 3515, 0), ROCKS_16534, ROCKS_16535),
|
||||||
|
AL_KHARID_MINING_PITCLIFF_SCRAMBLE(38, "Rocks", new WorldPoint(3305, 3315, 0), ROCKS_16549, ROCKS_16550),
|
||||||
|
YANILLE_WALL_GRAPPLE(39, "Grapple Wall", new WorldPoint(2552, 3072, 0), CASTLE_WALL),
|
||||||
|
NEITIZNOT_BRIDGE_REPAIR(40, "Bridge Repair - Quest", new WorldPoint(2315, 3828, 0), ROPE_BRIDGE_21306, ROPE_BRIDGE_21307),
|
||||||
|
KOUREND_LAKE_JUMP_EAST(40, "Stepping Stones", new WorldPoint(1612, 3570, 0), STEPPING_STONE_29729, STEPPING_STONE_29730),
|
||||||
|
KOUREND_LAKE_JUMP_WEST(40, "Stepping Stones", new WorldPoint(1604, 3572, 0), STEPPING_STONE_29729, STEPPING_STONE_29730),
|
||||||
|
YANILLE_DUNGEON_BALANCE(40, "Balancing Ledge", null, BALANCING_LEDGE_23548),
|
||||||
|
TROLLHEIM_EASY_CLIFF_SCRAMBLE(41, "Rocks", new WorldPoint(2869, 3670, 0), ROCKS_16521),
|
||||||
|
DWARVEN_MINE_NARROW_CREVICE(42, "Narrow Crevice", new WorldPoint(3034, 9806, 0), CREVICE_16543),
|
||||||
|
DRAYNOR_UNDERWALL_TUNNEL(42, "Underwall Tunnel", new WorldPoint(3068, 3261, 0), UNDERWALL_TUNNEL_19032, UNDERWALL_TUNNEL_19036),
|
||||||
|
TROLLHEIM_MEDIUM_CLIFF_SCRAMBLE_NORTH(43, "Rocks", new WorldPoint(2886, 3684, 0), ROCKS_3803, ROCKS_3804, ROCKS_16522),
|
||||||
|
TROLLHEIM_MEDIUM_CLIFF_SCRAMBLE_SOUTH(43, "Rocks", new WorldPoint(2876, 3666, 0), ROCKS_3803, ROCKS_3804, ROCKS_16522),
|
||||||
|
TROLLHEIM_ADVANCED_CLIFF_SCRAMBLE(44, "Rocks", new WorldPoint(2907, 3686, 0), ROCKS_16523, ROCKS_3748),
|
||||||
|
KOUREND_RIVER_STEPPING_STONES(45, "Stepping Stones", new WorldPoint(1721, 3509, 0), STEPPING_STONE_29728),
|
||||||
|
TIRANNWN_LOG_BALANCE(45, "Log Balance", null, LOG_BALANCE_3933, LOG_BALANCE_3931, LOG_BALANCE_3930, LOG_BALANCE_3929, LOG_BALANCE_3932),
|
||||||
|
COSMIC_ALTAR_MEDIUM_WALKWAY(46, "Narrow Walkway", new WorldPoint(2399, 4403, 0), JUTTING_WALL_17002),
|
||||||
|
DEEP_WILDERNESS_DUNGEON_CREVICE_NORTH(46, "Narrow Crevice", new WorldPoint(3047, 10335, 0), CREVICE_19043),
|
||||||
|
DEEP_WILDERNESS_DUNGEON_CREVICE_SOUTH(46, "Narrow Crevice", new WorldPoint(3045, 10327, 0), CREVICE_19043),
|
||||||
|
TROLLHEIM_HARD_CLIFF_SCRAMBLE(47, "Rocks", new WorldPoint(2902, 3680, 0), ROCKS_16524),
|
||||||
|
FREMENNIK_LOG_BALANCE(48, "Log Balance", new WorldPoint(2721, 3591, 0), LOG_BALANCE_16540, LOG_BALANCE_16541, LOG_BALANCE_16542),
|
||||||
|
YANILLE_DUNGEON_PIPE_SQUEEZE(49, "Pipe Squeeze", null, OBSTACLE_PIPE_23140),
|
||||||
|
ARCEUUS_ESSENCE_MINE_BOULDER(49, "Boulder", new WorldPoint(1774, 3888, 0), BOULDER_27990),
|
||||||
|
MORYTANIA_STEPPING_STONE(50, "Stepping Stone", new WorldPoint(3418, 3326, 0), STEPPING_STONE_13504),
|
||||||
|
VARROCK_SEWERS_PIPE_SQUEEZE(51, "Pipe Squeeze", new WorldPoint(3152, 9905, 0), OBSTACLE_PIPE_16511),
|
||||||
|
ARCEUUS_ESSENCE_MINE_EAST_SCRAMBLE(52, "Rock Climb", new WorldPoint(1770, 3851, 0), ROCKS_27987, ROCKS_27988),
|
||||||
|
KARAMJA_VOLCANO_GRAPPLE_NORTH(53, "Grapple Rock", new WorldPoint(2873, 3143, 0), STRONG_TREE_17074),
|
||||||
|
KARAMJA_VOLCANO_GRAPPLE_SOUTH(53, "Grapple Rock", new WorldPoint(2874, 3128, 0), STRONG_TREE_17074),
|
||||||
|
MOTHERLODE_MINE_WALL_EAST(54, "Wall", new WorldPoint(3124, 9703, 0), DARK_TUNNEL_10047),
|
||||||
|
MOTHERLODE_MINE_WALL_WEST(54, "Wall", new WorldPoint(3118, 9702, 0), DARK_TUNNEL_10047),
|
||||||
|
MISCELLANIA_DOCK_STEPPING_STONE(55, "Stepping Stone", new WorldPoint(2572, 3862, 0), STEPPING_STONE_11768),
|
||||||
|
ISAFDAR_FOREST_OBSTACLES(56, "Trap", null, DENSE_FOREST_3938, DENSE_FOREST_3939, DENSE_FOREST_3998, DENSE_FOREST_3999, DENSE_FOREST, LEAVES, LEAVES_3924, LEAVES_3925, STICKS, TRIPWIRE),
|
||||||
|
RELEKKA_EAST_FENCE(57, "Fence", new WorldPoint(2688, 3697, 0), BROKEN_FENCE),
|
||||||
|
YANILLE_DUNGEON_MONKEY_BARS(57, "Monkey Bars", null, MONKEYBARS_23567),
|
||||||
|
PHASMATYS_ECTOPOOL_SHORTCUT(58, "Weathered Wall", null , WEATHERED_WALL, WEATHERED_WALL_16526),
|
||||||
|
ELVEN_OVERPASS_CLIFF_SCRAMBLE(59, "Rocks", new WorldPoint(2345, 3300, 0), ROCKS_16514, ROCKS_16515),
|
||||||
|
WILDERNESS_GWD_CLIMB_EAST(60, "Rocks", new WorldPoint(2943, 3770, 0), ROCKY_HANDHOLDS_26400, ROCKY_HANDHOLDS_26401, ROCKY_HANDHOLDS_26402, ROCKY_HANDHOLDS_26404, ROCKY_HANDHOLDS_26405, ROCKY_HANDHOLDS_26406),
|
||||||
|
WILDERNESS_GWD_CLIMB_WEST(60, "Rocks", new WorldPoint(2928, 3760, 0), ROCKY_HANDHOLDS_26400, ROCKY_HANDHOLDS_26401, ROCKY_HANDHOLDS_26402, ROCKY_HANDHOLDS_26404, ROCKY_HANDHOLDS_26405, ROCKY_HANDHOLDS_26406),
|
||||||
|
MOS_LEHARMLESS_STEPPING_STONE(60, "Stepping Stone", new WorldPoint(3710, 2970, 0), STEPPING_STONE_19042),
|
||||||
|
WINTERTODT_GAP(60, "Gap", new WorldPoint(1629, 4023, 0), GAP_29326),
|
||||||
|
UNGAEL_ICE(60, "Ice Chunks", null, NULL_25337, NULL_29868, NULL_29869, NULL_29870, ICE_CHUNKS_31822, NULL_31823, ICE_CHUNKS_31990),
|
||||||
|
SLAYER_TOWER_MEDIUM_CHAIN_FIRST(61, "Spiked Chain (Floor 1)", new WorldPoint(3421, 3550, 0), SPIKEY_CHAIN),
|
||||||
|
SLAYER_TOWER_MEDIUM_CHAIN_SECOND(61, "Spiked Chain (Floor 2)", new WorldPoint(3420, 3551, 0), SPIKEY_CHAIN_16538),
|
||||||
|
SLAYER_DUNGEON_CREVICE(62, "Narrow Crevice", new WorldPoint(2729, 10008, 0), CREVICE_16539),
|
||||||
|
MOUNT_KARUULM_UPPER(62, "Rocks", new WorldPoint(1322, 3791, 0), ROCKS_34396),
|
||||||
|
TAVERLEY_DUNGEON_RAILING(63, "Loose Railing", new WorldPoint(2935, 9811, 0), LOOSE_RAILING_28849),
|
||||||
|
TROLLHEIM_WILDERNESS_ROCKS_EAST(64, "Rocks", new WorldPoint(2945, 3678, 0), ROCKS_16545),
|
||||||
|
TROLLHEIM_WILDERNESS_ROCKS_WEST(64, "Rocks", new WorldPoint(2917, 3672, 0), ROCKS_16545),
|
||||||
|
FOSSIL_ISLAND_VOLCANO(64, "Rope", new WorldPoint(3780, 3822, 0), ROPE_ANCHOR, ROPE_ANCHOR_30917),
|
||||||
|
MORYTANIA_TEMPLE(65, "Loose Railing", new WorldPoint(3422, 3476, 0), ROCKS_16998, ROCKS_16999, ORNATE_RAILING, ORNATE_RAILING_17000),
|
||||||
|
REVENANT_CAVES_GREEN_DRAGONS(65, "Jump", new WorldPoint(3220, 10086, 0), PILLAR_31561),
|
||||||
|
COSMIC_ALTAR_ADVANCED_WALKWAY(66, "Narrow Walkway", new WorldPoint(2408, 4401, 0), JUTTING_WALL_17002),
|
||||||
|
LUMBRIDGE_DESERT_STEPPING_STONE(66, "Stepping Stone", new WorldPoint(3210, 3135, 0), STEPPING_STONE_16513),
|
||||||
|
HEROES_GUILD_TUNNEL_EAST(67, "Crevice", new WorldPoint(2898, 9901, 0), CREVICE_9739, CREVICE_9740),
|
||||||
|
HEROES_GUILD_TUNNEL_WEST(67, "Crevice", new WorldPoint(2913, 9895, 0), CREVICE_9739, CREVICE_9740),
|
||||||
|
YANILLE_DUNGEON_RUBBLE_CLIMB(67, "Pile of Rubble", null, PILE_OF_RUBBLE_23563, PILE_OF_RUBBLE_23564),
|
||||||
|
ELVEN_OVERPASS_MEDIUM_CLIFF(68, "Rocks", new WorldPoint(2337, 3288, 0), ROCKS_16514, ROCKS_16515),
|
||||||
|
WEISS_OBSTACLES(68, "Shortcut", null, LITTLE_BOULDER, ROCKSLIDE_33184, ROCKSLIDE_33185, NULL_33327, NULL_33328, LEDGE_33190, ROCKSLIDE_33191, FALLEN_TREE_33192),
|
||||||
|
ARCEUUS_ESSENSE_NORTH(69, "Rock Climb", new WorldPoint(1759, 3873, 0), ROCKS_27984, ROCKS_27985),
|
||||||
|
TAVERLEY_DUNGEON_PIPE_BLUE_DRAGON(70, "Pipe Squeeze", new WorldPoint(2886, 9798, 0), OBSTACLE_PIPE_16509),
|
||||||
|
TAVERLEY_DUNGEON_ROCKS_NORTH(70, "Rocks", new WorldPoint(2887, 9823, 0), ROCKS, ROCKS_14106),
|
||||||
|
TAVERLEY_DUNGEON_ROCKS_SOUTH(70, "Rocks", new WorldPoint(2887, 9631, 0), ROCKS, ROCKS_14106),
|
||||||
|
FOSSIL_ISLAND_HARDWOOD_NORTH(70, "Hole" , new WorldPoint(3713, 3827, 0), HOLE_31481, HOLE_31482),
|
||||||
|
FOSSIL_ISLAND_HARDWOOD_SOUTH(70, "Hole" , new WorldPoint(3715, 3817, 0), HOLE_31481, HOLE_31482),
|
||||||
|
AL_KHARID_WINDOW(70, "Window", new WorldPoint(3293, 3158, 0), BROKEN_WALL_33344, BIG_WINDOW),
|
||||||
|
GWD_SARADOMIN_ROPE_NORTH(70, "Rope Descent", new WorldPoint(2912, 5300, 0), NULL_26371),
|
||||||
|
GWD_SARADOMIN_ROPE_SOUTH(70, "Rope Descent", new WorldPoint(2951, 5267, 0), NULL_26375),
|
||||||
|
SLAYER_TOWER_ADVANCED_CHAIN_FIRST(71, "Spiked Chain (Floor 2)", new WorldPoint(3447, 3578, 0), SPIKEY_CHAIN ),
|
||||||
|
SLAYER_TOWER_ADVANCED_CHAIN_SECOND(71, "Spiked Chain (Floor 3)", new WorldPoint(3446, 3576, 0), SPIKEY_CHAIN_16538),
|
||||||
|
STRONGHOLD_SLAYER_CAVE_TUNNEL(72, "Tunnel", new WorldPoint(2431, 9806, 0), TUNNEL_30174, TUNNEL_30175),
|
||||||
|
TROLL_STRONGHOLD_WALL_CLIMB(73, "Rocks", new WorldPoint(2841, 3694, 0), ROCKS_16464),
|
||||||
|
ARCEUUS_ESSENSE_MINE_WEST(73, "Rock Climb", new WorldPoint(1742, 3853, 0), ROCKS_27984, ROCKS_27985 ),
|
||||||
|
LAVA_DRAGON_ISLE_JUMP(74, "Stepping Stone", new WorldPoint(3200, 3807, 0), STEPPING_STONE_14918),
|
||||||
|
REVENANT_CAVES_DEMONS_JUMP(75, "Jump", new WorldPoint(3199, 10135, 0), PILLAR_31561),
|
||||||
|
REVENANT_CAVES_ANKOU_EAST(75, "Jump", new WorldPoint(3201, 10195, 0), PILLAR_31561),
|
||||||
|
REVENANT_CAVES_ANKOU_NORTH(75, "Jump", new WorldPoint(3180, 10209, 0), PILLAR_31561),
|
||||||
|
ZUL_ANDRA_ISLAND_CROSSING(76, "Stepping Stone", new WorldPoint(2156, 3073, 0), STEPPING_STONE_10663),
|
||||||
|
SHILO_VILLAGE_STEPPING_STONES( 77, "Stepping Stones", new WorldPoint(2863, 2974, 0), STEPPING_STONE_16466),
|
||||||
|
KHARAZI_JUNGLE_VINE_CLIMB(79, "Vine", new WorldPoint(2897, 2939, 0), NULL_26884, NULL_26886),
|
||||||
|
TAVERLEY_DUNGEON_SPIKED_BLADES(80, "Strange Floor", new WorldPoint(2877, 9813, 0), STRANGE_FLOOR),
|
||||||
|
SLAYER_DUNGEON_CHASM_JUMP(81, "Spiked Blades", new WorldPoint(2770, 10003, 0), STRANGE_FLOOR_16544),
|
||||||
|
LAVA_MAZE_NORTH_JUMP(82, "Stepping Stone", new WorldPoint(3092, 3880, 0), STEPPING_STONE_14917),
|
||||||
|
BRIMHAVEN_DUNGEON_EAST_STEPPING_STONES_NORTH(83, "Stepping Stones", new WorldPoint(2685, 9547, 0), STEPPING_STONE_19040),
|
||||||
|
BRIMHAVEN_DUNGEON_EAST_STEPPING_STONES_SOUTH(83, "Stepping Stones", new WorldPoint(2693, 9529, 0), STEPPING_STONE_19040),
|
||||||
|
ELVEN_ADVANCED_CLIFF_SCRAMBLE(85, "Rocks", new WorldPoint(2337, 3253, 0), ROCKS_16514, ROCKS_16514),
|
||||||
|
KALPHITE_WALL(86, "Crevice", new WorldPoint(3214, 9508, 0), CREVICE_16465),
|
||||||
|
BRIMHAVEN_DUNGEON_VINE_EAST(87, "Vine", new WorldPoint(2672, 9582, 0), VINE_26880, VINE_26882),
|
||||||
|
BRIMHAVEN_DUNGEON_VINE_WEST(87, "Vine", new WorldPoint(2606, 9584, 0), VINE_26880, VINE_26882),
|
||||||
|
REVENANT_CAVES_CHAMBER_JUMP(89, "Jump", new WorldPoint(3240, 10144, 0), PILLAR_31561);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The agility level required to pass the shortcut
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
private final int level;
|
||||||
|
/**
|
||||||
|
* Brief description of the shortcut (e.g. 'Rocks', 'Stepping Stones', 'Jump')
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
private final String description;
|
||||||
|
/**
|
||||||
|
* The location of the Shortcut icon on the world map (null if there is no icon)
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
private final WorldPoint worldMapLocation;
|
||||||
|
/**
|
||||||
|
* An optional location in case the location of the shortcut icon is either
|
||||||
|
* null or isn't close enough to the obstacle
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
private final WorldPoint worldLocation;
|
||||||
|
/**
|
||||||
|
* Array of obstacles, null objects, decorations etc. that this shortcut uses.
|
||||||
|
* Typically an ObjectID/NullObjectID
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
private final int[] obstacleIds;
|
||||||
|
|
||||||
|
AgilityShortcut(int level, String description, WorldPoint mapLocation, WorldPoint worldLocation, int... obstacleIds)
|
||||||
|
{
|
||||||
|
this.level = level;
|
||||||
|
this.description = description;
|
||||||
|
this.worldMapLocation = mapLocation;
|
||||||
|
this.worldLocation = worldLocation;
|
||||||
|
this.obstacleIds = obstacleIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
AgilityShortcut(int level, String description, WorldPoint location, int... obstacleIds)
|
||||||
|
{
|
||||||
|
this(level, description, location, location, obstacleIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTooltip()
|
||||||
|
{
|
||||||
|
return description + " - Level " + level;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -36,6 +36,7 @@ import net.runelite.api.Client;
|
|||||||
import net.runelite.api.Point;
|
import net.runelite.api.Point;
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
import net.runelite.api.coords.LocalPoint;
|
||||||
|
import net.runelite.client.game.AgilityShortcut;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
@@ -44,6 +45,7 @@ import net.runelite.client.ui.overlay.OverlayUtil;
|
|||||||
class AgilityOverlay extends Overlay
|
class AgilityOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private static final int MAX_DISTANCE = 2350;
|
private static final int MAX_DISTANCE = 2350;
|
||||||
|
private static final Color SHORTCUT_HIGH_LEVEL_COLOR = Color.ORANGE;
|
||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final AgilityPlugin plugin;
|
private final AgilityPlugin plugin;
|
||||||
@@ -66,14 +68,15 @@ class AgilityOverlay extends Overlay
|
|||||||
LocalPoint playerLocation = client.getLocalPlayer().getLocalLocation();
|
LocalPoint playerLocation = client.getLocalPlayer().getLocalLocation();
|
||||||
Point mousePosition = client.getMouseCanvasPosition();
|
Point mousePosition = client.getMouseCanvasPosition();
|
||||||
final List<Tile> marksOfGrace = plugin.getMarksOfGrace();
|
final List<Tile> marksOfGrace = plugin.getMarksOfGrace();
|
||||||
plugin.getObstacles().forEach((object, tile) ->
|
plugin.getObstacles().forEach((object, obstacle) ->
|
||||||
{
|
{
|
||||||
if (Obstacles.SHORTCUT_OBSTACLE_IDS.contains(object.getId()) && !config.highlightShortcuts() ||
|
if (Obstacles.SHORTCUT_OBSTACLE_IDS.containsKey(object.getId()) && !config.highlightShortcuts() ||
|
||||||
Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !config.showTrapOverlay())
|
Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !config.showTrapOverlay())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Tile tile = obstacle.getTile();
|
||||||
if (tile.getPlane() == client.getPlane()
|
if (tile.getPlane() == client.getPlane()
|
||||||
&& object.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE)
|
&& object.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE)
|
||||||
{
|
{
|
||||||
@@ -87,11 +90,11 @@ class AgilityOverlay extends Overlay
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Area objectClickbox = object.getClickbox();
|
Area objectClickbox = object.getClickbox();
|
||||||
if (objectClickbox != null)
|
if (objectClickbox != null)
|
||||||
{
|
{
|
||||||
Color configColor = config.getOverlayColor();
|
AgilityShortcut agilityShortcut = obstacle.getShortcut();
|
||||||
|
Color configColor = agilityShortcut == null || agilityShortcut.getLevel() <= plugin.getAgilityLevel() ? config.getOverlayColor() : SHORTCUT_HIGH_LEVEL_COLOR;
|
||||||
if (config.highlightMarks() && !marksOfGrace.isEmpty())
|
if (config.highlightMarks() && !marksOfGrace.isEmpty())
|
||||||
{
|
{
|
||||||
configColor = config.getMarkColor();
|
configColor = config.getMarkColor();
|
||||||
|
|||||||
@@ -38,10 +38,12 @@ import net.runelite.api.Item;
|
|||||||
import net.runelite.api.ItemID;
|
import net.runelite.api.ItemID;
|
||||||
import static net.runelite.api.ItemID.AGILITY_ARENA_TICKET;
|
import static net.runelite.api.ItemID.AGILITY_ARENA_TICKET;
|
||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
|
import net.runelite.api.Skill;
|
||||||
import static net.runelite.api.Skill.AGILITY;
|
import static net.runelite.api.Skill.AGILITY;
|
||||||
import net.runelite.api.Tile;
|
import net.runelite.api.Tile;
|
||||||
import net.runelite.api.TileObject;
|
import net.runelite.api.TileObject;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
|
import net.runelite.api.events.BoostedLevelChanged;
|
||||||
import net.runelite.api.events.ConfigChanged;
|
import net.runelite.api.events.ConfigChanged;
|
||||||
import net.runelite.api.events.DecorativeObjectChanged;
|
import net.runelite.api.events.DecorativeObjectChanged;
|
||||||
import net.runelite.api.events.DecorativeObjectDespawned;
|
import net.runelite.api.events.DecorativeObjectDespawned;
|
||||||
@@ -63,6 +65,7 @@ import net.runelite.api.events.WallObjectSpawned;
|
|||||||
import net.runelite.client.Notifier;
|
import net.runelite.client.Notifier;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.Subscribe;
|
import net.runelite.client.eventbus.Subscribe;
|
||||||
|
import net.runelite.client.game.AgilityShortcut;
|
||||||
import net.runelite.client.game.ItemManager;
|
import net.runelite.client.game.ItemManager;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
@@ -80,7 +83,7 @@ public class AgilityPlugin extends Plugin
|
|||||||
private static final int AGILITY_ARENA_REGION_ID = 11157;
|
private static final int AGILITY_ARENA_REGION_ID = 11157;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final Map<TileObject, Tile> obstacles = new HashMap<>();
|
private final Map<TileObject, Obstacle> obstacles = new HashMap<>();
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final List<Tile> marksOfGrace = new ArrayList<>();
|
private final List<Tile> marksOfGrace = new ArrayList<>();
|
||||||
@@ -115,6 +118,9 @@ public class AgilityPlugin extends Plugin
|
|||||||
private int lastAgilityXp;
|
private int lastAgilityXp;
|
||||||
private WorldPoint lastArenaTicketPosition;
|
private WorldPoint lastArenaTicketPosition;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private int agilityLevel;
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
AgilityConfig getConfig(ConfigManager configManager)
|
AgilityConfig getConfig(ConfigManager configManager)
|
||||||
{
|
{
|
||||||
@@ -126,6 +132,7 @@ public class AgilityPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
overlayManager.add(agilityOverlay);
|
overlayManager.add(agilityOverlay);
|
||||||
overlayManager.add(lapCounterOverlay);
|
overlayManager.add(lapCounterOverlay);
|
||||||
|
agilityLevel = client.getBoostedSkillLevel(Skill.AGILITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -136,6 +143,7 @@ public class AgilityPlugin extends Plugin
|
|||||||
marksOfGrace.clear();
|
marksOfGrace.clear();
|
||||||
obstacles.clear();
|
obstacles.clear();
|
||||||
session = null;
|
session = null;
|
||||||
|
agilityLevel = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@@ -208,6 +216,17 @@ public class AgilityPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
|
||||||
|
{
|
||||||
|
Skill skill = boostedLevelChanged.getSkill();
|
||||||
|
if (skill == AGILITY)
|
||||||
|
{
|
||||||
|
agilityLevel = client.getBoostedSkillLevel(skill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onItemSpawned(ItemSpawned itemSpawned)
|
public void onItemSpawned(ItemSpawned itemSpawned)
|
||||||
{
|
{
|
||||||
@@ -366,11 +385,40 @@ public class AgilityPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Obstacles.COURSE_OBSTACLE_IDS.contains(newObject.getId()) ||
|
if (Obstacles.COURSE_OBSTACLE_IDS.contains(newObject.getId()) ||
|
||||||
Obstacles.SHORTCUT_OBSTACLE_IDS.contains(newObject.getId()) ||
|
|
||||||
(Obstacles.TRAP_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.put(newObject, tile);
|
obstacles.put(newObject, new Obstacle(tile, null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Obstacles.SHORTCUT_OBSTACLE_IDS.containsKey(newObject.getId()))
|
||||||
|
{
|
||||||
|
AgilityShortcut closestShortcut = null;
|
||||||
|
int distance = -1;
|
||||||
|
|
||||||
|
// Find the closest shortcut to this object
|
||||||
|
for (AgilityShortcut shortcut : Obstacles.SHORTCUT_OBSTACLE_IDS.get(newObject.getId()))
|
||||||
|
{
|
||||||
|
if (shortcut.getWorldLocation() == null)
|
||||||
|
{
|
||||||
|
closestShortcut = shortcut;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int newDistance = shortcut.getWorldLocation().distanceTo2D(newObject.getWorldLocation());
|
||||||
|
if (closestShortcut == null || newDistance < distance)
|
||||||
|
{
|
||||||
|
closestShortcut = shortcut;
|
||||||
|
distance = newDistance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (closestShortcut != null)
|
||||||
|
{
|
||||||
|
obstacles.put(newObject, new Obstacle(tile, closestShortcut));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2019, MrGroggle
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
* list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
package net.runelite.client.plugins.agility;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Value;
|
||||||
|
import net.runelite.api.Tile;
|
||||||
|
import net.runelite.client.game.AgilityShortcut;
|
||||||
|
|
||||||
|
@Value
|
||||||
|
@AllArgsConstructor
|
||||||
|
class Obstacle
|
||||||
|
{
|
||||||
|
private final Tile tile;
|
||||||
|
@Nullable
|
||||||
|
private final AgilityShortcut shortcut;
|
||||||
|
}
|
||||||
@@ -25,11 +25,27 @@
|
|||||||
package net.runelite.client.plugins.agility;
|
package net.runelite.client.plugins.agility;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.common.collect.Multimap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import static net.runelite.api.NullObjectID.*;
|
import static net.runelite.api.NullObjectID.NULL_10872;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_10873;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_12945;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18083;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18116;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18122;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18124;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18129;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18130;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18132;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18133;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18135;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_18136;
|
||||||
|
import static net.runelite.api.NullObjectID.NULL_3550;
|
||||||
import static net.runelite.api.ObjectID.*;
|
import static net.runelite.api.ObjectID.*;
|
||||||
|
import net.runelite.client.game.AgilityShortcut;
|
||||||
|
|
||||||
class Obstacles
|
class Obstacles
|
||||||
{
|
{
|
||||||
@@ -91,144 +107,7 @@ class Obstacles
|
|||||||
ZIP_LINE_11645, ZIP_LINE_11646
|
ZIP_LINE_11645, ZIP_LINE_11646
|
||||||
);
|
);
|
||||||
|
|
||||||
static final Set<Integer> SHORTCUT_OBSTACLE_IDS = ImmutableSet.of(
|
static final Multimap<Integer, AgilityShortcut> SHORTCUT_OBSTACLE_IDS;
|
||||||
// Grand Exchange
|
|
||||||
UNDERWALL_TUNNEL_16529, UNDERWALL_TUNNEL_16530,
|
|
||||||
// South Varrock
|
|
||||||
STEPPING_STONE_16533, FENCE_16518, ROCKS_16549, ROCKS_16550,
|
|
||||||
// Falador
|
|
||||||
WALL_17049, WALL_17050, CRUMBLING_WALL_24222, UNDERWALL_TUNNEL, UNDERWALL_TUNNEL_16528, CREVICE_16543,
|
|
||||||
// Draynor
|
|
||||||
UNDERWALL_TUNNEL_19032, UNDERWALL_TUNNEL_19036,
|
|
||||||
// South Lumbridge
|
|
||||||
BROKEN_RAFT, STEPPING_STONE_16513,
|
|
||||||
// Trollheim
|
|
||||||
ROCKS_3790, ROCKS_3791, ROCKS_3803, ROCKS_3804, ROCKS_16523, ROCKS_16524, ROCKS_3748, ROCKS_16545, ROCKS_16521,
|
|
||||||
ROCKS_16522, ROCKS_16464,
|
|
||||||
// North Camelot
|
|
||||||
LOG_BALANCE_16540, LOG_BALANCE_16541, LOG_BALANCE_16542,
|
|
||||||
// Rellekka
|
|
||||||
BROKEN_FENCE,
|
|
||||||
// Ardougne
|
|
||||||
LOG_BALANCE_16546, LOG_BALANCE_16547, LOG_BALANCE_16548,
|
|
||||||
// Yanille
|
|
||||||
CASTLE_WALL, HOLE_16520, WALL_17047,
|
|
||||||
// Observatory
|
|
||||||
NULL_31849,
|
|
||||||
// Gnome Stronghold
|
|
||||||
ROCKS_16534, ROCKS_16535,
|
|
||||||
// Karamja Volcano
|
|
||||||
STRONG_TREE_17074,
|
|
||||||
// Shilo Village
|
|
||||||
STEPPING_STONE_16466,
|
|
||||||
// Vine east of Shilo Village
|
|
||||||
NULL_26884, NULL_26886,
|
|
||||||
// Stepping stones east of Shilo Village
|
|
||||||
STEPPING_STONES, STEPPING_STONES_23646, STEPPING_STONES_23647,
|
|
||||||
// Middle of Karamja
|
|
||||||
A_WOODEN_LOG,
|
|
||||||
// Slayer Tower
|
|
||||||
SPIKEY_CHAIN, SPIKEY_CHAIN_16538,
|
|
||||||
// Fremennik Slayer Cave
|
|
||||||
STRANGE_FLOOR_16544, CREVICE_16539, STEPS_29993,
|
|
||||||
// Wilderness
|
|
||||||
STEPPING_STONE_14918, STEPPING_STONE_14917, ROCKY_HANDHOLDS_26404, ROCKY_HANDHOLDS_26405, ROCKY_HANDHOLDS_26406,
|
|
||||||
// Godwars
|
|
||||||
ROCKY_HANDHOLDS_26400, ROCKY_HANDHOLDS_26401, ROCKY_HANDHOLDS_26402,
|
|
||||||
// Seers' Village Coal Mine
|
|
||||||
LOG_BALANCE_23274,
|
|
||||||
// Arceuus Essence Mine
|
|
||||||
ROCKS_27984, ROCKS_27985, BOULDER_27990, ROCKS_27987, ROCKS_27988,
|
|
||||||
// Wintertodt
|
|
||||||
GAP_29326,
|
|
||||||
// Gnome Stronghold Slayer Underground
|
|
||||||
TUNNEL_30174, TUNNEL_30175,
|
|
||||||
// Taverley Underground
|
|
||||||
OBSTACLE_PIPE_16509, STRANGE_FLOOR, ROCKS, ROCKS_14106, LOOSE_RAILING_28849,
|
|
||||||
// Heroes Guild
|
|
||||||
CREVICE_9739, CREVICE_9740,
|
|
||||||
// Fossil Island
|
|
||||||
HOLE_31481, HOLE_31482, LADDER_30938, LADDER_30939, LADDER_30940, LADDER_30941, ROPE_ANCHOR, ROPE_ANCHOR_30917,
|
|
||||||
RUBBER_CAP_MUSHROOM,
|
|
||||||
ROCKS_31757, ROCKS_31758, ROCKS_31759, PILLAR_31809,
|
|
||||||
// West Brimhaven
|
|
||||||
ROPESWING_23568, ROPESWING_23569,
|
|
||||||
// Brimhaven Dungeon
|
|
||||||
VINE_26880, VINE_26882, PIPE_21728, STEPPING_STONE_19040, PIPE_21727, LOG_BALANCE_20882, LOG_BALANCE_20884,
|
|
||||||
STEPPING_STONE_21738, STEPPING_STONE_21739, TIGHTGAP,
|
|
||||||
// Lumbridge
|
|
||||||
STILE_12982,
|
|
||||||
// Edgeville Dungeon
|
|
||||||
MONKEYBARS_23566, OBSTACLE_PIPE_16511,
|
|
||||||
// Miscellania
|
|
||||||
STEPPING_STONE_11768,
|
|
||||||
// Kalphite
|
|
||||||
CREVICE_16465,
|
|
||||||
// Eagles' Peak
|
|
||||||
ROCKS_19849,
|
|
||||||
// Catherby
|
|
||||||
CROSSBOW_TREE_17062, ROCKS_17042,
|
|
||||||
// McGrubor's Woods
|
|
||||||
LOOSE_RAILING,
|
|
||||||
// Cairn Isle
|
|
||||||
ROCKS_2231,
|
|
||||||
// South Kourend
|
|
||||||
STEPPING_STONE_29728, STEPPING_STONE_29729, STEPPING_STONE_29730,
|
|
||||||
// Cosmic Temple
|
|
||||||
JUTTING_WALL_17002,
|
|
||||||
// Arandar
|
|
||||||
ROCKS_16514, ROCKS_16515, LOG_BALANCE_3933,
|
|
||||||
// South River Salve
|
|
||||||
STEPPING_STONE_13504,
|
|
||||||
DARK_TUNNEL_10047,
|
|
||||||
// Ectofuntus
|
|
||||||
WEATHERED_WALL, WEATHERED_WALL_16526,
|
|
||||||
// Mos Le'Harmless
|
|
||||||
STEPPING_STONE_19042,
|
|
||||||
// North River Salve
|
|
||||||
ROCKS_16998, ROCKS_16999, ORNATE_RAILING, ORNATE_RAILING_17000,
|
|
||||||
// West Zul-Andra
|
|
||||||
STEPPING_STONE_10663,
|
|
||||||
// Yanille Agility Dungeon
|
|
||||||
BALANCING_LEDGE_23548, OBSTACLE_PIPE_23140, MONKEYBARS_23567, PILE_OF_RUBBLE_23563, PILE_OF_RUBBLE_23564,
|
|
||||||
// High Level Wilderness Dungeon
|
|
||||||
CREVICE_19043,
|
|
||||||
// Revenant Caves
|
|
||||||
PILLAR_31561,
|
|
||||||
// Elf Camp Isafdar Tirranwn
|
|
||||||
LOG_BALANCE_3931, LOG_BALANCE_3930, LOG_BALANCE_3929, LOG_BALANCE_3932, DENSE_FOREST_3938, DENSE_FOREST_3939,
|
|
||||||
DENSE_FOREST_3998, DENSE_FOREST_3999, DENSE_FOREST, LEAVES, LEAVES_3924, LEAVES_3925, STICKS, TRIPWIRE,
|
|
||||||
// Gu'Tanoth bridge
|
|
||||||
GAP, GAP_2831,
|
|
||||||
// Lumbridge Swamp Caves
|
|
||||||
STEPPING_STONE_5948, STEPPING_STONE_5949, ROCKS_6673,
|
|
||||||
// Morytania Pirate Ship
|
|
||||||
ROCK_16115,
|
|
||||||
// Agility Pyramid Entrance
|
|
||||||
CLIMBING_ROCKS_11948, CLIMBING_ROCKS_11949,
|
|
||||||
// Lumber Yard
|
|
||||||
BROKEN_FENCE_2618,
|
|
||||||
// Ungael and Vorkath crater
|
|
||||||
NULL_25337, NULL_29868, NULL_29869, NULL_29870, ICE_CHUNKS_31822, NULL_31823, ICE_CHUNKS_31990,
|
|
||||||
// Underwater Area Fossil Island
|
|
||||||
TUNNEL_30959, HOLE_30966, OBSTACLE, OBSTACLE_30767, OBSTACLE_30964, OBSTACLE_30962,
|
|
||||||
// Tree Gnome Village
|
|
||||||
LOOSE_RAILING_2186,
|
|
||||||
// Weiss
|
|
||||||
LITTLE_BOULDER, ROCKSLIDE_33184, ROCKSLIDE_33185, NULL_33327, NULL_33328, LEDGE_33190, ROCKSLIDE_33191, FALLEN_TREE_33192,
|
|
||||||
// Al-Kharid
|
|
||||||
BROKEN_WALL_33344, BIG_WINDOW,
|
|
||||||
// Burgh de Rott
|
|
||||||
LOW_FENCE,
|
|
||||||
// Taverley
|
|
||||||
STILE,
|
|
||||||
// Asgarnian Ice Dungeon
|
|
||||||
STEPS,
|
|
||||||
// Fossil Island Wyvern Cave
|
|
||||||
STAIRS_31485,
|
|
||||||
// Mount Karuulm
|
|
||||||
ROCKS_34397, ROCKS_34396
|
|
||||||
);
|
|
||||||
|
|
||||||
static final Set<Integer> TRAP_OBSTACLE_IDS = ImmutableSet.of(
|
static final Set<Integer> TRAP_OBSTACLE_IDS = ImmutableSet.of(
|
||||||
// Agility pyramid
|
// Agility pyramid
|
||||||
@@ -236,4 +115,17 @@ class Obstacles
|
|||||||
);
|
);
|
||||||
|
|
||||||
static final List<Integer> TRAP_OBSTACLE_REGIONS = ImmutableList.of(12105, 13356);
|
static final List<Integer> TRAP_OBSTACLE_REGIONS = ImmutableList.of(12105, 13356);
|
||||||
|
|
||||||
|
static
|
||||||
|
{
|
||||||
|
final ImmutableMultimap.Builder<Integer, AgilityShortcut> builder = ImmutableMultimap.builder();
|
||||||
|
for (final AgilityShortcut item : AgilityShortcut.values())
|
||||||
|
{
|
||||||
|
for (int obstacle : item.getObstacleIds())
|
||||||
|
{
|
||||||
|
builder.put(obstacle, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SHORTCUT_OBSTACLE_IDS = builder.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,142 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2018, Morgan Lewis <https://github.com/MESLewis>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
* list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
package net.runelite.client.plugins.worldmap;
|
|
||||||
|
|
||||||
import lombok.Getter;
|
|
||||||
import net.runelite.api.coords.WorldPoint;
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
enum AgilityShortcutLocation
|
|
||||||
{
|
|
||||||
KARAMJA_GLIDER_LOG("Log Balance", 1, new WorldPoint(2906, 3050, 0)),
|
|
||||||
FALADOR_CRUMBLING_WALL("Crumbling Wall", 5, new WorldPoint(2936, 3357, 0)),
|
|
||||||
RIVER_LUM_GRAPPLE_WEST("Grapple Broken Raft", 8, new WorldPoint(3245, 3179, 0)),
|
|
||||||
RIVER_LUM_GRAPPLE_EAST("Grapple Broken Raft", 8, new WorldPoint(3258, 3179, 0)),
|
|
||||||
CORSAIR_COVE_ROCKS("Rocks", 10, new WorldPoint(2545, 2871, 0)),
|
|
||||||
FALADOR_GRAPPLE_WALL("Grapple Wall", 11, new WorldPoint(3031, 3391, 0)),
|
|
||||||
VARROCK_SOUTH_FENCE("Fence", 13, new WorldPoint(3239, 3334, 0)),
|
|
||||||
GOBLIN_VILLAGE_WALL("Wall", 14, new WorldPoint(2925, 3523, 0)),
|
|
||||||
CORSAIR_COVE_DUNGEON_PILLAR("Pillar Jump", 15, new WorldPoint(1980, 8996, 0)),
|
|
||||||
YANILLE_UNDERWALL_TUNNEL("Underwall Tunnel", 16, new WorldPoint(2574, 3109, 0)),
|
|
||||||
COAL_TRUCKS_LOG_BALANCE("Log Balance", 20, new WorldPoint(2598, 3475, 0)),
|
|
||||||
GRAND_EXCHANGE_UNDERWALL_TUNNEL("Underwall Tunnel", 21, new WorldPoint(3139, 3515, 0)),
|
|
||||||
BRIMHAVEN_DUNGEON_PIPE("Pipe Squeeze", 22, new WorldPoint(2654, 9569, 0)),
|
|
||||||
OBSERVATORY_SCALE_CLIFF("Grapple Rocks", 23, new WorldPoint(2447, 3155, 0)),
|
|
||||||
EAGLES_PEAK_ROCK_CLIMB("Rock Climb", 25, new WorldPoint(2320, 3499, 0)),
|
|
||||||
FALADOR_UNDERWALL_TUNNEL("Underwall Tunnel", 26, new WorldPoint(2947, 3313, 0)),
|
|
||||||
MOUNT_KARUULM_LOWER("Rocks", 29, new WorldPoint(1324, 3782, 0)),
|
|
||||||
CORSAIR_COVE_RESOURCE_ROCKS("Rocks", 30, new WorldPoint(2545, 2871, 0)),
|
|
||||||
SOUTHEAST_KARAJMA_STEPPING_STONES("Stepping Stones", 30, new WorldPoint(2924, 2946, 0)),
|
|
||||||
DRAYNOR_MANOR_STEPPING_STONES("Stepping Stones", 31, new WorldPoint(3150, 3362, 0)),
|
|
||||||
CATHERBY_CLIFFSIDE_GRAPPLE("Grapple Rock", 32, new WorldPoint(2868, 3429, 0)),
|
|
||||||
ARDOUGNE_LOG_BALANCE("Log Balance", 33, new WorldPoint(2602, 3336, 0)),
|
|
||||||
GNOME_STRONGHOLD_ROCKS("Rocks", 37, new WorldPoint(2485, 3515, 0)),
|
|
||||||
AL_KHARID_MINING_PITCLIFF_SCRAMBLE("Rocks", 38, new WorldPoint(3305, 3315, 0)),
|
|
||||||
YANILLE_WALL_GRAPPLE("Grapple Wall", 39, new WorldPoint(2552, 3072, 0)),
|
|
||||||
NEITIZNOT_BRIDGE_REPAIR("Bridge Repair - Quest", 40, new WorldPoint(2315, 3828, 0)),
|
|
||||||
KOUREND_LAKE_JUMP_WEST("Stepping Stones", 40, new WorldPoint(1604, 3572, 0)),
|
|
||||||
KOUREND_LAKE_JUMP_EAST("Stepping Stones", 40, new WorldPoint(1612, 3570, 0)),
|
|
||||||
TROLLHEIM_EASY_CLIFF_SCRAMBLE("Rocks", 41, new WorldPoint(2869, 3670, 0)),
|
|
||||||
DWARVEN_MINE_NARROW_CREVICE("Narrow Crevice", 42, new WorldPoint(3034, 9806, 0)),
|
|
||||||
DRAYNOR_UNDERWALL_TUNNEL("Underwall Tunnel", 42, new WorldPoint(3068, 3261, 0)),
|
|
||||||
TROLLHEIM_MEDIUM_CLIFF_SCRAMBLE_NORTH("Rocks", 43, new WorldPoint(2886, 3684, 0)),
|
|
||||||
TROLLHEIM_MEDIUM_CLIFF_SCRAMBLE_SOUTH("Rocks", 43, new WorldPoint(2876, 3666, 0)),
|
|
||||||
TROLLHEIM_ADVANCED_CLIFF_SCRAMBLE("Rocks", 44, new WorldPoint(2907, 3686, 0)),
|
|
||||||
KOUREND_RIVER_STEPPING_STONES("Stepping Stones", 45, new WorldPoint(1721, 3509, 0)),
|
|
||||||
COSMIC_ALTAR_MEDIUM_WALKWAY("Narrow Walkway", 46, new WorldPoint(2399, 4403, 0)),
|
|
||||||
DEEP_WILDERNESS_DUNGEON_CREVICE_NORTH("Narrow Crevice", 46, new WorldPoint(3047, 10335, 0)),
|
|
||||||
DEEP_WILDERNESS_DUNGEON_CREVICE_SOUTH("Narrow Crevice", 46, new WorldPoint(3045, 10327, 0)),
|
|
||||||
TROLLHEIM_HARD_CLIFF_SCRAMBLE("Rocks", 47, new WorldPoint(2902, 3680, 0)),
|
|
||||||
FREMENNIK_LOG_BALANCE("Log Balance", 48, new WorldPoint(2721, 3591, 0)),
|
|
||||||
ARCEUUS_ESSENCE_MINE_BOULDER("Boulder", 49, new WorldPoint(1774, 3888, 0)),
|
|
||||||
MORYTANIA_STEPPING_STONE("Stepping Stone", 50, new WorldPoint(3418, 3326, 0)),
|
|
||||||
VARROCK_SEWERS_PIPE_SQUEEZE("Pipe Squeeze", 51, new WorldPoint(3152, 9905, 0)),
|
|
||||||
ARCEUUS_ESSENCE_MINE_EAST_SCRAMBLE("Rock Climb", 52, new WorldPoint(1770, 3851, 0)),
|
|
||||||
KARAMJA_VOLCANO_GRAPPLE_NORTH("Grapple Rock", 53, new WorldPoint(2873, 3143, 0)),
|
|
||||||
KARAMJA_VOLCANO_GRAPPLE_SOUTH("Grapple Rock", 53, new WorldPoint(2874, 3128, 0)),
|
|
||||||
MOTHERLODE_MINE_WALL_WEST("Wall", 54, new WorldPoint(3118, 9702, 0)),
|
|
||||||
MOTHERLODE_MINE_WALL_EAST("Wall", 54, new WorldPoint(3124, 9703, 0)),
|
|
||||||
MISCELLANIA_DOCK_STEPPING_STONE("Stepping Stone", 55, new WorldPoint(2572, 3862, 0)),
|
|
||||||
RELEKKA_EAST_FENCE("Fence", 57, new WorldPoint(2688, 3697, 0)),
|
|
||||||
ELVEN_OVERPASS_CLIFF_SCRAMBLE("Rocks", 59, new WorldPoint(2345, 3300, 0)),
|
|
||||||
WILDERNESS_GWD_CLIMB_WEST("Rocks", 60, new WorldPoint(2928, 3760, 0)),
|
|
||||||
WILDERNESS_GWD_CLIMB_EAST("Rocks", 60, new WorldPoint(2943, 3770, 0)),
|
|
||||||
MOS_LEHARMLESS_STEPPING_STONE("Stepping Stone", 60, new WorldPoint(3710, 2970, 0)),
|
|
||||||
WINTERTODT_GAP("Gap", 60, new WorldPoint(1629, 4023, 0)),
|
|
||||||
SLAYER_TOWER_MEDIUM_CHAIN_FIRST("Spiked Chain (Floor 1)", 61, new WorldPoint(3421, 3550, 0)),
|
|
||||||
SLAYER_TOWER_MEDIUM_CHAIN_SECOND("Spiked Chain (Floor 2)", 61, new WorldPoint(3420, 3551, 0)),
|
|
||||||
SLAYER_DUNGEON_CREVICE("Narrow Crevice", 62, new WorldPoint(2729, 10008, 0)),
|
|
||||||
MOUNT_KARUULM_UPPER("Rocks", 62, new WorldPoint(1322, 3791, 0)),
|
|
||||||
TAVERLEY_DUNGEON_RAILING("Loose Railing", 63, new WorldPoint(2935, 9811, 0)),
|
|
||||||
TROLLHEIM_WILDERNESS_ROCKS("Rocks", 64, new WorldPoint(2945, 3678, 0)),
|
|
||||||
FOSSIL_ISLAND_VOLCANO("Rope", 64, new WorldPoint(3780, 3822, 0)),
|
|
||||||
MORYTANIA_TEMPLE("Loose Railing", 65, new WorldPoint(3422, 3476, 0)),
|
|
||||||
REVENANT_CAVES_GREEN_DRAGONS("Jump", 65, new WorldPoint(3220, 10086, 0)),
|
|
||||||
COSMIC_ALTAR_ADVANCED_WALKWAY("Narrow Walkway", 66, new WorldPoint(2408, 4401, 0)),
|
|
||||||
LUMBRIDGE_DESERT_STEPPING_STONE("Stepping Stone", 66, new WorldPoint(3210, 3135, 0)),
|
|
||||||
HEROS_GUILD_TUNNEL_WEST("Crevice", 67, new WorldPoint(2898, 9901, 0)),
|
|
||||||
HEROS_GUILD_TUNNEL_EAST("Crevice", 67, new WorldPoint(2913, 9895, 0)),
|
|
||||||
ELVEN_OVERPASS_MEDIUM_CLIFF("Rocks", 68, new WorldPoint(2337, 3288, 0)),
|
|
||||||
ARCEUUS_ESSENSE_NORTH("Rock Climb", 69, new WorldPoint(1759, 3873, 0)),
|
|
||||||
TAVERLEY_DUNGEON_PIPE_BLUE_DRAGON("Pipe Squeeze", 70, new WorldPoint(2886, 9798, 0)),
|
|
||||||
FOSSIL_ISLAND_HARDWOOD("Hole", 70, new WorldPoint(3663, 3810, 0)),
|
|
||||||
GWD_SARADOMIN_ROPE_FIRST("Rope Descent", 70, new WorldPoint(2912, 5300, 0)),
|
|
||||||
GWD_SARADOMIN_ROPE_SECOND("Rope Descent", 70, new WorldPoint(2951, 5267, 0)),
|
|
||||||
SLAYER_TOWER_ADVANCED_CHAIN_FIRST("Spiked Chain (Floor 2)", 71, new WorldPoint(3447, 3578, 0)),
|
|
||||||
SLAYER_TOWER_ADVANCED_CHAIN_SECOND("Spiked Chain (Floor 3)", 71, new WorldPoint(3446, 3576, 0)),
|
|
||||||
SLAYER_CAVE_WALL_CLIMB("Tunnel", 72, new WorldPoint(2431, 9806, 0)),
|
|
||||||
TROLL_STRONGHOLD_WALL_CLIMB("Rocks", 73, new WorldPoint(2841, 3694, 0)),
|
|
||||||
ARCEUUS_ESSENSE_MINE_WEST("Rock Climb", 73, new WorldPoint(1742, 3853, 0)),
|
|
||||||
LAVA_DRAGON_ISLE_JUMP("Stepping Stone", 74, new WorldPoint(3200, 3807, 0)),
|
|
||||||
REVENANT_CAVES_DEMONS_JUMP("Jump", 75, new WorldPoint(3199, 10135, 0)),
|
|
||||||
REVENANT_CAVES_ANKOU_EAST("Jump", 75, new WorldPoint(3201, 10195, 0)),
|
|
||||||
REVENANT_CAVES_ANKOU_NORTH("Jump", 75, new WorldPoint(3180, 10209, 0)),
|
|
||||||
ZUL_ANDRA_ISLAND_CROSSING("Stepping Stone", 76, new WorldPoint(2156, 3073, 0)),
|
|
||||||
SHILO_VILLAGE_STEPPING_STONES("Stepping Stones", 77, new WorldPoint(2863, 2974, 0)),
|
|
||||||
KHARAZI_JUNGLE_VINE_CLIMB("Vine", 79, new WorldPoint(2897, 2939, 0)),
|
|
||||||
TAVERLEY_DUNGEON_SPIKED_BLADES("Strange Floor", 80, new WorldPoint(2877, 9813, 0)),
|
|
||||||
TAVERLEY_DUNGEON_ROCKS("Rocks", 70, new WorldPoint(2887, 9823, 0)),
|
|
||||||
SLAYER_DUNGEON_CHASM_JUMP("Spiked Blades", 81, new WorldPoint(2770, 10003, 0)),
|
|
||||||
LAVA_MAZE_NORTH_JUMP("Stepping Stone", 82, new WorldPoint(3092, 3880, 0)),
|
|
||||||
BRIMHAVEN_DUNGEON_EAST_STEPPING_NORTH("Stepping Stones", 83, new WorldPoint(2685, 9547, 0)),
|
|
||||||
BRIMHAVEN_DUNGEON_EAST_STEPPING_SOUTH("Stepping Stones", 83, new WorldPoint(2693, 9529, 0)),
|
|
||||||
ELVEN_ADVANCED_CLIFF_SCRAMBLE("Rocks", 85, new WorldPoint(2337, 3253, 0)),
|
|
||||||
KALPHITE_WALL("Crevice", 86, new WorldPoint(3214, 9508, 0)),
|
|
||||||
BRIMHAVEN_DUNGEON_VINE_EAST("Vine", 87, new WorldPoint(2672, 9582, 0)),
|
|
||||||
BRIMHAVEN_DUNGEON_VINE_WEST("Vine", 87, new WorldPoint(2606, 9584, 0)),
|
|
||||||
RENEVANT_CAVES("Jump", 89, new WorldPoint(3240, 10144, 0));
|
|
||||||
|
|
||||||
private final String tooltip;
|
|
||||||
private final WorldPoint location;
|
|
||||||
private final int levelReq;
|
|
||||||
|
|
||||||
AgilityShortcutLocation(String description, int level, WorldPoint location)
|
|
||||||
{
|
|
||||||
this.tooltip = description + " - Level " + level;
|
|
||||||
this.location = location;
|
|
||||||
this.levelReq = level;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -27,12 +27,13 @@ package net.runelite.client.plugins.worldmap;
|
|||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import net.runelite.client.ui.overlay.worldmap.WorldMapPoint;
|
import net.runelite.client.ui.overlay.worldmap.WorldMapPoint;
|
||||||
|
import net.runelite.client.game.AgilityShortcut;
|
||||||
|
|
||||||
class AgilityShortcutPoint extends WorldMapPoint
|
class AgilityShortcutPoint extends WorldMapPoint
|
||||||
{
|
{
|
||||||
AgilityShortcutPoint(AgilityShortcutLocation data, BufferedImage icon, boolean showTooltip)
|
AgilityShortcutPoint(AgilityShortcut data, BufferedImage icon, boolean showTooltip)
|
||||||
{
|
{
|
||||||
super(data.getLocation(), icon);
|
super(data.getWorldMapLocation(), icon);
|
||||||
|
|
||||||
if (showTooltip)
|
if (showTooltip)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import net.runelite.api.events.ConfigChanged;
|
|||||||
import net.runelite.api.events.ExperienceChanged;
|
import net.runelite.api.events.ExperienceChanged;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.Subscribe;
|
import net.runelite.client.eventbus.Subscribe;
|
||||||
|
import net.runelite.client.game.AgilityShortcut;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager;
|
import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager;
|
||||||
@@ -167,9 +168,10 @@ public class WorldMapPlugin extends Plugin
|
|||||||
|
|
||||||
if (config.agilityShortcutLevelIcon() || config.agilityShortcutTooltips())
|
if (config.agilityShortcutLevelIcon() || config.agilityShortcutTooltips())
|
||||||
{
|
{
|
||||||
Arrays.stream(AgilityShortcutLocation.values())
|
Arrays.stream(AgilityShortcut.values())
|
||||||
|
.filter(value -> value.getWorldMapLocation() != null)
|
||||||
.map(value -> new AgilityShortcutPoint(value,
|
.map(value -> new AgilityShortcutPoint(value,
|
||||||
agilityLevel > 0 && config.agilityShortcutLevelIcon() && value.getLevelReq() > agilityLevel ? NOPE_ICON : BLANK_ICON,
|
agilityLevel > 0 && config.agilityShortcutLevelIcon() && value.getLevel() > agilityLevel ? NOPE_ICON : BLANK_ICON,
|
||||||
config.agilityShortcutTooltips()))
|
config.agilityShortcutTooltips()))
|
||||||
.forEach(worldMapPointManager::add);
|
.forEach(worldMapPointManager::add);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user