This script checks for you when you last used the Satchel of Independence or Ornamentapult in your Inventory.
// ==UserScript==
// @name TH Satchel/Ornamentapult Status
// @description This script checks for you when you last used the Satchel of Independence or Ornamentapult in your Inventory.
// @author Patojonas
// @version 3.0
// @grant GM_xmlhttpRequest
// @include *twilightheroes.com/main.php
// @namespace https://greasyfork.org/users/47958
// ==/UserScript==
//flags
var ProblemPWD = 1;
var ProblemSatchel = 1;
var ProblemOrnamentapult = 1;
var SatchelPresent = 0;
var OrnamentaPresent = 0;
if (/main/.exec(location.href)) {
//checks if you have the items
var itemspresent = GM_xmlhttpRequest({
method: "GET",
url: "http://www.twilightheroes.com/use.php?filter=instant",
synchronous: true
});
items = itemspresent.responseText;
if (items.match(/satchel of independence/)) { SatchelPresent = 1;}
if (items.match(/ornamentapult/)) { OrnamentaPresent = 1;}
//box design html
var c = document.getElementsByTagName('h1')[0]; // 'center' if you want it just above the map
var mybox = document.createElement("div");
var satchelhtml = '<div id="satchel_container" style="text-align:center; ' +
'opacity: .75; filter: alpha(opacity=75); z-index:100; display:inline-block; ' +
'margin: 3px; padding: 7px; overflow: hidden; font-size: 11pt; ' +
'font-family: arial, sans-serif; background-color: #ccffcc; color: #000000;">' +
'<span id="satcheltitle"><a href="http://th.blandsauce.com/wiki/Satchel_of_independence" target="_blank"><h1>Satchel of Independence</h1></a></span>' +
'<span id="satchelstatus">Checking status...</span>' +
'<span id="satcheluselink"><br />Creating link...</span></div>';
var ornamenhtml = '<div id="ornamentapult_container" style="text-align:center; ' +
'opacity: .75; filter: alpha(opacity=75); z-index:100; display:inline-block; ' +
'margin: 3px; padding: 7px; overflow: hidden; font-size: 11pt; ' +
'font-family: arial, sans-serif; background-color: #ccffcc; color: #000000;">' +
'<span id="ornamentapultitle"><a href="http://th.blandsauce.com/wiki/Ornamentapult" target="_blank"><h1>Ornamentapult</h1></a></span>' +
'<span id="ornamentapultstatus">Checking status...</span>' +
'<span id="ornamentapultuselink"><br />Creating link...</span></div>';
//builds box according to your needs
if (SatchelPresent && OrnamentaPresent){
mybox.innerHTML = '<center>' + satchelhtml + ornamenhtml + '</center>';
} else if (SatchelPresent && !OrnamentaPresent) {
mybox.innerHTML = '<center>' + satchelhtml + '</center>';
} else if (!SatchelPresent && OrnamentaPresent) {
mybox.innerHTML = '<center>' + ornamenhtml + '</center>';
} else {
return;
}
c.parentNode.insertBefore(mybox, c); //to add it above things
//c.parentNode.appendChild(mybox); //to add it after the map
//fetching user MD5ed password
var pwdget = GM_xmlhttpRequest({
method: "GET",
url: "http://www.twilightheroes.com/skills.php",
synchronous: true
});
a = pwdget.responseText;
var pwdFound = a.match(/<input type=hidden name=pwd value=(\w+)>/);
if ((pwdFound != null) && (pwdFound[1] != null)) {
//if valid pass found then create links
var satchelLink = '<a href="http://www.twilightheroes.com/use.php?which=2257&pwd=' + pwdFound[1] + '" target="main"><h7>Use Now</h7></a>';
var ornamentapultLink = '<a href="http://www.twilightheroes.com/use.php?which=2458&pwd=' + pwdFound[1] + '" target="main"><h7>Use Now</h7></a>';
ProblemPWD = 0;
}
//fetch Satchel status
if (SatchelPresent){
var satchelastuseget = GM_xmlhttpRequest({
method: "GET",
url: "http://www.twilightheroes.com/popup.php?item=82243597",
synchronous: true
});
s = satchelastuseget.responseText;
//fetch box elements to fill according to satchel status
var satchelStatusSpan = document.getElementById('satchelstatus');
var satchelLinkSpan = document.getElementById('satcheluselink');
//status chain
if (s.match(/Was filled/)) {
satchelStatusSpan.innerHTML = day(0);
satchelLinkSpan.parentNode.removeChild(satchelLinkSpan);
ProblemSatchel = 0;
} else if (s.match(/day fireworks/) && ProblemPWD == 0) {
satchelStatusSpan.innerHTML = day(1);
satchelLinkSpan.innerHTML = satchelLink;
ProblemSatchel = 0;
} else if (s.match(/independence yesterday/) && ProblemPWD == 0) {
satchelStatusSpan.innerHTML = day(2);
satchelLinkSpan.innerHTML = satchelLink;
ProblemSatchel = 0;
} else if (s.match(/three independence/) && ProblemPWD == 0) {
satchelStatusSpan.innerHTML = day(3);
satchelLinkSpan.innerHTML = satchelLink;
ProblemSatchel = 0;
} else if (s.match(/four independence/) && ProblemPWD == 0) {
satchelStatusSpan.innerHTML = day(4);
satchelLinkSpan.innerHTML = satchelLink;
ProblemSatchel = 0;
} else if (s.match(/bunch of independence/) && ProblemPWD == 0) {
satchelStatusSpan.innerHTML = day(5);
satchelLinkSpan.innerHTML = satchelLink;
ProblemSatchel = 0;
} else if (ProblemSatchel || ProblemPWD) {
//in case of server hicups or dividing by 0
satchelStatusSpan.innerHTML = "There was an error.";
satchelLinkSpan.parentNode.removeChild(satchelLinkSpan);
}
}
//fetch Ornamentapult status
if (OrnamentaPresent){
var ornamentapultlastuseget = GM_xmlhttpRequest({
method: "GET",
url: "http://www.twilightheroes.com/popup.php?item=30885917",
synchronous: true
});
o = ornamentapultlastuseget.responseText;
//fetch box elements to fill according to satchel status
var OrnamentapultStatusSpan = document.getElementById('ornamentapultstatus');
var OrnamentapultLinkSpan = document.getElementById('ornamentapultuselink');
//status chain
if (o.match(/Launched some/)) {
OrnamentapultStatusSpan.innerHTML = day(0);
OrnamentapultLinkSpan.parentNode.removeChild(OrnamentapultLinkSpan);
ProblemOrnamentapult = 0;
} else if (o.match(/ready to launch/) && ProblemPWD == 0) {
OrnamentapultStatusSpan.innerHTML = day(1);
OrnamentapultLinkSpan.innerHTML = ornamentapultLink;
ProblemOrnamentapult = 0;
} else if (o.match(/two whole/) && ProblemPWD == 0) {
OrnamentapultStatusSpan.innerHTML = day(2);
OrnamentapultLinkSpan.innerHTML = ornamentapultLink;
ProblemOrnamentapult = 0;
} else if (o.match(/three days/) && ProblemPWD == 0) {
OrnamentapultStatusSpan.innerHTML = day(3);
OrnamentapultLinkSpan.innerHTML = ornamentapultLink;
ProblemOrnamentapult = 0;
} else if (o.match(/four days/) && ProblemPWD == 0) {
OrnamentapultStatusSpan.innerHTML = day(4);
OrnamentapultLinkSpan.innerHTML = ornamentapultLink;
ProblemOrnamentapult = 0;
} else if (o.match(/into orbit/) && ProblemPWD == 0) {
OrnamentapultStatusSpan.innerHTML = day(5);
OrnamentapultLinkSpan.innerHTML = ornamentapultLink;
ProblemOrnamentapult = 0;
} else if (ProblemOrnamentapult || ProblemPWD) {
//in case of server hicups or dividing by 0
OrnamentapultStatusSpan.innerHTML = "There was an error.";
OrnamentapultLinkSpan.parentNode.removeChild(OrnamentapultLinkSpan);
}
}
}
function day(num)
{
if(num == 0){
return 'Last time used:<h2>Today</h2>';
} else if (num == 5){
return "Last time used:<h2>At least 5 days ago</h2>Waiting any longer won't increase item quality.<br />";
} else {
return 'Last time used:<h2>'+num+' days ago</h2>';
}
}