Add config option to display time left on poison timers as ticks

This commit is contained in:
Lucwousin
2019-08-24 12:30:14 +02:00
parent 5b52ae3667
commit 19fcf15420
3 changed files with 28 additions and 4 deletions

View File

@@ -28,6 +28,7 @@ public class PoisonActorOverlay extends Overlay
{ {
private final PoisonPlugin plugin; private final PoisonPlugin plugin;
private final Client client; private final Client client;
private boolean displayTicks;
private int fontSize; private int fontSize;
private Font font; private Font font;
@@ -100,9 +101,14 @@ public class PoisonActorOverlay extends Overlay
cycle += POISON_TICK_TICKS; 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) private void renderOverlayFor(Graphics2D g, Actor actor, int damage, String timeLeft, boolean venomed)
@@ -142,4 +148,9 @@ public class PoisonActorOverlay extends Overlay
fontSize = size; fontSize = size;
} }
} }
void setDisplayTicks(boolean displayTicks)
{
this.displayTicks = displayTicks;
}
} }

View File

@@ -85,4 +85,15 @@ public interface PoisonConfig extends Config
{ {
return 8; return 8;
} }
@ConfigItem(
keyName = "ticks",
name = "Gametick timers",
description = "Use gameticks instead of seconds for timers",
position = 4
)
default boolean ticks()
{
return false;
}
} }

View File

@@ -41,6 +41,7 @@ import javax.inject.Singleton;
import lombok.Getter; import lombok.Getter;
import net.runelite.api.Actor; import net.runelite.api.Actor;
import net.runelite.api.Client; import net.runelite.api.Client;
import static net.runelite.api.Constants.GAME_TICK_LENGTH;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.Hitsplat; import net.runelite.api.Hitsplat;
import net.runelite.api.NPC; import net.runelite.api.NPC;
@@ -73,11 +74,11 @@ import net.runelite.client.util.ImageUtil;
@Singleton @Singleton
public class PoisonPlugin extends Plugin 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; static final int VENOM_THRESHOLD = 1000000;
private static final int VENOM_UTILITY = 999997; private static final int VENOM_UTILITY = 999997;
private static final int VENOM_MAXIMUM_DAMAGE = 20; 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_DISEASE;
private static final BufferedImage HEART_POISON; private static final BufferedImage HEART_POISON;
@@ -525,5 +526,6 @@ public class PoisonPlugin extends Plugin
this.showForPlayers = config.showForPlayers(); this.showForPlayers = config.showForPlayers();
this.showForNpcs = config.showForNpcs(); this.showForNpcs = config.showForNpcs();
this.fontSize = config.fontSize(); this.fontSize = config.fontSize();
actorOverlay.setDisplayTicks(config.ticks());
} }
} }