From 19fcf154209b5dea75fc943cd2a2d95aadccb2ce Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Sat, 24 Aug 2019 12:30:14 +0200 Subject: [PATCH] Add config option to display time left on poison timers as ticks --- .../client/plugins/poison/PoisonActorOverlay.java | 15 +++++++++++++-- .../client/plugins/poison/PoisonConfig.java | 11 +++++++++++ .../client/plugins/poison/PoisonPlugin.java | 6 ++++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonActorOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonActorOverlay.java index 50fa729a60..ebb5af7d26 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonActorOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonActorOverlay.java @@ -28,6 +28,7 @@ public class PoisonActorOverlay extends Overlay { private final PoisonPlugin plugin; private final Client client; + private boolean displayTicks; private int fontSize; private Font font; @@ -100,9 +101,14 @@ public class PoisonActorOverlay extends Overlay cycle += POISON_TICK_TICKS; } - int timeLeftMillis = (cycle - tickCount) * Constants.GAME_TICK_LENGTH; + int timeLeft = (cycle - tickCount); - return String.valueOf(timeLeftMillis / 1000); + if (!displayTicks) + { + timeLeft = timeLeft * Constants.GAME_TICK_LENGTH / 1000; + } + + return String.valueOf(timeLeft); } private void renderOverlayFor(Graphics2D g, Actor actor, int damage, String timeLeft, boolean venomed) @@ -142,4 +148,9 @@ public class PoisonActorOverlay extends Overlay fontSize = size; } } + + void setDisplayTicks(boolean displayTicks) + { + this.displayTicks = displayTicks; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonConfig.java index 3f86cf9395..a694bf0ce7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonConfig.java @@ -85,4 +85,15 @@ public interface PoisonConfig extends Config { return 8; } + + @ConfigItem( + keyName = "ticks", + name = "Gametick timers", + description = "Use gameticks instead of seconds for timers", + position = 4 + ) + default boolean ticks() + { + return false; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java index a492797b2d..92933c3857 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java @@ -41,6 +41,7 @@ import javax.inject.Singleton; import lombok.Getter; import net.runelite.api.Actor; import net.runelite.api.Client; +import static net.runelite.api.Constants.GAME_TICK_LENGTH; import net.runelite.api.GameState; import net.runelite.api.Hitsplat; import net.runelite.api.NPC; @@ -73,11 +74,11 @@ import net.runelite.client.util.ImageUtil; @Singleton public class PoisonPlugin extends Plugin { - private static final int POISON_TICK_MILLIS = 18000; + static final int POISON_TICK_TICKS = 30; static final int VENOM_THRESHOLD = 1000000; private static final int VENOM_UTILITY = 999997; private static final int VENOM_MAXIMUM_DAMAGE = 20; - static final int POISON_TICK_TICKS = 30; + private static final int POISON_TICK_MILLIS = POISON_TICK_TICKS * GAME_TICK_LENGTH; private static final BufferedImage HEART_DISEASE; private static final BufferedImage HEART_POISON; @@ -525,5 +526,6 @@ public class PoisonPlugin extends Plugin this.showForPlayers = config.showForPlayers(); this.showForNpcs = config.showForNpcs(); this.fontSize = config.fontSize(); + actorOverlay.setDisplayTicks(config.ticks()); } } \ No newline at end of file