Add separate color for superior slayer monsters

This commit is contained in:
Davis Cook
2019-02-11 17:04:44 -05:00
parent 1dfc4b535a
commit 121a2c0179
3 changed files with 52 additions and 1 deletions

View File

@@ -101,6 +101,16 @@ public interface SlayerConfig extends Config
@ConfigItem(
position = 7,
keyName = "superiorColor",
name = "Superior Color",
description = "Color of the highlighted superior slayer creatures"
)
default Color getSuperiorColor() {
return Color.MAGENTA;
}
@ConfigItem(
position = 8,
keyName = "weaknessPrompt",
name = "Show Monster Weakness",
description = "Show an overlay on a monster when it is weak enough to finish off (Only Lizards, Gargoyles & Rockslugs)"

View File

@@ -38,6 +38,7 @@ import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.inject.Inject;
import joptsimple.internal.Strings;
import lombok.AccessLevel;
@@ -52,6 +53,7 @@ import net.runelite.api.MessageNode;
import net.runelite.api.NPC;
import net.runelite.api.NPCComposition;
import static net.runelite.api.Skill.SLAYER;
import net.runelite.api.NpcID;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ConfigChanged;
@@ -125,6 +127,36 @@ public class SlayerPlugin extends Plugin
private static final Pattern TASK_STRING_VALIDATION = Pattern.compile("[^a-zA-Z0-9' -]");
private static final int TASK_STRING_MAX_LENGTH = 50;
// Superiors
private static List<String> SUPERIOR_SLAYER_MONSTERS = Arrays.asList(
"Crushing hand",
"Chasm crawler",
"Screaming banshee",
"Screaming twisted banshee",
"Giant rockslug",
"Cockathrice",
"Flaming pyrelord",
"Monstrous basilisk",
"Malevolent mage",
"Insatiable bloodveld",
"Insatiable mutated bloodveld",
"Vitreous jelly",
"Vitreous warped jelly",
"Cave abomination",
"Abhorrent spectre",
"Repugnant spectre",
"Choke devil",
"King kurask",
"Marble gargoyle",
"Nechryarch",
"Greater abyssal demon",
"Night beast",
"Nuclear smoke devil");
static {
SUPERIOR_SLAYER_MONSTERS = SUPERIOR_SLAYER_MONSTERS.stream().map(name -> name.toLowerCase()).collect(Collectors.toList());
}
@Inject
private Client client;
@@ -539,6 +571,10 @@ public class SlayerPlugin extends Plugin
cachedXp = slayerExp;
}
boolean isSuperior(String name) {
return SUPERIOR_SLAYER_MONSTERS.contains(name.toLowerCase());
}
@Subscribe
private void onConfigChanged(ConfigChanged event)
{

View File

@@ -63,7 +63,12 @@ public class TargetClickboxOverlay extends Overlay
List<NPC> targets = plugin.getHighlightedTargets();
for (NPC target : targets)
{
renderTargetOverlay(graphics, target, config.getTargetColor());
Color coloration = config.getTargetColor();
if (plugin.isSuperior(target.getName())) {
coloration = config.getSuperiorColor();
}
renderTargetOverlay(graphics, target, coloration);
}
return null;