tob board highlight,moveable tob health orbs and boss hp bar
This commit is contained in:
@@ -114,7 +114,7 @@ public class WidgetID
|
||||
public static final int VARROCK_MUSEUM_QUIZ_GROUP_ID = 533;
|
||||
public static final int KILL_LOGS_GROUP_ID = 549;
|
||||
public static final int DIARY_QUEST_GROUP_ID = 119;
|
||||
public static final int THEATRE_OF_BLOOD_GROUP_ID = 23;
|
||||
public static final int THEATRE_OF_BLOOD_GROUP_ID = 28;
|
||||
public static final int WORLD_SWITCHER_GROUP_ID = 69;
|
||||
public static final int DIALOG_OPTION_GROUP_ID = 219;
|
||||
public static final int DIALOG_PLAYER_GROUP_ID = 217;
|
||||
@@ -122,6 +122,8 @@ public class WidgetID
|
||||
public static final int MINIGAME_TAB_ID = 76;
|
||||
public static final int SPELLBOOK_GROUP_ID = 218;
|
||||
public static final int PVP_GROUP_ID = 90;
|
||||
public static final int PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID = 364;
|
||||
public static final int PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID = 50;
|
||||
public static final int FISHING_TRAWLER_GROUP_ID = 366;
|
||||
public static final int ZEAH_MESS_HALL_GROUP_ID = 235;
|
||||
public static final int KOUREND_FAVOUR_GROUP_ID = 246;
|
||||
@@ -650,6 +652,12 @@ public class WidgetID
|
||||
static final int POINTS_INFOBOX = 6;
|
||||
}
|
||||
|
||||
static class TheatreOfBlood
|
||||
{
|
||||
static final int ORB_BOX = 10;
|
||||
static final int BOSS_HEALTH_BAR = 35;
|
||||
}
|
||||
|
||||
static class ExperienceDrop
|
||||
{
|
||||
static final int DROP_1 = 15;
|
||||
|
||||
@@ -436,6 +436,9 @@ public enum WidgetInfo
|
||||
|
||||
RAIDS_POINTS_INFOBOX(WidgetID.RAIDS_GROUP_ID, WidgetID.Raids.POINTS_INFOBOX),
|
||||
|
||||
THEATRE_OF_BLOOD_HEALTH_ORBS(WidgetID.THEATRE_OF_BLOOD_GROUP_ID, WidgetID.TheatreOfBlood.ORB_BOX),
|
||||
THEATRE_OF_BLOOD_BOSS_HEALTH(WidgetID.THEATRE_OF_BLOOD_GROUP_ID, WidgetID.TheatreOfBlood.BOSS_HEALTH_BAR),
|
||||
|
||||
BLAST_FURNACE_COFFER(WidgetID.BLAST_FURNACE_GROUP_ID, 2),
|
||||
|
||||
PYRAMID_PLUNDER_DATA(WidgetID.PYRAMID_PLUNDER_GROUP_ID, 2),
|
||||
|
||||
@@ -430,7 +430,7 @@ public class LootTrackerPlugin extends Plugin
|
||||
eventType = "Chambers of Xeric";
|
||||
container = client.getItemContainer(InventoryID.CHAMBERS_OF_XERIC_CHEST);
|
||||
break;
|
||||
case (WidgetID.THEATRE_OF_BLOOD_GROUP_ID):
|
||||
case (WidgetID.THEATRE_OF_BLOOD_REWARD_GROUP_ID):
|
||||
int region = WorldPoint.fromLocalInstance(client, client.getLocalPlayer().getLocalLocation()).getRegionID();
|
||||
if (region != THEATRE_OF_BLOOD_REGION)
|
||||
{
|
||||
|
||||
@@ -293,7 +293,7 @@ public class StonedLootTrackerPlugin extends Plugin
|
||||
eventType = "Chambers of Xeric";
|
||||
container = client.getItemContainer(InventoryID.CHAMBERS_OF_XERIC_CHEST);
|
||||
break;
|
||||
case (WidgetID.THEATRE_OF_BLOOD_GROUP_ID):
|
||||
case (WidgetID.THEATRE_OF_BLOOD_REWARD_GROUP_ID):
|
||||
int region = WorldPoint.fromLocalInstance(client, client.getLocalPlayer().getLocalLocation()).getRegionID();
|
||||
if (region != THEATRE_OF_BLOOD_REGION)
|
||||
{
|
||||
|
||||
@@ -13,10 +13,16 @@ import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Ignore;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import net.runelite.api.events.*;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
import net.runelite.client.plugins.theatre.rooms.BloatHandler;
|
||||
@@ -28,6 +34,7 @@ import net.runelite.client.plugins.theatre.rooms.nylocas.NyloHandler;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.awt.*;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Theatre of Blood",
|
||||
@@ -65,6 +72,8 @@ public class TheatrePlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
private Widget widget = null;
|
||||
|
||||
@Getter(AccessLevel.PUBLIC)
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
@@ -173,6 +182,25 @@ public class TheatrePlugin extends Plugin
|
||||
verzikHandler.onAnimationChanged(event);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() != WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID && event.getGroupId() != WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getGroupId() == WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID)
|
||||
{
|
||||
widget = client.getWidget(WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID, 0);
|
||||
}
|
||||
|
||||
if (event.getGroupId() == WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID)
|
||||
{
|
||||
widget = client.getWidget(WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
{
|
||||
@@ -193,6 +221,95 @@ public class TheatrePlugin extends Plugin
|
||||
|
||||
if (verzikHandler != null)
|
||||
verzikHandler.onGameTick();
|
||||
|
||||
if (widget == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// recheck if the widget is still active
|
||||
int p_id = WidgetInfo.TO_GROUP(widget.getId());
|
||||
|
||||
List<Widget> widgetList = new LinkedList<>();
|
||||
|
||||
if (p_id == WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID)
|
||||
{
|
||||
Widget w = client.getWidget(p_id, 16);
|
||||
if (w == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Widget[] ws = w.getStaticChildren();
|
||||
for (Widget widget : ws)
|
||||
{
|
||||
Widget[] widgets = widget.getDynamicChildren();
|
||||
if (widgets.length > 3)
|
||||
{
|
||||
widgetList.add(widgets[3]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (p_id == WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID)
|
||||
{
|
||||
Widget w1 = client.getWidget(p_id, 26);
|
||||
|
||||
if (w1 != null)
|
||||
{
|
||||
Widget[] dChildsAccepted = w1.getDynamicChildren();
|
||||
|
||||
if (dChildsAccepted.length > 2)
|
||||
{
|
||||
for (int i = 1; i < dChildsAccepted.length; i += 11)
|
||||
{
|
||||
if (!dChildsAccepted[i].getText().equals("-"))
|
||||
{
|
||||
widgetList.add(dChildsAccepted[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Widget w2 = client.getWidget(p_id, 41);
|
||||
|
||||
if (w2 != null)
|
||||
{
|
||||
Widget[] dChildsApplied = w2.getDynamicChildren();
|
||||
|
||||
if (dChildsApplied.length > 2)
|
||||
{
|
||||
for (int i = 1; i < dChildsApplied.length; i+=11)
|
||||
{
|
||||
if (!dChildsApplied[i].getText().equals("-"))
|
||||
{
|
||||
widgetList.add(dChildsApplied[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (Widget w : widgetList)
|
||||
{
|
||||
String wtext = w.getText();
|
||||
if (client.isFriended(wtext, false))
|
||||
{
|
||||
w.setTextColor(Color.green.getRGB());
|
||||
continue;
|
||||
}
|
||||
for (int i = 0; i < client.getIgnoreCount(); i++)
|
||||
{
|
||||
String name = client.getIgnores()[i].getName();
|
||||
if (name.replace('\u00A0',' ').equals(wtext))
|
||||
{
|
||||
w.setTextColor(Color.red.getRGB());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
widget = null;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
||||
@@ -57,6 +57,7 @@ public class WidgetOverlay extends Overlay
|
||||
.put(WidgetInfo.MULTICOMBAT_FIXED, OverlayPosition.BOTTOM_RIGHT)
|
||||
.put(WidgetInfo.MULTICOMBAT_RESIZEABLE, OverlayPosition.CANVAS_TOP_RIGHT)
|
||||
.put(WidgetInfo.PYRAMID_PLUNDER_DATA, OverlayPosition.TOP_CENTER)
|
||||
.put(WidgetInfo.THEATRE_OF_BLOOD_HEALTH_ORBS, OverlayPosition.TOP_LEFT)
|
||||
.build();
|
||||
|
||||
public static Collection<WidgetOverlay> createOverlays(final Client client)
|
||||
|
||||
Reference in New Issue
Block a user