User:XTCarnage/common.js

From Idle Clans wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
mw.loader.using(['jquery'], function() {
    $(document).ready(function() {
        // Create the slider
        var slider = $('<input type="range" min="0" max="100" value="0" id="time-slider">');
        var sliderLabel = $('<p>Adjust skilling speed: <span id="slider-value">0</span>%</p>');
        
        // Append slider to the page
        $(".mw-slider-md").append(sliderLabel).append(slider);

        $(".chance-per-action").each(function() {
            var levelRequirement = $(this).data("level");
            var percentageChance = 1.2 * 0.000005 * ((levelRequirement / 10) * 1.033)
            var textChance = "1 in " + Math.ceil(1 / percentageChance).toLocaleString();
            $(this).text(textChance);
        });

        $(".chance-per-day").each(function() {
            var levelRequirement = $(this).data("level");
            var time = $(this).data("time") / 100;
            var percentageChance = 1.2 * 0.000005 * ((levelRequirement / 10) * 1.033);
            var adjustedTime = time * (1 - slider.val() / 100)
            var actionsPerDay = 24 * 3600 / adjustedTime;
            var chancePerDay = 1 - Math.pow(((1 - percentageChance)), actionsPerDay);
            $(this).text((chancePerDay * 100).toFixed(2) + "%");
        });

        $(".average-hours").each(function() {
            var levelRequirement = $(this).data("level");
            var time = $(this).data("time") / 100;
            var percentageChance = 1.2 * 0.000005 * ((levelRequirement / 10) * 1.033);
            var adjustedTime = time * (1 - slider.val() / 100)
            var averageHours = 100 / percentageChance / 100 / 3600 * adjustedTime;
            $(this).text(averageHours.toFixed(0));
        });
        
        
        // Update the table values when the slider is moved
        slider.on("input", function() {
            var sliderValue = $(this).val();
            $("#slider-value").text(sliderValue);
            
            $(".chance-per-day").each(function() {
                var levelRequirement = $(this).data("level");
                var time = $(this).data("time") / 100;
                var percentageChance = 1.2 * 0.000005 * ((levelRequirement / 10) * 1.033);
                var adjustedTime = time * (1 - slider.val() / 100)
                var actionsPerDay = 24 * 3600 / adjustedTime;
                var chancePerDay = 1 - Math.pow(((1 - percentageChance)), actionsPerDay);
                $(this).text((chancePerDay * 100).toFixed(2) + "%");
            });
            $(".average-hours").each(function() {
                var levelRequirement = $(this).data("level");
                var time = $(this).data("time") / 100;
                var percentageChance = 1.2 * 0.000005 * ((levelRequirement / 10) * 1.033);
                var adjustedTime = time * (1 - slider.val() / 100)
                var averageHours = 100 / percentageChance / 100 / 3600 * adjustedTime;
                $(this).text(averageHours.toFixed(0));
            });
        });
    });
});