Strange Leaflet spoiler script
// Tard's KoL Scripts
// Copyright (c) 2006, Byung Kim
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// ==UserScript==
// @name Tard's KoL Scripts - Strange Leaflet
// @namespace http://kol.dashida.com
// @author Tard
// @contributor Hellion
// @include *kingdomofloathing.com/main_c.html
// @include *kingdomofloathing.com/main.*
// @include *kingdomofloathing.com/leaflet.*
// @description Strange Leaflet spoiler script
// @version 0.53
// ==/UserScript==
/********************************** Change Log **********************************************
v0.53: fix infinite loop after bowling trophy acquisition.
v0.52: add auto-clicking of the "Do It!" button, except when the secret code is in play.
********************************************************************************************/
if (window.location.pathname == "/main_c.html" || window.location.pathname == "/main.html" || window.location.pathname == "/main.php") {
// setTimeout('if (window["checkForUpdate"]) checkForUpdate("strangeleaflet","0.5","Strange Leaflet","http://kol.dashida.com/tardskolscripts_strangeleaflet.user.js");',1000);
GM_setValue("newArea","false");
GM_log("strange, leaflet.");
} else {
var body = document.getElementsByTagName('body')[0];
var bodyHTML = body.innerHTML;
var tds = document.getElementsByTagName('td');
var td1 = tds[0].innerHTML.replace(/<.{0,1}b>/gi,"");
var td3 = tds[2].innerHTML;
var command = "";
var code = "";
var submit = true;
// GM_log("td1="+td1);
// GM_log("td3="+td3);
if (GM_getValue("newArea") == "true") {
switch(td1) {
case "North of the Field":
command = "south";
break;
case "West of House":
if (td3.indexOf("You leave the house.") != -1) command = "south";
else command = "east";
break;
case "In the House":
if (td3.indexOf("parchment") != -1) command = "read parchment";
else if (td3.indexOf("Bits of torn and wadded newspaper") != -1) command = "look fireplace";
else if (td3.indexOf("An eerie glow surrounds you") != -1 || td3.indexOf("That only works once") != -1) command = "light fireplace";
else if (td3.indexOf("large pair of boots") != -1 || td3.indexOf("At this point, it's not so much tinder as ash") != -1) command = "get boots";
else if (td3.indexOf("Okay, got 'em") != -1 || td3.indexOf("You've already got the boots") != -1) command = "wear boots";
else if (td3.indexOf("With some difficulty, you strap on the boots") != -1 || td3.indexOf("Since you're already wearing them") != -1) command = "west";
else if (td3.indexOf("The fireplace is stacked with dry firewood and tinder, ready for lighting") != -1) {
if (td3.indexOf("small white house") != -1) {
code = "xyzzy";
command = "light fireplace";
} else if (td3.indexOf("brick building") != -1) {
code = "plugh";
command = "light fireplace";
} else if (td3.indexOf("bird") != -1) {
code = "plover";
command = "light fireplace";
} else if (td3.indexOf("ship") != -1) {
code = "yoho";
command = "light fireplace";
} else if (td3.indexOf("trophy") != -1) {
command = "take trophy";
} else {
command = "light fireplace";
}
if (code != "") {
GM_setValue("code",code);
body.innerHTML = '<div style="height:50px;"><a href="javascript:document.whatnow.command.value=\'' + code + '\';void(0);">Click here to reveal the secret code</a></div>' + bodyHTML;
submit = false;
}
}
else command = "look tinder";
break;
case "South Bank":
if (GM_getValue("code")) {
body.innerHTML = '<div style="height:50px;">Warning: Proceeding further will eliminate your opportunity for using the secret code.'+
'<br/><a href="javascript:document.whatnow.command.value=\'' + GM_getValue("code") +
'\';void(0);">Click here to reveal the secret code</a></div>' + bodyHTML;
submit = false;
}
command = "south";
break;
case "Forest":
if (td3.indexOf("south") != -1) command = "south";
else if (td3.indexOf("east") != -1) command = "east";
else if (td3.indexOf("west") != -1) command = "west";
else if (td3.indexOf("north") != -1) command = "north";
break;
case "On the other side of the forest maze...":
if (td3.indexOf("You carefully make your way back down to the forest floor") != -1) command = "look in leaves";
else command = "up";
break;
case "Halfway Up The Tree":
if (td3.indexOf("large egg encrusted with precious jewels") != -1) command = "get egg";
else if (td3.indexOf("manage to get the egg without losing your grip on the tree") != -1 || td3.indexOf("You've already got the egg") != -1) command = "throw egg roadrunner";
else if (td3.indexOf("the ruby, which plummets past you") != -1 || td3.indexOf("You don't have a ruby") != -1) command = "down";
else if (td3.indexOf("You snatch the scroll out of the air as it flutters down") != -1) command = "gnusto cleesh";
else if (td3.indexOf("Both the Gnusto scroll and the Cleesh scroll crumble into dust") != -1) command = "up";
else command = "throw ruby bowl";
break;
case "Tabletop":
if (td3.indexOf("You acquire an item") != -1) command = "exit";
else if (td3.indexOf("Giant's pinky ring") != -1) command = "get ring";
else if (td3.indexOf("contents have spilled and drained") != -1) command = "exit";
else command = "cleesh giant";
break;
}
} else {
switch(td1) {
case "West of House":
if (td3.indexOf("The house's front door is closed.") != -1) command = "open door";
else if (td3.indexOf("You leave the house.") != -1) command = "north";
else if (td3.indexOf("The front door of the house is standing open.") != -1) command = "east";
break;
case "In the House":
if (td3.indexOf("An ornate sword hangs above the mantel.") != -1) command = "get sword";
else command = "west";
break;
case "North of the Field":
if (td3.indexOf("A hefty stick lies on the ground.") != -1) command = "get stick";
else if (td3.indexOf("A thick hedge blocks the way to the west.") != -1) command = "cut hedge";
else if (td3.indexOf("You leave the clearing.") != -1) command = "north";
else command = "west";
break;
case "Forest Clearing":
if (td3.indexOf("You hold the stick in the flames until it lights.") != -1) command = "east";
else if (td3.indexOf("You don't know what words mean, do you?") != -1 || td3.indexOf("Do what with the what, now?") != -1 || td3.indexOf("You're using words I don't know...") != -1 || td3.indexOf("I don't understand that...") != -1) command = "east";
else command = "light stick";
break;
case "Cave":
if (td3.indexOf("dangerous-looking serpent coiled around it.") != -1) command = "kill serpent";
else if (td3.indexOf("surrounded by hacked-up serpent bits") != -1) command = "open chest";
else if (td3.indexOf("You discover a tiny hole in the wall behind the chest.") != -1 || td3.indexOf("You check to make sure the hole is still there.") != -1) command = "look in hole";
else if (td3.indexOf("You find a grue egg in the hole!") != -1 || td3.indexOf("There's nothing else in the hole.") != -1) {
command = "south";
GM_setValue("newArea","true");
}
else if (td3.indexOf("An empty treasure chest sits near the rear wall.") != -1) command = "look behind chest";
break;
default:
GM_setValue("newArea","true");
break;
}
}
var timeoutCommand = 'document.forms["whatnow"].command.value="'+command+'";';
if (submit == true) timeoutCommand += ' document.forms["whatnow"].submit();'
// GM_log("command="+command+", submit="+submit);
setTimeout(timeoutCommand,100);
}