From dc6729ad2b8507b288c98eadb0fea4bd17a6dd71 Mon Sep 17 00:00:00 2001 From: William Elwood Date: Wed, 17 Jun 2015 13:49:53 +0100 Subject: [PATCH] Combine lane and game player counts into the same function, move the lane info into the existing lane UI (+5 squashed commit) Squashed commit: [e44a448] Refactor breadcrumbs code [c5f7604] Tidy up [2b2f3f1] ESLint is a cruel mistress. Cruel but fair. [3636c16] Oh ESLint, why do you torment me so? [d77bb42] Fix `m_rgLaneData.forEach is not a function` (Valve uses m_rgLaneData like an array but declares it as an object) --- autoPlay.user.js | 124 +++++++++++++---------------------------------- 1 file changed, 35 insertions(+), 89 deletions(-) diff --git a/autoPlay.user.js b/autoPlay.user.js index cb6cf07..8a199aa 100644 --- a/autoPlay.user.js +++ b/autoPlay.user.js @@ -85,8 +85,6 @@ var showedUpdateInfo = getPreferenceBoolean("showedUpdateInfo", false); - var lane_info = {}; - var UPGRADES = { LIGHT_ARMOR: 0, AUTO_FIRE_CANNON: 1, @@ -269,12 +267,6 @@ }; document.querySelector(".game_options").insertBefore(egg, document.querySelector(".leave_game_btn")); - // Add "players in game" label - var titleActivity = document.querySelector('.title_activity'); - var playersInGame = document.createElement('span'); - playersInGame.innerHTML = '0/1500 Players in room
'; - titleActivity.insertBefore(playersInGame, titleActivity.firstChild); - // Fix alignment var activity = document.getElementById("activitylog"); activity.style.marginTop = "33px"; @@ -301,8 +293,6 @@ options_box.style.marginLeft = "auto"; options_box.style.marginRight = "auto"; - var info_box = options_box.cloneNode(true); - var options1 = document.createElement("div"); options1.style["-moz-column-count"] = 3; options1.style["-webkit-column-count"] = 3; @@ -329,21 +319,6 @@ options_box.appendChild(options1); - info_box.innerHTML = "GAME INFO
"; - info_box.className = "info_box"; - info_box.style.right = "0px"; - lane_info = document.createElement("div"); - lane_info.style["-moz-column-count"] = 3; - lane_info.style["-webkit-column-count"] = 3; - lane_info.style["column-count"] = 3; - - lane_info.appendChild(document.createElement("div")); - lane_info.appendChild(document.createElement("div")); - lane_info.appendChild(document.createElement("div")); - - info_box.appendChild(lane_info); - options_box.parentElement.appendChild(info_box); - var leave_game_box = document.querySelector(".leave_game_helper"); leave_game_box.parentElement.removeChild(leave_game_box); @@ -373,25 +348,13 @@ w.g_Minigame.CurrentScene().TrySpendBadgePoints(w.$J(""), badgePoints % 100 ); } - function updateLaneData() { - var element_names = {1:":shelterwildfire:", 2:":waterrune:", 3:":Wisp:", 4:":FateTree:"}; - for(var i = 0; i < 3; i++) { - var element = s().m_rgGameData.lanes[i].element; - var abilities = s().m_rgLaneData[i].abilities; - if(!abilities) { - abilities = {}; - } - var enemies = []; - for (var j = 0; j < 4; j++) { - var enemy = s().GetEnemy(i, j); - if (enemy) { - enemies.push(enemy); - } - } - var players = s().m_rgLaneData[i].players; - var output = "Lane " + (i+1) + " -
" + players + " players"; - lane_info.children[i].innerHTML = output; - } + function updateStatisticsUI() { + var totalPlayers = 0; + w.$J.each(s().m_rgLaneData, function(i, lane) { + totalPlayers += lane.players; + w.$J('#lane' + i + '_player_count').text(lane.players + ' players'); + }); + w.$J('#players_in_game').text(totalPlayers + '/1500'); } function fixActiveCapacityUI() { @@ -455,7 +418,7 @@ wormHoleConstantUseOverride = (getRemainingTime()*3 < getItemCount(ABILITIES.WORMHOLE)) || (getRemainingTime()*3 < getItemCount(ABILITIES.LIKE_NEW)); wormHoleConstantUse = ((level % control.rainingRounds > 0) && (level % control.rainingRounds < 100 - control.rainingSafeRounds)) || wormHoleConstantUseOverride; - updateLaneData(); + updateStatisticsUI(); attemptRespawn(); if (wormholeInterval) { @@ -507,7 +470,6 @@ useReviveIfRelevant(level); } - updatePlayersInGame(); if (level !== lastLevel) { lastLevel = level; @@ -979,13 +941,6 @@ s().m_rgClickNumbers.push(text); } - function updatePlayersInGame() { - var totalPlayers = s().m_rgLaneData[0].players + - s().m_rgLaneData[1].players + - s().m_rgLaneData[2].players; - document.getElementById("players_in_game").innerHTML = totalPlayers + "/1500"; - } - function goToRainingLane() { // On a WH level, jump everyone to lane 0, unless there is a boss there, in which case jump to lane 1. var targetLane = 0; @@ -1557,9 +1512,6 @@ } }, autoRefreshSecondsCheckLoadedDelay * 1000); - // Append gameid to breadcrumbs - var breadcrumbs = document.querySelector('.breadcrumbs'); - function countdown(time) { var hours = 0; var minutes = 0; @@ -1578,39 +1530,33 @@ return {hours : hours, minutes : minutes}; } - if (breadcrumbs) { - var element = document.createElement('span'); - element.textContent = ' > '; - breadcrumbs.appendChild(element); - - element = document.createElement('span'); - element.style.color = '#D4E157'; - element.style.textShadow = '1px 1px 0px rgba( 0, 0, 0, 0.3 )'; - element.textContent = 'Room ' + w.g_GameID; - breadcrumbs.appendChild(element); - - element = document.createElement('span'); - element.textContent = ' > '; - breadcrumbs.appendChild(element); - - element = document.createElement('span'); - element.style.color = '#FFA07A'; - element.style.textShadow = '1px 1px 0px rgba( 0, 0, 0, 0.3 )'; - element.textContent = 'Level: 0, Expected Level: 0, Likely Level: 0'; - breadcrumbs.appendChild(element); - document.ExpectedLevel = element; + function addBreadcrumb(id, text, css) { + if (css && !css.textShadow) { + css.textShadow = '1px 1px 0px rgba( 0, 0, 0, 0.3 )'; + } + var $crumb = w.$J(' > ').append(w.$J('').text(text).css(css)); + w.$J('.breadcrumbs').remove('.breadcrumb:has(#' + id + ')').append($crumb); + } - element = document.createElement('span'); - element.textContent = ' > '; - breadcrumbs.appendChild(element); + w.$J(function OnDomReady() { + addBreadcrumb('crumb_game_id', 'Room ' + w.g_GameID, { + color: '#D4E157' + }); + addBreadcrumb('crumb_level_predict', 'Level: 0, Expected Level: 0, Likely Level: 0', { + color: '#FFA07A' + }); + addBreadcrumb('crumb_time_left', 'Remaining Time: 0 hours, 0 minutes', { + color: '#9AC0FF' + }); - element = document.createElement('span'); - element.style.color = '#9AC0FF'; - element.style.textShadow = '1px 1px 0px rgba( 0, 0, 0, 0.3 )'; - element.textContent = 'Remaining Time: 0 hours, 0 minutes.'; - breadcrumbs.appendChild(element); - document.RemainingTime = element; - } + // More player counts + w.$J('#lane0,#lane1,#lane2').each(function(i) { + var $l = w.$J(this); + $l.remove('#lane' + i + '_player_count').find('.label').after(w.$J('
').css({'font-size': '90%', 'white-space': 'nowrap'})); + }); + w.$J('.title_activity:has(#players_in_game)').remove(); // cleanup a previous script + w.$J('.title_activity:has(#players_in_lane)').hide().before('0/1500 Players in room'); + }); function updateLevelInfoTitle(level) { @@ -1624,8 +1570,8 @@ var rem_time = countdown(remaining_time); - document.ExpectedLevel.textContent = 'Level: ' + w.FormatNumberForDisplay(level, 5) + ', Expected Jump: ' + w.FormatNumberForDisplay(estimateJumps(), 5); - document.RemainingTime.textContent = 'Remaining Time: ' + rem_time.hours + ' hours, ' + rem_time.minutes + ' minutes.'; + w.$J('#crumb_level_predict').text('Level: ' + w.FormatNumberForDisplay(level, 5) + ', Expected Jump: ' + w.FormatNumberForDisplay(estimateJumps())); + w.$J('#crumb_time_left').text('Remaining Time: ' + rem_time.hours + ' hours, ' + rem_time.minutes + ' minutes'); } // Helpers to access player stats.