Update AmmoCounter.java
Whilst training it's useful to know how much ammo per time unit you're losing. This can help predict how much ammo needs to be bought for training.
This commit is contained in:
@@ -25,6 +25,11 @@
|
|||||||
package net.runelite.client.plugins.ammo;
|
package net.runelite.client.plugins.ammo;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.ui.overlay.infobox.Counter;
|
import net.runelite.client.ui.overlay.infobox.Counter;
|
||||||
@@ -33,14 +38,18 @@ import net.runelite.client.util.StackFormatter;
|
|||||||
class AmmoCounter extends Counter
|
class AmmoCounter extends Counter
|
||||||
{
|
{
|
||||||
@Getter
|
@Getter
|
||||||
private final int itemID;
|
private int itemID;
|
||||||
private final String name;
|
private String name;
|
||||||
|
private int total;
|
||||||
|
private Instant time;
|
||||||
|
|
||||||
AmmoCounter(Plugin plugin, int itemID, int count, String name, BufferedImage image)
|
AmmoCounter(Plugin plugin, int itemID, int count, String name, BufferedImage image)
|
||||||
{
|
{
|
||||||
super(image, plugin, count);
|
super(image, plugin, count);
|
||||||
|
this.total = count;
|
||||||
this.itemID = itemID;
|
this.itemID = itemID;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
this.time = Instant.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -52,6 +61,16 @@ class AmmoCounter extends Counter
|
|||||||
@Override
|
@Override
|
||||||
public String getTooltip()
|
public String getTooltip()
|
||||||
{
|
{
|
||||||
return name;
|
return String.format("%s</br>Loss Rate: %s/h", name, lossRate());
|
||||||
|
}
|
||||||
|
|
||||||
|
int lossRate()
|
||||||
|
{
|
||||||
|
BigDecimal diff = BigDecimal.valueOf(total).subtract(BigDecimal.valueOf(getCount()));
|
||||||
|
BigDecimal timeSinceStart = BigDecimal.valueOf(Duration.between(time, Instant.now()).getSeconds())
|
||||||
|
.setScale(6, RoundingMode.UP);
|
||||||
|
BigDecimal timeSinceStartInHours = timeSinceStart.divide(BigDecimal.valueOf(3600), RoundingMode.UP);
|
||||||
|
BigDecimal ammoPerHour = diff.divide(timeSinceStartInHours, RoundingMode.HALF_UP);
|
||||||
|
return ammoPerHour.intValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user