Merge pull request #1536 from Lucwousin/agility-shill
Agility plugin: generate less garbage objects + color range
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.agility;
|
package net.runelite.client.plugins.agility;
|
||||||
|
|
||||||
|
import com.google.common.primitives.Ints;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -507,21 +508,17 @@ public class AgilityPlugin extends Plugin
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final int entryId = event.getIdentifier();
|
|
||||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
|
||||||
|
|
||||||
for (Obstacle nearbyObstacle : getObstacles().values())
|
for (Obstacle nearbyObstacle : getObstacles().values())
|
||||||
{
|
{
|
||||||
AgilityShortcut shortcut = nearbyObstacle.getShortcut();
|
AgilityShortcut shortcut = nearbyObstacle.getShortcut();
|
||||||
if (shortcut != null && Arrays.stream(shortcut.getObstacleIds()).anyMatch(i -> i == entryId))
|
if (shortcut != null && Ints.contains(shortcut.getObstacleIds(), event.getIdentifier()))
|
||||||
{
|
{
|
||||||
MenuEntry entry = menuEntries[menuEntries.length - 1];
|
final MenuEntry entry = event.getMenuEntry();
|
||||||
int level = shortcut.getLevel();
|
final int reqLevel = shortcut.getLevel();
|
||||||
Color color = level <= getAgilityLevel() ? Color.GREEN : Color.RED;
|
final String requirementText = ColorUtil.getLevelColorString(reqLevel, getAgilityLevel()) + " (level-" + reqLevel + ")";
|
||||||
String requirementText = " (level-" + level + ")";
|
|
||||||
|
|
||||||
entry.setTarget(event.getTarget() + ColorUtil.prependColorTag(requirementText, color));
|
entry.setTarget(event.getTarget() + requirementText);
|
||||||
client.setMenuEntries(menuEntries);
|
event.setWasModified(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -267,4 +267,65 @@ public class ColorUtil
|
|||||||
}
|
}
|
||||||
return (color & 0x00ffffff) | (alpha << 24);
|
return (color & 0x00ffffff) | (alpha << 24);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the color a ' (level-xxx)' would have, based on
|
||||||
|
* the difference between your and their level.
|
||||||
|
* This method is the same as in rs-client.
|
||||||
|
*
|
||||||
|
* @param theirLvl The level you're comparing against
|
||||||
|
* @param yourLvl Your level
|
||||||
|
*/
|
||||||
|
public static String getLevelColorString(final int theirLvl, final int yourLvl)
|
||||||
|
{
|
||||||
|
final int diff = yourLvl - theirLvl;
|
||||||
|
|
||||||
|
if (diff < -9)
|
||||||
|
{
|
||||||
|
return colorStartTag(0xff0000);
|
||||||
|
}
|
||||||
|
else if (diff < -6)
|
||||||
|
{
|
||||||
|
return colorStartTag(0xff3000);
|
||||||
|
}
|
||||||
|
else if (diff < -3)
|
||||||
|
{
|
||||||
|
return colorStartTag(0xff7000);
|
||||||
|
}
|
||||||
|
else if (diff < 0)
|
||||||
|
{
|
||||||
|
return colorStartTag(0xffb000);
|
||||||
|
}
|
||||||
|
else if (diff > 9)
|
||||||
|
{
|
||||||
|
return colorStartTag(0x00ff00);
|
||||||
|
}
|
||||||
|
else if (diff > 6)
|
||||||
|
{
|
||||||
|
return colorStartTag(0x40ff00);
|
||||||
|
}
|
||||||
|
else if (diff > 3)
|
||||||
|
{
|
||||||
|
return colorStartTag(0x80ff00);
|
||||||
|
}
|
||||||
|
else if (diff > 0)
|
||||||
|
{
|
||||||
|
return colorStartTag(0xc0ff00);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return colorStartTag(0xffff00);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a color start tag from a rgb color as a int value
|
||||||
|
*
|
||||||
|
* @param rgb the int value of a rgb color
|
||||||
|
* @return a color tag which can be put in front of stuff
|
||||||
|
*/
|
||||||
|
public static String colorStartTag(final int rgb)
|
||||||
|
{
|
||||||
|
return "<col=" + Integer.toHexString(rgb) + ">";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,24 +58,27 @@ public class class225 {
|
|||||||
signature = "(III)Ljava/lang/String;",
|
signature = "(III)Ljava/lang/String;",
|
||||||
garbageValue = "1269667837"
|
garbageValue = "1269667837"
|
||||||
)
|
)
|
||||||
static final String method4037(int var0, int var1) {
|
@Export("getLevelColorString")
|
||||||
|
static final String getLevelColorString(int var0, int var1) {
|
||||||
int var2 = var1 - var0;
|
int var2 = var1 - var0;
|
||||||
if (var2 < -9) {
|
if (var2 < -9) {
|
||||||
return class16.colorStartTag(16711680);
|
return class16.colorStartTag(0xff0000);
|
||||||
} else if (var2 < -6) {
|
} else if (var2 < -6) {
|
||||||
return class16.colorStartTag(16723968);
|
return class16.colorStartTag(0xff3000);
|
||||||
} else if (var2 < -3) {
|
} else if (var2 < -3) {
|
||||||
return class16.colorStartTag(16740352);
|
return class16.colorStartTag(0xff7000);
|
||||||
} else if (var2 < 0) {
|
} else if (var2 < 0) {
|
||||||
return class16.colorStartTag(16756736);
|
return class16.colorStartTag(0xffb000);
|
||||||
} else if (var2 > 9) {
|
} else if (var2 > 9) {
|
||||||
return class16.colorStartTag(65280);
|
return class16.colorStartTag(0x00ff00);
|
||||||
} else if (var2 > 6) {
|
} else if (var2 > 6) {
|
||||||
return class16.colorStartTag(4259584);
|
return class16.colorStartTag(0x40ff00);
|
||||||
} else if (var2 > 3) {
|
} else if (var2 > 3) {
|
||||||
return class16.colorStartTag(8453888);
|
return class16.colorStartTag(0x80ff00);
|
||||||
|
} else if (var2 > 0) {
|
||||||
|
return class16.colorStartTag(0xc0ff00);
|
||||||
} else {
|
} else {
|
||||||
return var2 > 0 ? class16.colorStartTag(12648192) : class16.colorStartTag(16776960);
|
return class16.colorStartTag(0xffff00);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class class51 {
|
|||||||
if (Client.menuOptionsCount < 400) {
|
if (Client.menuOptionsCount < 400) {
|
||||||
String var4;
|
String var4;
|
||||||
if (var0.skillLevel == 0) {
|
if (var0.skillLevel == 0) {
|
||||||
var4 = var0.actions[0] + var0.username + var0.actions[1] + class225.method4037(var0.combatLevel, WorldMapIcon_1.localPlayer.combatLevel) + " " + " (" + "level-" + var0.combatLevel + ")" + var0.actions[2];
|
var4 = var0.actions[0] + var0.username + var0.actions[1] + class225.getLevelColorString(var0.combatLevel, WorldMapIcon_1.localPlayer.combatLevel) + " " + " (" + "level-" + var0.combatLevel + ")" + var0.actions[2];
|
||||||
} else {
|
} else {
|
||||||
var4 = var0.actions[0] + var0.username + var0.actions[1] + " " + " (" + "skill-" + var0.skillLevel + ")" + var0.actions[2];
|
var4 = var0.actions[0] + var0.username + var0.actions[1] + " " + " (" + "skill-" + var0.skillLevel + ")" + var0.actions[2];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ public class class65 extends RouteStrategy {
|
|||||||
if (!var0.isFollower || Client.followerIndex == var1) {
|
if (!var0.isFollower || Client.followerIndex == var1) {
|
||||||
String var4 = var0.name;
|
String var4 = var0.name;
|
||||||
if (var0.combatLevel != 0) {
|
if (var0.combatLevel != 0) {
|
||||||
var4 = var4 + class225.method4037(var0.combatLevel, WorldMapIcon_1.localPlayer.combatLevel) + " " + " (" + "level-" + var0.combatLevel + ")";
|
var4 = var4 + class225.getLevelColorString(var0.combatLevel, WorldMapIcon_1.localPlayer.combatLevel) + " " + " (" + "level-" + var0.combatLevel + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var0.isFollower && Client.followerOpsLowPriority) {
|
if (var0.isFollower && Client.followerOpsLowPriority) {
|
||||||
|
|||||||
Reference in New Issue
Block a user