Greasy Fork

MH: Valour Rift HUD Enhancer

Changes the text that appears in the Valour Rift hud tooltips to give you the info you actually want to see

目前为 2019-11-27 提交的版本。查看 最新版本

// ==UserScript==
// @name         MH: Valour Rift HUD Enhancer
// @author       Warden Slayer - Warden Slayer#2302
// @namespace    https://greasyfork.org/en/users/227259-wardenslayer
// @version      1.1
// @description  Changes the text that appears in the Valour Rift hud tooltips to give you the info you actually want to see
// @include      https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// @include      http://www.mousehuntgame.com/*
// @include      https://www.mousehuntgame.com/*
// ==/UserScript==
$(document).ready(function() {
    let page = hg.utils.PageUtil.getCurrentPageTemplateType();
    if ($(".hudLocationContent.rift_valour").get(0)) {
        updateHUD();
    }
});

$('.valourRiftHUD-floorProgress.mousehuntTooltipParent').mouseover(function() {
    updateHUD()
});
$('.valourRiftHUD-huntsRemaining.mousehuntTooltipParent').mouseover(function() {
    updateHUD()
});




function updateHUD(resultString) {
    //How far is the next eclipse floor?
    let floorProg = $('.valourRiftHUD-floorProgress.mousehuntTooltipParent');
    let towerStateA = floorProg.find('.valourRiftHUD-state.tower');
    let stepsTillBoss = calculateSteps('steps');
    let bossProgress = "";
    if ($('.bossProgress').length > 0) {
        bossProgress = $('.bossProgress');
        if (stepsTillBoss == 0) {
            bossProgress.text(" You are on the eclipse floor. Turn on your champion's fire");
        } else if (stepsTillBoss == 1) {
            bossProgress.text('   ' + stepsTillBoss + ' step untill the next eclipse floor');
        } else {
            bossProgress.text('   ' + stepsTillBoss + ' steps untill the next eclipse floor');
        }
    } else {
        bossProgress = $('<span />').addClass('bossProgress');
        if (stepsTillBoss == 0) {
            bossProgress.text(" You are on the eclipse floor. Turn on your champion's fire");
        } else if (stepsTillBoss == 1) {
            bossProgress.text('   ' + stepsTillBoss + ' step untill the next eclipse floor');
        } else {
            bossProgress.text('   ' + stepsTillBoss + ' steps untill the next eclipse floor');
        }
        towerStateA.children().remove();
        towerStateA.text('');
        towerStateA.append(bossProgress);
    }
    //
    //Can I make it to the next eclipse floor?
    let huntsRem = $('.valourRiftHUD-huntsRemaining.mousehuntTooltipParent');
    let towerStateB = huntsRem.find('.valourRiftHUD-state.tower');
    let numHuntsRem = parseInt(towerStateB.find('.valourRiftHUD-huntsRemaining-value').text(), 10);
    if (isNaN(numHuntsRem)) {return false}
    let SPH = ((stepsTillBoss) / numHuntsRem).toFixed(2);
    let huntToolTip = huntsRem.find('.mousehuntTooltip.tight.right.noEvents');
    let ToolTipText = "";
    if (stepsTillBoss == 0) {
        ToolTipText = 'You are on the eclipse floor now. Good Luck!';
    } else {
        ToolTipText = 'To get to the next eclipse floor, you need a minimum of ' + SPH + ' steps per hunt';
    }
    huntToolTip.text(ToolTipText);
    //
    //What will my tower loot pool look like if I retreat now?
    let UU = $('.valourRiftHUD-activeAugmentations').find('.valourRiftHUD-activeAugmentation.tu.mousehuntTooltipParent').hasClass('active');
    let lootCont = $('.valourRiftHUD-towerLootContainer');
    let sigils = $("[data-item-type|='rift_gaunt_upgrade_a_stat_item']");
    let secrets = $("[data-item-type|='rift_gaunt_upgrade_b_stat_item']");
    let numSigils = parseInt(sigils.first().text(), 10);
    let numSecrets = parseInt(secrets.first().text(), 10);
    let cacheSigils = 0;
    let cacheSecrets = 0;
    let retreat = $('.valourRiftHUD-dialog-state.retreat');
    let rewardCache = retreat.find('.valourRiftHUD-dialog-item-name');
    rewardCache.each(function() {
        if ($(this).text() == 'Tower Sigil') {
            cacheSigils = cacheSigils + parseInt($(this).siblings().text(), 10);
        } else if ($(this).text() == 'Tower Secrets') {
            cacheSecrets = cacheSecrets + parseInt($(this).siblings().text(), 10);
        }
    });
    let sigilString = (cacheSigils + numSigils) + ' total sigils including cache';
    let secretsString = (cacheSecrets + numSecrets) + ' total secrets including cache';
    let nextFrags = calculateSteps('loot');
    let fragString = '';
    let coreString = '';
    if (UU == true) {
        fragString = 'No fragement drops in ultimate umbra mode';
        coreString = 'The next total eclipse drops ' + nextFrags + ' core(s)';
    } else {
        fragString = 'The next shade drops ' + nextFrags + ' fragment(s)';
        coreString = 'No core drops outside of ultimate umbra mode';
    }
    //
    //Some social commentary courtesy of Warden Slayer
    let retreatButton = $('.valourRiftHUD-retreatButton.mousehuntTooltipParent');
    retreatButton.find('.valourRiftHUD-state.tower').text('  Only mice retreat! Upward to Victory!')
    //
    if (resultString == 'Sigil') {
        return sigilString
    } else if (resultString == 'Secrets') {
        return secretsString
    } else if (resultString == 'Frags') {
        return fragString
    } else if (resultString == 'Cores') {
        return coreString
    } else {
        return false
    }



}
$("[title|='Tower Sigil']").mouseover(function() {
    $("[title|='Tower Sigil']").attr('title', updateHUD('Sigil'));
});
$("[title|='Tower Secrets']").mouseover(function() {
    $("[title|='Tower Secrets']").attr('title', updateHUD('Secrets'));
})
$("[title|='Fragment of the Eclipse']").mouseover(function() {
    $("[title|='Fragment of the Eclipse']").attr('title', updateHUD('Frags'));
})
$("[title|='Core of the Eclipse']").mouseover(function() {
    $("[title|='Core of the Eclipse']").attr('title', updateHUD('Cores'));
})


