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;
|
||||
|
||||
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 net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.ui.overlay.infobox.Counter;
|
||||
@@ -33,14 +38,18 @@ import net.runelite.client.util.StackFormatter;
|
||||
class AmmoCounter extends Counter
|
||||
{
|
||||
@Getter
|
||||
private final int itemID;
|
||||
private final String name;
|
||||
private int itemID;
|
||||
private String name;
|
||||
private int total;
|
||||
private Instant time;
|
||||
|
||||
AmmoCounter(Plugin plugin, int itemID, int count, String name, BufferedImage image)
|
||||
{
|
||||
super(image, plugin, count);
|
||||
this.total = count;
|
||||
this.itemID = itemID;
|
||||
this.name = name;
|
||||
this.time = Instant.now();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -52,6 +61,16 @@ class AmmoCounter extends Counter
|
||||
@Override
|
||||
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