Takes roughly 50 degrees to slow down, so this is now hardcoded lol

This commit is contained in:
Alexander Munch-Hansen 2023-03-07 10:20:55 +01:00
parent de8a561eda
commit f3fa69f65f
2 changed files with 35 additions and 16 deletions

View File

@ -1,4 +1,4 @@
const display = [5, 6,7,8,9, 10]
const display = [5,6,7,8]
const not_pickable = [
6,7,8
]
]

View File

@ -77,21 +77,21 @@ console.log(spinChart.options.rotation);
/* --------------- Spinning Code --------------------- */
let counter = 0;
spinBtn.addEventListener("click", () => {
let spinAmount = 61;
let spinAmount = 71;
spinBtn.disabled = true;
text.innerHTML = `<p>Held og lykke!</p>`;
let slowing_down = false;
let keep_speed = false;
let pickable = spinValues.filter(item => !not_pickable.includes(item.value))
let target = pickable[Math.floor(Math.random() * pickable.length)]
let target_index = spinValues.findIndex(item => item.value === target.value);
target_degree = Math.floor(Math.random() * (target.maxDegree - target.minDegree - 5))
//slowing_down_degree = Math.floor(0.5 * (spinValues[target_index + 1].maxDegree - spinValues[target_index + 1].minDegree))
console.log(spinValues[target_index]);
//console.log(spinValues[target_index + 1]);
let slowing_down_target = spinValues[target_index + 1];
@ -101,37 +101,56 @@ spinBtn.addEventListener("click", () => {
let rotationInterval = window.setInterval(() => {
spinAmount *= 0.99
if (slowing_down) {
if (slowing_down && !keep_speed) {
spinAmount = Math.max(0.1, spinAmount)
} else if (keep_speed) {
spinAmount = Math.max(4, spinAmount)
} else {
spinAmount = Math.max(4, spinAmount)
}
spinChart.options.rotation += spinAmount;
spinChart.update();
if (spinChart.options.rotation >= 360) {
spinChart.options.rotation -= 360;
}
if (spinAmount <= 5 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree - target_degree + (degrees/2) ) {
//console.log(target_degree);
// it takes like 40-ish ticks to slow it down, so we need to compute when we need to start slowing down for this to always work
// Add a check, if it is too high when it passes halfway through or something like then continue at that speed for the next round
//if (spinAmount <= 8 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree + (degrees/display.length) - target_degree + 3 ) {
if (spinAmount <= 8 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < (target.maxDegree - target_degree) + 50 ) {
console.log((360 - spinChart.options.rotation) + " ---- " + (target.maxDegree - target_degree));
console.log(spinAmount + " Decreasing more")
slowing_down = true;
spinAmount *= 0.9
if (spinAmount <= 0.1 && target.minDegree <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree-target_degree) {
counter = counter + 1;
if (spinAmount <= 0.1 && target.minDegree-5 <= 360-spinChart.options.rotation && 360-spinChart.options.rotation < target.maxDegree) {
spinChart.update()
text.innerHTML = `<p>Gruppe nummer ${target.value} skal præsentere!</p>`;
clearInterval(rotationInterval);
spinBtn.disabled = false;
} else if (target.minDegree + 1 > 360-spinChart.options.rotation) {
spinAmount = 0;
console.log("halting");
console.log("counter " + counter);
} else if ( spinAmount <= 1 && target.minDegree + 3 > 360-spinChart.options.rotation) {
console.log("halting " + spinAmount );
spinChart.update()
text.innerHTML = `<p>Gruppe nummer ${target.value} skal præsentere!</p>`;
clearInterval(rotationInterval);
spinBtn.disabled = false;
console.log("counter " + counter);
}
else if ( spinAmount >= 1 && target.minDegree + 3 > 360-spinChart.options.rotation) {
keep_speed = true;
/*console.log("halting");
spinChart.update()
text.innerHTML = `<p>Gruppe nummer ${target.value} skal præsentere!</p>`;
clearInterval(rotationInterval);
spinBtn.disabled = false;
console.log("counter " + counter);*/
}
}
}, 10);
});
/* --------------- End Spin Wheel --------------------- */