function calculateSteps(hinge) {
    let towerState = $('.valourRiftHUD-state.tower');
    let stepsTaken = parseInt(towerState.find('.valourRiftHUD-stepsTaken-value').text().replace(',', ''), 10);
    let stepsRem = 0;
    let nextFrags = 0;
    if (stepsTaken < 140) {
        stepsRem = 140 - stepsTaken;
        nextFrags = 1;
    } else if (stepsTaken == 140) {
        nextFrags = 1;
    } else if (stepsTaken < 351) {
        stepsRem = 351 - stepsTaken;
        nextFrags = 3;
    } else if (stepsTaken == 351) {
        nextFrags = 3;
    } else if (stepsTaken < 632) {
        stepsRem = 632 - stepsTaken;
        nextFrags = 5;
    } else if (stepsTaken == 632) {
        nextFrags = 5;
    } else if (stepsTaken < 983) {
        stepsRem = 983 - stepsTaken;
        nextFrags = 7;
    } else if (stepsTaken == 983) {
        nextFrags = 7;
    } else if (stepsTaken < 1404) {
        stepsRem = 1404 - stepsTaken;
        nextFrags = 9;
    } else if (stepsTaken == 1404) {
        nextFrags = 9;
    } else if (stepsTaken < 1895) {
        stepsRem = 1895 - stepsTaken;
        nextFrags = 11;
    } else if (stepsTaken == 1895) {
        nextFrags = 11;
    } else if (stepsTaken < 2456) {
        stepsRem = 2456 - stepsTaken;
        nextFrags = 13;
    } else if (stepsTaken == 2456) {
        nextFrags = 13;
    } else if (stepsTaken < 3087) {
        stepsRem = 3087 - stepsTaken;
        nextFrags = 15;
    } else if (stepsTaken == 3087) {
        nextFrags = 15;
    } else if (stepsTaken < 3788) {
        stepsRem = 3788 - stepsTaken;
        nextFrags = 17;
    } else if (stepsTaken == 3788) {
        nextFrags = 17;
    } else if (stepsTaken < 4559) {
        stepsRem = 4559 - stepsTaken;
        nextFrags = 19;
    } else if (stepsTaken == 4559) {
        nextFrags = 19;
    } else if (stepsTaken < 5400) {
        stepsRem = 5400 - stepsTaken;
        nextFrags = 22;
    } else if (stepsTaken == 5400) {
        nextFrags = 22;
    } else if (stepsTaken < 6311) {
        stepsRem = 6311 - stepsTaken;
        nextFrags = 25;
    } else if (stepsTaken == 6311) {
        nextFrags = 25;
    } else if (stepsTaken < 7292) {
        stepsRem = 7292 - stepsTaken;
        nextFrags = 28;
    } else if (stepsTaken == 7292) {
        nextFrags = 28;
    } else if (stepsTaken < 8343) {
        stepsRem = 8343 - stepsTaken;
        nextFrags = 31;
    } else if (stepsTaken == 8343) {
        nextFrags = 31;
    } else if (stepsTaken < 9464) {
        stepsRem = 9464 - stepsTaken;
        nextFrags = 34;
    } else if (stepsTaken == 9464) {
        nextFrags = 34;
    } else if (stepsTaken < 10655) {
        stepsRem = 10655 - stepsTaken;
        nextFrags = 37;
    } else if (stepsTaken == 10655) {
        nextFrags = 37;
    } else if (stepsTaken < 11916) {
        stepsRem = 11916 - stepsTaken;
        nextFrags = 40;
    } else if (stepsTaken == 11916) {
        nextFrags = 40;
    } else if (stepsTaken < 13247) {
        stepsRem = 13247 - stepsTaken;
        nextFrags = 43;
    } else if (stepsTaken == 13247) {
        nextFrags = 43;
    } else if (stepsTaken < 14648) {
        stepsRem = 14648 - stepsTaken;
        nextFrags = 46;
    } else if (stepsTaken == 14648) {
        nextFrags = 43;
    } else if (stepsTaken < 16119) {
        stepsRem = 16119 - stepsTaken;
        nextFrags = 46;
    } else if (stepsTaken == 16119) {
        nextFrags = 46;
    } else if (stepsTaken < 17660) {
        stepsRem = 17660 - stepsTaken;
        nextFrags = 49;
    } else if (stepsTaken == 17660) {
        nextFrags = 49;
    } else if (stepsTaken < 19271) {
        stepsRem = 19271 - stepsTaken;
        nextFrags = 52;
    } else if (stepsTaken == 19271) {
        nextFrags = 52;
    } else if (stepsTaken < 20952) {
        stepsRem = 20952 - stepsTaken;
        nextFrags = 55;
    } else if (stepsTaken == 20952) {
        nextFrags = 55;
    } else if (stepsTaken < 22703) {
        stepsRem = 22703 - stepsTaken;
        nextFrags = 58;
    } else if (stepsTaken == 22703) {
        nextFrags = 58;
    } else if (stepsTaken < 24524) {
        stepsRem = 24524 - stepsTaken;
        nextFrags = 61;
    } else if (stepsTaken == 24524) {
        nextFrags = 61;
    }
    if (hinge == 'steps') {
        return stepsRem
    } else {
        return nextFrags
    }
}


//to do
//outside tower
//high five friends
//