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;
|
||||
|
||||
import com.google.common.primitives.Ints;
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
@@ -507,21 +508,17 @@ public class AgilityPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
final int entryId = event.getIdentifier();
|
||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
||||
|
||||
for (Obstacle nearbyObstacle : getObstacles().values())
|
||||
{
|
||||
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];
|
||||
int level = shortcut.getLevel();
|
||||
Color color = level <= getAgilityLevel() ? Color.GREEN : Color.RED;
|
||||
String requirementText = " (level-" + level + ")";
|
||||
final MenuEntry entry = event.getMenuEntry();
|
||||
final int reqLevel = shortcut.getLevel();
|
||||
final String requirementText = ColorUtil.getLevelColorString(reqLevel, getAgilityLevel()) + " (level-" + reqLevel + ")";
|
||||
|
||||
entry.setTarget(event.getTarget() + ColorUtil.prependColorTag(requirementText, color));
|
||||
client.setMenuEntries(menuEntries);
|
||||
entry.setTarget(event.getTarget() + requirementText);
|
||||
event.setWasModified(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,4 +267,65 @@ public class ColorUtil
|
||||
}
|
||||
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;",
|
||||
garbageValue = "1269667837"
|
||||
)
|
||||
static final String method4037(int var0, int var1) {
|
||||
@Export("getLevelColorString")
|
||||
static final String getLevelColorString(int var0, int var1) {
|
||||
int var2 = var1 - var0;
|
||||
if (var2 < -9) {
|
||||
return class16.colorStartTag(16711680);
|
||||
return class16.colorStartTag(0xff0000);
|
||||
} else if (var2 < -6) {
|
||||
return class16.colorStartTag(16723968);
|
||||
return class16.colorStartTag(0xff3000);
|
||||
} else if (var2 < -3) {
|
||||
return class16.colorStartTag(16740352);
|
||||
return class16.colorStartTag(0xff7000);
|
||||
} else if (var2 < 0) {
|
||||
return class16.colorStartTag(16756736);
|
||||
return class16.colorStartTag(0xffb000);
|
||||
} else if (var2 > 9) {
|
||||
return class16.colorStartTag(65280);
|
||||
return class16.colorStartTag(0x00ff00);
|
||||
} else if (var2 > 6) {
|
||||
return class16.colorStartTag(4259584);
|
||||
return class16.colorStartTag(0x40ff00);
|
||||
} else if (var2 > 3) {
|
||||
return class16.colorStartTag(8453888);
|
||||
return class16.colorStartTag(0x80ff00);
|
||||
} else if (var2 > 0) {
|
||||
return class16.colorStartTag(0xc0ff00);
|
||||
} 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) {
|
||||
String var4;
|
||||
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 {
|
||||
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) {
|
||||
String var4 = var0.name;
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user