This commit is contained in:
Ganom
2019-05-13 01:47:34 -04:00
committed by vanni
parent fcc107db95
commit e28fe55e44

View File

@@ -29,7 +29,6 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.Duration; import java.time.Duration;
import java.time.Instant; 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;
@@ -42,6 +41,10 @@ class AmmoCounter extends Counter
private String name; private String name;
private int total; private int total;
private Instant time; private Instant time;
private BigDecimal ammoPerHour;
private BigDecimal timeSinceStartInHours;
private BigDecimal timeSinceStart;
private BigDecimal diff;
AmmoCounter(Plugin plugin, int itemID, int count, String name, BufferedImage image) AmmoCounter(Plugin plugin, int itemID, int count, String name, BufferedImage image)
{ {
@@ -61,16 +64,33 @@ class AmmoCounter extends Counter
@Override @Override
public String getTooltip() public String getTooltip()
{ {
return String.format("%s</br>Loss Rate: %s/h", name, lossRate()); if (lossRate() >= 1)
{
return String.format("%s</br>Loss Rate: %s/h", name, lossRate());
}
else
{
return "Need more data";
}
} }
int lossRate() int lossRate()
{ {
BigDecimal diff = BigDecimal.valueOf(total).subtract(BigDecimal.valueOf(getCount())); diff = BigDecimal.valueOf(total).subtract(BigDecimal.valueOf(getCount()));
BigDecimal timeSinceStart = BigDecimal.valueOf(Duration.between(time, Instant.now()).getSeconds()) timeSinceStart = BigDecimal.valueOf(Duration.between(time, Instant.now()).getSeconds())
.setScale(6, RoundingMode.UP); .setScale(6, RoundingMode.UP);
BigDecimal timeSinceStartInHours = timeSinceStart.divide(BigDecimal.valueOf(3600), RoundingMode.UP); if (timeSinceStart.compareTo(BigDecimal.ZERO) != 0)
BigDecimal ammoPerHour = diff.divide(timeSinceStartInHours, RoundingMode.HALF_UP); {
return ammoPerHour.intValue(); timeSinceStartInHours = timeSinceStart.divide(BigDecimal.valueOf(3600), RoundingMode.UP);
ammoPerHour = diff.divide(timeSinceStartInHours, RoundingMode.HALF_UP);
}
if (ammoPerHour != null)
{
return ammoPerHour.intValue();
}
else
{
return 0;
}
} }
} }