From 2e12c707c2f2ae4e15dfc034ca4e2917bbd819f0 Mon Sep 17 00:00:00 2001 From: LlemonDuck Date: Fri, 17 Jun 2022 13:57:30 -0400 Subject: [PATCH 1/7] party: spelling generatePassphrase --- .../src/main/java/net/runelite/client/party/PartyService.java | 2 +- .../main/java/net/runelite/client/plugins/party/PartyPanel.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/party/PartyService.java b/runelite-client/src/main/java/net/runelite/client/party/PartyService.java index ebd9371d0f..9c02062eba 100644 --- a/runelite-client/src/main/java/net/runelite/client/party/PartyService.java +++ b/runelite-client/src/main/java/net/runelite/client/party/PartyService.java @@ -90,7 +90,7 @@ public class PartyService eventBus.register(this); } - public String generatePasspharse() + public String generatePassphrase() { assert client.isClientThread(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPanel.java index 32bbab4ebc..1b293dc45d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPanel.java @@ -144,7 +144,7 @@ class PartyPanel extends PluginPanel else { // Create party - clientThread.invokeLater(() -> party.changeParty(party.generatePasspharse())); + clientThread.invokeLater(() -> party.changeParty(party.generatePassphrase())); } }); From 9a584d2982dafe7e5368c4687399bbb113d1e200 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 17 Jun 2022 11:36:13 -0400 Subject: [PATCH 2/7] menu swapper: always raise menus from low priority to cc_op --- .../plugins/menuentryswapper/MenuEntrySwapperPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 4efb4328a9..123d543d3d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -1391,11 +1391,11 @@ public class MenuEntrySwapperPlugin extends Plugin // Item op4 and op5 are CC_OP_LOW_PRIORITY so they get added underneath Use, // but this also causes them to get sorted after client tick. Change them to // CC_OP to avoid this. - if (entry1.isItemOp() && entry1.getType() == MenuAction.CC_OP_LOW_PRIORITY) + if (entry1.getType() == MenuAction.CC_OP_LOW_PRIORITY) { entry1.setType(MenuAction.CC_OP); } - if (entry2.isItemOp() && entry2.getType() == MenuAction.CC_OP_LOW_PRIORITY) + if (entry2.getType() == MenuAction.CC_OP_LOW_PRIORITY) { entry2.setType(MenuAction.CC_OP); } From 592e19369721d71ec37c46c8d0394dd4d39f1307 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 17 Jun 2022 12:10:15 -0400 Subject: [PATCH 3/7] npc indicators: add true tile highlight --- .../game/npcoverlay/HighlightedNpc.java | 1 + .../client/game/npcoverlay/NpcOverlay.java | 14 ++++++++++++ .../npchighlight/NpcIndicatorsConfig.java | 22 ++++++++++++++----- .../npchighlight/NpcIndicatorsPlugin.java | 1 + 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java index f0dc43184c..388da5be29 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java +++ b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java @@ -43,6 +43,7 @@ public class HighlightedNpc Color fillColor = new Color(0, 0, 0, 50); boolean hull; boolean tile; + boolean trueTile; boolean swTile; boolean outline; boolean name; diff --git a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java index 3ed64c499b..d0a8e4b3c4 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java @@ -103,6 +103,20 @@ class NpcOverlay extends Overlay renderPoly(graphics, borderColor, borderWidth, fillColor, tilePoly); } + if (highlightedNpc.isTrueTile()) + { + LocalPoint lp = LocalPoint.fromWorld(client, actor.getWorldLocation()); // centered on sw tile + if (lp != null) + { + final int size = npcComposition.getSize(); + final LocalPoint centerLp = new LocalPoint( + lp.getX() + Perspective.LOCAL_TILE_SIZE * (size - 1) / 2, + lp.getY() + Perspective.LOCAL_TILE_SIZE * (size - 1) / 2); + Polygon tilePoly = Perspective.getCanvasTileAreaPoly(client, centerLp, size); + renderPoly(graphics, borderColor, borderWidth, fillColor, tilePoly); + } + } + if (highlightedNpc.isSwTile()) { LocalPoint lp = LocalPoint.fromWorld(client, actor.getWorldLocation()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java index 6c24e004fc..9a76bdf0f2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java @@ -68,6 +68,18 @@ public interface NpcIndicatorsConfig extends Config @ConfigItem( position = 2, + keyName = "highlightTrueTile", + name = "Highlight true tile", + description = "Configures whether or not NPC should be highlighted by true tile", + section = renderStyleSection + ) + default boolean highlightTrueTile() + { + return false; + } + + @ConfigItem( + position = 3, keyName = "highlightSouthWestTile", name = "Highlight south west tile", description = "Configures whether or not NPC should be highlighted by south western tile", @@ -79,7 +91,7 @@ public interface NpcIndicatorsConfig extends Config } @ConfigItem( - position = 3, + position = 4, keyName = "highlightOutline", name = "Highlight outline", description = "Configures whether or not the model of the NPC should be highlighted by outline", @@ -92,7 +104,7 @@ public interface NpcIndicatorsConfig extends Config @Alpha @ConfigItem( - position = 4, + position = 10, keyName = "npcColor", name = "Highlight Color", description = "Color of the NPC highlight border, menu, and text", @@ -105,7 +117,7 @@ public interface NpcIndicatorsConfig extends Config @Alpha @ConfigItem( - position = 5, + position = 11, keyName = "fillColor", name = "Fill Color", description = "Color of the NPC highlight fill", @@ -117,7 +129,7 @@ public interface NpcIndicatorsConfig extends Config } @ConfigItem( - position = 6, + position = 12, keyName = "borderWidth", name = "Border Width", description = "Width of the highlighted NPC border", @@ -129,7 +141,7 @@ public interface NpcIndicatorsConfig extends Config } @ConfigItem( - position = 7, + position = 13, keyName = "outlineFeather", name = "Outline feather", description = "Specify between 0-4 how much of the model outline should be faded", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 2fefccf511..96ee6e1383 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -660,6 +660,7 @@ public class NpcIndicatorsPlugin extends Plugin .fillColor(config.fillColor()) .hull(config.highlightHull()) .tile(config.highlightTile()) + .trueTile(config.highlightTrueTile()) .swTile(config.highlightSouthWestTile()) .outline(config.highlightOutline()) .name(config.drawNames()) From e92dd7e47b37022182ead7829a95f84621994f7d Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 17 Jun 2022 12:25:29 -0400 Subject: [PATCH 4/7] menu swapper: add global npc shift-click swap --- .../menuentryswapper/MenuEntrySwapperConfig.java | 14 +++++++++++++- .../menuentryswapper/MenuEntrySwapperPlugin.java | 11 ++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java index 00515d0367..ed9d032824 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java @@ -151,7 +151,7 @@ public interface MenuEntrySwapperConfig extends Config } @ConfigItem( - position = -2, + position = -3, keyName = "npcLeftClickCustomization", name = "Customizable left-click", description = "Allows customization of left-clicks on NPCs", @@ -162,6 +162,18 @@ public interface MenuEntrySwapperConfig extends Config return true; } + @ConfigItem( + position = -2, + keyName = "npcShiftClickWalkHere", + name = "Shift click Walk here", + description = "Swaps Walk here on shift click on all NPCs", + section = npcSection + ) + default boolean npcShiftClickWalkHere() + { + return true; + } + @ConfigItem( keyName = "swapAdmire", name = "Admire", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 123d543d3d..51485ea6fa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -1174,9 +1174,18 @@ public class MenuEntrySwapperPlugin extends Plugin final NPC npc = menuEntry.getNpc(); assert npc != null; final NPCComposition composition = npc.getTransformedComposition(); + assert composition != null; Integer customOption = getNpcSwapConfig(shiftModifier(), composition.getId()); - if (customOption != null) + if (customOption == null) + { + if (shiftModifier() && config.npcShiftClickWalkHere()) + { + // we can achieve this by just deprioritizing the normal npc menus + menuEntry.setDeprioritized(true); + } + } + else { // Walk here swap if (customOption == -1) From 68da7ce55fb992aa042baf0046ac08600d4396ce Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 17 Jun 2022 13:16:37 -0400 Subject: [PATCH 5/7] npc indicators: separate sw true tile and regular overlay --- .../client/game/npcoverlay/HighlightedNpc.java | 1 + .../runelite/client/game/npcoverlay/NpcOverlay.java | 12 ++++++++++++ .../plugins/npchighlight/NpcIndicatorsConfig.java | 12 ++++++++++++ .../plugins/npchighlight/NpcIndicatorsPlugin.java | 1 + 4 files changed, 26 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java index 388da5be29..ba995c282e 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java +++ b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/HighlightedNpc.java @@ -45,6 +45,7 @@ public class HighlightedNpc boolean tile; boolean trueTile; boolean swTile; + boolean swTrueTile; boolean outline; boolean name; boolean nameOnMinimap; diff --git a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java index d0a8e4b3c4..99cfa3b693 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/game/npcoverlay/NpcOverlay.java @@ -118,6 +118,18 @@ class NpcOverlay extends Overlay } if (highlightedNpc.isSwTile()) + { + int size = npcComposition.getSize(); + LocalPoint lp = actor.getLocalLocation(); + + int x = lp.getX() - ((size - 1) * Perspective.LOCAL_TILE_SIZE / 2); + int y = lp.getY() - ((size - 1) * Perspective.LOCAL_TILE_SIZE / 2); + + Polygon southWestTilePoly = Perspective.getCanvasTilePoly(client, new LocalPoint(x, y)); + renderPoly(graphics, borderColor, borderWidth, fillColor, southWestTilePoly); + } + + if (highlightedNpc.isSwTrueTile()) { LocalPoint lp = LocalPoint.fromWorld(client, actor.getWorldLocation()); if (lp != null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java index 9a76bdf0f2..7eb6a919d3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsConfig.java @@ -92,6 +92,18 @@ public interface NpcIndicatorsConfig extends Config @ConfigItem( position = 4, + keyName = "highlightSouthWestTrueTile", + name = "Highlight south west true tile", + description = "Configures whether or not NPC should be highlighted by south western true tile", + section = renderStyleSection + ) + default boolean highlightSouthWestTrueTile() + { + return false; + } + + @ConfigItem( + position = 5, keyName = "highlightOutline", name = "Highlight outline", description = "Configures whether or not the model of the NPC should be highlighted by outline", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 96ee6e1383..148fd3f97a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -662,6 +662,7 @@ public class NpcIndicatorsPlugin extends Plugin .tile(config.highlightTile()) .trueTile(config.highlightTrueTile()) .swTile(config.highlightSouthWestTile()) + .swTrueTile(config.highlightSouthWestTrueTile()) .outline(config.highlightOutline()) .name(config.drawNames()) .nameOnMinimap(config.drawMinimapNames()) From 1979ca14a7c53e1f793cbde9cefb66d64907865d Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Fri, 17 Jun 2022 09:01:38 -0700 Subject: [PATCH 6/7] entity hider: Don't hide NPCs which are alive at 0hp --- .../net/runelite/client/game/NpcUtil.java | 65 +++++++++++++++++++ .../entityhider/EntityHiderPlugin.java | 3 +- .../MenuEntrySwapperPlugin.java | 30 +-------- 3 files changed, 69 insertions(+), 29 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java diff --git a/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java b/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java new file mode 100644 index 0000000000..a39757ce95 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2022, Jordan Atwood + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.game; + +import net.runelite.api.NPC; +import net.runelite.api.NpcID; + +public class NpcUtil +{ + /** + * Returns whether an NPC is dying and can no longer be interacted with, or if it is still alive or in some special + * state where it can be 0hp without dying. (For example, Gargoyles and other slayer monsters with item weaknesses + * are not killed by reaching 0hp, so would not be dead based on that alone.) + * + * @param npc NPC to check whether it is dying + * @return {@code true} if the NPC is dying + */ + public static boolean isDying(final NPC npc) + { + final int id = npc.getId(); + switch (id) + { + // These NPCs hit 0hp but don't actually die + case NpcID.GARGOYLE: + case NpcID.GARGOYLE_413: + case NpcID.GARGOYLE_1543: + case NpcID.ZYGOMITE: + case NpcID.ZYGOMITE_1024: + case NpcID.ANCIENT_ZYGOMITE: + case NpcID.ROCKSLUG: + case NpcID.ROCKSLUG_422: + case NpcID.DESERT_LIZARD: + case NpcID.DESERT_LIZARD_460: + case NpcID.DESERT_LIZARD_461: + case NpcID.ICE_DEMON: + case NpcID.ICE_DEMON_7585: + return false; + default: + return npc.isDead(); + } + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java index ee63182d03..a3932376e3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java @@ -38,6 +38,7 @@ import net.runelite.client.callback.Hooks; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; +import net.runelite.client.game.NpcUtil; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -190,7 +191,7 @@ public class EntityHiderPlugin extends Plugin } // dead npcs can also be interacting so prioritize it over the interacting check - if (npc.isDead() && hideDeadNpcs) + if (NpcUtil.isDying(npc) && hideDeadNpcs) { return false; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 51485ea6fa..3c11c50207 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -55,7 +55,6 @@ import net.runelite.api.MenuAction; import net.runelite.api.MenuEntry; import net.runelite.api.NPC; import net.runelite.api.NPCComposition; -import net.runelite.api.NpcID; import net.runelite.api.ObjectComposition; import net.runelite.api.ParamID; import net.runelite.api.events.ClientTick; @@ -73,6 +72,7 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemVariationMapping; +import net.runelite.client.game.NpcUtil; import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; @@ -1275,33 +1275,7 @@ public class MenuEntrySwapperPlugin extends Plugin .filter(e -> { final NPC npc = e.getNpc(); - if (npc == null) - { - return true; - } - - final int id = npc.getId(); - switch (id) - { - // These NPCs hit 0hp but don't actually die - case NpcID.GARGOYLE: - case NpcID.GARGOYLE_413: - case NpcID.GARGOYLE_1543: - case NpcID.ZYGOMITE: - case NpcID.ZYGOMITE_1024: - case NpcID.ANCIENT_ZYGOMITE: - case NpcID.ROCKSLUG: - case NpcID.ROCKSLUG_422: - case NpcID.DESERT_LIZARD: - case NpcID.DESERT_LIZARD_460: - case NpcID.DESERT_LIZARD_461: - case NpcID.ICE_DEMON: - case NpcID.ICE_DEMON_7585: - return true; - default: - return !npc.isDead(); - - } + return npc == null || !NpcUtil.isDying(npc); }) .toArray(MenuEntry[]::new); if (oldEntries.length != newEntries.length) From 1ca381ea83e9cf771ea9c475df8b0ee7e26b6289 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Fri, 17 Jun 2022 09:39:23 -0700 Subject: [PATCH 7/7] game: Add more NPCs which do not die at 0hp --- .../net/runelite/client/game/NpcUtil.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java b/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java index a39757ce95..cb7fd3cdda 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java @@ -47,6 +47,23 @@ public class NpcUtil case NpcID.GARGOYLE: case NpcID.GARGOYLE_413: case NpcID.GARGOYLE_1543: + case NpcID.MARBLE_GARGOYLE: + case NpcID.MARBLE_GARGOYLE_7408: + case NpcID.DAWN: + case NpcID.DAWN_7852: + case NpcID.DAWN_7853: + case NpcID.DAWN_7884: + case NpcID.DAWN_7885: + case NpcID.DUSK: + case NpcID.DUSK_7851: + case NpcID.DUSK_7854: + case NpcID.DUSK_7855: + case NpcID.DUSK_7882: + case NpcID.DUSK_7883: + case NpcID.DUSK_7886: + case NpcID.DUSK_7887: + case NpcID.DUSK_7888: + case NpcID.DUSK_7889: case NpcID.ZYGOMITE: case NpcID.ZYGOMITE_1024: case NpcID.ANCIENT_ZYGOMITE: @@ -55,8 +72,11 @@ public class NpcUtil case NpcID.DESERT_LIZARD: case NpcID.DESERT_LIZARD_460: case NpcID.DESERT_LIZARD_461: - case NpcID.ICE_DEMON: - case NpcID.ICE_DEMON_7585: + case NpcID.GROWTHLING: + case NpcID.KALPHITE_QUEEN_963: + case NpcID.KALPHITE_QUEEN_965: + case NpcID.VETION: + case NpcID.VETION_REBORN: return false; default: return npc.isDead();