From fae4183c2eca74c361e660542019a6860893503b Mon Sep 17 00:00:00 2001 From: Dylan white Date: Tue, 4 Aug 2020 00:47:35 -0500 Subject: [PATCH 1/3] Fixes nightmare loot tracking --- .../java/net/runelite/api/AnimationID.java | 1 + .../net/runelite/client/game/LootManager.java | 61 +++++++++---------- 2 files changed, 29 insertions(+), 33 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/AnimationID.java index f0dd7ef524..51f8e58852 100644 --- a/runelite-api/src/main/java/net/runelite/api/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/AnimationID.java @@ -292,6 +292,7 @@ public final class AnimationID public static final int ROCKSLUG_DEATH = 1568; public static final int ZYGOMITE_DEATH = 3327; public static final int IMP_DEATH = 172; + public static final int NIGHTMARE_DEATH = 8612; // POH Animations public static final int INCENSE_BURNER = 3687; diff --git a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java index 62c88cf0d5..40ce76cc10 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java @@ -65,26 +65,27 @@ import net.runelite.client.events.PlayerLootReceived; public class LootManager { private static final Map NPC_DEATH_ANIMATIONS = ImmutableMap.builder() - .put(NpcID.CAVE_KRAKEN, AnimationID.CAVE_KRAKEN_DEATH) - .put(NpcID.CRYSTALLINE_BAT, AnimationID.CRYSTALLINE_BAT_DEATH) - .put(NpcID.CRYSTALLINE_RAT, AnimationID.CRYSTALLINE_RAT_DEATH) - .put(NpcID.CRYSTALLINE_SPIDER, AnimationID.CRYSTALLINE_SPIDER_DEATH) - .put(NpcID.CRYSTALLINE_WOLF, AnimationID.CRYSTALLINE_WOLF_DEATH) - .put(NpcID.CRYSTALLINE_UNICORN, AnimationID.CRYSTALLINE_UNICORN_DEATH) - .put(NpcID.CRYSTALLINE_SCORPION, AnimationID.CORRUPTED_SCORPION_DEATH) - .put(NpcID.CRYSTALLINE_DRAGON, AnimationID.CRYSTALLINE_DRAGON_DEATH) - .put(NpcID.CRYSTALLINE_DARK_BEAST, AnimationID.CRYSTALLINE_DARK_BEAST_DEATH) - .put(NpcID.CRYSTALLINE_BEAR, AnimationID.CRYSTALLINE_BEAR_DEATH) - .put(NpcID.CORRUPTED_BAT, AnimationID.CRYSTALLINE_BAT_DEATH) - .put(NpcID.CORRUPTED_RAT, AnimationID.CRYSTALLINE_RAT_DEATH) - .put(NpcID.CORRUPTED_SPIDER, AnimationID.CRYSTALLINE_SPIDER_DEATH) - .put(NpcID.CORRUPTED_WOLF, AnimationID.CRYSTALLINE_WOLF_DEATH) - .put(NpcID.CORRUPTED_UNICORN, AnimationID.CRYSTALLINE_UNICORN_DEATH) - .put(NpcID.CORRUPTED_SCORPION, AnimationID.CORRUPTED_SCORPION_DEATH) - .put(NpcID.CORRUPTED_DRAGON, AnimationID.CRYSTALLINE_DRAGON_DEATH) - .put(NpcID.CORRUPTED_DARK_BEAST, AnimationID.CRYSTALLINE_DARK_BEAST_DEATH) - .put(NpcID.CORRUPTED_BEAR, AnimationID.CRYSTALLINE_BEAR_DEATH) - .build(); + .put(NpcID.CAVE_KRAKEN, AnimationID.CAVE_KRAKEN_DEATH) + .put(NpcID.CRYSTALLINE_BAT, AnimationID.CRYSTALLINE_BAT_DEATH) + .put(NpcID.CRYSTALLINE_RAT, AnimationID.CRYSTALLINE_RAT_DEATH) + .put(NpcID.CRYSTALLINE_SPIDER, AnimationID.CRYSTALLINE_SPIDER_DEATH) + .put(NpcID.CRYSTALLINE_WOLF, AnimationID.CRYSTALLINE_WOLF_DEATH) + .put(NpcID.CRYSTALLINE_UNICORN, AnimationID.CRYSTALLINE_UNICORN_DEATH) + .put(NpcID.CRYSTALLINE_SCORPION, AnimationID.CORRUPTED_SCORPION_DEATH) + .put(NpcID.CRYSTALLINE_DRAGON, AnimationID.CRYSTALLINE_DRAGON_DEATH) + .put(NpcID.CRYSTALLINE_DARK_BEAST, AnimationID.CRYSTALLINE_DARK_BEAST_DEATH) + .put(NpcID.CRYSTALLINE_BEAR, AnimationID.CRYSTALLINE_BEAR_DEATH) + .put(NpcID.CORRUPTED_BAT, AnimationID.CRYSTALLINE_BAT_DEATH) + .put(NpcID.CORRUPTED_RAT, AnimationID.CRYSTALLINE_RAT_DEATH) + .put(NpcID.CORRUPTED_SPIDER, AnimationID.CRYSTALLINE_SPIDER_DEATH) + .put(NpcID.CORRUPTED_WOLF, AnimationID.CRYSTALLINE_WOLF_DEATH) + .put(NpcID.CORRUPTED_UNICORN, AnimationID.CRYSTALLINE_UNICORN_DEATH) + .put(NpcID.CORRUPTED_SCORPION, AnimationID.CORRUPTED_SCORPION_DEATH) + .put(NpcID.CORRUPTED_DRAGON, AnimationID.CRYSTALLINE_DRAGON_DEATH) + .put(NpcID.CORRUPTED_DARK_BEAST, AnimationID.CRYSTALLINE_DARK_BEAST_DEATH) + .put(NpcID.CORRUPTED_BEAR, AnimationID.CRYSTALLINE_BEAR_DEATH) + .put(NpcID.THE_NIGHTMARE_9430, AnimationID.NIGHTMARE_DEATH) + .build(); private final EventBus eventBus; private final Client client; @@ -98,15 +99,14 @@ public class LootManager @Inject private LootManager( - final EventBus eventBus, - final Client client + final EventBus eventBus, + final Client client ) { this.eventBus = eventBus; this.client = client; eventBus.subscribe(GameTick.class, this, this::onGameTick); - eventBus.subscribe(NpcDefinitionChanged.class, this, this::onNpcChanged); eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned); @@ -247,6 +247,11 @@ public class LootManager // Big Kraken drops loot wherever player is standing when animation starts. krakenPlayerLocation = client.getLocalPlayer().getWorldLocation(); } + else if (id == NpcID.THE_NIGHTMARE_9430) + { + delayedLootNpc = npc; + delayedLootTickLimit = 16; + } else { // These NPCs drop loot on death animation, which is right now. @@ -255,16 +260,6 @@ public class LootManager } } - private void onNpcChanged(NpcDefinitionChanged npcChanged) - { - final NPC npc = npcChanged.getNpc(); - if (npc.getId() == NpcID.THE_NIGHTMARE_9433) - { - delayedLootNpc = npc; - delayedLootTickLimit = 15; - } - } - private void onGameTick(GameTick gameTick) { if (delayedLootNpc != null && delayedLootTickLimit-- > 0) From 399562d1109e6aa3cb0b01f059772e70b6a91b19 Mon Sep 17 00:00:00 2001 From: Dylan white Date: Tue, 4 Aug 2020 00:48:32 -0500 Subject: [PATCH 2/3] Fixes nightmare loot tracking --- .../src/main/java/net/runelite/client/game/LootManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java index 40ce76cc10..ba1fc0ba78 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java @@ -99,8 +99,8 @@ public class LootManager @Inject private LootManager( - final EventBus eventBus, - final Client client + final EventBus eventBus, + final Client client ) { this.eventBus = eventBus; From 6e146b2f419da559da835f0f3a43d452926675c2 Mon Sep 17 00:00:00 2001 From: Dylan white Date: Tue, 4 Aug 2020 00:53:19 -0500 Subject: [PATCH 3/3] removed unused import --- .../src/main/java/net/runelite/client/game/LootManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java index ba1fc0ba78..39181bb8cb 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java @@ -53,7 +53,6 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.ItemDespawned; import net.runelite.api.events.ItemQuantityChanged; import net.runelite.api.events.ItemSpawned; -import net.runelite.api.events.NpcDefinitionChanged; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.PlayerDespawned; import net.runelite.client.eventbus.EventBus;