diff --git a/runelite-api/src/main/java/net/runelite/api/Varbits.java b/runelite-api/src/main/java/net/runelite/api/Varbits.java
index 8c4c18bf91..038362c66d 100644
--- a/runelite-api/src/main/java/net/runelite/api/Varbits.java
+++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java
@@ -32,472 +32,471 @@ import lombok.Getter;
*/
@AllArgsConstructor
@Getter
-public enum Varbits
-{
- /*
- * If chatbox is transparent or not
- */
- TRANSPARENT_CHATBOX(4608),
+public enum Varbits {
+ /*
+ * If chatbox is transparent or not
+ */
+ TRANSPARENT_CHATBOX(4608),
- /*
- * If the player has an active stamina potion effect or not
- */
- RUN_SLOWED_DEPLETION_ACTIVE(25),
+ /*
+ * If the player has an active stamina potion effect or not
+ */
+ RUN_SLOWED_DEPLETION_ACTIVE(25),
- /**
- * If scrollbar in resizable mode chat is on the left
- */
- CHAT_SCROLLBAR_ON_LEFT(6374),
+ /**
+ * If scrollbar in resizable mode chat is on the left
+ */
+ CHAT_SCROLLBAR_ON_LEFT(6374),
- /**
- * Runepouch
- */
- RUNE_POUCH_RUNE1(29),
- RUNE_POUCH_RUNE2(1622),
- RUNE_POUCH_RUNE3(1623),
- RUNE_POUCH_AMOUNT1(1624),
- RUNE_POUCH_AMOUNT2(1625),
- RUNE_POUCH_AMOUNT3(1626),
+ /**
+ * Runepouch
+ */
+ RUNE_POUCH_RUNE1(29),
+ RUNE_POUCH_RUNE2(1622),
+ RUNE_POUCH_RUNE3(1623),
+ RUNE_POUCH_AMOUNT1(1624),
+ RUNE_POUCH_AMOUNT2(1625),
+ RUNE_POUCH_AMOUNT3(1626),
- /**
- * Prayers
- */
- QUICK_PRAYER(4103),
- PRAYER_THICK_SKIN(4104),
- PRAYER_BURST_OF_STRENGTH(4105),
- PRAYER_CLARITY_OF_THOUGHT(4106),
- PRAYER_SHARP_EYE(4122),
- PRAYER_MYSTIC_WILL(4123),
- PRAYER_ROCK_SKIN(4107),
- PRAYER_SUPERHUMAN_STRENGTH(4108),
- PRAYER_IMPROVED_REFLEXES(4109),
- PRAYER_RAPID_RESTORE(4110),
- PRAYER_RAPID_HEAL(4111),
- PRAYER_PROTECT_ITEM(4112),
- PRAYER_HAWK_EYE(4124),
- PRAYER_MYSTIC_LORE(4125),
- PRAYER_STEEL_SKIN(4113),
- PRAYER_ULTIMATE_STRENGTH(4114),
- PRAYER_INCREDIBLE_REFLEXES(4115),
- PRAYER_PROTECT_FROM_MAGIC(4116),
- PRAYER_PROTECT_FROM_MISSILES(4117),
- PRAYER_PROTECT_FROM_MELEE(4118),
- PRAYER_EAGLE_EYE(4126),
- PRAYER_MYSTIC_MIGHT(4127),
- PRAYER_RETRIBUTION(4119),
- PRAYER_REDEMPTION(4120),
- PRAYER_SMITE(4121),
- PRAYER_CHIVALRY(4128),
- PRAYER_PIETY(4129),
- PRAYER_PRESERVE(5466),
- PRAYER_RIGOUR(5464),
- PRAYER_AUGURY(5465),
+ /**
+ * Prayers
+ */
+ QUICK_PRAYER(4103),
+ PRAYER_THICK_SKIN(4104),
+ PRAYER_BURST_OF_STRENGTH(4105),
+ PRAYER_CLARITY_OF_THOUGHT(4106),
+ PRAYER_SHARP_EYE(4122),
+ PRAYER_MYSTIC_WILL(4123),
+ PRAYER_ROCK_SKIN(4107),
+ PRAYER_SUPERHUMAN_STRENGTH(4108),
+ PRAYER_IMPROVED_REFLEXES(4109),
+ PRAYER_RAPID_RESTORE(4110),
+ PRAYER_RAPID_HEAL(4111),
+ PRAYER_PROTECT_ITEM(4112),
+ PRAYER_HAWK_EYE(4124),
+ PRAYER_MYSTIC_LORE(4125),
+ PRAYER_STEEL_SKIN(4113),
+ PRAYER_ULTIMATE_STRENGTH(4114),
+ PRAYER_INCREDIBLE_REFLEXES(4115),
+ PRAYER_PROTECT_FROM_MAGIC(4116),
+ PRAYER_PROTECT_FROM_MISSILES(4117),
+ PRAYER_PROTECT_FROM_MELEE(4118),
+ PRAYER_EAGLE_EYE(4126),
+ PRAYER_MYSTIC_MIGHT(4127),
+ PRAYER_RETRIBUTION(4119),
+ PRAYER_REDEMPTION(4120),
+ PRAYER_SMITE(4121),
+ PRAYER_CHIVALRY(4128),
+ PRAYER_PIETY(4129),
+ PRAYER_PRESERVE(5466),
+ PRAYER_RIGOUR(5464),
+ PRAYER_AUGURY(5465),
- /**
- * Diary Entries
- */
- DIARY_ARDOUGNE_EASY(4458),
- DIARY_ARDOUGNE_MEDIUM(4459),
- DIARY_ARDOUGNE_HARD(4460),
- DIARY_ARDOUGNE_ELITE(4461),
+ /**
+ * Diary Entries
+ */
+ DIARY_ARDOUGNE_EASY(4458),
+ DIARY_ARDOUGNE_MEDIUM(4459),
+ DIARY_ARDOUGNE_HARD(4460),
+ DIARY_ARDOUGNE_ELITE(4461),
- DIARY_DESERT_EASY(4483),
- DIARY_DESERT_MEDIUM(4484),
- DIARY_DESERT_HARD(4485),
- DIARY_DESERT_ELITE(4486),
+ DIARY_DESERT_EASY(4483),
+ DIARY_DESERT_MEDIUM(4484),
+ DIARY_DESERT_HARD(4485),
+ DIARY_DESERT_ELITE(4486),
- DIARY_FALADOR_EASY(4462),
- DIARY_FALADOR_MEDIUM(4463),
- DIARY_FALADOR_HARD(4464),
- DIARY_FALADOR_ELITE(4465),
+ DIARY_FALADOR_EASY(4462),
+ DIARY_FALADOR_MEDIUM(4463),
+ DIARY_FALADOR_HARD(4464),
+ DIARY_FALADOR_ELITE(4465),
- DIARY_FREMENNIK_EASY(4491),
- DIARY_FREMENNIK_MEDIUM(4492),
- DIARY_FREMENNIK_HARD(4493),
- DIARY_FREMENNIK_ELITE(4494),
+ DIARY_FREMENNIK_EASY(4491),
+ DIARY_FREMENNIK_MEDIUM(4492),
+ DIARY_FREMENNIK_HARD(4493),
+ DIARY_FREMENNIK_ELITE(4494),
- DIARY_KANDARIN_EASY(4475),
- DIARY_KANDARIN_MEDIUM(4476),
- DIARY_KANDARIN_HARD(4477),
- DIARY_KANDARIN_ELITE(4478),
+ DIARY_KANDARIN_EASY(4475),
+ DIARY_KANDARIN_MEDIUM(4476),
+ DIARY_KANDARIN_HARD(4477),
+ DIARY_KANDARIN_ELITE(4478),
- DIARY_KARAMJA_EASY(3578),
- DIARY_KARAMJA_MEDIUM(3599),
- DIARY_KARAMJA_HARD(3611),
- DIARY_KARAMJA_ELITE(4566),
+ DIARY_KARAMJA_EASY(3578),
+ DIARY_KARAMJA_MEDIUM(3599),
+ DIARY_KARAMJA_HARD(3611),
+ DIARY_KARAMJA_ELITE(4566),
- DIARY_LUMBRIDGE_EASY(4495),
- DIARY_LUMBRIDGE_MEDIUM(4496),
- DIARY_LUMBRIDGE_HARD(4497),
- DIARY_LUMBRIDGE_ELITE(4498),
+ DIARY_LUMBRIDGE_EASY(4495),
+ DIARY_LUMBRIDGE_MEDIUM(4496),
+ DIARY_LUMBRIDGE_HARD(4497),
+ DIARY_LUMBRIDGE_ELITE(4498),
- DIARY_MORYTANIA_EASY(4487),
- DIARY_MORYTANIA_MEDIUM(4488),
- DIARY_MORYTANIA_HARD(4489),
- DIARY_MORYTANIA_ELITE(4490),
+ DIARY_MORYTANIA_EASY(4487),
+ DIARY_MORYTANIA_MEDIUM(4488),
+ DIARY_MORYTANIA_HARD(4489),
+ DIARY_MORYTANIA_ELITE(4490),
- DIARY_VARROCK_EASY(4479),
- DIARY_VARROCK_MEDIUM(4480),
- DIARY_VARROCK_HARD(4481),
- DIARY_VARROCK_ELITE(4482),
+ DIARY_VARROCK_EASY(4479),
+ DIARY_VARROCK_MEDIUM(4480),
+ DIARY_VARROCK_HARD(4481),
+ DIARY_VARROCK_ELITE(4482),
- DIARY_WESTERN_EASY(4471),
- DIARY_WESTERN_MEDIUM(4472),
- DIARY_WESTERN_HARD(4473),
- DIARY_WESTERN_ELITE(4474),
+ DIARY_WESTERN_EASY(4471),
+ DIARY_WESTERN_MEDIUM(4472),
+ DIARY_WESTERN_HARD(4473),
+ DIARY_WESTERN_ELITE(4474),
- DIARY_WILDERNESS_EASY(4466),
- DIARY_WILDERNESS_MEDIUM(4467),
- DIARY_WILDERNESS_HARD(4468),
- DIARY_WILDERNESS_ELITE(4469),
+ DIARY_WILDERNESS_EASY(4466),
+ DIARY_WILDERNESS_MEDIUM(4467),
+ DIARY_WILDERNESS_HARD(4468),
+ DIARY_WILDERNESS_ELITE(4469),
- /**
- * Kourend house favours
- */
- KOUREND_FAVOR_ARCEUUS(4896),
- KOUREND_FAVOR_HOSIDIUS(4895),
- KOUREND_FAVOR_LOVAKENGJ(4898),
- KOUREND_FAVOR_PISCARILIUS(4899),
- KOUREND_FAVOR_SHAYZIEN(4894),
+ /**
+ * Kourend house favours
+ */
+ KOUREND_FAVOR_ARCEUUS(4896),
+ KOUREND_FAVOR_HOSIDIUS(4895),
+ KOUREND_FAVOR_LOVAKENGJ(4898),
+ KOUREND_FAVOR_PISCARILIUS(4899),
+ KOUREND_FAVOR_SHAYZIEN(4894),
- /**
- * Equipped weapon type
- */
- EQUIPPED_WEAPON_TYPE(357),
+ /**
+ * Equipped weapon type
+ */
+ EQUIPPED_WEAPON_TYPE(357),
- /**
- * Defensive casting mode
- */
- DEFENSIVE_CASTING_MODE(2668),
+ /**
+ * Defensive casting mode
+ */
+ DEFENSIVE_CASTING_MODE(2668),
- /**
- * Options
- */
- SIDE_PANELS(4607),
+ /**
+ * Options
+ */
+ SIDE_PANELS(4607),
- /**
- * Herbiboar Trails
- */
- HB_TRAIL_31303(5737),
- HB_TRAIL_31306(5738),
- HB_TRAIL_31309(5739),
- HB_TRAIL_31312(5740),
- HB_TRAIL_31315(5741),
- HB_TRAIL_31318(5742),
- HB_TRAIL_31321(5743),
- HB_TRAIL_31324(5744),
- HB_TRAIL_31327(5745),
- HB_TRAIL_31330(5746),
+ /**
+ * Herbiboar Trails
+ */
+ HB_TRAIL_31303(5737),
+ HB_TRAIL_31306(5738),
+ HB_TRAIL_31309(5739),
+ HB_TRAIL_31312(5740),
+ HB_TRAIL_31315(5741),
+ HB_TRAIL_31318(5742),
+ HB_TRAIL_31321(5743),
+ HB_TRAIL_31324(5744),
+ HB_TRAIL_31327(5745),
+ HB_TRAIL_31330(5746),
- HB_TRAIL_31333(5768),
- HB_TRAIL_31336(5769),
- HB_TRAIL_31339(5770),
- HB_TRAIL_31342(5771),
- HB_TRAIL_31345(5772),
- HB_TRAIL_31348(5773),
- HB_TRAIL_31351(5774),
- HB_TRAIL_31354(5775),
- HB_TRAIL_31357(5776),
- HB_TRAIL_31360(5777),
+ HB_TRAIL_31333(5768),
+ HB_TRAIL_31336(5769),
+ HB_TRAIL_31339(5770),
+ HB_TRAIL_31342(5771),
+ HB_TRAIL_31345(5772),
+ HB_TRAIL_31348(5773),
+ HB_TRAIL_31351(5774),
+ HB_TRAIL_31354(5775),
+ HB_TRAIL_31357(5776),
+ HB_TRAIL_31360(5777),
- HB_TRAIL_31363(5747),
- HB_TRAIL_31366(5748),
- HB_TRAIL_31369(5749),
- HB_TRAIL_31372(5750),
+ HB_TRAIL_31363(5747),
+ HB_TRAIL_31366(5748),
+ HB_TRAIL_31369(5749),
+ HB_TRAIL_31372(5750),
- HB_FINISH(5766),
- HB_STARTED(5767), //not working
+ HB_FINISH(5766),
+ HB_STARTED(5767), //not working
- /**
- * Barbarian Assault
- */
- IN_GAME_BA(3923),
+ /**
+ * Barbarian Assault
+ */
+ IN_GAME_BA(3923),
- /**
- * 0 = Outside wilderness
- * 1 = In wilderness
- */
- IN_WILDERNESS(5963),
+ /**
+ * 0 = Outside wilderness
+ * 1 = In wilderness
+ */
+ IN_WILDERNESS(5963),
- /**
- * Fishing Trawler
- * FISHING_TRAWLER_ACTIVITY Expected values: 0-255
- */
- FISHING_TRAWLER_ACTIVITY(3377),
+ /**
+ * Fishing Trawler
+ * FISHING_TRAWLER_ACTIVITY Expected values: 0-255
+ */
+ FISHING_TRAWLER_ACTIVITY(3377),
- /**
- * Blast Furnace Bar Dispenser
- *
- * These are the expected values:
- * 0 = No bars being processed
- * 1 = Ores are being processed on the conveyor belt, bar dispenser cannot be checked
- * 2 = Bars are cooling down
- * 3 = Bars can be collected
- */
- BAR_DISPENSER(936),
+ /**
+ * Blast Furnace Bar Dispenser
+ *
+ * These are the expected values:
+ * 0 = No bars being processed
+ * 1 = Ores are being processed on the conveyor belt, bar dispenser cannot be checked
+ * 2 = Bars are cooling down
+ * 3 = Bars can be collected
+ */
+ BAR_DISPENSER(936),
- /**
- * Motherlode mine sack
- */
- SACK_NUMBER(5558),
- SACK_UPGRADED(5556),
+ /**
+ * Motherlode mine sack
+ */
+ SACK_NUMBER(5558),
+ SACK_UPGRADED(5556),
- /**
- * Experience tracker
- *
- * EXPERIENCE_TRACKER_POSITION expected values:
- * 0 = Right
- * 1 = Middle
- * 2 = Left
- */
- EXPERIENCE_TRACKER_POSITION(4692),
- EXPERIENCE_TRACKER_COUNTER(4697),
- EXPERIENCE_TRACKER_PROGRESS_BAR(4698),
+ /**
+ * Experience tracker
+ *
+ * EXPERIENCE_TRACKER_POSITION expected values:
+ * 0 = Right
+ * 1 = Middle
+ * 2 = Left
+ */
+ EXPERIENCE_TRACKER_POSITION(4692),
+ EXPERIENCE_TRACKER_COUNTER(4697),
+ EXPERIENCE_TRACKER_PROGRESS_BAR(4698),
- /**
- * Experience drop color
- */
- EXPERIENCE_DROP_COLOR(4695),
+ /**
+ * Experience drop color
+ */
+ EXPERIENCE_DROP_COLOR(4695),
- /**
- * Tithe Farm
- */
- TITHE_FARM_SACK_AMOUNT(4900),
- TITHE_FARM_SACK_ICON(5370),
- TITHE_FARM_POINTS(4893),
-
- /**
- * Blast Mine
- */
- BLAST_MINE_COAL(4924),
- BLAST_MINE_GOLD(4925),
- BLAST_MINE_MITHRIL(4926),
- BLAST_MINE_ADAMANTITE(4921),
- BLAST_MINE_RUNITE(4922),
+ /**
+ * Tithe Farm
+ */
+ TITHE_FARM_SACK_AMOUNT(4900),
+ TITHE_FARM_SACK_ICON(5370),
+ TITHE_FARM_POINTS(4893),
- /**
- * Raids
- */
- IN_RAID(5432),
- TOTAL_POINTS(5431),
- PERSONAL_POINTS(5422),
- RAID_PARTY_SIZE(5424),
+ /**
+ * Blast Mine
+ */
+ BLAST_MINE_COAL(4924),
+ BLAST_MINE_GOLD(4925),
+ BLAST_MINE_MITHRIL(4926),
+ BLAST_MINE_ADAMANTITE(4921),
+ BLAST_MINE_RUNITE(4922),
- /**
- * Theatre of Blood 1=In Party, 2=Inside/Spectator, 3=Dead Spectating
- */
- THEATRE_OF_BLOOD(6440),
+ /**
+ * Raids
+ */
+ IN_RAID(5432),
+ TOTAL_POINTS(5431),
+ PERSONAL_POINTS(5422),
+ RAID_PARTY_SIZE(5424),
- /**
- * Nightmare Zone
- */
- NMZ_ABSORPTION(3956),
- NMZ_POINTS(3949),
+ /**
+ * Theatre of Blood 1=In Party, 2=Inside/Spectator, 3=Dead Spectating
+ */
+ THEATRE_OF_BLOOD(6440),
- /**
- * Blast Furnace
- */
- BLAST_FURNACE_COPPER_ORE(959),
- BLAST_FURNACE_TIN_ORE(950),
- BLAST_FURNACE_IRON_ORE(951),
- BLAST_FURNACE_COAL(949),
- BLAST_FURNACE_MITHRIL_ORE(952),
- BLAST_FURNACE_ADAMANTITE_ORE(953),
- BLAST_FURNACE_RUNITE_ORE(954),
- BLAST_FURNACE_SILVER_ORE(956),
- BLAST_FURNACE_GOLD_ORE(955),
+ /**
+ * Nightmare Zone
+ */
+ NMZ_ABSORPTION(3956),
+ NMZ_POINTS(3949),
- BLAST_FURNACE_BRONZE_BAR(941),
- BLAST_FURNACE_IRON_BAR(942),
- BLAST_FURNACE_STEEL_BAR(943),
- BLAST_FURNACE_MITHRIL_BAR(944),
- BLAST_FURNACE_ADAMANTITE_BAR(945),
- BLAST_FURNACE_RUNITE_BAR(946),
- BLAST_FURNACE_SILVER_BAR(948),
- BLAST_FURNACE_GOLD_BAR(947),
+ /**
+ * Blast Furnace
+ */
+ BLAST_FURNACE_COPPER_ORE(959),
+ BLAST_FURNACE_TIN_ORE(950),
+ BLAST_FURNACE_IRON_ORE(951),
+ BLAST_FURNACE_COAL(949),
+ BLAST_FURNACE_MITHRIL_ORE(952),
+ BLAST_FURNACE_ADAMANTITE_ORE(953),
+ BLAST_FURNACE_RUNITE_ORE(954),
+ BLAST_FURNACE_SILVER_ORE(956),
+ BLAST_FURNACE_GOLD_ORE(955),
- BLAST_FURNACE_COFFER(5357),
+ BLAST_FURNACE_BRONZE_BAR(941),
+ BLAST_FURNACE_IRON_BAR(942),
+ BLAST_FURNACE_STEEL_BAR(943),
+ BLAST_FURNACE_MITHRIL_BAR(944),
+ BLAST_FURNACE_ADAMANTITE_BAR(945),
+ BLAST_FURNACE_RUNITE_BAR(946),
+ BLAST_FURNACE_SILVER_BAR(948),
+ BLAST_FURNACE_GOLD_BAR(947),
- /**
- * Pyramid plunder
- */
- PYRAMID_PLUNDER_TIMER(2375),
- PYRAMID_PLUNDER_ROOM(2377),
+ BLAST_FURNACE_COFFER(5357),
- /**
- * Barrows
- */
- BARROWS_KILLED_AHRIM(457),
- BARROWS_KILLED_DHAROK(458),
- BARROWS_KILLED_GUTHAN(459),
- BARROWS_KILLED_KARIL(460),
- BARROWS_KILLED_TORAG(461),
- BARROWS_KILLED_VERAC(462),
- BARROWS_REWARD_POTENTIAL(463),
- BARROWS_NPCS_SLAIN(464),
+ /**
+ * Pyramid plunder
+ */
+ PYRAMID_PLUNDER_TIMER(2375),
+ PYRAMID_PLUNDER_ROOM(2377),
- /**
- * Spicy stew ingredients
- */
- SPICY_STEW_RED_SPICES(1879),
- SPICY_STEW_YELLOW_SPICES(1880),
- SPICY_STEW_BROWN_SPICES(1881),
- SPICY_STEW_ORANGE_SPICES(1882),
+ /**
+ * Barrows
+ */
+ BARROWS_KILLED_AHRIM(457),
+ BARROWS_KILLED_DHAROK(458),
+ BARROWS_KILLED_GUTHAN(459),
+ BARROWS_KILLED_KARIL(460),
+ BARROWS_KILLED_TORAG(461),
+ BARROWS_KILLED_VERAC(462),
+ BARROWS_REWARD_POTENTIAL(463),
+ BARROWS_NPCS_SLAIN(464),
- /**
- * Multicombat area
- */
- MULTICOMBAT_AREA(4605),
+ /**
+ * Spicy stew ingredients
+ */
+ SPICY_STEW_RED_SPICES(1879),
+ SPICY_STEW_YELLOW_SPICES(1880),
+ SPICY_STEW_BROWN_SPICES(1881),
+ SPICY_STEW_ORANGE_SPICES(1882),
- /**
- * In the Wilderness
- */
- IN_THE_WILDERNESS(5963),
+ /**
+ * Multicombat area
+ */
+ MULTICOMBAT_AREA(4605),
- /**
- * Kingdom Management
- */
- KINGDOM_FAVOR(72),
- KINGDOM_COFFER(74),
+ /**
+ * In the Wilderness
+ */
+ IN_THE_WILDERNESS(5963),
- /**
- * The Hand in the Sand quest status
- */
- QUEST_THE_HAND_IN_THE_SAND(1527),
+ /**
+ * Kingdom Management
+ */
+ KINGDOM_FAVOR(72),
+ KINGDOM_COFFER(74),
- /**
- * Daily Tasks (Collection availability)
- */
- DAILY_HERB_BOXES_COLLECTED(3961),
- DAILY_STAVES_COLLECTED(4539),
- DAILY_ESSENCE_COLLECTED(4547),
- DAILY_RUNES_COLLECTED(4540),
- DAILY_SAND_COLLECTED(4549),
- DAILY_FLAX_STATE(4559),
- /**
- * This varbit tracks how much bonemeal has been redeemed from Robin
- * The player gets 13 for each diary completed above and including Medium, for a maxiumum of 39
- */
- DAILY_BONEMEAL_STATE(4543),
+ /**
+ * The Hand in the Sand quest status
+ */
+ QUEST_THE_HAND_IN_THE_SAND(1527),
- /**
- * Fairy Ring
- */
- FAIR_RING_LAST_DESTINATION(5374),
- FAIRY_RING_DIAL_ADCB(3985), //Left dial
- FAIRY_RIGH_DIAL_ILJK(3986), //Middle dial
- FAIRY_RING_DIAL_PSRQ(3987), //Right dial
+ /**
+ * Daily Tasks (Collection availability)
+ */
+ DAILY_HERB_BOXES_COLLECTED(3961),
+ DAILY_STAVES_COLLECTED(4539),
+ DAILY_ESSENCE_COLLECTED(4547),
+ DAILY_RUNES_COLLECTED(4540),
+ DAILY_SAND_COLLECTED(4549),
+ DAILY_FLAX_STATE(4559),
+ /**
+ * This varbit tracks how much bonemeal has been redeemed from Robin
+ * The player gets 13 for each diary completed above and including Medium, for a maxiumum of 39
+ */
+ DAILY_BONEMEAL_STATE(4543),
- /**
- * Transmog controllers for farming
- */
- FARMING_4771(4771),
- FARMING_4772(4772),
- FARMING_4773(4773),
- FARMING_4774(4774),
- FARMING_4775(4775),
- FARMING_7904(7904),
- FARMING_7905(7905),
- FARMING_7906(7906),
- FARMING_7907(7907),
- FARMING_7908(7908),
- FARMING_7909(7909),
- FARMING_7910(7910),
- FARMING_7911(7911),
+ /**
+ * Fairy Ring
+ */
+ FAIR_RING_LAST_DESTINATION(5374),
+ FAIRY_RING_DIAL_ADCB(3985), //Left dial
+ FAIRY_RIGH_DIAL_ILJK(3986), //Middle dial
+ FAIRY_RING_DIAL_PSRQ(3987), //Right dial
- /**
- * Transmog controllers for grapes
- */
- GRAPES_4953(4953),
- GRAPES_4954(4954),
- GRAPES_4955(4955),
- GRAPES_4956(4956),
- GRAPES_4957(4957),
- GRAPES_4958(4958),
- GRAPES_4959(4959),
- GRAPES_4960(4960),
- GRAPES_4961(4961),
- GRAPES_4962(4962),
- GRAPES_4963(4963),
- GRAPES_4964(4964),
+ /**
+ * Transmog controllers for farming
+ */
+ FARMING_4771(4771),
+ FARMING_4772(4772),
+ FARMING_4773(4773),
+ FARMING_4774(4774),
+ FARMING_4775(4775),
+ FARMING_7904(7904),
+ FARMING_7905(7905),
+ FARMING_7906(7906),
+ FARMING_7907(7907),
+ FARMING_7908(7908),
+ FARMING_7909(7909),
+ FARMING_7910(7910),
+ FARMING_7911(7911),
- /**
- * Automatically weed farming patches
- */
- AUTOWEED(5557),
+ /**
+ * Transmog controllers for grapes
+ */
+ GRAPES_4953(4953),
+ GRAPES_4954(4954),
+ GRAPES_4955(4955),
+ GRAPES_4956(4956),
+ GRAPES_4957(4957),
+ GRAPES_4958(4958),
+ GRAPES_4959(4959),
+ GRAPES_4960(4960),
+ GRAPES_4961(4961),
+ GRAPES_4962(4962),
+ GRAPES_4963(4963),
+ GRAPES_4964(4964),
- /**
- * The varbit that stores the players {@code AccountType}.
- */
- ACCOUNT_TYPE(1777),
+ /**
+ * Automatically weed farming patches
+ */
+ AUTOWEED(5557),
- /**
- * The varbit that stores the oxygen percentage for player
- */
- OXYGEN_LEVEL(5811),
-
- /**
- * Corp beast damage
- */
- CORP_DAMAGE(999),
+ /**
+ * The varbit that stores the players {@code AccountType}.
+ */
+ ACCOUNT_TYPE(1777),
- /**
- * Toggleable slayer unlocks
- */
- SUPERIOR_ENABLED(5362),
- FOSSIL_ISLAND_WYVERN_DISABLE(6251),
+ /**
+ * The varbit that stores the oxygen percentage for player
+ */
+ OXYGEN_LEVEL(5811),
- CURRENT_BANK_TAB(4150),
+ /**
+ * Corp beast damage
+ */
+ CORP_DAMAGE(999),
- WORLDHOPPER_FAVROITE_1(4597),
- WORLDHOPPER_FAVROITE_2(4598),
+ /**
+ * Toggleable slayer unlocks
+ */
+ SUPERIOR_ENABLED(5362),
+ FOSSIL_ISLAND_WYVERN_DISABLE(6251),
- /**
- * Vengeance is active
- */
- VENGEANCE_ACTIVE(2450),
+ CURRENT_BANK_TAB(4150),
- /**
- * Spell cooldowns
- */
- VENGEANCE_COOLDOWN(2451),
+ WORLDHOPPER_FAVROITE_1(4597),
+ WORLDHOPPER_FAVROITE_2(4598),
- /**
- * Amount of items in each bank tab
- */
- BANK_TAB_ONE_COUNT(4171),
- BANK_TAB_TWO_COUNT(4172),
- BANK_TAB_THREE_COUNT(4173),
- BANK_TAB_FOUR_COUNT(4174),
- BANK_TAB_FIVE_COUNT(4175),
- BANK_TAB_SIX_COUNT(4176),
- BANK_TAB_SEVEN_COUNT(4177),
- BANK_TAB_EIGHT_COUNT(4178),
- BANK_TAB_NINE_COUNT(4179),
+ /**
+ * Vengeance is active
+ */
+ VENGEANCE_ACTIVE(2450),
- /**
- * Type of GE offer currently being created
- * 0 = buy
- * 1 = sell
- */
- GE_OFFER_CREATION_TYPE(4397),
+ /**
+ * Spell cooldowns
+ */
+ VENGEANCE_COOLDOWN(2451),
- /**
- * The active tab within the quest interface
- */
- QUEST_TAB(8168),
-
- /**
- * Temple Trekking
- */
- TREK_POINTS(1955),
- TREK_STARTED(1956),
- TREK_EVENT(1958),
- TREK_STATUS(6719);
+ /**
+ * Amount of items in each bank tab
+ */
+ BANK_TAB_ONE_COUNT(4171),
+ BANK_TAB_TWO_COUNT(4172),
+ BANK_TAB_THREE_COUNT(4173),
+ BANK_TAB_FOUR_COUNT(4174),
+ BANK_TAB_FIVE_COUNT(4175),
+ BANK_TAB_SIX_COUNT(4176),
+ BANK_TAB_SEVEN_COUNT(4177),
+ BANK_TAB_EIGHT_COUNT(4178),
+ BANK_TAB_NINE_COUNT(4179),
+ /**
+ * Type of GE offer currently being created
+ * 0 = buy
+ * 1 = sell
+ */
+ GE_OFFER_CREATION_TYPE(4397),
- /**
- * The raw varbit ID.
- */
- private final int id;
+ /**
+ * The active tab within the quest interface
+ */
+ QUEST_TAB(8168),
+
+ /**
+ * Temple Trekking
+ */
+ TREK_POINTS(1955),
+ TREK_STARTED(1956),
+ TREK_EVENT(1958),
+ TREK_STATUS(6719),
+ BLOAT_ENTERED_ROOM(6447);
+
+ /**
+ * The raw varbit ID.
+ */
+ private final int id;
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPanel.java
index e630c28b4f..1d54442c6d 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPanel.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPanel.java
@@ -44,7 +44,6 @@ public class EquipmentInspectorPanel extends PluginPanel
c.weightx = 1;
c.gridx = 0;
c.gridy = 0;
-
header = new JPanel();
header.setLayout(new BorderLayout());
header.setBorder(new CompoundBorder(
@@ -53,9 +52,7 @@ public class EquipmentInspectorPanel extends PluginPanel
nameLabel = new JLabel(NO_PLAYER_SELECTED);
nameLabel.setForeground(Color.WHITE);
-
header.add(nameLabel, BorderLayout.CENTER);
-
layout.setHorizontalGroup(layout.createParallelGroup()
.addComponent(equipmentPanels)
.addComponent(header)
@@ -65,7 +62,6 @@ public class EquipmentInspectorPanel extends PluginPanel
.addGap(10)
.addComponent(equipmentPanels)
);
-
update(new HashMap<>(), "");
}
@@ -79,7 +75,6 @@ public class EquipmentInspectorPanel extends PluginPanel
{
nameLabel.setText("Player: " + playerName);
}
-
SwingUtilities.invokeLater(() ->
{
equipmentPanels.removeAll();
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java
index 5ea9ea76b6..29904c2fb8 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java
@@ -3,7 +3,10 @@ package net.runelite.client.plugins.equipmentinspector;
import com.google.inject.Provides;
import lombok.extern.slf4j.Slf4j;
-import net.runelite.api.*;
+import net.runelite.api.ChatMessageType;
+import net.runelite.api.Client;
+import net.runelite.api.ItemComposition;
+import net.runelite.api.Player;
import net.runelite.api.events.PlayerMenuOptionClicked;
import net.runelite.api.kit.KitType;
import net.runelite.client.chat.ChatColorType;
@@ -18,11 +21,10 @@ import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.ClientToolbar;
import net.runelite.client.ui.NavigationButton;
+import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.Text;
-import net.runelite.http.api.item.ItemPrice;
import javax.annotation.Nullable;
-import javax.imageio.ImageIO;
import javax.inject.Inject;
import javax.swing.*;
import java.awt.image.BufferedImage;
@@ -32,211 +34,195 @@ import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
@PluginDescriptor(
- name = "Equipment Inspector",
- description = "Inspects enemy equipment",
- enabledByDefault = false,
- type = "utility"
+ name = "Equipment Inspector",
+ enabledByDefault = false,
+ type = "utility"
)
@Slf4j
public class EquipmentInspectorPlugin extends Plugin {
- private static final String INSPECT_EQUIPMENT = "Gear";
- private static final String KICK_OPTION = "Kick";
+ private static final String INSPECT_EQUIPMENT = "Gear";
+ private static final String KICK_OPTION = "Kick";
- @Inject
- @Nullable
- private Client client;
+ @Inject
+ @Nullable
+ private Client client;
- @Inject
- private ItemManager itemManager;
+ @Inject
+ private ItemManager itemManager;
- @Inject
- private EquipmentInspectorConfig config;
+ @Inject
+ private EquipmentInspectorConfig config;
- @Inject
- private ChatMessageManager chatMessageManager;
- @Inject
- private MenuManager menuManager;
+ @Inject
+ private ChatMessageManager chatMessageManager;
+ @Inject
+ private MenuManager menuManager;
- @Inject
- private ScheduledExecutorService executor;
+ @Inject
+ private ScheduledExecutorService executor;
- @Inject
- private ClientToolbar pluginToolbar;
+ @Inject
+ private ClientToolbar pluginToolbar;
+ private NavigationButton navButton;
+ private EquipmentInspectorPanel equipmentInspectorPanel;
+ private int TotalPrice = 0;
+ private int Prot1 = 0;
+ private int Prot2 = 0;
+ private int Prot3 = 0;
+ private int Prot4 = 0;
- @Provides
- EquipmentInspectorConfig provideConfig(ConfigManager configManager)
- {
- return configManager.getConfig(EquipmentInspectorConfig.class);
- }
+ @Provides
+ EquipmentInspectorConfig provideConfig(ConfigManager configManager) {
+ return configManager.getConfig(EquipmentInspectorConfig.class);
+ }
- private NavigationButton navButton;
- private EquipmentInspectorPanel equipmentInspectorPanel;
- private int TotalPrice = 0;
- private int Prot1 = 0;
- private int Prot2 = 0;
- private int Prot3 = 0;
- private int Prot4 = 0;
+ @Override
+ protected void startUp() throws Exception {
+
+ equipmentInspectorPanel = injector.getInstance(EquipmentInspectorPanel.class);
+ if (client != null) {
+ menuManager.addPlayerMenuItem(INSPECT_EQUIPMENT);
+ }
+
+ //synchronized (ImageIO.class)
+ //{
+ final BufferedImage icon = ImageUtil.getResourceStreamFromClass(this.getClass(), "normal.png");
+ //}
+
+ navButton = NavigationButton.builder()
+ .tooltip("Equipment Inspector")
+ .icon(icon)
+ .priority(5)
+ .panel(equipmentInspectorPanel)
+ .build();
- @Override
- protected void startUp() throws Exception
- {
+ pluginToolbar.addNavigation(navButton);
- equipmentInspectorPanel = injector.getInstance(EquipmentInspectorPanel.class);
- if(client != null) {
- menuManager.addPlayerMenuItem(INSPECT_EQUIPMENT);
- }
+ }
- BufferedImage icon;
- synchronized (ImageIO.class)
- {
- icon = ImageIO.read(getClass().getResourceAsStream("normal.png"));
- }
+ @Override
+ protected void shutDown() throws Exception {
- navButton = NavigationButton.builder()
- .tooltip("Equipment Inspector")
- .icon(icon)
- .priority(5)
- .panel(equipmentInspectorPanel)
- .build();
+ menuManager.removePlayerMenuItem(INSPECT_EQUIPMENT);
+ }
+
+ @Subscribe
+ public void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) {
+ if (event.getMenuOption().equals(INSPECT_EQUIPMENT)) {
- pluginToolbar.addNavigation(navButton);
+ executor.execute(() ->
+ {
+ try {
+ SwingUtilities.invokeAndWait(() ->
+ {
+ if (!navButton.isSelected()) {
+ navButton.getOnSelect().run();
+ }
+ });
+ } catch (InterruptedException | InvocationTargetException e) {
- }
+ throw new RuntimeException(e);
- @Override
- protected void shutDown() throws Exception
- {
+ }
+ String playerName = Text.removeTags(event.getMenuTarget());
+ // The player menu uses a non-breaking space in the player name, we need to replace this to compare
+ // against the playerName in the player cache.
+ String finalPlayerName = playerName.replace('\u00A0', ' ');
+ System.out.println(finalPlayerName);
+ List players = client.getPlayers();
+ Optional targetPlayer = players.stream()
+ .filter(Objects::nonNull)
+ .filter(p -> p.getName().equals(finalPlayerName)).findFirst();
- menuManager.removePlayerMenuItem(INSPECT_EQUIPMENT);
- }
+ if (targetPlayer.isPresent()) {
+ TotalPrice = 0;
+ Prot1 = 0;
+ Prot2 = 0;
+ Prot3 = 0;
+ Prot4 = 0;
+ Player p = targetPlayer.get();
+ Map playerEquipment = new HashMap<>();
- @Subscribe
- public void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event)
- {
- if (event.getMenuOption().equals(INSPECT_EQUIPMENT))
- {
+ for (KitType kitType : KitType.values()) {
+ int itemId = p.getPlayerComposition().getEquipmentId(kitType);
+ if (itemId != -1) {
+ ItemComposition itemComposition = client.getItemDefinition(itemId);
+ playerEquipment.put(kitType, itemComposition);
+ int ItemPrice = itemManager.getItemPrice(itemId);
+ TotalPrice += ItemPrice;
+ if (ItemPrice > Prot1) {
+ Prot4 = Prot3;
+ Prot3 = Prot2;
+ Prot2 = Prot1;
+ Prot1 = ItemPrice;
+ } else if (ItemPrice > Prot2) {
+ Prot4 = Prot3;
+ Prot3 = Prot2;
+ Prot2 = ItemPrice;
+ } else if (ItemPrice > Prot3) {
+ Prot4 = Prot3;
+ Prot3 = ItemPrice;
+ } else if (ItemPrice > Prot4) {
+ Prot4 = ItemPrice;
+ }
+ }
+ }
+ int IgnoredItems = config.protecteditems();
+ if (IgnoredItems != 0 && IgnoredItems != 1 && IgnoredItems != 2 && IgnoredItems != 3) {
+ IgnoredItems = 4;
- executor.execute(() ->
- {
- try
- {
- SwingUtilities.invokeAndWait(() ->
- {
- if (!navButton.isSelected())
- {
- navButton.getOnSelect().run();
- }
- });
- }
- catch (InterruptedException | InvocationTargetException e)
- {
+ }
+ if (config.ShowValue()) {
+ switch (IgnoredItems) {
+ case 1:
+ TotalPrice = TotalPrice - Prot1;
+ break;
+ case 2:
+ TotalPrice = TotalPrice - Prot1;
+ TotalPrice = TotalPrice - Prot2;
- throw new RuntimeException(e);
+ break;
+ case 3:
+ TotalPrice = TotalPrice - Prot1;
+ TotalPrice = TotalPrice - Prot2;
+ TotalPrice = TotalPrice - Prot3;
+ break;
+ case 4:
+ TotalPrice = TotalPrice - Prot1;
+ TotalPrice = TotalPrice - Prot2;
+ TotalPrice = TotalPrice - Prot3;
+ TotalPrice = TotalPrice - Prot4;
+ break;
+ }
+ String StringPrice = "";
+ if (!config.ExactValue()) {
+ TotalPrice = TotalPrice / 1000;
+ StringPrice = NumberFormat.getIntegerInstance().format(TotalPrice);
+ StringPrice = StringPrice + 'K';
+ }
+ if (config.ExactValue()) {
+ StringPrice = NumberFormat.getIntegerInstance().format(TotalPrice);
+ }
+ chatMessageManager.queue(QueuedMessage.builder()
+ .type(ChatMessageType.FRIENDSCHATNOTIFICATION)
+ .runeLiteFormattedMessage(new ChatMessageBuilder()
+ .append(ChatColorType.HIGHLIGHT)
+ .append("Risked Value: ")
+ .append(ChatColorType.NORMAL)
+ .append(StringPrice)
+ .build())
+ .build());
+ }
+ equipmentInspectorPanel.update(playerEquipment, playerName);
- }
- String playerName = Text.removeTags(event.getMenuTarget());
- // The player menu uses a non-breaking space in the player name, we need to replace this to compare
- // against the playerName in the player cache.
- String finalPlayerName = playerName.replace('\u00A0', ' ');
- System.out.println(finalPlayerName);
- List players = client.getPlayers();
- Optional targetPlayer = players.stream()
- .filter(Objects::nonNull)
- .filter(p -> p.getName().equals(finalPlayerName)).findFirst();
-
- if (targetPlayer.isPresent())
- {
- TotalPrice = 0;
- Prot1 = 0;
- Prot2 = 0;
- Prot3 = 0;
- Prot4 = 0;
- Player p = targetPlayer.get();
- Map playerEquipment = new HashMap<>();
-
- for (KitType kitType : KitType.values())
- {
- int itemId = p.getPlayerComposition().getEquipmentId(kitType);
- if (itemId != -1)
- {
- ItemComposition itemComposition = client.getItemDefinition(itemId);
- playerEquipment.put(kitType, itemComposition);
- int ItemPrice = itemManager.getItemPrice(itemId);
- TotalPrice += ItemPrice;
- if (ItemPrice > Prot1 ) {
- Prot4 = Prot3;
- Prot3 = Prot2;
- Prot2 = Prot1;
-
- Prot1 = ItemPrice;
- } else if (ItemPrice > Prot2){
- Prot4 = Prot3;
- Prot3 = Prot2;
- Prot2 = ItemPrice;
- } else if (ItemPrice > Prot3){
- Prot4 = Prot3;
- Prot3 = ItemPrice;
- } else if (ItemPrice > Prot4){
- Prot4 = ItemPrice;
- }
- }
- }
- int IgnoredItems = config.protecteditems();
- if (IgnoredItems != 0 && IgnoredItems != 1 && IgnoredItems != 2 && IgnoredItems != 3) {
- IgnoredItems = 4;
-
- }
- if (config.ShowValue()) {
- switch (IgnoredItems) {
- case 1:
- TotalPrice = TotalPrice - Prot1;
- break;
- case 2:
- TotalPrice = TotalPrice - Prot1;
- TotalPrice = TotalPrice - Prot2;
-
- break;
- case 3:
- TotalPrice = TotalPrice - Prot1;
- TotalPrice = TotalPrice - Prot2;
- TotalPrice = TotalPrice - Prot3;
- break;
- case 4:
- TotalPrice = TotalPrice - Prot1;
- TotalPrice = TotalPrice - Prot2;
- TotalPrice = TotalPrice - Prot3;
- TotalPrice = TotalPrice - Prot4;
- break;
- }
- String StringPrice = "";
- if (!config.ExactValue()) {
- TotalPrice = TotalPrice / 1000;
- StringPrice = NumberFormat.getIntegerInstance().format(TotalPrice);
- StringPrice = StringPrice + 'K';
- }
- if (config.ExactValue()) {
- StringPrice = NumberFormat.getIntegerInstance().format(TotalPrice);
- }
- chatMessageManager.queue(QueuedMessage.builder()
- .type(ChatMessageType.FRIENDSCHATNOTIFICATION)
- .runeLiteFormattedMessage(new ChatMessageBuilder()
- .append(ChatColorType.HIGHLIGHT)
- .append("Risked Value: ")
- .append(ChatColorType.NORMAL)
- .append(StringPrice)
- .build())
- .build());
- }
- equipmentInspectorPanel.update(playerEquipment, playerName);
-
- }
- });
- }
- }
-}
+ }
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java
index 873bf058b6..fadc684588 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java
@@ -15,7 +15,8 @@ class ItemPanel extends JPanel
ItemPanel(ItemComposition item, KitType kitType, AsyncBufferedImage icon)
{
- setBorder(new EmptyBorder(3, 3, 3, 3));
+
+ setBorder(new EmptyBorder(3, 3, 3, 3));
setBackground(ColorScheme.DARK_GRAY_COLOR);
GroupLayout layout = new GroupLayout(this);
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/BloatTimerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/BloatTimerOverlay.java
new file mode 100644
index 0000000000..fec801ab51
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/BloatTimerOverlay.java
@@ -0,0 +1,83 @@
+package net.runelite.client.plugins.ztob;
+
+import net.runelite.api.Client;
+import net.runelite.api.Perspective;
+import net.runelite.api.Point;
+import net.runelite.api.coords.LocalPoint;
+import net.runelite.api.coords.WorldPoint;
+import net.runelite.client.ui.overlay.*;
+
+import javax.inject.Inject;
+import java.awt.*;
+
+public class BloatTimerOverlay extends Overlay {
+
+ private final Client client;
+ private final TheatrePlugin plugin;
+ private final TheatreConfig config;
+
+ @Inject
+ private BloatTimerOverlay(Client client, TheatrePlugin plugin, TheatreConfig config) {
+ this.client = client;
+ this.plugin = plugin;
+ this.config = config;
+ setPosition(OverlayPosition.DYNAMIC);
+ setPriority(OverlayPriority.HIGH);
+ setLayer(OverlayLayer.ABOVE_SCENE);
+ }
+
+ public Dimension render(Graphics2D graphics) {
+
+ if (config.bloatTimer()) {
+ final String tickCounter = String.valueOf(plugin.bloatTimer);
+ int secondConversion = (int) (plugin.bloatTimer * .6);
+ if (plugin.getBloat_NPC() != null) {
+ Point canvasPoint = plugin.getBloat_NPC().getCanvasTextLocation(graphics, tickCounter, 60);
+ if (plugin.bloatTimer <= 37) {
+ renderTextLocation(graphics, tickCounter + "( " + secondConversion + " )", 15, Font.BOLD, Color.WHITE, canvasPoint);
+ } else {
+ renderTextLocation(graphics, tickCounter + "( " + secondConversion + " )", 15, Font.BOLD, Color.RED, canvasPoint);
+ }
+ }
+ }
+
+
+ return null;
+ }
+
+ private void drawTile(Graphics2D graphics, WorldPoint point, Color color, int strokeWidth, int outlineAlpha, int fillAlpha) {
+ 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;
+ }
+ //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);
+ }
+
+ private void renderTextLocation(Graphics2D graphics, String txtString, int fontSize, int fontStyle, Color fontColor, net.runelite.api.Point canvasPoint) {
+ graphics.setFont(new Font("Arial", fontStyle, fontSize));
+ if (canvasPoint != null) {
+ final net.runelite.api.Point canvasCenterPoint = new net.runelite.api.Point(
+ canvasPoint.getX(),
+ canvasPoint.getY());
+ final net.runelite.api.Point canvasCenterPoint_shadow = new Point(
+ canvasPoint.getX() + 1,
+ canvasPoint.getY() + 1);
+ OverlayUtil.renderTextLocation(graphics, canvasCenterPoint_shadow, txtString, Color.BLACK);
+ OverlayUtil.renderTextLocation(graphics, canvasCenterPoint, txtString, fontColor);
+ }
+ }
+}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreConfig.java
index 6f63951785..0a0a33d982 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreConfig.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreConfig.java
@@ -14,15 +14,16 @@ import net.runelite.client.config.ConfigItem;
@ConfigGroup("Theatre")
-public interface TheatreConfig extends Config
-{
+public interface TheatreConfig extends Config {
@ConfigItem(
position = 0,
keyName = "MaidenBlood",
name = "Maiden blood attack",
description = ""
)
- default boolean MaidenBlood(){ return false; }
+ default boolean MaidenBlood() {
+ return true;
+ }
@ConfigItem(
position = 1,
@@ -30,109 +31,181 @@ public interface TheatreConfig extends Config
name = "Maiden blood spawns",
description = ""
)
- default boolean MaidenSpawns(){ return false; }
+ default boolean MaidenSpawns() {
+ return true;
+ }
@ConfigItem(
position = 2,
keyName = "BloatIndicator",
- name = "Bloat indicator",
+ name = "Bloat Indicator",
description = ""
)
- default boolean BloatIndicator(){ return false; }
+ default boolean BloatIndicator() {
+ return true;
+ }
@ConfigItem(
position = 3,
- keyName = "BloatHands",
- name = "Bloat Falling Hands",
+ keyName = "bloat Timer",
+ name = "Bloat Timer",
description = ""
)
- default boolean BloatHands(){ return false; }
+ default boolean bloatTimer() {
+ return true;
+ }
@ConfigItem(
position = 4,
+ keyName = "bloatFeet",
+ name = "Bloat Feet",
+ description = ""
+ )
+ default boolean bloatFeetIndicator() {
+ return true;
+ }
+
+ @ConfigItem(
+ position = 5,
keyName = "NyloPillars",
name = "Nylocas pillar health",
description = ""
)
- default boolean NyloPillars(){ return false; }
+ default boolean NyloPillars() {
+ return true;
+ }
+
@ConfigItem(
- position = 5,
+ position = 6,
keyName = "NyloBlasts",
name = "Nylocas explosions",
description = ""
)
- default boolean NyloBlasts(){ return false; }
+ default boolean NyloBlasts() {
+ return true;
+ }
@ConfigItem(
- position = 6,
+ position = 7,
+ keyName = "NyloMenu",
+ name = "Hide Attack options for Nylocas",
+ description = ""
+ )
+
+ default boolean NyloMenu() {
+ return true;
+ }
+
+ @ConfigItem(
+ position = 8,
keyName = "SotetsegMaze1",
name = "Sotetseg maze",
description = ""
)
- default boolean SotetsegMaze1(){ return false; }
+ default boolean SotetsegMaze1() {
+ return true;
+ }
@ConfigItem(
- position = 7,
+ position = 9,
keyName = "SotetsegMaze2",
name = "Sotetseg maze (solo mode)",
description = ""
)
- default boolean SotetsegMaze2(){ return false; }
-
- @ConfigItem(
- position = 8,
- keyName = "SotetsegTick",
- name = "Sotetseg tick eat",
- description = ""
- )
- default boolean SotetsegTick(){ return false; }
-
- @ConfigItem(
- position = 9,
- keyName = "XarpusExhumed",
- name = "Xarpus exhumed",
- description = ""
- )
- default boolean XarpusExhumed(){ return false; }
+ default boolean SotetsegMaze2() {
+ return true;
+ }
@ConfigItem(
position = 10,
- keyName = "XarpusTick",
- name = "Xarpus tick",
+ keyName = "XarpusExhumed",
+ name = "Xarpus Exhumed",
description = ""
)
- default boolean XarpusTick(){ return false; }
+ default boolean XarpusExhumed() {
+ return true;
+ }
@ConfigItem(
position = 11,
- keyName = "VerzikCupcakes",
- name = "Verzik cupcakes",
- description = " "
+ keyName = "XarpusTick",
+ name = "Xarpus Tick",
+ description = ""
)
- default boolean VerzikCupcakes(){ return false; }
+ default boolean XarpusTick() {
+ return false;
+ }
@ConfigItem(
position = 12,
- keyName = "VerzikTick",
- name = "Verzik p3 tick",
+ keyName = "xarpusExhumes",
+ name = "Xarpus Exhume Counter",
description = ""
)
- default boolean VerzikTick(){ return false; }
+ default boolean XarpusExhumeOverlay() {
+ return false;
+ }
@ConfigItem(
position = 13,
- keyName = "VerzikMelee",
- name = "Verzik p3 melee range",
+ keyName = "VerzikCupcakes",
+ name = "Verzik Projectile Markers",
description = ""
)
- default boolean VerzikMelee(){ return false; }
+ default boolean VerzikCupcakes() {
+ return false;
+ }
@ConfigItem(
position = 14,
- keyName = "VerzikYellow",
- name = "Verzik yellow timing",
+ keyName = "VerzikTick",
+ name = "Verzik P3 Tick",
description = ""
)
- default boolean VerzikYellow(){ return false; }
-}
+ default boolean VerzikTick() {
+ return false;
+ }
+
+ @ConfigItem(
+ position = 15,
+ keyName = "VerzikMelee",
+ name = "Verzik P3 Melee Range",
+ description = ""
+ )
+ default boolean VerzikMelee() {
+ return false;
+ }
+
+ @ConfigItem(
+ position = 16,
+ keyName = "VerzikYellow",
+ name = "Verzik Yellow Timing",
+ description = ""
+ )
+ default boolean VerzikYellow() {
+ return false;
+ }
+
+ @ConfigItem(
+ position = 17,
+ keyName = "Verzik Nylo",
+ name = "Verzik Nylo Overlay",
+ description = ""
+ )
+ default boolean NyloTargetOverlay() {
+ return false;
+ }
+
+ @ConfigItem(
+ position = 18,
+ keyName = "VerzikTankTile",
+ name = "Verzik P3 Tile Overlay",
+ description = ""
+ )
+ default boolean verzikTankTile() {
+ return true;
+ }
+
+
+}
\ No newline at end of file
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreOverlay.java
index 07f8e2f7b4..8e650295a7 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreOverlay.java
@@ -8,27 +8,21 @@
package net.runelite.client.plugins.ztob;
+import net.runelite.api.Point;
+import net.runelite.api.*;
+import net.runelite.api.coords.LocalPoint;
+import net.runelite.api.coords.WorldArea;
+import net.runelite.api.coords.WorldPoint;
+import net.runelite.client.ui.overlay.*;
+
+import javax.inject.Inject;
import java.awt.*;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import javax.inject.Inject;
-
-import net.runelite.api.*;
-import net.runelite.api.Point;
-import net.runelite.api.coords.LocalPoint;
-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;
-import net.runelite.client.ui.overlay.OverlayPosition;
-import net.runelite.client.ui.overlay.OverlayPriority;
-import net.runelite.client.ui.overlay.OverlayUtil;
public class TheatreOverlay extends Overlay {
private final Client client;
-
-
private final TheatrePlugin plugin;
private final TheatreConfig config;
@@ -43,69 +37,71 @@ public class TheatreOverlay extends Overlay {
}
@Override
- public Dimension render(Graphics2D graphics)
- {
- if (plugin.isRunMaiden())
- {
- if (config.MaidenBlood())
- {
- for (WorldPoint point : plugin.getMaiden_BloodSpatters())
- {
- drawTile(graphics, point, new Color(0,150,200), 2, 150, 10);
+ public Dimension render(Graphics2D graphics) {
+ if (plugin.isRunMaiden()) {
+ if (config.MaidenBlood()) {
+ for (WorldPoint point : plugin.getMaiden_BloodSpatters()) {
+ drawTile(graphics, point, new Color(36, 248, 229), 2, 150, 10);
}
}
- if (config.MaidenSpawns())
- {
- for (WorldPoint point : plugin.getMaiden_SpawnLocations())
- {
- drawTile(graphics, point, new Color(0,150,200), 2, 180, 20);
+ if (config.MaidenSpawns()) {
+ for (WorldPoint point : plugin.getMaiden_SpawnLocations()) {
+ drawTile(graphics, point, new Color(36, 248, 229), 2, 180, 20);
}
- for (WorldPoint point : plugin.getMaiden_SpawnLocations2())
- {
- drawTile(graphics, point, new Color(0,150,200), 1,120, 10);
+ for (WorldPoint point : plugin.getMaiden_SpawnLocations2()) {
+ drawTile(graphics, point, new Color(36, 248, 229), 1, 120, 10);
}
}
}
- if (plugin.isRunBloat())
- {
+ if (plugin.isRunBloat() && config.BloatIndicator()) {
+ if (config.bloatFeetIndicator()) {
+ if (plugin.getTemp().size() > 0) {
+ if (plugin.isTempFlag()) {
+ for (WorldPoint point : plugin.getTemp()) {
- if (config.BloatHands())
- {
- for (WorldPoint p : plugin.getBloat_Hands())
- {
- drawTile(graphics, p, Color.BLACK,3,255,0);
+ drawTile(graphics, point, Color.black, 4, 255, 0);
+
+ }
+
+ }
+ } else if (plugin.getTemp2().size() > 0) {
+ if (plugin.isTemp2Flag()) {
+ for (WorldPoint point : plugin.getTemp2()) {
+
+ drawTile(graphics, point, Color.black, 4, 255, 0);
+
+
+ }
+
+ }
}
}
- if(config.BloatIndicator()) {
- NPC bloat = plugin.getBloat_NPC();
- int state = plugin.getBloat_State();
- if (bloat == null) {
- return null;
- }
- switch (state) {
- case 2:
- renderNpcOverlay(graphics, bloat, Color.GREEN, 3, 150, 0);
- break;
- case 3:
- renderNpcOverlay(graphics, bloat, Color.YELLOW, 3, 150, 0);
- break;
- default:
- renderNpcOverlay(graphics, bloat, new Color(223, 109, 255), 3, 150, 0);
- break;
- }
+ NPC bloat = plugin.getBloat_NPC();
+ int state = plugin.getBloat_State();
+ if (bloat == null) {
+ return null;
+ }
+ switch (state) {
+ case 2:
+ renderNpcOverlay(graphics, bloat, Color.GREEN, 3, 150, 0);
+ break;
+ case 3:
+ renderNpcOverlay(graphics, bloat, Color.YELLOW, 3, 150, 0);
+ break;
+ default:
+ renderNpcOverlay(graphics, bloat, new Color(223, 109, 255), 3, 150, 0);
+ break;
}
}
- if (plugin.isRunNylocas())
- {
- if (config.NyloPillars())
- {
+ if (plugin.isRunNylocas()) {
+ if (config.NyloPillars()) {
Map pillars = plugin.getNylocas_Pillars();
for (NPC npc : pillars.keySet()) {
final int health = pillars.get(npc);
- final String healthStr = String.valueOf(health) + "%";
+ final String healthStr = health + "%";
WorldPoint p = npc.getWorldLocation();
LocalPoint lp = LocalPoint.fromWorld(client, p.getX() + 1, p.getY() + 1);
final double rMod = 130.0 * health / 100.0;
@@ -118,41 +114,34 @@ public class TheatreOverlay extends Overlay {
}
}
- if (config.NyloBlasts())
- {
+ if (config.NyloBlasts()) {
final Map npcMap = plugin.getNylocas_Map();
- for (NPC npc : npcMap.keySet())
- {
+ for (NPC npc : npcMap.keySet()) {
int ticksLeft = npcMap.get(npc);
if (ticksLeft > -1) {
if (ticksLeft <= 6) {
- Color color = new Color(255, 255,0 ,180);
+ Color color = new Color(255, 255, 0, 180);
int outlineWidth = 2;
int outlineAlpha = 150;
- renderNpcOverlay(graphics, npc, color, outlineWidth, outlineAlpha, 0);
+ renderNpcOverlay(graphics, npc, color, outlineWidth, outlineAlpha, 15);
}
}
}
}
}
- if (plugin.isRunSotetseg())
- {
- if (config.SotetsegMaze1())
- {
+ if (plugin.isRunSotetseg()) {
+ if (config.SotetsegMaze1()) {
int i = 1;
- for (GroundObject z : plugin.getRedTiles().keySet())
- {
- Polygon poly = z.getCanvasTilePoly();
- if (poly != null)
- {
+ for (GroundObject o : plugin.getRedTiles().keySet()) {
+ Polygon poly = o.getCanvasTilePoly();
+ if (poly != null) {
graphics.setColor(Color.WHITE);
graphics.setStroke(new BasicStroke(2));
graphics.draw(poly);
}
- Point textLocation = z.getCanvasTextLocation(graphics, String.valueOf(i), 0);
- if (textLocation != null)
- {
+ Point textLocation = o.getCanvasTextLocation(graphics, String.valueOf(i), 0);
+ if (textLocation != null) {
OverlayUtil.renderTextLocation(graphics, textLocation, String.valueOf(i), Color.WHITE);
}
@@ -160,111 +149,111 @@ public class TheatreOverlay extends Overlay {
}
}
- if (config.SotetsegMaze2())
- {
- for (WorldPoint p : plugin.getRedTilesOverworld())
- {
+ if (config.SotetsegMaze2()) {
+ for (WorldPoint p : plugin.getRedTilesOverworld()) {
drawTile(graphics, p, Color.WHITE, 2, 255, 10);
}
}
- if (config.SotetsegTick()) {
- NPC boss = plugin.getSotetseg_NPC();
- int eattick = plugin.getTickTillEat();
- if (eattick > -1)
- {
- final String eatTicksStr = String.valueOf(eattick);
- Point canvasPoint = boss.getCanvasTextLocation(graphics, eatTicksStr, 130);
- renderTextLocation(graphics, eatTicksStr, 12, Font.BOLD, Color.WHITE, canvasPoint);
-
- }
- }
}
-
- if (plugin.isRunXarpus())
- {
+ if (plugin.isRunXarpus()) {
NPC boss = plugin.getXarpus_NPC();
- if (boss.getId() == NpcID.XARPUS_8340 && !plugin.isXarpus_Stare() && config.XarpusTick())
- {
+ if (boss.getId() == NpcID.XARPUS_8340 && !plugin.isXarpus_Stare() && config.XarpusTick()) {
int tick = plugin.getXarpus_TicksUntilShoot();
- if (tick < 1)
- {
+ if (tick < 1) {
tick = tick % 4 + 4;
}
final String ticksLeftStr = String.valueOf(tick);
Point canvasPoint = boss.getCanvasTextLocation(graphics, ticksLeftStr, 130);
renderTextLocation(graphics, ticksLeftStr, 12, Font.BOLD, Color.WHITE, canvasPoint);
}
- if (boss.getId() == NpcID.XARPUS_8339 && config.XarpusExhumed())
- {
- for (GroundObject o : plugin.getXarpus_Exhumeds().keySet())
- {
+ if (boss.getId() == NpcID.XARPUS_8339 && config.XarpusExhumed()) {
+ for (GroundObject o : plugin.getXarpus_Exhumeds().keySet()) {
+
+
Polygon poly = o.getCanvasTilePoly();
- if (poly != null)
- {
+ if (poly != null) {
graphics.setColor(new Color(0, 255, 0, 130));
graphics.setStroke(new BasicStroke(1));
graphics.draw(poly);
}
}
+ for (Map.Entry exhumes : plugin.getXarpusExhumedsTimer().entrySet()) {
+ final String ticksremaining = String.valueOf(exhumes.getValue());
+ if (Integer.valueOf(ticksremaining) > 0) {
+ GroundObject ex = exhumes.getKey();
+ Point point = ex.getCanvasTextLocation(graphics, ticksremaining, 0);
+ renderTextLocation(graphics, ticksremaining, 12, Font.BOLD, Color.white, point);
+ }
+
+ }
+
+
}
+
}
- if (plugin.isRunVerzik())
- {
- if (config.VerzikCupcakes())
- {
- for (WorldPoint p : plugin.getVerzik_RangeProjectiles().values())
- {
+
+ if (plugin.isRunVerzik()) {
+
+
+ if (config.VerzikCupcakes()) {
+ for (WorldPoint p : plugin.getVerzik_RangeProjectiles().values()) {
drawTile(graphics, p, Color.RED, 2, 180, 50);
}
}
- if (config.VerzikYellow())
- {
- for (WorldPoint p : plugin.getVerzik_YellowTiles())
- {
- drawTile(graphics, p, Color.YELLOW,3,255,0);
-
+ if (config.VerzikYellow()) {
+ for (WorldPoint p : plugin.getVerzik_YellowTiles()) {
+ drawTile(graphics, p, Color.YELLOW, 3, 255, 0);
Projectile yellowBall = plugin.getVerzik_YellowBall();
- if (yellowBall != null)
- {
- final int ticksToImpact = yellowBall.getRemainingCycles()/30;
+ if (yellowBall != null) {
+ final int ticksToImpact = yellowBall.getRemainingCycles() / 30;
final String countdownStr = String.valueOf(ticksToImpact);
Point canvasPoint = Perspective.getCanvasTextLocation(client, graphics, LocalPoint.fromWorld(client, p), countdownStr, 0);
renderTextLocation(graphics, countdownStr, 12, Font.BOLD, Color.WHITE, canvasPoint);
+
}
}
}
- if (plugin.getVerzik_NPC_P3() != null) {
- final NPC boss = plugin.getVerzik_NPC_P3();
- if (boss.getId() == NpcID.VERZIK_VITUR_8374)
- {
- if (config.VerzikTick())
- {
- final int ticksLeft = plugin.getP3_TicksUntilAttack();
- if (ticksLeft > 0 && ticksLeft < 8)
- {
- final String ticksLeftStr = String.valueOf(ticksLeft);
- Point canvasPoint = boss.getCanvasTextLocation(graphics, ticksLeftStr, 60);
- renderTextLocation(graphics, ticksLeftStr, 15, Font.BOLD, Color.WHITE, canvasPoint);
- }
+
+ final NPC boss = plugin.getVerzik_NPC();
+ if (boss.getId() == NpcID.VERZIK_VITUR_8374) {
+ if (config.verzikTankTile()) {
+ renderNpcOverlay(graphics, boss, new Color(75, 0, 130), 1, 255, 0);
+ }
+
+ if (config.VerzikTick()) {
+ final int ticksLeft = plugin.getP3_TicksUntilAttack();
+ if (ticksLeft > 0 && ticksLeft < 8) {
+ final String ticksLeftStr = String.valueOf(ticksLeft);
+ Point canvasPoint = boss.getCanvasTextLocation(graphics, ticksLeftStr, 60);
+ renderTextLocation(graphics, ticksLeftStr, 15, Font.BOLD, Color.WHITE, canvasPoint);
}
+ }
- if (config.VerzikMelee() && boss.getAnimation() != 8127)
- {
- List meleeRange = getHitSquares(boss.getWorldLocation(), 7, 1, false);
+ if (config.VerzikMelee()) {
+ List meleeRange = getHitSquares(boss.getWorldLocation(), 7, 1, false);
- for (WorldPoint p : meleeRange)
- {
- drawTile(graphics, p, Color.WHITE, 1,155, 10);
- }
+ for (WorldPoint p : meleeRange) {
+ drawTile(graphics, p, Color.WHITE, 1, 155, 10);
}
}
}
+
+ if (boss.getAnimation() == 8117) {
+ final int ticksLeft = plugin.getRedCrabsTimer();
+ if (ticksLeft > 0) {
+ final String ticksLeftStr = String.valueOf(ticksLeft);
+ Point canvasPoint = boss.getCanvasTextLocation(graphics, ticksLeftStr, 60);
+ renderTextLocation(graphics, ticksLeftStr, 15, Font.BOLD, Color.WHITE, canvasPoint);
+ }
+ }
+
}
+
return null;
}
@@ -290,19 +279,16 @@ public class TheatreOverlay extends Overlay {
graphics.fill(poly);
}
- private void renderNpcOverlay(Graphics2D graphics, NPC actor, Color color, int outlineWidth, int outlineAlpha, int fillAlpha)
- {
+ private void renderNpcOverlay(Graphics2D graphics, NPC actor, Color color, int outlineWidth, int outlineAlpha, int fillAlpha) {
int size = 1;
NPCComposition composition = actor.getTransformedComposition();
- if (composition != null)
- {
+ if (composition != null) {
size = composition.getSize();
}
LocalPoint lp = actor.getLocalLocation();
Polygon tilePoly = Perspective.getCanvasTileAreaPoly(client, lp, size);
- if (tilePoly != null)
- {
+ if (tilePoly != null) {
graphics.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), outlineAlpha));
graphics.setStroke(new BasicStroke(outlineWidth));
graphics.draw(tilePoly);
@@ -311,37 +297,31 @@ public class TheatreOverlay extends Overlay {
}
}
- private void renderTextLocation(Graphics2D graphics, String txtString, int fontSize, int fontStyle, Color fontColor, Point canvasPoint)
- {
+ private void renderTextLocation(Graphics2D graphics, String txtString, int fontSize, int fontStyle, Color fontColor, Point canvasPoint) {
graphics.setFont(new Font("Arial", fontStyle, fontSize));
- if (canvasPoint != null)
- {
+ if (canvasPoint != null) {
final Point canvasCenterPoint = new Point(
canvasPoint.getX(),
canvasPoint.getY());
final Point canvasCenterPoint_shadow = new Point(
canvasPoint.getX() + 1,
- canvasPoint.getY() + 1) ;
+ canvasPoint.getY() + 1);
OverlayUtil.renderTextLocation(graphics, canvasCenterPoint_shadow, txtString, Color.BLACK);
OverlayUtil.renderTextLocation(graphics, canvasCenterPoint, txtString, fontColor);
}
}
- private List getHitSquares(WorldPoint npcLoc, int npcSize, int thickness, boolean includeUnder)
- {
+ 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)
- {
- for (Iterator it = big.iterator(); it.hasNext();)
- {
+ List big = new WorldArea(npcLoc.getX() - thickness, npcLoc.getY() - thickness, npcSize + (thickness * 2), npcSize + (thickness * 2), npcLoc.getPlane()).toWorldPointList();
+ if (!includeUnder) {
+ for (Iterator it = big.iterator(); it.hasNext(); ) {
WorldPoint p = it.next();
- if (little.contains(p))
- {
+ if (little.contains(p)) {
it.remove();
}
}
}
return big;
}
-}
+}
\ No newline at end of file
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java
index ee7cee5f4a..3eb223c0c6 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java
@@ -8,29 +8,30 @@
package net.runelite.client.plugins.ztob;
-import java.util.*;
-import java.util.Iterator;
-import javax.inject.Inject;
-
-import net.runelite.client.chat.ChatMessageManager;
-import net.runelite.client.eventbus.Subscribe;
import com.google.inject.Provides;
import lombok.AccessLevel;
import lombok.Getter;
import net.runelite.api.*;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.*;
+import net.runelite.api.kit.KitType;
+import net.runelite.client.chat.ChatMessageManager;
import net.runelite.client.config.ConfigManager;
+import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.OverlayManager;
+import net.runelite.client.util.Text;
+
+import javax.inject.Inject;
+import java.util.*;
@PluginDescriptor(
- name = "Theatre of Blood",
+ name = "Theater of Blood",
description = "All-in-one plugin for Theatre of Blood",
tags = {"ToB"},
- type = "PVM",
- enabledByDefault = false
+ enabledByDefault = false,
+ type = "PVM"
)
public class TheatrePlugin extends Plugin {
@@ -41,11 +42,6 @@ public class TheatrePlugin extends Plugin {
private static final int GROUNDOBJECT_ID_EXHUMED = 32743;
private static final int ANIMATION_ID_XARPUS = 8059;
private static final int GRAPHICSOBJECT_ID_YELLOW = 1595;
- private static final int GRAPHICSOBJECT_ID_BLOAT_HAND1 = 1570;
- private static final int GRAPHICSOBJECT_ID_BLOAT_HAND2 = 1571;
- private static final int GRAPHICSOBJECT_ID_BLOAT_HAND3 = 1572;
- private static final int GRAPHICSOBJECT_ID_BLOAT_HAND4 = 1573;
- private static final int GRAPHICSOBJECT_ID_BLOAT_HAND5 = 1576;
private static final int PROJECTILE_ID_P2RANGE = 1583;
private static final int PROJECTILE_ID_YELLOW = 1596;
private static final int ANIMATION_ID_P3_WEB = 8127;
@@ -56,11 +52,30 @@ public class TheatrePlugin extends Plugin {
private static final int VERZIK_ID_P3 = NpcID.VERZIK_VITUR_8374;
private static final int NPC_ID_TORNADO = 8386;
private static final int PROJECTILE_ID_P3_GREEN = 1598;
- private static final String sotmsg = "A large ball of energy is shot your way...";
- private static final String sotmsg1 = "A large ball of energy is shot your way...";
- @Inject
- private ChatMessageManager chatMessageManager;
+
+ @Getter(AccessLevel.PACKAGE)
+ private final Map xarpusExhumedsTimer = new HashMap<>();
+ @Getter
+ int exhumecount;
+ @Getter
+ int bloatTimer = 0;
+
+ int bloatFeetTimer = 0;
+ NPC BossNylo = null;
+ private boolean bloatFlag = false;
+ @Getter
+ private Set bloatTiles = new HashSet<>();
+ @Getter
+ private Set temp = new HashSet<>();
+ @Getter
+ private Set temp2 = new HashSet<>();
+ @Getter
+ private Set localTemp = new HashSet<>();
+
+ //@Getter
+ //private List bloatTiles = new ArrayList<>();
+
@Getter(AccessLevel.PACKAGE)
private boolean runMaiden;
@@ -80,9 +95,6 @@ public class TheatrePlugin extends Plugin {
@Getter(AccessLevel.PACKAGE)
private boolean runBloat;
- @Getter(AccessLevel.PACKAGE)
- private int TickTillEat = 20;
-
@Getter(AccessLevel.PACKAGE)
private NPC Bloat_NPC;
@@ -112,12 +124,13 @@ public class TheatrePlugin extends Plugin {
private List RedTilesOverworld = new ArrayList<>();
private List BlackTilesOverworld = new ArrayList<>();
-
- private List BlackTilesUnderworld= new ArrayList<>();
-
- private List RedTilesUnderworld= new ArrayList<>();
+ @Getter
+ private boolean tempFlag = false;
+ @Getter
+ private boolean temp2Flag = false;
private List GridPath = new ArrayList<>();
+ private List BlackTilesUnderworld = new ArrayList<>();
@Getter(AccessLevel.PACKAGE)
private boolean runXarpus;
@@ -129,6 +142,7 @@ public class TheatrePlugin extends Plugin {
@Getter(AccessLevel.PACKAGE)
private final Map Xarpus_Exhumeds = new HashMap<>();
+ private List RedTilesUnderworld = new ArrayList<>();
@Getter(AccessLevel.PACKAGE)
private int Xarpus_TicksUntilShoot = 9;
@@ -136,9 +150,6 @@ public class TheatrePlugin extends Plugin {
@Getter(AccessLevel.PACKAGE)
private NPC Xarpus_NPC;
- @Getter(AccessLevel.PACKAGE)
- private NPC Sotetseg_NPC;
-
@Getter(AccessLevel.PACKAGE)
private boolean runVerzik;
@@ -154,17 +165,16 @@ public class TheatrePlugin extends Plugin {
@Getter(AccessLevel.PACKAGE)
private List Verzik_YellowTiles = new ArrayList<>();
- @Getter(AccessLevel.PACKAGE)
- private List Bloat_Hands = new ArrayList<>();
-
@Getter(AccessLevel.PACKAGE)
private NPC Verzik_NPC;
+ @Getter(AccessLevel.PACKAGE)
+ private List tornadoList;
@Getter(AccessLevel.PACKAGE)
- private NPC Verzik_NPC_P3;
+ private List crabList;
- @Getter(AccessLevel.PACKAGE)
- private NPC Verzik_NPC_P2;
+ @Getter
+ private int redCrabsTimer;
private int P3_attacksLeft;
@@ -180,6 +190,18 @@ public class TheatrePlugin extends Plugin {
@Inject
private TheatreConfig config;
+ @Inject
+ private TheatreXarpusOverlay xarpusOverlay;
+
+ @Inject
+ private ChatMessageManager chatMessageManager;
+
+ @Inject
+ private VerzikNyloOverlay verzikNyloOverlay;
+
+ @Inject
+ private BloatTimerOverlay bloatTimerOverlay;
+
@Provides
TheatreConfig getConfig(ConfigManager configManager) {
return configManager.getConfig(TheatreConfig.class);
@@ -188,19 +210,116 @@ public class TheatrePlugin extends Plugin {
@Override
protected void startUp() {
overlayManager.add(overlay);
+ overlayManager.add(xarpusOverlay);
+ overlayManager.add(verzikNyloOverlay);
+ overlayManager.add(bloatTimerOverlay);
}
@Override
protected void shutDown() {
overlayManager.remove(overlay);
+ overlayManager.remove(xarpusOverlay);
+ overlayManager.remove(xarpusOverlay);
+ overlayManager.remove(bloatTimerOverlay);
+ }
+
+
+ @Subscribe
+ public void onMenuEntryAdded(MenuEntryAdded event) {
+ if (client.getGameState() != GameState.LOGGED_IN || !config.NyloMenu() || !runNylocas) {
+ return;
+ }
+
+ final String pOptionToReplace = Text.removeTags(event.getOption()).toUpperCase();
+ Map playerEquipment = new HashMap<>();
+
+ int attackType = 0; //0=idk 1= melee 2= range 3= mage
+
+ for (KitType kitType : KitType.values()) {
+
+ int itemId = client.getLocalPlayer().getPlayerComposition().getEquipmentId(kitType);
+ switch (itemId) {
+ case ItemID.DRAGON_CLAWS:
+ case ItemID.SCYTHE_OF_VITUR:
+ case ItemID.SCYTHE_OF_VITUR_UNCHARGED:
+ case ItemID.SCYTHE_10735:
+ case ItemID.SCYTHE_OF_VITUR_22664:
+ case ItemID.HAM_JOINT:
+ case ItemID.EVENT_RPG:
+ case ItemID.ABYSSAL_WHIP:
+ case ItemID.ABYSSAL_TENTACLE:
+ case ItemID.FROZEN_ABYSSAL_WHIP:
+ case ItemID.VOLCANIC_ABYSSAL_WHIP:
+ case ItemID.GHRAZI_RAPIER:
+ case ItemID.DRAGON_WARHAMMER:
+ case ItemID.DRAGON_WARHAMMER_20785:
+ case ItemID.BANDOS_GODSWORD:
+ case ItemID.BANDOS_GODSWORD_OR:
+ case ItemID.BANDOS_GODSWORD_20782:
+ case ItemID.BANDOS_GODSWORD_21060:
+ case ItemID.CRYSTAL_HALBERD_510:
+ case ItemID.CRYSTAL_HALBERD_510_I:
+ case ItemID.CRYSTAL_HALBERD_610:
+ case ItemID.CRYSTAL_HALBERD_610_I:
+ case ItemID.CRYSTAL_HALBERD_710_I:
+ case ItemID.CRYSTAL_HALBERD_710:
+ case ItemID.CRYSTAL_HALBERD_110:
+ case ItemID.CRYSTAL_HALBERD_110_I:
+ case ItemID.CRYSTAL_HALBERD_210:
+ case ItemID.CRYSTAL_HALBERD_310:
+ case ItemID.CRYSTAL_HALBERD_310_I:
+ case ItemID.CRYSTAL_HALBERD_410:
+ case ItemID.CRYSTAL_HALBERD_410_I:
+ case ItemID.CRYSTAL_HALBERD_810:
+ case ItemID.CRYSTAL_HALBERD_810_I:
+ case ItemID.CRYSTAL_HALBERD_910:
+ case ItemID.CRYSTAL_HALBERD_910_I:
+ attackType = 1;
+ break;
+ case ItemID.TOXIC_BLOWPIPE:
+ case ItemID.TOXIC_BLOWPIPE_EMPTY:
+ case ItemID.RED_CHINCHOMPA_10034:
+ case ItemID.BLACK_CHINCHOMPA:
+ case ItemID.CHINCHOMPA_10033:
+ case ItemID.TWISTED_BOW:
+ attackType = 2;
+ break;
+ case ItemID.SANGUINESTI_STAFF:
+ case ItemID.TOXIC_STAFF_OF_THE_DEAD:
+ case ItemID.TRIDENT_OF_THE_SWAMP:
+ case ItemID.TRIDENT_OF_THE_SEAS_E:
+ case ItemID.TRIDENT_OF_THE_SEAS:
+ case ItemID.TRIDENT_OF_THE_SWAMP_E:
+ case ItemID.KODAI_WAND:
+ case ItemID.MASTER_WAND:
+ case ItemID.MASTER_WAND_20560:
+ attackType = 3;
+ break;
+ }
+ if (attackType != 0) {
+ break;
+ }
+
+ }
+ if (pOptionToReplace.equals("CANCEL") || pOptionToReplace.equals("WALK HERE") || pOptionToReplace.equals("PASS")) {
+ return;
+ }
+ int Id = 0;
+ if (BossNylo != null) {
+ Id = BossNylo.getId();
+ }
+ String target = Text.removeTags(event.getTarget()).toLowerCase();
+ if (attackType != 0) {
+ stripEntries(attackType, target, Id);
+ }
+
}
@Subscribe
- public void onNpcSpawned(NpcSpawned npcSpawned)
- {
+ public void onNpcSpawned(NpcSpawned npcSpawned) {
+
NPC npc = npcSpawned.getNpc();
- switch (npc.getId())
- {
+ switch (npc.getId()) {
case NpcID.THE_MAIDEN_OF_SUGADINTI:
case NpcID.THE_MAIDEN_OF_SUGADINTI_8361:
case NpcID.THE_MAIDEN_OF_SUGADINTI_8362:
@@ -215,25 +334,40 @@ public class TheatrePlugin extends Plugin {
case NpcID.PESTILENT_BLOAT:
runBloat = true;
Bloat_NPC = npc;
+ bloatTimer = 0;
+ bloatFlag = false;
+ break;
+ case NpcID.NYLOCAS_VASILIAS:
+ case NpcID.NYLOCAS_VASILIAS_8355:
+ case NpcID.NYLOCAS_VASILIAS_8356:
+ case NpcID.NYLOCAS_VASILIAS_8357:
+ BossNylo = npc;
break;
case NPCID_NYLOCAS_PILLAR:
runNylocas = true;
- if (!Nylocas_Pillars.keySet().contains(npc))
- {
+ if (!Nylocas_Pillars.keySet().contains(npc)) {
Nylocas_Pillars.put(npc, 100);
}
break;
- case 8342: case 8343: case 8344: case 8345: case 8346: case 8347:
- case 8348: case 8349: case 8350: case 8351: case 8352: case 8353:
- if (runNylocas)
- {
+ case 8342:
+ case 8343:
+ case 8344:
+ case 8345:
+ case 8346:
+ case 8347:
+ case 8348:
+ case 8349:
+ case 8350:
+ case 8351:
+ case 8352:
+ case 8353:
+ if (runNylocas) {
Nylocas_Map.put(npc, 52);
}
break;
case NpcID.SOTETSEG:
case NpcID.SOTETSEG_8388:
runSotetseg = true;
- Sotetseg_NPC = npc;
RedTiles.clear();
break;
case NpcID.XARPUS:
@@ -241,6 +375,7 @@ public class TheatrePlugin extends Plugin {
case NpcID.XARPUS_8340:
case NpcID.XARPUS_8341:
runXarpus = true;
+ exhumecount = 25;
Xarpus_NPC = npc;
Xarpus_Stare = false;
Xarpus_TicksUntilShoot = 9;
@@ -249,22 +384,17 @@ public class TheatrePlugin extends Plugin {
case NpcID.VERZIK_VITUR_8369:
case NpcID.VERZIK_VITUR_8370:
case NpcID.VERZIK_VITUR_8371:
+ case NpcID.VERZIK_VITUR_8372:
case NpcID.VERZIK_VITUR_8373:
+ case NpcID.VERZIK_VITUR_8374:
case NpcID.VERZIK_VITUR_8375:
+ P3_TicksUntilAttack = -1;
+ P3_attacksLeft = 9;
+ redCrabsTimer = 13;
Verzik_NPC = npc;
runVerzik = true;
- break;
-
- case NpcID.VERZIK_VITUR_8372:/*p2 spider*/
- Verzik_NPC_P2 = npc;
- runVerzik = true;
- break;
-
- case NpcID.VERZIK_VITUR_8374:/*p3 spider*/
- P3_TicksUntilAttack = 0;
- P3_attacksLeft = 9;
- Verzik_NPC_P3 = npc;
- runVerzik = true;
+ tornadoList = new ArrayList<>();
+ crabList = new ArrayList<>();
break;
}
}
@@ -288,28 +418,35 @@ public class TheatrePlugin extends Plugin {
case NpcID.PESTILENT_BLOAT:
runBloat = false;
Bloat_NPC = null;
+ bloatTimer = 0;
break;
case NPCID_NYLOCAS_PILLAR:
- if (Nylocas_Pillars.keySet().contains(npc))
- {
+ if (Nylocas_Pillars.keySet().contains(npc)) {
Nylocas_Pillars.remove(npc);
}
break;
- case 8342: case 8343: case 8344: case 8345: case 8346: case 8347:
- case 8348: case 8349: case 8350: case 8351: case 8352: case 8353:
- if (Nylocas_Map.keySet().contains(npc))
- {
+ case 8342:
+ case 8343:
+ case 8344:
+ case 8345:
+ case 8346:
+ case 8347:
+ case 8348:
+ case 8349:
+ case 8350:
+ case 8351:
+ case 8352:
+ case 8353:
+ if (Nylocas_Map.keySet().contains(npc)) {
Nylocas_Map.remove(npc);
}
break;
case NpcID.SOTETSEG:
case NpcID.SOTETSEG_8388:
RedTiles.clear();
- if (client.getPlane() != 3)
- {
+ if (client.getPlane() != 3) {
runSotetseg = false;
}
- Sotetseg_NPC = null;
break;
case NpcID.XARPUS:
case NpcID.XARPUS_8339:
@@ -321,117 +458,119 @@ public class TheatrePlugin extends Plugin {
Xarpus_TicksUntilShoot = 9;
Xarpus_previousAnimation = -1;
Xarpus_Exhumeds.clear();
+ exhumecount = 0;
break;
case NpcID.VERZIK_VITUR_8369:
case NpcID.VERZIK_VITUR_8370:
- case NpcID.VERZIK_VITUR_8371:/*p2*/
-
+ case NpcID.VERZIK_VITUR_8371:
+ case NpcID.VERZIK_VITUR_8372:
case NpcID.VERZIK_VITUR_8373:
-
+ case NpcID.VERZIK_VITUR_8374:
case NpcID.VERZIK_VITUR_8375:
+ runVerzik = false;
+ redCrabsTimer = 0;
Verzik_NPC = null;
break;
- case NpcID.VERZIK_VITUR_8372:
- Verzik_NPC_P2 = null;
- break;
- case NpcID.VERZIK_VITUR_8374:/*p3 spider*/
- Verzik_NPC_P3 = null;
- break;
-
}
}
@Subscribe
- public void onGroundObjectSpawned(GroundObjectSpawned event)
- {
- if (runSotetseg)
- {
+ public void onGroundObjectSpawned(GroundObjectSpawned event) {
+ if (runSotetseg) {
GroundObject o = event.getGroundObject();
- if (o.getId() == GROUNDOBJECT_ID_BLACKMAZE)
- {
+ if (o.getId() == GROUNDOBJECT_ID_BLACKMAZE) {
Tile t = event.getTile();
WorldPoint p = t.getWorldLocation();
- if (t.getPlane() == 0)
- {
+ if (t.getPlane() == 0) {
if (!BlackTilesOverworld.contains(p))
BlackTilesOverworld.add(p);
- }
- else
- {
+ } else {
if (!BlackTilesUnderworld.contains(p))
BlackTilesUnderworld.add(p);
}
}
- if (o.getId() == GROUNDOBJECT_ID_REDMAZE)
- {
+ if (o.getId() == GROUNDOBJECT_ID_REDMAZE) {
Tile t = event.getTile();
WorldPoint p = t.getWorldLocation();
- if (p.getPlane() == 0)
- {
- if (!RedTiles.containsValue(t))
- {
- RedTiles.put(o,t);
+ if (p.getPlane() == 0) {
+ if (!RedTiles.containsValue(t)) {
+ RedTiles.put(o, t);
}
- }
- else
- {
+ } else {
if (!RedTilesUnderworld.contains(p))
RedTilesUnderworld.add(p);
}
}
}
- if (runXarpus)
- {
+ if (runXarpus) {
GroundObject o = event.getGroundObject();
- if (o.getId() == GROUNDOBJECT_ID_EXHUMED)
- {
+ if (o.getId() == GROUNDOBJECT_ID_EXHUMED) {
+
+ xarpusExhumedsTimer.put(o, 18);
+
Xarpus_Exhumeds.put(o, 18);
+
}
+
}
}
@Subscribe
- public void onProjectileMoved(ProjectileMoved event)
- {
- if (runVerzik)
- {
+ public void onProjectileMoved(ProjectileMoved event) {
+ if (runVerzik) {
Projectile projectile = event.getProjectile();
- if (projectile.getId() == PROJECTILE_ID_P2RANGE)
- {
- WorldPoint p = WorldPoint.fromLocal(client,event.getPosition());
+ if (projectile.getId() == PROJECTILE_ID_P2RANGE) {
+ WorldPoint p = WorldPoint.fromLocal(client, event.getPosition());
Verzik_RangeProjectiles.put(projectile, p);
}
}
}
@Subscribe
- public void onChatMessage(ChatMessage chatMessage)
- {
- MessageNode messageNode = chatMessage.getMessageNode();
-
- if (messageNode.getValue().toLowerCase().contains(sotmsg.toLowerCase()))
- {
- TickTillEat = 20;
- /*20 ticks*/
-
+ public void onAnimationChanged(AnimationChanged event) {
+ if (runVerzik) {
+ if (event.getActor().getAnimation() == 8117) {
+ redCrabsTimer = 11;
+ }
}
-
-
}
@Subscribe
- public void onGameTick(GameTick event)
- {
- if (runMaiden)
- {
+ public void onVarbitChanged(VarbitChanged event) {
+ if (runBloat) {
+
+ if (client.getVar(Varbits.BLOAT_ENTERED_ROOM) == 1) {
+ if (!bloatFlag) {
+ bloatTimer = 0;
+ bloatFlag = true;
+ }
+ }
+ }
+ }
+
+ @Subscribe
+ public void onGraphicsObjectCreated(GraphicsObjectCreated event) {
+ GraphicsObject obj = event.getGraphicsObject();
+ if (obj.getId() == 1570 || obj.getId() == 1571 || obj.getId() == 1572 || obj.getId() == 1573 || obj.getId() == 1574 || obj.getId() == 1575 || obj.getId() == 1576) {
+ WorldPoint p = WorldPoint.fromLocal(client, obj.getLocation());
+ if (temp.size() == 0) {
+
+ } else {
+
+ }
+ }
+ }
+
+
+ @Subscribe
+ public void onGameTick(GameTick event) {
+ if (runMaiden) {
Maiden_BloodSpatters.clear();
- for (GraphicsObject o : client.getGraphicsObjects())
- {
- if (o.getId() == GRAPHICSOBJECT_ID_MAIDEN)
- {
+ for (GraphicsObject o : client.getGraphicsObjects()) {
+ if (o.getId() == GRAPHICSOBJECT_ID_MAIDEN) {
Maiden_BloodSpatters.add(WorldPoint.fromLocal(client, o.getLocation()));
}
}
@@ -439,98 +578,117 @@ public class TheatrePlugin extends Plugin {
Maiden_SpawnLocations2.clear();
Maiden_SpawnLocations2.addAll(Maiden_SpawnLocations);
Maiden_SpawnLocations.clear();
- for (NPC spawn : Maiden_Spawns)
- {
+ for (NPC spawn : Maiden_Spawns) {
Maiden_SpawnLocations.add(spawn.getWorldLocation());
}
}
- if (runBloat)
- {
+ if (runBloat) {
+
+ localTemp.clear();
+
+ //System.out.println("Temp flag" + tempFlag);
+ //System.out.println("Temp2 flag" + temp2Flag);
+
+
+ for (GraphicsObject obj : client.getGraphicsObjects()) {
+ if (obj.getId() == 1570 || obj.getId() == 1571 || obj.getId() == 1572 || obj.getId() == 1573 || obj.getId() == 1574 || obj.getId() == 1575 || obj.getId() == 1576) {
+ WorldPoint p = WorldPoint.fromLocal(client, obj.getLocation());
+ //Already have some feet in temp Set
+ if (temp.size() > 0) {
+ //System.out.println("temp size > 0, tempflag set false, tempflag2 set true");
+ tempFlag = false;
+ temp2Flag = true;
+ } else {
+ //System.out.println("temp size 0, tempflag set true, tempflag2 set false");
+ tempFlag = true;
+ temp2Flag = false;
+
+ }
+ localTemp.add(p);
+ }
+ }
+
+ if (tempFlag) {
+ temp2.clear();
+ temp2Flag = false;
+ temp.addAll(localTemp);
+
+
+ //System.out.println("temp2 cleared, temp2flag set false, added to temp set");
+ } else if (temp2Flag) {
+ temp.clear();
+ tempFlag = false;
+ temp2.addAll(localTemp);
+ //System.out.println("temp cleared, tempflag set false, added to temp2 set");
+
+ }
Bloat_downCount++;
- Bloat_Hands.clear();
- for (GraphicsObject o : client.getGraphicsObjects())
- {
- if (o.getId() == GRAPHICSOBJECT_ID_BLOAT_HAND1 || o.getId() == GRAPHICSOBJECT_ID_BLOAT_HAND2 || o.getId() == GRAPHICSOBJECT_ID_BLOAT_HAND3 || o.getId() == GRAPHICSOBJECT_ID_BLOAT_HAND4|| o.getId() == GRAPHICSOBJECT_ID_BLOAT_HAND5)
- {
- Bloat_Hands.add(WorldPoint.fromLocal(client, o.getLocation()));
- }
- }
-
-
if (Bloat_NPC.getAnimation() == -1) //1 = up; 2 = down; 3 = warn;
{
+ bloatTimer++;
Bloat_downCount = 0;
- if (Bloat_NPC.getHealth() == 0)
- {
+ if (Bloat_NPC.getHealth() == 0) {
Bloat_State = 2;
- }
- else
+ } else
Bloat_State = 1;
- }
- else
- {
- if (25 it = Nylocas_Map.keySet().iterator(); it.hasNext();)
- {
+ if (runNylocas) {
+ for (Iterator it = Nylocas_Map.keySet().iterator(); it.hasNext(); ) {
NPC npc = it.next();
int ticksLeft = Nylocas_Map.get(npc);
- if (ticksLeft < 0)
- {
+ if (ticksLeft < 0) {
it.remove();
continue;
}
Nylocas_Map.replace(npc, ticksLeft - 1);
}
- for (NPC pillar : Nylocas_Pillars.keySet())
- {
+ for (NPC pillar : Nylocas_Pillars.keySet()) {
int healthPercent = pillar.getHealthRatio();
- if (healthPercent > -1)
- {
+ if (healthPercent > -1) {
Nylocas_Pillars.replace(pillar, healthPercent);
}
}
- for (NPC npc : client.getNpcs())
- {
- if (npc.getId() == 8358)
- {
+ for (NPC npc : client.getNpcs()) {
+ if (npc.getId() == 8358) {
runNylocas = true;
break;
}
runNylocas = false;
+ BossNylo = null;
}
}
- if (runSotetseg)
- {
- TickTillEat--;
+ if (runSotetseg) {
boolean sotetsegFighting = false;
- for (NPC npc : client.getNpcs())
- {
- if (npc.getId() == NpcID.SOTETSEG_8388)
- {
+ for (NPC npc : client.getNpcs()) {
+ if (npc.getId() == NpcID.SOTETSEG_8388) {
BlackTilesUnderworld.clear();
BlackTilesOverworld.clear();
RedTilesOverworld.clear();
@@ -542,42 +700,33 @@ public class TheatrePlugin extends Plugin {
}
}
- if (!sotetsegFighting)
- {
- if (!BlackTilesUnderworld.isEmpty() && !RedTilesUnderworld.isEmpty() && GridPath.isEmpty())
- {
+ if (!sotetsegFighting) {
+ if (!BlackTilesUnderworld.isEmpty() && !RedTilesUnderworld.isEmpty() && GridPath.isEmpty()) {
int minX = 99999;
int minY = 99999;
- for (WorldPoint p : BlackTilesUnderworld)
- {
+ for (WorldPoint p : BlackTilesUnderworld) {
int x = p.getX();
int y = p.getY();
- if (x < minX)
- {
+ if (x < minX) {
minX = x;
}
- if (y < minY)
- {
+ if (y < minY) {
minY = y;
}
}
-
boolean messageSent = false;
- for (WorldPoint p : RedTilesUnderworld)
- {
+ for (WorldPoint p : RedTilesUnderworld) {
WorldPoint pN = new WorldPoint(p.getX(), p.getY() + 1, p.getPlane());
WorldPoint pS = new WorldPoint(p.getX(), p.getY() - 1, p.getPlane());
WorldPoint pE = new WorldPoint(p.getX() + 1, p.getY(), p.getPlane());
WorldPoint pW = new WorldPoint(p.getX() - 1, p.getY(), p.getPlane());
- if ( !( (RedTilesUnderworld.contains(pN) && RedTilesUnderworld.contains(pS)) ||
- (RedTilesUnderworld.contains(pE) && RedTilesUnderworld.contains(pW)) ) )
- {
+ if (!((RedTilesUnderworld.contains(pN) && RedTilesUnderworld.contains(pS)) ||
+ (RedTilesUnderworld.contains(pE) && RedTilesUnderworld.contains(pW)))) {
GridPath.add(new Point(p.getX() - minX, p.getY() - minY));
- if (!messageSent)
- {
+ if (!messageSent) {
//client.addChatMessage(ChatMessageType.SERVER, "", "Maze path acquired.", null);
messageSent = true;
}
@@ -586,71 +735,74 @@ public class TheatrePlugin extends Plugin {
}
}
- if (!BlackTilesOverworld.isEmpty() && !GridPath.isEmpty() && RedTilesOverworld.isEmpty())
- {
+ if (!BlackTilesOverworld.isEmpty() && !GridPath.isEmpty() && RedTilesOverworld.isEmpty()) {
int minX = 99999;
int minY = 99999;
- for (WorldPoint p : BlackTilesOverworld)
- {
+ for (WorldPoint p : BlackTilesOverworld) {
int x = p.getX();
int y = p.getY();
- if (x < minX)
- {
+ if (x < minX) {
minX = x;
}
- if (y < minY)
- {
+ if (y < minY) {
minY = y;
}
}
- for (Point p : GridPath)
- {
+ for (Point p : GridPath) {
RedTilesOverworld.add(new WorldPoint(minX + p.getX(), minY + p.getY(), 0));
}
}
}
}
- if (runXarpus)
- {
- for (Iterator it = Xarpus_Exhumeds.keySet().iterator(); it.hasNext();)
- {
+ if (runXarpus) {
+ int size = xarpusExhumedsTimer.size();
+ for (Map.Entry exhumes : xarpusExhumedsTimer.entrySet()) {
+ if (size > 0) {
+ exhumes.setValue(exhumes.getValue() - 1);
+ }
+
+ }
+ for (Iterator it = Xarpus_Exhumeds.keySet().iterator(); it.hasNext(); ) {
GroundObject key = it.next();
Xarpus_Exhumeds.replace(key, Xarpus_Exhumeds.get(key) - 1);
- if (Xarpus_Exhumeds.get(key) < 0)
- {
+ if (Xarpus_Exhumeds.get(key) < 0) {
it.remove();
+ exhumecount--;
}
}
- if (Xarpus_NPC.getOverheadText() != null )
- {
+ if ((Xarpus_NPC.getComposition().getOverheadIcon() != null)) {
Xarpus_Stare = true;
}
- if (Xarpus_Stare)
- {
+ if (Xarpus_Stare) {
//dont hit xarpus if it looking at u
- }
- else if (Xarpus_NPC.getId() == NpcID.XARPUS_8340)
- {
+ } else if (Xarpus_NPC.getId() == NpcID.XARPUS_8340) {
Xarpus_TicksUntilShoot--;
- if (Xarpus_NPC.getAnimation() == ANIMATION_ID_XARPUS && Xarpus_previousAnimation != ANIMATION_ID_XARPUS)
- {
- Xarpus_TicksUntilShoot = 3;
- }
- Xarpus_previousAnimation = Xarpus_NPC.getAnimation();
+ //if (Xarpus_NPC.getAnimation() == ANIMATION_ID_XARPUS && Xarpus_previousAnimation != ANIMATION_ID_XARPUS)
+ //{
+ //Xarpus_TicksUntilShoot = 3;
+ //}
+ //Xarpus_previousAnimation = Xarpus_NPC.getAnimation();
}
}
- if (runVerzik)
- {
- if (!Verzik_RangeProjectiles.isEmpty())
- {
- for (Iterator it = Verzik_RangeProjectiles.keySet().iterator(); it.hasNext();)
- {
+ if (runVerzik) {
+ crabList.clear();
+ for (NPC npc : client.getNpcs()) {
+
+ if (npc.getName().toLowerCase().contains("nylo")) {
+ crabList.add(npc);
+ }
+ }
+
+ if (Verzik_NPC.getAnimation() == 8117) {
+ redCrabsTimer = redCrabsTimer - 1;
+ }
+ if (!Verzik_RangeProjectiles.isEmpty()) {
+ for (Iterator it = Verzik_RangeProjectiles.keySet().iterator(); it.hasNext(); ) {
Projectile projectile = it.next();
- if (projectile.getRemainingCycles() < 1)
- {
+ if (projectile.getRemainingCycles() < 1) {
it.remove();
}
}
@@ -659,55 +811,40 @@ public class TheatrePlugin extends Plugin {
Verzik_YellowBall = null;
Verzik_YellowTiles.clear();
- for (Projectile projectile : client.getProjectiles())
- {
- if (projectile.getId() == PROJECTILE_ID_YELLOW)
- {
+ for (Projectile projectile : client.getProjectiles()) {
+ if (projectile.getId() == PROJECTILE_ID_YELLOW) {
Verzik_YellowBall = projectile;
break;
}
}
- for (GraphicsObject o : client.getGraphicsObjects())
- {
- if (o.getId() == GRAPHICSOBJECT_ID_YELLOW)
- {
+ for (GraphicsObject o : client.getGraphicsObjects()) {
+ if (o.getId() == GRAPHICSOBJECT_ID_YELLOW) {
+
Verzik_YellowTiles.add(WorldPoint.fromLocal(client, o.getLocation()));
}
}
- for (NPC npc : client.getNpcs())
- {
- if (npc.getId() == 8379)
- {
- runVerzik = true;
- break;
- }
- runVerzik = false;
- }
-
-
- if (Verzik_NPC_P3 != null) {
+ if (Verzik_NPC.getId() == VERZIK_ID_P3) {
boolean tornadosActive = false;
- for (NPC npc : client.getNpcs())
- {
- if (npc.getId() == NPC_ID_TORNADO)
- {
+ for (NPC npc : client.getNpcs()) {
+ if (npc.getId() == NPC_ID_TORNADO) {
+ tornadoList.add(npc);
tornadosActive = true;
break;
}
}
boolean isGreenBall = false;
- for (Projectile projectile : client.getProjectiles())
- {
+ for (Projectile projectile : client.getProjectiles()) {
if (projectile.getId() == PROJECTILE_ID_P3_GREEN) {
isGreenBall = projectile.getRemainingCycles() > 210;
break;
}
}
+
P3_TicksUntilAttack--;
- switch (Verzik_NPC_P3.getAnimation()) {
+ switch (Verzik_NPC.getAnimation()) {
case ANIMATION_ID_P3_MAGE:
if (P3_TicksUntilAttack < 2) {
P3_attacksLeft--;
@@ -762,6 +899,90 @@ public class TheatrePlugin extends Plugin {
}
}
+
+
}
-}
+ private void stripEntries(int style, String target, int NyloID) {
+ String Keep = null;
+ if (NyloID == 0) {
+ switch (style) {
+ case 1:
+ Keep = "Nylocas Ischyros";
+ break;
+ case 2:
+ Keep = "Nylocal Toxobolos";
+ break;
+ case 3:
+ Keep = "Nylocas Hagios";
+ break;
+ }
+ } else {
+ Keep = "fuckaadamhypocrticalpos";
+ switch (NyloID) {
+ case 8356://0=idk 1= melee 2= range 3= mage
+ if (style == 3) {
+
+ Keep = "Nylocas Vasilias";
+ }
+ break;
+ case 8357:
+ if (style == 2) {
+ Keep = "Nylocas Vasilias";
+ }
+ break;
+ default:
+ if (style == 1) {
+ Keep = "Nylocas Vasilias";
+ }
+ }
+
+ }
+ int entryLength = 0;
+ List entryList = new ArrayList<>();
+ for (MenuEntry entry : client.getMenuEntries()) {
+ if (Text.removeTags(entry.getTarget()).contains(Keep) && entry.getOption().equals("Attack")) {
+
+ entryList.add(entry);
+ entryLength++;
+ }
+ if (entry.getOption().equalsIgnoreCase("walk here") || entry.getOption().equalsIgnoreCase("pass") || entry.getOption().equalsIgnoreCase("take")) {
+ entryList.add(entry);
+ entryLength++;
+ }
+ }
+
+ //System.out.println("i see " + entryLength + " good options using style" + style);
+ if (entryLength != 0) {
+ MenuEntry[] newEntries = new MenuEntry[entryLength];
+
+
+ for (int i = 0; i < (entryLength); i++) {
+ newEntries[i] = entryList.get(i);
+ }
+ client.setMenuEntries(newEntries);
+ }
+
+
+ }
+
+ private int searchIndex(MenuEntry[] entries, String option, String target, boolean strict) {
+ for (int i = entries.length - 1; i >= 0; i--) {
+ MenuEntry entry = entries[i];
+ String entryOption = Text.removeTags(entry.getOption()).toLowerCase();
+ String entryTarget = Text.removeTags(entry.getTarget()).toLowerCase();
+
+ if (strict) {
+ if (entryOption.equals(option) && entryTarget.equals(target)) {
+ return i;
+ }
+ } else {
+ if (entryOption.contains(option.toLowerCase()) && entryTarget.equals(target)) {
+ return i;
+ }
+ }
+ }
+
+ return -1;
+ }
+}
\ No newline at end of file
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreXarpusOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreXarpusOverlay.java
new file mode 100644
index 0000000000..72757be422
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatreXarpusOverlay.java
@@ -0,0 +1,68 @@
+package net.runelite.client.plugins.ztob;
+
+import com.google.inject.Inject;
+import net.runelite.client.ui.overlay.Overlay;
+import net.runelite.client.ui.overlay.OverlayMenuEntry;
+import net.runelite.client.ui.overlay.OverlayPosition;
+import net.runelite.client.ui.overlay.components.LineComponent;
+import net.runelite.client.ui.overlay.components.PanelComponent;
+import net.runelite.client.ui.overlay.components.TitleComponent;
+
+import java.awt.*;
+
+import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
+import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
+
+public class TheatreXarpusOverlay extends Overlay {
+ private final TheatrePlugin plugin;
+ private final TheatreConfig config;
+ PanelComponent panelComponent = new PanelComponent();
+
+ @Inject
+ private TheatreXarpusOverlay(TheatrePlugin plugin, TheatreConfig config) {
+ super(plugin);
+ setPosition(OverlayPosition.ABOVE_CHATBOX_RIGHT);
+ setPosition(OverlayPosition.DYNAMIC);
+ setPosition(OverlayPosition.DETACHED);
+ this.plugin = plugin;
+ this.config = config;
+ getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Theatre xarpus overlay"));
+
+ }
+
+ @Override
+ public Dimension render(Graphics2D graphics) {
+ if (plugin.isRunXarpus()) {
+ if (config.XarpusExhumeOverlay()) {
+ if (plugin.getXarpus_NPC().getId() == 8339) {
+ panelComponent.getChildren().clear();
+ String overlayTitle = "Exhume Counter";
+
+
+ // Build overlay title
+ panelComponent.getChildren().add(TitleComponent.builder()
+ .text(overlayTitle)
+ .color(Color.GREEN)
+ .build());
+
+ //Set the size of overlay
+ panelComponent.setPreferredSize(new Dimension(
+ graphics.getFontMetrics().stringWidth(overlayTitle) + 30, 0
+ ));
+
+ panelComponent.getChildren().add(LineComponent.builder()
+ .left("Exhumes: ")
+ .right(String.valueOf(plugin.getExhumecount()))
+ .build());
+ }
+ }
+ return panelComponent.render(graphics);
+ }
+
+ return null;
+
+ }
+
+
+}
+
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/VerzikNyloOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/VerzikNyloOverlay.java
new file mode 100644
index 0000000000..68f0630c12
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/VerzikNyloOverlay.java
@@ -0,0 +1,81 @@
+package net.runelite.client.plugins.ztob;
+
+import net.runelite.api.Client;
+import net.runelite.api.NPC;
+import net.runelite.api.Point;
+import net.runelite.client.ui.overlay.*;
+
+import javax.inject.Inject;
+import java.awt.*;
+
+public class VerzikNyloOverlay extends Overlay {
+
+ private final Client client;
+ private final TheatrePlugin plugin;
+ private final TheatreConfig config;
+
+ @Inject
+ private VerzikNyloOverlay(Client client, TheatrePlugin plugin, TheatreConfig config) {
+ this.client = client;
+ this.plugin = plugin;
+ this.config = config;
+ setPosition(OverlayPosition.DYNAMIC);
+ setPriority(OverlayPriority.HIGH);
+ setLayer(OverlayLayer.ABOVE_SCENE);
+ }
+
+ public Dimension render(Graphics2D graphics) {
+
+ if (plugin.isRunVerzik()) {
+ if (config.NyloTargetOverlay()) {
+ if (plugin.getCrabList().size() > 0) {
+
+ for (NPC npc : plugin.getCrabList()) {
+ if (npc.isDead()) {
+ continue;
+ }
+ String renderText = "";
+ if (npc.getInteracting() != null) {
+
+ renderText = npc.getInteracting().getName();
+ Point point = npc.getCanvasTextLocation(graphics, npc.getInteracting().getName(), 0);
+
+
+ if (npc.getInteracting().getName().toLowerCase().equals(client.getLocalPlayer().getName().toLowerCase())) {
+ point = npc.getCanvasTextLocation(graphics, client.getLocalPlayer().getName(), 0);
+ renderText = "YOU NIGGA RUN!";
+
+ } else if (npc.getInteracting().getName().toLowerCase().equals("afyy")) {
+ point = npc.getCanvasTextLocation(graphics, "Ricecup", 0);
+ renderText = "Ricecup";
+ }
+ if (renderText.equals("YOU NIGGA RUN!")) {
+ renderTextLocation(graphics, renderText, 12, Font.BOLD, Color.RED, point);
+ } else {
+ renderTextLocation(graphics, renderText, 12, Font.BOLD, Color.GREEN, point);
+ }
+ }
+
+ }
+ }
+
+ }
+ }
+
+ return null;
+ }
+
+ private void renderTextLocation(Graphics2D graphics, String txtString, int fontSize, int fontStyle, Color fontColor, Point canvasPoint) {
+ graphics.setFont(new Font("Arial", fontStyle, fontSize));
+ if (canvasPoint != null) {
+ final Point canvasCenterPoint = new Point(
+ canvasPoint.getX(),
+ canvasPoint.getY());
+ final Point canvasCenterPoint_shadow = new Point(
+ canvasPoint.getX() + 1,
+ canvasPoint.getY() + 1);
+ OverlayUtil.renderTextLocation(graphics, canvasCenterPoint_shadow, txtString, Color.BLACK);
+ OverlayUtil.renderTextLocation(graphics, canvasCenterPoint, txtString, fontColor);
+ }
+ }
+}
diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/equipmentinspector/normal.png b/runelite-client/src/main/resources/net/runelite/client/plugins/equipmentinspector/normal.png
new file mode 100644
index 0000000000..613f95e46d
Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/equipmentinspector/normal.png differ