From aa94729c1a538aa0b39d4ff009872faa9416f7d5 Mon Sep 17 00:00:00 2001 From: Ganom Date: Tue, 9 Jul 2019 15:38:46 -0400 Subject: [PATCH 1/3] Add latest wiki data to npc_stats --- .../src/main/resources/npc_stats.json | 498 ++++++++---------- 1 file changed, 226 insertions(+), 272 deletions(-) diff --git a/runelite-client/src/main/resources/npc_stats.json b/runelite-client/src/main/resources/npc_stats.json index a2b4725500..e114fadb6f 100644 --- a/runelite-client/src/main/resources/npc_stats.json +++ b/runelite-client/src/main/resources/npc_stats.json @@ -147,8 +147,7 @@ "stabDef": 20, "slashDef": 20, "crushDef": 20, - "rangeDef": 20, - "demon": true + "rangeDef": 20 }, "11": { "name": "Nechryael", @@ -667,9 +666,6 @@ "combatLevel": 25, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, "stabDef": 9, @@ -687,9 +683,6 @@ "combatLevel": 25, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, "stabDef": 9, @@ -707,9 +700,6 @@ "combatLevel": 25, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, "stabDef": 9, @@ -727,9 +717,6 @@ "combatLevel": 25, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, "stabDef": 9, @@ -747,9 +734,6 @@ "combatLevel": 25, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, "stabDef": 9, @@ -2358,7 +2342,7 @@ "hitpoints": 50, "combatLevel": 42, "slayerLevel": 1, - "attackSpeed": 4, + "attackSpeed": 6, "attackLevel": 30, "strengthLevel": 40, "defenceLevel": 30, @@ -2541,7 +2525,7 @@ "name": "Corporeal Beast", "hitpoints": 2000, "combatLevel": 785, - "attackSpeed": 6, + "attackSpeed": 4, "attackLevel": 320, "strengthLevel": 320, "defenceLevel": 310, @@ -2560,7 +2544,7 @@ "name": "Dark energy core", "hitpoints": 25, "combatLevel": 75, - "attackSpeed": 8, + "attackSpeed": 2, "attackLevel": 1, "strengthLevel": 1, "defenceLevel": 20, @@ -3740,7 +3724,6 @@ "name": "Highwayman", "hitpoints": 13, "combatLevel": 5, - "attackSpeed": 4, "attackLevel": 2, "strengthLevel": 2, "defenceLevel": 4, @@ -3756,7 +3739,6 @@ "name": "Highwayman", "hitpoints": 13, "combatLevel": 5, - "attackSpeed": 4, "attackLevel": 2, "strengthLevel": 2, "defenceLevel": 4, @@ -7371,6 +7353,7 @@ }, "1118": { "name": "Man", + "hitpoints": 7, "combatLevel": 4, "attackSpeed": 4, "attackLevel": 1, @@ -8329,45 +8312,45 @@ }, "1379": { "name": "Camp dweller", - "hitpoints": 25, - "combatLevel": 25, + "hitpoints": 30, + "combatLevel": 31, "attackSpeed": 4, - "attackLevel": 20, - "strengthLevel": 25, - "defenceLevel": 20, + "attackLevel": 25, + "strengthLevel": 30, + "defenceLevel": 25, "rangeLevel": 1, "magicLevel": 1 }, "1380": { "name": "Camp dweller", - "hitpoints": 25, - "combatLevel": 25, + "hitpoints": 30, + "combatLevel": 31, "attackSpeed": 4, - "attackLevel": 20, - "strengthLevel": 25, - "defenceLevel": 20, + "attackLevel": 25, + "strengthLevel": 30, + "defenceLevel": 25, "rangeLevel": 1, "magicLevel": 1 }, "1381": { "name": "Camp dweller", - "hitpoints": 25, - "combatLevel": 25, + "hitpoints": 30, + "combatLevel": 31, "attackSpeed": 4, - "attackLevel": 20, - "strengthLevel": 25, - "defenceLevel": 20, + "attackLevel": 25, + "strengthLevel": 30, + "defenceLevel": 25, "rangeLevel": 1, "magicLevel": 1 }, "1382": { "name": "Camp dweller", - "hitpoints": 25, - "combatLevel": 25, + "hitpoints": 30, + "combatLevel": 31, "attackSpeed": 4, - "attackLevel": 20, - "strengthLevel": 25, - "defenceLevel": 20, + "attackLevel": 25, + "strengthLevel": 30, + "defenceLevel": 25, "rangeLevel": 1, "magicLevel": 1 }, @@ -10925,8 +10908,7 @@ "strengthLevel": 75, "defenceLevel": 55, "rangeLevel": 1, - "magicLevel": 1, - "bonusAttack": 22 + "magicLevel": 1 }, "2138": { "name": "Cyclops", @@ -10938,8 +10920,7 @@ "strengthLevel": 75, "defenceLevel": 55, "rangeLevel": 1, - "magicLevel": 1, - "bonusAttack": 22 + "magicLevel": 1 }, "2139": { "name": "Cyclops", @@ -10951,8 +10932,7 @@ "strengthLevel": 75, "defenceLevel": 55, "rangeLevel": 1, - "magicLevel": 1, - "bonusAttack": 22 + "magicLevel": 1 }, "2140": { "name": "Cyclops", @@ -10964,8 +10944,7 @@ "strengthLevel": 75, "defenceLevel": 55, "rangeLevel": 1, - "magicLevel": 1, - "bonusAttack": 22 + "magicLevel": 1 }, "2141": { "name": "Cyclops", @@ -10977,8 +10956,7 @@ "strengthLevel": 75, "defenceLevel": 55, "rangeLevel": 1, - "magicLevel": 1, - "bonusAttack": 22 + "magicLevel": 1 }, "2142": { "name": "Cyclops", @@ -10990,11 +10968,10 @@ "strengthLevel": 75, "defenceLevel": 55, "rangeLevel": 1, - "magicLevel": 1, - "bonusAttack": 22 + "magicLevel": 1 }, "2143": { - "name": "Giant frog", + "name": "Sraracha", "hitpoints": 23, "combatLevel": 13, "attackSpeed": 4, @@ -11004,32 +10981,30 @@ "rangeLevel": 1, "magicLevel": 1 }, - "2144": { - "name": "Big frog", - "hitpoints": 18, - "combatLevel": 10, - "attackSpeed": 4, - "attackLevel": 8, - "strengthLevel": 6, - "defenceLevel": 4, - "rangeLevel": 1, - "magicLevel": 1 - }, "2145": { - "name": "Frog", - "hitpoints": 8, - "combatLevel": 5, + "name": "Undead Druid", + "hitpoints": 140, + "combatLevel": 105, "attackSpeed": 4, - "attackLevel": 5, - "strengthLevel": 4, - "defenceLevel": 3, - "rangeLevel": 1, - "magicLevel": 1 + "attackLevel": 60, + "strengthLevel": 50, + "defenceLevel": 60, + "magicLevel": 115, + "magic": 100, + "stabDef": 40, + "slashDef": 30, + "crushDef": 80, + "rangeDef": 40, + "magicDef": 140, + "bonusAttack": 50, + "bonusStrength": 50, + "bonusMagicDamage": 50, + "undead": true }, "2154": { "name": "TzHaar-Mej", "hitpoints": 100, - "combatLevel": 124, + "combatLevel": 103, "slayerLevel": 1, "attackSpeed": 5, "attackLevel": 80, @@ -11041,7 +11016,7 @@ "2155": { "name": "TzHaar-Mej", "hitpoints": 100, - "combatLevel": 124, + "combatLevel": 103, "slayerLevel": 1, "attackSpeed": 5, "attackLevel": 80, @@ -11053,7 +11028,7 @@ "2156": { "name": "TzHaar-Mej", "hitpoints": 100, - "combatLevel": 124, + "combatLevel": 103, "slayerLevel": 1, "attackSpeed": 5, "attackLevel": 80, @@ -11065,7 +11040,7 @@ "2157": { "name": "TzHaar-Mej", "hitpoints": 100, - "combatLevel": 124, + "combatLevel": 103, "slayerLevel": 1, "attackSpeed": 5, "attackLevel": 80, @@ -11077,7 +11052,7 @@ "2158": { "name": "TzHaar-Mej", "hitpoints": 100, - "combatLevel": 124, + "combatLevel": 103, "slayerLevel": 1, "attackSpeed": 5, "attackLevel": 80, @@ -11089,7 +11064,7 @@ "2159": { "name": "TzHaar-Mej", "hitpoints": 100, - "combatLevel": 124, + "combatLevel": 103, "slayerLevel": 1, "attackSpeed": 5, "attackLevel": 80, @@ -11101,7 +11076,7 @@ "2160": { "name": "TzHaar-Mej", "hitpoints": 100, - "combatLevel": 124, + "combatLevel": 103, "slayerLevel": 1, "attackSpeed": 5, "attackLevel": 80, @@ -11696,7 +11671,6 @@ "defenceLevel": 43, "rangeLevel": 1, "magicLevel": 1, - "crush": 22, "bonusAttack": 22, "bonusStrength": 21 }, @@ -11818,9 +11792,6 @@ "attackSpeed": 4, "attackLevel": 1, "strengthLevel": 1, - "defenceLevel": 100, - "rangeLevel": 146, - "magicLevel": 1, "stabDef": 12, "slashDef": 14, "crushDef": 13, @@ -11908,7 +11879,6 @@ "attackLevel": 16, "strengthLevel": 6, "defenceLevel": 19, - "rangeLevel": 1, "magicLevel": 1 }, "2249": { @@ -12372,14 +12342,33 @@ "hitpoints": 55, "combatLevel": 59, "slayerLevel": 1, - "attackSpeed": 6 + "attackSpeed": 6, + "attackLevel": 50, + "strengthLevel": 52, + "defenceLevel": 50, + "rangeLevel": 1, + "magicLevel": 1, + "stabDef": 5, + "slashDef": 15, + "crushDef": 15, + "rangeDef": 55 }, "2480": { "name": "Scorpion", "hitpoints": 37, "combatLevel": 37, "slayerLevel": 1, - "attackSpeed": 6 + "attackSpeed": 6, + "attackLevel": 31, + "strengthLevel": 32, + "defenceLevel": 31, + "rangeLevel": 1, + "magicLevel": 1, + "stabDef": 35, + "slashDef": 15, + "crushDef": 15, + "rangeDef": 35, + "magicDef": 30 }, "2481": { "name": "Minotaur", @@ -12529,7 +12518,7 @@ }, "2498": { "name": "Flesh Crawler", - "hitpoints": 26, + "hitpoints": 25, "combatLevel": 28, "slayerLevel": 1, "attackSpeed": 3, @@ -12546,7 +12535,7 @@ }, "2499": { "name": "Flesh Crawler", - "hitpoints": 26, + "hitpoints": 25, "combatLevel": 35, "slayerLevel": 1, "attackSpeed": 3, @@ -12563,7 +12552,7 @@ }, "2500": { "name": "Flesh Crawler", - "hitpoints": 26, + "hitpoints": 25, "combatLevel": 41, "slayerLevel": 1, "attackSpeed": 3, @@ -12584,18 +12573,8 @@ "combatLevel": 30, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2502": { @@ -12604,18 +12583,8 @@ "combatLevel": 30, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2503": { @@ -12624,18 +12593,8 @@ "combatLevel": 30, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2504": { @@ -12644,18 +12603,8 @@ "combatLevel": 44, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2505": { @@ -12664,18 +12613,8 @@ "combatLevel": 44, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2506": { @@ -12684,78 +12623,38 @@ "combatLevel": 44, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2507": { "name": "Zombie", - "hitpoints": 71, + "hitpoints": 50, "combatLevel": 53, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2508": { "name": "Zombie", - "hitpoints": 71, + "hitpoints": 50, "combatLevel": 53, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2509": { "name": "Zombie", - "hitpoints": 71, + "hitpoints": 50, "combatLevel": 53, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 19, - "strengthLevel": 21, - "defenceLevel": 16, "rangeLevel": 1, "magicLevel": 1, - "stabDef": 9, - "slashDef": 8, - "crushDef": 12, - "rangeDef": 11, - "magicDef": 10, - "bonusAttack": 5, - "bonusStrength": 7, "undead": true }, "2510": { @@ -13075,53 +12974,29 @@ "2531": { "name": "Ghost", "hitpoints": 30, - "combatLevel": 24, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 23, - "strengthLevel": 23, - "defenceLevel": 20, - "rangeLevel": 1, - "magicLevel": 1, "undead": true }, "2532": { "name": "Ghost", "hitpoints": 30, - "combatLevel": 24, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 23, - "strengthLevel": 23, - "defenceLevel": 20, - "rangeLevel": 1, - "magicLevel": 1, "undead": true }, "2533": { "name": "Ghost", "hitpoints": 30, - "combatLevel": 24, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 23, - "strengthLevel": 23, - "defenceLevel": 20, - "rangeLevel": 1, - "magicLevel": 1, "undead": true }, "2534": { "name": "Ghost", "hitpoints": 30, - "combatLevel": 24, "slayerLevel": 1, "attackSpeed": 4, - "attackLevel": 23, - "strengthLevel": 23, - "defenceLevel": 20, - "rangeLevel": 1, - "magicLevel": 1, "undead": true }, "2536": { @@ -13910,7 +13785,7 @@ "hitpoints": 6, "combatLevel": 2, "slayerLevel": 1, - "attackSpeed": 4, + "attackSpeed": 6, "attackLevel": 1, "strengthLevel": 1, "defenceLevel": 1, @@ -13934,7 +13809,7 @@ "hitpoints": 6, "combatLevel": 2, "slayerLevel": 1, - "attackSpeed": 4, + "attackSpeed": 6, "attackLevel": 1, "strengthLevel": 1, "defenceLevel": 1, @@ -13958,7 +13833,7 @@ "hitpoints": 6, "combatLevel": 2, "slayerLevel": 1, - "attackSpeed": 4, + "attackSpeed": 6, "attackLevel": 1, "strengthLevel": 1, "defenceLevel": 1, @@ -16382,9 +16257,6 @@ "attackSpeed": 4, "attackLevel": 1, "strengthLevel": 1, - "defenceLevel": 100, - "rangeLevel": 146, - "magicLevel": 1, "stabDef": 17, "slashDef": 16, "crushDef": 8, @@ -17139,7 +17011,7 @@ "name": "Giant Champion", "hitpoints": 70, "combatLevel": 56, - "attackSpeed": 6, + "attackSpeed": 4, "attackLevel": 36, "strengthLevel": 44, "defenceLevel": 52, @@ -20112,7 +19984,7 @@ }, "4163": { "name": "King Roald", - "hitpoints": 60, + "hitpoints": 75, "combatLevel": 47, "attackSpeed": 4, "attackLevel": 35, @@ -20362,6 +20234,7 @@ }, "4247": { "name": "Thief", + "hitpoints": 17, "combatLevel": 14, "attackSpeed": 4, "attackLevel": 14, @@ -22397,14 +22270,34 @@ "hitpoints": 50, "combatLevel": 45, "slayerLevel": 1, - "attackSpeed": 4 + "attackSpeed": 4, + "attackLevel": 40, + "strengthLevel": 30, + "defenceLevel": 40, + "rangeLevel": 1, + "magicLevel": 1, + "stabDef": 30, + "slashDef": 30, + "crushDef": 15, + "rangeDef": 70, + "magicDef": 99 }, "4800": { "name": "Giant lobster", "hitpoints": 50, "combatLevel": 45, "slayerLevel": 1, - "attackSpeed": 4 + "attackSpeed": 4, + "attackLevel": 40, + "strengthLevel": 30, + "defenceLevel": 40, + "rangeLevel": 1, + "magicLevel": 1, + "stabDef": 30, + "slashDef": 30, + "crushDef": 15, + "rangeDef": 70, + "magicDef": 99 }, "4805": { "name": "Hobgoblin", @@ -24254,14 +24147,7 @@ "attackSpeed": 4, "attackLevel": 85, "strengthLevel": 80, - "defenceLevel": 80, - "stabDef": 5, - "slashDef": 5, - "crushDef": 5, - "rangeDef": 5, - "magicDef": 5, - "bonusAttack": 15, - "bonusStrength": 15 + "defenceLevel": 80 }, "5369": { "name": "Goblin guard", @@ -27692,14 +27578,7 @@ "attackSpeed": 4, "attackLevel": 187, "strengthLevel": 176, - "defenceLevel": 80, - "stabDef": 5, - "slashDef": 5, - "crushDef": 5, - "rangeDef": 5, - "magicDef": 5, - "bonusAttack": 15, - "bonusStrength": 15 + "defenceLevel": 80 }, "6338": { "name": "Nazastarool (hard)", @@ -27724,14 +27603,7 @@ "attackSpeed": 4, "attackLevel": 187, "strengthLevel": 176, - "defenceLevel": 80, - "stabDef": 5, - "slashDef": 5, - "crushDef": 5, - "rangeDef": 5, - "magicDef": 5, - "bonusAttack": 15, - "bonusStrength": 15 + "defenceLevel": 80 }, "6340": { "name": "Cow (hard)", @@ -28439,7 +28311,7 @@ }, "6389": { "name": "King Roald", - "hitpoints": 60, + "hitpoints": 75, "combatLevel": 47, "attackSpeed": 4, "attackLevel": 35, @@ -28584,14 +28456,7 @@ "attackSpeed": 4, "attackLevel": 85, "strengthLevel": 80, - "defenceLevel": 80, - "stabDef": 5, - "slashDef": 5, - "crushDef": 5, - "rangeDef": 5, - "magicDef": 5, - "bonusAttack": 15, - "bonusStrength": 15 + "defenceLevel": 80 }, "6401": { "name": "Cow", @@ -28833,7 +28698,6 @@ "hitpoints": 80, "combatLevel": 77, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 72, "strengthLevel": 60, "defenceLevel": 60, @@ -28850,7 +28714,6 @@ "hitpoints": 71, "combatLevel": 81, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 72, "strengthLevel": 64, "defenceLevel": 80, @@ -28866,7 +28729,6 @@ "hitpoints": 40, "combatLevel": 42, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 40, "strengthLevel": 30, "defenceLevel": 40, @@ -28882,7 +28744,6 @@ "hitpoints": 53, "combatLevel": 59, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 50, "strengthLevel": 46, "defenceLevel": 62, @@ -28898,7 +28759,6 @@ "hitpoints": 42, "combatLevel": 42, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 36, "strengthLevel": 38, "defenceLevel": 30, @@ -28914,7 +28774,6 @@ "hitpoints": 58, "combatLevel": 63, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 56, "strengthLevel": 61, "defenceLevel": 45, @@ -29252,7 +29111,6 @@ "hitpoints": 69, "combatLevel": 72, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 75, "strengthLevel": 61, "defenceLevel": 45, @@ -29269,7 +29127,6 @@ "hitpoints": 92, "combatLevel": 87, "slayerLevel": 1, - "attackSpeed": 4, "attackLevel": 75, "strengthLevel": 80, "defenceLevel": 55, @@ -34372,7 +34229,7 @@ "attackSpeed": 4, "attackLevel": 75, "strengthLevel": 90, - "defenceLevel": 100, + "defenceLevel": 80, "rangeLevel": 1, "magicLevel": 1, "undead": true @@ -35920,9 +35777,7 @@ }, "8094": { "name": "Galvek", - "hitpoints": 1200, "combatLevel": 608, - "attackSpeed": 6, "attackLevel": 632, "strengthLevel": 268, "defenceLevel": 188, @@ -35939,14 +35794,11 @@ "bonusRangeStrength": 6, "bonusMagicDamage": 42, "poisonImmune": true, - "venomImmune": true, - "dragon": true + "venomImmune": true }, "8095": { "name": "Galvek", - "hitpoints": 1200, "combatLevel": 608, - "attackSpeed": 6, "attackLevel": 632, "strengthLevel": 268, "defenceLevel": 188, @@ -35963,8 +35815,7 @@ "bonusRangeStrength": 6, "bonusMagicDamage": 42, "poisonImmune": true, - "venomImmune": true, - "dragon": true + "venomImmune": true }, "8096": { "name": "Galvek", @@ -36118,9 +35969,7 @@ }, "8177": { "name": "Galvek", - "hitpoints": 1200, "combatLevel": 608, - "attackSpeed": 6, "attackLevel": 632, "strengthLevel": 268, "defenceLevel": 188, @@ -36137,8 +35986,7 @@ "bonusRangeStrength": 6, "bonusMagicDamage": 42, "poisonImmune": true, - "venomImmune": true, - "dragon": true + "venomImmune": true }, "8178": { "name": "Galvek", @@ -37907,5 +37755,111 @@ "defenceLevel": 18, "rangeLevel": 1, "magicLevel": 30 + }, + "8701": { + "name": "Big frog", + "hitpoints": 18, + "combatLevel": 10, + "attackSpeed": 4, + "attackLevel": 8, + "strengthLevel": 6, + "defenceLevel": 4, + "rangeLevel": 1, + "magicLevel": 1 + }, + "8702": { + "name": "Frog", + "hitpoints": 8, + "combatLevel": 5, + "attackSpeed": 4, + "attackLevel": 5, + "strengthLevel": 4, + "defenceLevel": 3, + "rangeLevel": 1, + "magicLevel": 1 + }, + "8709": { + "name": "Shaeded Beast", + "hitpoints": 210, + "combatLevel": 186, + "attackSpeed": 4, + "attackLevel": 50, + "strengthLevel": 80, + "defenceLevel": 50, + "rangeLevel": 1, + "magicLevel": 250, + "stabDef": 50, + "slashDef": 30, + "crushDef": 100, + "rangeDef": 50, + "magicDef": 150, + "bonusMagicDamage": 10 + }, + "8710": { + "name": "Shaeded Beast", + "hitpoints": 210, + "combatLevel": 186, + "attackSpeed": 4, + "attackLevel": 50, + "strengthLevel": 80, + "defenceLevel": 50, + "rangeLevel": 1, + "magicLevel": 250, + "stabDef": 50, + "slashDef": 30, + "crushDef": 100, + "rangeDef": 50, + "magicDef": 150, + "bonusMagicDamage": 10 + }, + "8713": { + "name": "Sarachnis", + "hitpoints": 400, + "combatLevel": 318, + "attackSpeed": 4, + "attackLevel": 200, + "strengthLevel": 240, + "defenceLevel": 150, + "rangeLevel": 300, + "magicLevel": 150, + "range": 15, + "stabDef": 60, + "slashDef": 40, + "crushDef": 10, + "rangeDef": 300, + "magicDef": 150, + "bonusAttack": 30, + "bonusRangeStrength": 15 + }, + "8714": { + "name": "Spawn of Sarachnis", + "hitpoints": 30, + "combatLevel": 107, + "attackSpeed": 3, + "attackLevel": 150, + "strengthLevel": 120, + "defenceLevel": 50, + "rangeLevel": 1, + "magicLevel": 1, + "stabDef": 50, + "slashDef": 50, + "crushDef": 20, + "rangeDef": 150, + "bonusAttack": 50 + }, + "8715": { + "name": "Spawn of Sarachnis", + "hitpoints": 30, + "combatLevel": 68, + "attackSpeed": 4, + "attackLevel": 10, + "strengthLevel": 10, + "defenceLevel": 50, + "rangeLevel": 1, + "magicLevel": 100, + "stabDef": 50, + "slashDef": 50, + "crushDef": 50, + "magicDef": 150 } } \ No newline at end of file From 1e4e3db30d8abc7bfc2dae327fbce77b8f1dd268 Mon Sep 17 00:00:00 2001 From: Ganom Date: Tue, 9 Jul 2019 16:12:08 -0400 Subject: [PATCH 2/3] Add config option for Distance Cap on Agility Plugin Add more commonly used overlays to OverlayUtil Implement OverlayUtil into various plugins. --- .../client/plugins/agility/AgilityConfig.java | 13 +++++ .../plugins/agility/AgilityOverlay.java | 28 +++++----- .../client/plugins/agility/AgilityPlugin.java | 3 + .../aoewarnings/AoeWarningOverlay.java | 8 +-- .../pyramidplunder/PyramidPlunderOverlay.java | 24 ++------ .../client/plugins/theatre/RoomHandler.java | 51 +---------------- .../plugins/ticktimers/TimersOverlay.java | 16 +----- .../client/ui/overlay/OverlayUtil.java | 55 ++++++++++++++++++- 8 files changed, 98 insertions(+), 100 deletions(-) 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 1223764221..b9f2e625f9 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 @@ -32,6 +32,19 @@ import net.runelite.client.config.ConfigItem; @ConfigGroup("agility") public interface AgilityConfig extends Config { + @ConfigItem( + keyName = "removeDistanceCap", + name = "Remove Distance Cap", + description = "This will remove the distance cap on rendering overlays for agility.", + warning = "
Enabling this setting on a low end machine may severely affect your fps." + + "
Click yes to enable this setting, knowing it might affect performance.
", + position = 0 + ) + default boolean removeDistanceCap() + { + return true; + } + @ConfigItem( keyName = "showLapCount", name = "Show Lap Count", 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 31a987bf14..7180914d79 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 @@ -77,8 +77,8 @@ class AgilityOverlay extends Overlay } Tile tile = obstacle.getTile(); - if (tile.getPlane() == client.getPlane() - && object.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE) + + if (tile.getPlane() == client.getPlane() && checkDistance(object.getLocalLocation(), playerLocation)) { // This assumes that the obstacle is not clickable. if (Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId())) @@ -100,18 +100,7 @@ class AgilityOverlay extends Overlay configColor = plugin.getMarkColor(); } - if (objectClickbox.contains(mousePosition.getX(), mousePosition.getY())) - { - graphics.setColor(configColor.darker()); - } - else - { - graphics.setColor(configColor); - } - - graphics.draw(objectClickbox); - graphics.setColor(new Color(configColor.getRed(), configColor.getGreen(), configColor.getBlue(), 50)); - graphics.fill(objectClickbox); + OverlayUtil.renderClickBox(graphics, mousePosition, objectClickbox, configColor); } } @@ -122,7 +111,7 @@ class AgilityOverlay extends Overlay for (Tile markOfGraceTile : marksOfGrace) { if (markOfGraceTile.getPlane() == client.getPlane() && markOfGraceTile.getItemLayer() != null - && markOfGraceTile.getLocalLocation().distanceTo(playerLocation) < MAX_DISTANCE) + && checkDistance(markOfGraceTile.getLocalLocation(), playerLocation)) { final Polygon poly = markOfGraceTile.getItemLayer().getCanvasTilePoly(); @@ -138,4 +127,13 @@ class AgilityOverlay extends Overlay return null; } + + private boolean checkDistance(LocalPoint localPoint, LocalPoint playerPoint) + { + if (plugin.isRemoveDistanceCap()) + { + return true; + } + return localPoint.distanceTo(playerPoint) < MAX_DISTANCE; + } } 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 043cc4e23a..3f7ac5b498 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 @@ -137,6 +137,8 @@ public class AgilityPlugin extends Plugin // Config values @Getter(AccessLevel.PACKAGE) + private boolean removeDistanceCap; + @Getter(AccessLevel.PACKAGE) private boolean showLapCount; @Getter(AccessLevel.PACKAGE) private int lapTimeout; @@ -224,6 +226,7 @@ public class AgilityPlugin extends Plugin public void updateConfig() { + this.removeDistanceCap = config.removeDistanceCap(); this.showLapCount = config.showLapCount(); this.lapTimeout = config.lapTimeout(); this.lapsToLevel = config.lapsToLevel(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java index 0b82eafdb4..1dfeb1c1a0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningOverlay.java @@ -73,22 +73,22 @@ public class AoeWarningOverlay extends Overlay WorldPoint lp = client.getLocalPlayer().getWorldLocation(); for (WorldPoint point : plugin.getLightningTrail()) { - OverlayUtil.drawTile(graphics, client, point, lp, new Color(0, 150, 200), 2, 150, 50); + OverlayUtil.drawTiles(graphics, client, point, lp, new Color(0, 150, 200), 2, 150, 50); } for (WorldPoint point : plugin.getAcidTrail()) { - OverlayUtil.drawTile(graphics, client, point, lp, new Color(69, 241, 44), 2, 150, 50); + OverlayUtil.drawTiles(graphics, client, point, lp, new Color(69, 241, 44), 2, 150, 50); } for (WorldPoint point : plugin.getCrystalSpike()) { - OverlayUtil.drawTile(graphics, client, point, lp, new Color(255, 0, 84), 2, 150, 50); + OverlayUtil.drawTiles(graphics, client, point, lp, new Color(255, 0, 84), 2, 150, 50); } for (WorldPoint point : plugin.getWintertodtSnowFall()) { - OverlayUtil.drawTile(graphics, client, point, lp, new Color(255, 0, 84), 2, 150, 50); + OverlayUtil.drawTiles(graphics, client, point, lp, new Color(255, 0, 84), 2, 150, 50); } Instant now = Instant.now(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java index 9032bcc500..99ea4f9fcb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java @@ -33,7 +33,6 @@ import java.text.NumberFormat; import java.util.Locale; import java.util.Map; import javax.inject.Inject; - import javax.inject.Singleton; import net.runelite.api.Client; import net.runelite.api.ObjectDefinition; @@ -42,19 +41,19 @@ import net.runelite.api.Tile; import net.runelite.api.TileObject; import net.runelite.api.Varbits; import net.runelite.api.coords.LocalPoint; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import static net.runelite.client.plugins.pyramidplunder.PyramidPlunderPlugin.CLOSED_DOOR; import static net.runelite.client.plugins.pyramidplunder.PyramidPlunderPlugin.OPENED_DOOR; import static net.runelite.client.plugins.pyramidplunder.PyramidPlunderPlugin.TRAP; - -import net.runelite.api.widgets.Widget; -import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; -import net.runelite.client.ui.overlay.components.table.TableAlignment; -import net.runelite.client.ui.overlay.components.table.TableComponent; +import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; +import net.runelite.client.ui.overlay.components.table.TableAlignment; +import net.runelite.client.ui.overlay.components.table.TableComponent; import net.runelite.client.util.ColorUtil; @Singleton @@ -135,18 +134,7 @@ public class PyramidPlunderOverlay extends Overlay break; } - if (objectClickbox.contains(mousePosition.getX(), mousePosition.getY())) - { - graphics.setColor(configColor.darker()); - } - else - { - graphics.setColor(configColor); - } - - graphics.draw(objectClickbox); - graphics.setColor(new Color(configColor.getRed(), configColor.getGreen(), configColor.getBlue(), 50)); - graphics.fill(objectClickbox); + OverlayUtil.renderClickBox(graphics, mousePosition, objectClickbox, configColor); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/RoomHandler.java b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/RoomHandler.java index 5d007a342c..bbe032ff58 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/RoomHandler.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/RoomHandler.java @@ -1,6 +1,5 @@ package net.runelite.client.plugins.theatre; -import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; @@ -8,7 +7,6 @@ import java.awt.Polygon; import java.util.Map; import net.runelite.api.Client; import net.runelite.api.NPC; -import net.runelite.api.NPCDefinition; import net.runelite.api.Perspective; import net.runelite.api.Point; import net.runelite.api.Projectile; @@ -51,11 +49,7 @@ public abstract class RoomHandler return; } //OverlayUtil.renderPolygon(graphics, poly, color); - graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), outlineAlpha)); - graphics.setStroke(new BasicStroke(strokeWidth)); - graphics.draw(poly); - graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), fillAlpha)); - graphics.fill(poly); + OverlayUtil.drawStrokeAndFillPoly(graphics, color, strokeWidth, outlineAlpha, fillAlpha, poly); } @@ -91,51 +85,12 @@ public abstract class RoomHandler { WorldPoint playerLocation = client.getLocalPlayer().getWorldLocation(); - if (point.distanceTo(playerLocation) >= 32) - { - return; - } - - LocalPoint lp = LocalPoint.fromWorld(client, point); - if (lp == null) - { - return; - } - - Polygon poly = Perspective.getCanvasTilePoly(client, lp); - if (poly == null) - { - return; - } - - graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), outlineAlpha)); - graphics.setStroke(new BasicStroke(strokeWidth)); - graphics.draw(poly); - graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), fillAlpha)); - graphics.fill(poly); + OverlayUtil.drawTiles(graphics, client, point, playerLocation, color, strokeWidth, outlineAlpha, fillAlpha); } protected void renderNpcOverlay(Graphics2D graphics, NPC actor, Color color, int outlineWidth, int outlineAlpha, int fillAlpha) { - int size = 1; - - NPCDefinition composition = actor.getTransformedDefinition(); - if (composition != null) - { - size = composition.getSize(); - } - - LocalPoint lp = actor.getLocalLocation(); - Polygon tilePoly = Perspective.getCanvasTileAreaPoly(client, lp, size); - - if (tilePoly != null) - { - graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), outlineAlpha)); - graphics.setStroke(new BasicStroke(outlineWidth)); - graphics.draw(tilePoly); - graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), fillAlpha)); - graphics.fill(tilePoly); - } + OverlayUtil.renderNpcOverlay(graphics, actor, color, outlineWidth, outlineAlpha, fillAlpha, client); } protected void renderTextLocation(Graphics2D graphics, String txtString, int fontSize, int fontStyle, Color fontColor, Point canvasPoint) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TimersOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TimersOverlay.java index 2063625a2c..d00e4863ed 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TimersOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TimersOverlay.java @@ -34,7 +34,6 @@ import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.Client; import net.runelite.api.Point; -import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; @@ -69,14 +68,14 @@ public class TimersOverlay extends Overlay } int ticksLeft = npc.getTicksUntilAttack(); - final List hitSquares = getHitSquares(npc.getNpc().getWorldLocation(), npc.getNpcSize(), 1, false); + final List hitSquares = OverlayUtil.getHitSquares(npc.getNpc().getWorldLocation(), npc.getNpcSize(), 1, false); final NPCContainer.AttackStyle attackStyle = npc.getAttackStyle(); if (plugin.isShowHitSquares() && attackStyle.getName().equals("Melee")) { for (WorldPoint p : hitSquares) { - OverlayUtil.drawTile(graphics, client, p, client.getLocalPlayer().getWorldLocation(), attackStyle.getColor(), 0, 0, 50); + OverlayUtil.drawTiles(graphics, client, p, client.getLocalPlayer().getWorldLocation(), attackStyle.getColor(), 0, 0, 50); } } @@ -131,17 +130,6 @@ public class TimersOverlay extends Overlay } } - private List getHitSquares(WorldPoint npcLoc, int npcSize, int thickness, boolean includeUnder) - { - List little = new WorldArea(npcLoc, npcSize, npcSize).toWorldPointList(); - List big = new WorldArea(npcLoc.getX() - thickness, npcLoc.getY() - thickness, npcSize + (thickness * 2), npcSize + (thickness * 2), npcLoc.getPlane()).toWorldPointList(); - if (!includeUnder) - { - big.removeIf(little::contains); - } - return big; - } - private Point centerPoint(Rectangle rect) { int x = (int) (rect.getX() + rect.getWidth() / 2); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java index 83df559115..541196d646 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java @@ -36,13 +36,17 @@ import java.awt.RenderingHints; import java.awt.Stroke; import java.awt.geom.Area; import java.awt.image.BufferedImage; +import java.util.List; import net.runelite.api.Actor; import net.runelite.api.Client; +import net.runelite.api.NPC; +import net.runelite.api.NPCDefinition; import net.runelite.api.Perspective; import net.runelite.api.Point; import net.runelite.api.Prayer; import net.runelite.api.TileObject; import net.runelite.api.coords.LocalPoint; +import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; import net.runelite.api.widgets.Widget; @@ -295,7 +299,23 @@ public class OverlayUtil } } - public static void drawTile(Graphics2D graphics, Client client, WorldPoint point, WorldPoint playerPoint, Color color, int strokeWidth, int outlineAlpha, int fillAlpha) + public static void renderClickBox(Graphics2D graphics, Point mousePosition, Area objectClickbox, Color configColor) + { + if (objectClickbox.contains(mousePosition.getX(), mousePosition.getY())) + { + graphics.setColor(configColor.darker()); + } + else + { + graphics.setColor(configColor); + } + + graphics.draw(objectClickbox); + graphics.setColor(new Color(configColor.getRed(), configColor.getGreen(), configColor.getBlue(), 50)); + graphics.fill(objectClickbox); + } + + public static void drawTiles(Graphics2D graphics, Client client, WorldPoint point, WorldPoint playerPoint, Color color, int strokeWidth, int outlineAlpha, int fillAlpha) { if (point.distanceTo(playerPoint) >= 32) { @@ -312,6 +332,11 @@ public class OverlayUtil { return; } + drawStrokeAndFillPoly(graphics, color, strokeWidth, outlineAlpha, fillAlpha, poly); + } + + public static void drawStrokeAndFillPoly(Graphics2D graphics, Color color, int strokeWidth, int outlineAlpha, int fillAlpha, Polygon poly) + { graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), outlineAlpha)); graphics.setStroke(new BasicStroke(strokeWidth)); graphics.draw(poly); @@ -340,4 +365,32 @@ public class OverlayUtil return new Polygon(xpoints, ypoints, 4); } + + public static List getHitSquares(WorldPoint npcLoc, int npcSize, int thickness, boolean includeUnder) + { + List little = new WorldArea(npcLoc, npcSize, npcSize).toWorldPointList(); + List big = new WorldArea(npcLoc.getX() - thickness, npcLoc.getY() - thickness, npcSize + (thickness * 2), npcSize + (thickness * 2), npcLoc.getPlane()).toWorldPointList(); + if (!includeUnder) + { + big.removeIf(little::contains); + } + return big; + } + + public static void renderNpcOverlay(Graphics2D graphics, NPC actor, Color color, int outlineWidth, int outlineAlpha, int fillAlpha, Client client) + { + int size = 1; + NPCDefinition composition = actor.getTransformedDefinition(); + if (composition != null) + { + size = composition.getSize(); + } + LocalPoint lp = actor.getLocalLocation(); + Polygon tilePoly = Perspective.getCanvasTileAreaPoly(client, lp, size); + + if (tilePoly != null) + { + OverlayUtil.drawStrokeAndFillPoly(graphics, color, outlineWidth, outlineAlpha, fillAlpha, tilePoly); + } + } } From 4889edae282803b810ec56b2fd3dd8afc9374b8f Mon Sep 17 00:00:00 2001 From: Ganom Date: Tue, 9 Jul 2019 16:32:40 -0400 Subject: [PATCH 3/3] Refactor agility config. --- .../client/plugins/agility/AgilityConfig.java | 225 +++++++++++------- 1 file changed, 136 insertions(+), 89 deletions(-) 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 b9f2e625f9..07f4cffea8 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 @@ -28,28 +28,42 @@ import java.awt.Color; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; +import net.runelite.client.config.Stub; @ConfigGroup("agility") public interface AgilityConfig extends Config { + @ConfigItem( + position = 0, + keyName = "mainConfig", + name = "Main Config", + description = "" + ) + default Stub mainConfig() + { + return new Stub(); + } + @ConfigItem( keyName = "removeDistanceCap", name = "Remove Distance Cap", description = "This will remove the distance cap on rendering overlays for agility.", warning = "
Enabling this setting on a low end machine may severely affect your fps." + "
Click yes to enable this setting, knowing it might affect performance.
", - position = 0 + position = 1, + parent = "mainConfig" ) default boolean removeDistanceCap() { - return true; + return false; } @ConfigItem( keyName = "showLapCount", name = "Show Lap Count", description = "Enable/disable the lap counter", - position = 1 + position = 2, + parent = "mainConfig" ) default boolean showLapCount() { @@ -58,9 +72,12 @@ public interface AgilityConfig extends Config @ConfigItem( keyName = "lapTimeout", - name = "Hide Lap Count (minutes)", - description = "Time until the lap counter hides/resets", - position = 2 + name = "Hide Lap Count", + description = "Time in minutes until the lap counter hides/resets", + position = 3, + parent = "mainConfig", + hidden = true, + unhide = "showLapCount" ) default int lapTimeout() { @@ -71,106 +88,36 @@ public interface AgilityConfig extends Config keyName = "lapsToLevel", name = "Show Laps Until Level", description = "Show number of laps remaining until next level is reached.", - position = 3 + position = 4, + parent = "mainConfig", + hidden = true, + unhide = "showLapCount" ) default boolean lapsToLevel() { - return true; + return false; } @ConfigItem( keyName = "lapsToGoal", name = "Show Laps Until Goal", description = "Show number of laps remaining until experience tracker goal is reached", - position = 4 + position = 5, + parent = "mainConfig", + hidden = true, + unhide = "showLapCount" ) default boolean lapsToGoal() { return false; } - @ConfigItem( - keyName = "overlayColor", - name = "Overlay Color", - description = "Color of Agility overlay", - position = 5 - ) - default Color getOverlayColor() - { - return Color.GREEN; - } - - @ConfigItem( - keyName = "highlightMarks", - name = "Highlight Marks of Grace", - description = "Enable/disable the highlighting of retrievable Marks of Grace", - position = 6 - ) - default boolean highlightMarks() - { - return true; - } - - @ConfigItem( - keyName = "markHighlight", - name = "Mark Highlight Color", - description = "Color of highlighted Marks of Grace", - position = 7 - ) - default Color getMarkColor() - { - return Color.RED; - } - - @ConfigItem( - keyName = "highlightShortcuts", - name = "Highlight Agility Shortcuts", - description = "Enable/disable the highlighting of Agility shortcuts", - position = 8 - ) - default boolean highlightShortcuts() - { - return true; - } - - @ConfigItem( - keyName = "trapOverlay", - name = "Show Trap Overlay", - description = "Enable/disable the highlighting of traps on Agility courses", - position = 9 - ) - default boolean showTrapOverlay() - { - return true; - } - - @ConfigItem( - keyName = "trapHighlight", - name = "Trap Overlay Color", - description = "Color of Agility trap overlay", - position = 10 - ) - default Color getTrapColor() - { - return Color.RED; - } - - @ConfigItem( - keyName = "agilityArenaNotifier", - name = "Agility Arena notifier", - description = "Notify on ticket location change in Agility Arena", - position = 11 - ) - default boolean notifyAgilityArena() - { - return true; - } - @ConfigItem( keyName = "agilityArenaTimer", name = "Agility Arena timer", description = "Configures whether Agility Arena timer is displayed", - position = 12 + position = 6, + parent = "mainConfig" ) default boolean showAgilityArenaTimer() { @@ -179,12 +126,112 @@ public interface AgilityConfig extends Config @ConfigItem( keyName = "addLevelsToShortcutOptions", - name = "Show shortcut agility req. in options", + name = "Show Shortcut Agility Reqs", description = "Enable/disable showing shortcut agility level requirements in right-click options", - position = 13 + position = 7, + parent = "mainConfig" ) default boolean showShortcutLevel() + { + return false; + } + + @ConfigItem( + position = 8, + keyName = "miscConfig", + name = "Misc Config", + description = "" + ) + default Stub miscConfig() + { + return new Stub(); + } + + @ConfigItem( + keyName = "highlightMarks", + name = "Highlight Marks of Grace", + description = "Enable/disable the highlighting of retrievable Marks of Grace", + position = 9, + parent = "miscConfig" + ) + default boolean highlightMarks() { return true; } + + @ConfigItem( + keyName = "highlightShortcuts", + name = "Highlight Agility Shortcuts", + description = "Enable/disable the highlighting of Agility shortcuts", + position = 10, + parent = "miscConfig" + ) + default boolean highlightShortcuts() + { + return true; + } + + @ConfigItem( + keyName = "showTrapOverlay", + name = "Highlight Traps", + description = "Enable/disable the highlighting of traps on Agility courses", + position = 11, + parent = "miscConfig" + ) + default boolean showTrapOverlay() + { + return false; + } + + @ConfigItem( + keyName = "agilityArenaNotifier", + name = "Agility Arena notifier", + description = "Notify on ticket location change in Agility Arena", + position = 12, + parent = "miscConfig" + ) + default boolean notifyAgilityArena() + { + return false; + } + + @ConfigItem( + keyName = "overlayColor", + name = "Global Overlay Color", + description = "Color of Agility overlay", + position = 13, + parent = "miscConfig" + ) + default Color getOverlayColor() + { + return Color.GREEN; + } + + @ConfigItem( + keyName = "trapHighlight", + name = "Trap Overlay Color", + description = "Color of Agility trap overlay", + position = 14, + parent = "miscConfig", + hidden = true, + unhide = "showTrapOverlay" + ) + default Color getTrapColor() + { + return Color.RED; + } + + @ConfigItem( + keyName = "markHighlight", + name = "Mark Highlight Color", + description = "Color of highlighted Marks of Grace", + position = 15, + parent = "miscConfig", + hidden = true, + unhide = "highlightMarks" + ) + default Color getMarkColor() + { + return Color.RED; + } }