Adds a next planet button for probes which launches fleet to next planet. For www.war-facts.com .
当前为
// ==UserScript==
// @name WF Explorer Next Planet Button
// @namespace https://greasyfork.org/en/users/10321-nikitas
// @description Adds a next planet button for probes which launches fleet to next planet. For www.war-facts.com .
// @include http://*.war-facts.com/fleet.php*
// @require https://code.jquery.com/jquery-2.1.4.min.js
// @version 5
// @grant none
// ==/UserScript==
//Configuration Options:
//Change this if you do not want Auto Launch when Next Button is Pressed, or if you don't want to Auto Select Next Explorer
var AutoLaunch = true;
var AutoSelectNextExplorer = true;
// Change this if you wish to exclude Fleets whose names contain the excludeString from being auto Selected as next explorer.
var useExcludeString = false;
// Change this to what you would like to put into a fleet's name in order to exclude it from being auto selected.
var excludeString = "#NotAuto#";
// Change this if you wish to auto Select Fleets as next explorer ONLY if their names contain the includeString.
var useIncludeString = false;
// Change this to what you would like to put into a fleet's name in order to include it into being auto selected.
var includeString = "#Auto#";
//Script
$(window).load(function() {
window.setTimeout(runWholeScript,100); //Added some extra delay cause sometimes script didn't have time to load correctly
function runWholeScript(){
var classificationNode = document.getElementById('fleetClass');
var isExplorer = document.evaluate("//text()[contains(.,'Explorer') or contains(.,'Sentry') or contains(.,'Probe Rush')]", classificationNode, null, XPathResult.BOOLEAN_TYPE, null).booleanValue;
if (isExplorer){
var info = document.getElementById('navData').getElementsByTagName('div')[4];
var infoSpan = info.getElementsByTagName('span')[0];
// not containing world in the span.
var isAtSystemEntrance = ! (document.evaluate("//text()[contains(.,'World:')]", infoSpan, null, XPathResult.BOOLEAN_TYPE, null).booleanValue);
//alert("Is explorer = " + isExplorer);
//alert("Is at system Entrance = " + isAtSystemEntrance);
var currentPlanet = info.getElementsByTagName('a')[0].innerHTML;
//alert(currentPlanet);
var optionGroup = document.getElementById('target1');
optionGroup = optionGroup.getElementsByTagName('optgroup')[0];
optionGroup = optionGroup.getElementsByTagName('option');
var i = 0 , found = false, optionsLength = optionGroup.length;
var nextPlanetOption, finishedSystem = false;
//if PlanetLess system
if (optionsLength === 0 ) {
// alert("Planetless System");
found = true;
finishedSystem = true;
} else if (isAtSystemEntrance){ //if I am at system entrance
// alert("At System Entrance");
found = true;
nextPlanetOption = optionGroup[0].value;
}
// If I am at a planet, Find next planet through the local target option list
while ( (i < optionsLength) && (found == false) ) {
if (optionGroup[i].innerHTML == currentPlanet ){
found = true;
if ( i == optionsLength -1 ){
finishedSystem = true;
} else {
nextPlanetOption = optionGroup[i+1].value;
}
}
i++;
}
// alert("finished system = " + finishedSystem);
// alert("next planet = " + nextPlanetOption);
// alert("Reached finished System");
if (finishedSystem) {
// alert("Inside finished System");
document.getElementById('missionData').innerHTML += '<input class = "greenbutton darkbutton" type="button" id="nextPlanetButton" value = "Done" onclick="openStarMap()" />';
document.getElementById('nextPlanetButton').addEventListener('click', openStarMap, false);
} else {
// alert("Inside NOT finished System");
document.getElementById('missionData').innerHTML += '<input class = "greenbutton darkbutton" type="button" id="nextPlanetButton" value = "Next Planet" onclick="selectNextPlanet()" />';
document.getElementById('nextPlanetButton').addEventListener('click', selectNextPlanet, false);
}
}
function selectNextPlanet(){
jQuery('#target1').val(nextPlanetOption).trigger ('change');
if (AutoLaunch){
window.setTimeout(launchFleet,100);
}
}
function openStarMap(){
var starMapLink;
if (isAtSystemEntrance){
starMapLink = document.getElementById('navData').getElementsByTagName('div')[10].getElementsByTagName('a')[0].href;
} else {
starMapLink = document.getElementById('navData').getElementsByTagName('div')[11].getElementsByTagName('a')[0].href;
}
starMapLink = starMapLink.substring(19, starMapLink.length - 3 ); //Keep only the link, throw away the functions
// mapWin is war-facts.com function to open javascript map
mapWin(starMapLink);
}
function launchFleet(){
var launchButton = document.getElementById('mButton').getElementsByTagName('input')[0];
if (launchButton) { //So Button has been created
getMission('launch'); //Launch Fleet
autoSelectNextExplorer();
} else {
window.setTimeout(launchFleet,100);
}
}
function checkIfLaunched(){
var abortButton = document.getElementById('mButton').children[0];
if ( (abortButton) && (abortButton.value == "Abort Mission") ) {
autoSelectNextExplorer();
}else {
alert("Trying Again");
window.setTimeout(checkIfLaunched,250);
}
}
function autoSelectNextExplorer(){
if (AutoSelectNextExplorer) {
var explorerList = document.getElementById('fc_Explorer').children;
var index = 0;
var explorerListLength = explorerList.length;
while (index < explorerListLength) {
if (explorerList[index].children[0].style.color == "rgb(242, 242, 242)") {
var link = explorerList[index].children[0].href;
var name = explorerList[index].children[0].innerHTML;
if (( ( !useIncludeString) || ( name.indexOf(includeString) > -1 ) ) //If not using include string or String is in name
&& ( ( !useExcludeString) || ( name.indexOf(excludeString) == -1 ) ) //If not using exclude string or String is NOT in name
&& ( link != window.location.href ) //Make sure we are not chosing ourselve as this fleet is still "white"
) {
index = explorerListLength; //To make sure if load doesn't happen immediately it stops running through fleet list
window.open(link, "_self");
}
}
index++;
}
}
}
}
});