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 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;
}
}

View File

@@ -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;
}
}

View File

@@ -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());
}
}