User:XTCarnage/common.js: Difference between revisions

From Idle Clans wiki
mNo edit summary
(Blanked the page)
Tag: Blanking
 
Line 1: Line 1:
mw.loader.using(['jquery'], function() {
    $(document).ready(function() {
        // Create the slider
        var slider = $('<input type="range" min="0" max="80" value="0" id="time-slider">');
        var sliderLabel = $('<p>Adjust skilling speed: <span id="slider-value">0</span>%</p>');


        // Ticket chancing formula calculation
        function calculateChancePerAction(levelRequirement)
        {
            return 1.2 * 0.000005 * ((levelRequirement / 10) * 1.033);
        }
        // Average hours Column
        function applyAverageHoursChanges()
        {
            $(".average-hours").each(function() {
                var levelRequirement = $(this).data("level");
                var time = $(this).data("time") / 100;
                var decimalChance = calculateChancePerAction(levelRequirement);
                var actionTimeWithSkillSpeed = time * (1 - slider.val() / 100)
                var averageActionsPerTicket = 1 / decimalChance;
                var averageTimeSpentPerTicket = averageActionsPerTicket * actionTimeWithSkillSpeed;
                var averageHours = averageTimeSpentPerTicket / 3600 ;
                $(this).text(averageHours.toFixed(0));
            });
        }
        // Chance per action Column
        function applyChancePerActionChanges()
        {
            $(".chance-per-action").each(function() {
                var levelRequirement = $(this).data("level");
                var decimalChance = calculateChancePerAction(levelRequirement);
                var averageActionsPerTicket = 1 / decimalChance;
                var textChance = "1 in " + Math.ceil(averageActionsPerTicket).toLocaleString();
                $(this).text(textChance);
            });
        }
        // Chance for at least 1 ticket per day Column
        function applyChancePerDayChanges()
        {
            $(".chance-per-day").each(function() {
                var levelRequirement = $(this).data("level");
                var time = $(this).data("time") / 100;
                var decimalChance = calculateChancePerAction(levelRequirement);
                var actionTimeWithSkillSpeed = time * (1 - slider.val() / 100)
                var actionsPerDay = 24 * 3600 / actionTimeWithSkillSpeed;
                var failureChance = 1 - decimalChance;
                var consecutiveFailureChance = Math.pow(failureChance, actionsPerDay);
                var successChance = 1 - consecutiveFailureChance;
                var successPercentage = (successChance * 100).toFixed(2);
                $(this).text(successPercentage + "%");
            });
        }
       
        // Append slider to the page
        $(".mw-slider-md").append(sliderLabel).append(slider);
        // Initial calcualtion after load
        applyChancePerActionChanges();
        applyChancePerDayChanges();
        applyAverageHoursChanges();
        // Update the table values when the slider is moved
        slider.on("input", function() {
            var sliderValue = $(this).val();
            $("#slider-value").text(sliderValue);
            applyChancePerDayChanges();
            applyAverageHoursChanges();
        });
    });
});

Latest revision as of 05:48, 20 February 2025