From 2deadaed2e9df1fb600d1756f76e591df27d9b31 Mon Sep 17 00:00:00 2001 From: Trevor Date: Tue, 24 Mar 2020 13:05:44 -0400 Subject: [PATCH] spec counter plugin: fix other NPC hitsplats affecting specs --- .../specialcounter/SpecialCounterPlugin.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java index 562b263a17..946c4d2cde 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java @@ -61,7 +61,7 @@ public class SpecialCounterPlugin extends Plugin { private int currentWorld = -1; private int specialPercentage = -1; - private boolean specialUsed; + private NPC specedNPC; private SpecialWeapon specialWeapon; private final Set interactedNpcIds = new HashSet<>(); @@ -129,7 +129,11 @@ public class SpecialCounterPlugin extends Plugin this.specialPercentage = specialPercentage; this.specialWeapon = usedSpecialWeapon(); - specialUsed = true; + Actor interacting = client.getLocalPlayer().getInteracting(); + if (interacting instanceof NPC) + { + specedNPC = (NPC) interacting; + } } @Subscribe @@ -152,9 +156,9 @@ public class SpecialCounterPlugin extends Plugin addInteracting(interactingId); } - if (specialUsed) + if (specedNPC == hitsplatApplied.getActor()) { - specialUsed = false; + specedNPC = null; if (specialWeapon != null) { @@ -189,6 +193,12 @@ public class SpecialCounterPlugin extends Plugin { NPC actor = npcDespawned.getNpc(); + // if the NPC despawns before the hitsplat is shown + if (specedNPC == actor) + { + specedNPC = null; + } + if (actor.isDead() && interactedNpcIds.contains(actor.getId())) { removeCounters();