您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add a toggle to hide completed challenges.
// ==UserScript== // @name EXP Simulator - Hide Completed challenge // @namespace EXP Simulator // @match https://zakuro98.github.io/EXP-Simulator/* // @grant none // @version 1.0.1 // @author Judgy // @description Add a toggle to hide completed challenges. // @license MIT // @run-at document-idle // ==/UserScript== let hideCompletedButton = null; let hideCompletedChallenges = true; function getButtonText() { return hideCompletedChallenges ? 'HIDE COMPLETED' : 'SHOW COMPLETED'; } function onToggleCompleted() { hideCompletedChallenges = !hideCompletedChallenges; updateChallengesDisplay(); if (hideCompletedButton === null) return; hideCompletedButton.innerText = getButtonText(); } function addToggleHideCompleted() { if (hideCompletedButton !== null) return; const buttonParent = document.getElementById('exit_center'); if (buttonParent === null) return; hideCompletedButton = document.createElement('button'); hideCompletedButton.id = 'hide_completed'; hideCompletedButton.classList.add('button'); hideCompletedButton.addEventListener('click', () => onToggleCompleted()); hideCompletedButton.innerText = getButtonText(); buttonParent.appendChild(hideCompletedButton); } function updateChallengesDisplay() { const maxCompletions = game.dk_bought[3] ? 20 : 12; for (const chg of challenge.challenges) { const element = challenge_map.get(chg); const completions = game.completions[chg.id - 1]; if (completions >= maxCompletions && hideCompletedChallenges === true){ element.classList.add('challenge_completed'); } else { element.classList.remove('challenge_completed'); } } addToggleHideCompleted(); } function addEvents() { const challengesTab = document.getElementById('challenges_tab'); if(challengesTab === null) { setTimeout(addEvents, 1000); return; } challengesTab.addEventListener('click', updateChallengesDisplay); } function addStylesheet() { const styles = ` .challenge_completed { display: none !important; } #hide_completed { display: block; margin-top: 0.0714em; margin-bottom: 1em; margin-left: 1em; }`; const styleElem = document.createElement("style"); styleElem.type = 'text/css'; styleElem.appendChild(document.createTextNode(styles)); document.head.appendChild(styleElem); } function refreshLoop(prevChallenge, prevQuantum) { const curChallenge = game.challenge; const curQuantum = game.quantum; if ((curChallenge == 0 && prevChallenge > 0) || curQuantum > prevQuantum) { updateChallengesDisplay(); } setTimeout(() => refreshLoop(curChallenge, curQuantum), 500); } addEvents(); addStylesheet(); refreshLoop(0, 0);