Skip to content

Instantly share code, notes, and snippets.

@ngld
Created November 23, 2019 20:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ngld/5d64b5247c5619b55ed3eb8c381c193d to your computer and use it in GitHub Desktop.
Save ngld/5d64b5247c5619b55ed3eb8c381c193d to your computer and use it in GitHub Desktop.
GP ETA test
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
<title>Simple GP Tracker</title>
</head>
<body>
<div id="display"></div>
</body>
<script type="text/javascript" src="https://quisquous.github.io/cactbot/resources/common.js"></script>
<script type="text/javascript">
let alerted = true;
let lastTen = [];
let lastGP = null;
let lastTime = null;
let gpRegen = 0;
let sound = new Audio('https://quisquous.github.io/cactbot/resources/sounds/BigWigs/Alert.ogg');
let display = document.getElementById('display');
addOverlayListener('onPlayerChangedEvent', (e) => {
if (lastGP !== null && lastTime !== null) {
lastTen.push((e.detail.currentGP - lastGP) / (Date.now() - lastTime));
if (lastTen.length > 10) lastTen.shift();
}
lastGP = e.detail.currentGP;
lastTime = Date.now();
if (e.detail.currentGP < e.detail.maxGP) {
alerted = false;
} else if(!alerted) {
sound.play();
alerted = true;
}
let eta = '';
if (gpRegen > 0) {
let etaTime = (e.detail.maxGP - lastGP) / gpRegen / 1000;
let etaMinutes = Math.floor(etaTime / 60) + '';
let etaSeconds = Math.floor(etaTime % 60) + '';
if (etaMinutes.length < 2) etaMinutes = '0' + etaMinutes;
if (etaSeconds.length < 2) etaSeconds = '0' + etaSeconds;
eta = `ETA: ${etaMinutes}:${etaSeconds}`;
}
display.innerText = `${lastGP} / ${e.detail.maxGP} ${eta}`;
});
setInterval(() => {
let gpSum = 0;
for (let part of lastTen) gpSum += part;
gpRegen = gpSum / lastTen.length;
}, 1000);
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment