diff --git a/src/main/java/io/blert/challenges/tob/rooms/bloat/BloatDataTracker.java b/src/main/java/io/blert/challenges/tob/rooms/bloat/BloatDataTracker.java index 072211e..024b040 100644 --- a/src/main/java/io/blert/challenges/tob/rooms/bloat/BloatDataTracker.java +++ b/src/main/java/io/blert/challenges/tob/rooms/bloat/BloatDataTracker.java @@ -121,7 +121,7 @@ protected void onTick() { } if (tick == nextUpTick) { - handleBloatUp(bloat.getNpc(), tick); + handleBloatUp(tick); } else if (currentDownTick == BLOAT_STOMP_TICK && bloat != null) { WorldPoint point = getWorldLocation(bloat); dispatchEvent(new NpcAttackEvent(getStage(), tick, point, NpcAttack.TOB_BLOAT_STOMP, bloat)); @@ -174,7 +174,7 @@ protected void onAnimation(AnimationChanged event) { if (npc.getAnimation() == BLOAT_DOWN_ANIMATION) { handleBloatDown(npc, tick); } else if (state == State.DOWN && npc.getAnimation() == -1) { - handleBloatUp(npc, tick); + handleBloatUp(tick); } } @@ -201,12 +201,12 @@ private void handleBloatDown(NPC bloat, int tick) { dispatchEvent(new BloatDownEvent(tick, getWorldLocation(bloat), currentDown, tick - lastUpTick)); } - private void handleBloatUp(NPC bloat, int tick) { + private void handleBloatUp(int tick) { lastUpTick = tick; nextUpTick = -1; state = State.WALKING; log.debug("Bloat up {} tick {}", currentDown, lastUpTick); - dispatchEvent(new BloatUpEvent(tick, getWorldLocation(bloat))); + dispatchEvent(new BloatUpEvent(tick)); } } diff --git a/src/main/java/io/blert/core/DataTracker.java b/src/main/java/io/blert/core/DataTracker.java index 04c4b7e..d13fe2e 100644 --- a/src/main/java/io/blert/core/DataTracker.java +++ b/src/main/java/io/blert/core/DataTracker.java @@ -467,7 +467,7 @@ private void updatePlayers() { client.getTopLevelWorldView().players().forEach(player -> { Raider raider = challenge.getRaider(player.getName()); - if (raider == null || raider.isDead()) { + if (raider == null || raider.isDead() && raider.getDeathTick() < tick) { return; } @@ -478,7 +478,7 @@ private void updatePlayers() { } private void checkForPlayerActions(@NonNull Raider raider) { - if (raider.isDead() && raider.getDeathTick() != getTick()) { + if (raider.isDead() && raider.getDeathTick() < getTick()) { return; } diff --git a/src/main/java/io/blert/events/tob/BloatUpEvent.java b/src/main/java/io/blert/events/tob/BloatUpEvent.java index 0744c7d..6cadc8f 100644 --- a/src/main/java/io/blert/events/tob/BloatUpEvent.java +++ b/src/main/java/io/blert/events/tob/BloatUpEvent.java @@ -25,11 +25,10 @@ import io.blert.challenges.tob.rooms.Room; import io.blert.events.EventType; -import net.runelite.api.coords.WorldPoint; public class BloatUpEvent extends TobEvent { - public BloatUpEvent(int tick, WorldPoint point) { - super(EventType.BLOAT_UP, Room.BLOAT, tick, point); + public BloatUpEvent(int tick) { + super(EventType.BLOAT_UP, Room.BLOAT, tick, null); } @Override