Greasy Fork

Greasy Fork is available in English.

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-25 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         MH: Valour Rift HUD Enhancer
// @author       Warden Slayer - Warden Slayer#2302
// @namespace    http://greasyfork.icu/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);
    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
//