opponentinfo: add opponent's opponent for npcs
Upon closer inspection it was realized this is allowed for NPCs
This commit is contained in:
@@ -53,6 +53,17 @@ public interface OpponentInfoConfig extends Config
|
|||||||
return HitpointsDisplayStyle.HITPOINTS;
|
return HitpointsDisplayStyle.HITPOINTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "showOpponentsOpponent",
|
||||||
|
name = "Show opponent's opponent",
|
||||||
|
description = "Toggle showing opponent's opponent if within a multi-combat area",
|
||||||
|
position = 2
|
||||||
|
)
|
||||||
|
default boolean showOpponentsOpponent()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "showOpponentsInMenu",
|
keyName = "showOpponentsInMenu",
|
||||||
name = "Show opponents in menu",
|
name = "Show opponents in menu",
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import net.runelite.api.Client;
|
|||||||
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
|
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
|
||||||
import net.runelite.api.NPC;
|
import net.runelite.api.NPC;
|
||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
|
import net.runelite.api.Varbits;
|
||||||
import net.runelite.client.game.HiscoreManager;
|
import net.runelite.client.game.HiscoreManager;
|
||||||
import net.runelite.client.game.NPCManager;
|
import net.runelite.client.game.NPCManager;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
@@ -68,6 +69,7 @@ class OpponentInfoOverlay extends Overlay
|
|||||||
private int lastRatio = 0;
|
private int lastRatio = 0;
|
||||||
private int lastHealthScale = 0;
|
private int lastHealthScale = 0;
|
||||||
private String opponentName;
|
private String opponentName;
|
||||||
|
private String opponentsOpponentName;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private OpponentInfoOverlay(
|
private OpponentInfoOverlay(
|
||||||
@@ -126,6 +128,17 @@ class OpponentInfoOverlay extends Overlay
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final Actor opponentsOpponent = opponent.getInteracting();
|
||||||
|
if (opponent instanceof NPC && opponentsOpponent != null
|
||||||
|
&& (opponentsOpponent != client.getLocalPlayer() || client.getVar(Varbits.MULTICOMBAT_AREA) == 1))
|
||||||
|
{
|
||||||
|
opponentsOpponentName = Text.removeTags(opponentsOpponent.getName());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
opponentsOpponentName = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opponentName == null)
|
if (opponentName == null)
|
||||||
@@ -205,6 +218,16 @@ class OpponentInfoOverlay extends Overlay
|
|||||||
panelComponent.getChildren().add(progressBarComponent);
|
panelComponent.getChildren().add(progressBarComponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Opponents opponent
|
||||||
|
if (opponentsOpponentName != null && opponentInfoConfig.showOpponentsOpponent())
|
||||||
|
{
|
||||||
|
textWidth = Math.max(textWidth, fontMetrics.stringWidth(opponentsOpponentName));
|
||||||
|
panelComponent.setPreferredSize(new Dimension(textWidth, 0));
|
||||||
|
panelComponent.getChildren().add(TitleComponent.builder()
|
||||||
|
.text(opponentsOpponentName)
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user