====== ii-nutritional-value ======
===== Version 2 =====
[[http://enquirer.improbableisland.com/forum/viewtopic.php?forum=18&showtopic=33763|Version 2.0 Discussion Link]]\\
[[https://gist.github.com/anonymous/2f32643b500f00775546|Version 2.0 Source Code]]
>I wanted to change fledermaus' meat script, so that it automatically loaded all of the known values of meat for each NPC.
// ==UserScript==
// @name ii-nutritional-value
// @namespace http://users.pepperfish.net/vivek/ii/
// @description Improbable Island Butchery Guide (remembers nutritional values - Updated by Nader)
// @include http://www.improbableisland.com/*
// @include http://improbableisland.com/*
// ==/UserScript==
var done = false;
var sieve = '//div[@class=\'maincolumn\']/h2/parent::*' + '|' +
'//td[@class=\'content\']/h2/parent::*' + '|' +
'//fieldset/legend/parent::*/div[@class=\'block\']';
var filter = '//div[@class=\'navbox\']/a[@class=\'nav\']' + '|' +
'//td[@class=\'navigation\']/a[@class=\'nav\']' + '|' +
'//td[@class=\'nav\']/a[@class=\'nav\']';
var nodes = document.evaluate(filter, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var corpse = null;
if (corpse = sessionStorage.getItem('ii/food/last-carcass'))
{
var a = 0;
var b = 0;
var c = 0;
var label = '';
var butchery = document.evaluate(sieve, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
sessionStorage.removeItem('ii/food/last-carcass');
for (var i = 0; i < butchery.snapshotLength; i++)
{
var raw = butchery.snapshotItem(i).textContent;
var got = null;
// GM_log( "processing raw text: " +
// butchery.snapshotItem(i) + " : " + raw );
if (got = raw.match('You tear off enough to make ([0-9]+) rough bite'))
{
a += got[1] * 1;
}
if (got = raw.match('the fattier muscle, and before too long ' +
'you have ([0-9]+) rough bite'))
{
b += got[1] * 1;
}
if (got = raw.match('slide easily from the bone, and you ' +
'wind up with ([0-9]+) rough bite'))
{
c += got[1] * 1;
}
}
// only log the value if we successfully parsed at least one category:
if ((a > 0) || (b > 0) || (c > 0))
{
label = '(' + a + ', ' + b + ', ' + c + ')';
localStorage.setItem(corpse, label);
// GM_log( "storing " + corpse + " value : " + label );
done = true;
}
}
for (var x = 0; x < nodes.snapshotLength; x++)
{
var node = nodes.snapshotItem(x);
var text = node.textContent;
var what = null;
if (what = text.match('Clean\\s+the\\s+carcass\\s+of\\s+(.*?)\\s+\\('))
{
label = '(0, 0, 80)';
corpse = 'ii/food/FakeFake';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/40\'s Glam Rocker';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/A G-nother G-nu';
localStorage.setItem(corpse, label);
label = '(0, 2, 0)';
corpse = 'ii/food/Admiral Flufferson';
localStorage.setItem(corpse, label);
label = '(0, 1, 6)';
corpse = 'ii/food/Adult Mouldywarp';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Albert';
localStorage.setItem(corpse, label);
label = '(0, 0, 1)';
corpse = 'ii/food/Ambush Hamster';
localStorage.setItem(corpse, label);
label = '(2, 1, 0)';
corpse = 'ii/food/Angry squat';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Animated Aubergine';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/Another Goddamn Monster';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Anthropomorphosized Circular Saw Philosopher';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Anti-Busker';
localStorage.setItem(corpse, label);
label = '(0, 0, 5)';
corpse = 'ii/food/Araneafelis Gigantea';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Archaeopteryx';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Armoured Housefly';
localStorage.setItem(corpse, label);
label = '(0, 0, 4)';
corpse = 'ii/food/Army of Hippopotami';
localStorage.setItem(corpse, label);
label = '(0, 0, 3)';
corpse = 'ii/food/Atinlay Igpay';
localStorage.setItem(corpse, label);
label = '(2, 1, 0)';
corpse = 'ii/food/Bar Fly';
localStorage.setItem(corpse, label);
label = '(0, 0, 8)';
corpse = 'ii/food/Bear Strapped to the Back of Another Bear';
localStorage.setItem(corpse, label);
label = '(10, 0, 0)';
corpse = 'ii/food/Bees and Ants';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Beholder of the Behinder';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Berserk Gardener';
localStorage.setItem(corpse, label);
label = '(2, 2, 0)';
corpse = 'ii/food/Bert & Ernie';
localStorage.setItem(corpse, label);
label = '(0, 0, 5)';
corpse = 'ii/food/Betentacled Horror';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Bettie the Amazing Kung-Fu Butterfly';
localStorage.setItem(corpse, label);
label = '(2, 0, 1)';
corpse = 'ii/food/Bicyclops';
localStorage.setItem(corpse, label);
label = '(7, 0, 0)';
corpse = 'ii/food/Blair Hippo';
localStorage.setItem(corpse, label);
label = '(4, 2, 0)';
corpse = 'ii/food/Blonde Heiress';
localStorage.setItem(corpse, label);
label = '(1, 1, 0)';
corpse = 'ii/food/Bluebird of Happiness';
localStorage.setItem(corpse, label);
label = '(2, 0, 0)';
corpse = 'ii/food/Bookface';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Broadway Extra';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Bumbling Ally';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Cafeteria Lady';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Canadian Mosquito';
localStorage.setItem(corpse, label);
label = '(2, 0, 0)';
corpse = 'ii/food/Canned Leeches';
localStorage.setItem(corpse, label);
label = '(7, 0, 0)';
corpse = 'ii/food/Cattywampus';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Cereal Killer';
localStorage.setItem(corpse, label);
label = '(0, 3, 0)';
corpse = 'ii/food/Cloned Diehard Harry Potter Fan';
localStorage.setItem(corpse, label);
label = '(0, 10, 0)';
corpse = 'ii/food/Cloud of Reporters';
localStorage.setItem(corpse, label);
label = '(10, 0, 0)';
corpse = 'ii/food/Completely Rational Monster';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Concerned Parent';
localStorage.setItem(corpse, label);
label = '(20, 0, 0)';
corpse = 'ii/food/Conglomeration of Probable Creatures';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Conservative Party Advocate';
localStorage.setItem(corpse, label);
label = '(0, 2, 2)';
corpse = 'ii/food/Copy Cat';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Count of Monte Python';
localStorage.setItem(corpse, label);
label = '(0, 0, 5)';
corpse = 'ii/food/Crab Herdism';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Crafty Joker';
localStorage.setItem(corpse, label);
label = '(5, 1, 4)';
corpse = 'ii/food/Crap Meat';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Crazed Tech Support Rep';
localStorage.setItem(corpse, label);
label = '(25, 0, 0)';
corpse = 'ii/food/Creature from a Dodgy Anime';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Creepy Looking Guy in a Trenchcoat';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Cryptic Questions Joker';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Custodian of the Slushpile of Doom';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Cyrano DeBergerac';
localStorage.setItem(corpse, label);
label = '(0, 0, 3)';
corpse = 'ii/food/Dali the Four-Clawed Lobster';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Dan';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/David Attenborough';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Death or Cake Man';
localStorage.setItem(corpse, label);
label = '(0, 0, 1)';
corpse = 'ii/food/Delicious Soup';
localStorage.setItem(corpse, label);
label = '(0, 1, 0)';
corpse = 'ii/food/Delusional Lunatic';
localStorage.setItem(corpse, label);
label = '(1, 0, 1)';
corpse = 'ii/food/Delusional, Blue-Spandex-Wearing Lunatic';
localStorage.setItem(corpse, label);
label = '(0, 1, 1)';
corpse = 'ii/food/Delusional, Green-Spandex-Wearing Lunatic';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Devil';
localStorage.setItem(corpse, label);
label = '(2, 1, 2)';
corpse = 'ii/food/Dick';
localStorage.setItem(corpse, label);
label = '(0, 0, 2)';
corpse = 'ii/food/Dingo-Eating Baby';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Diplomat';
localStorage.setItem(corpse, label);
label = '(5, 0, 0)';
corpse = 'ii/food/Dirty Chippy';
localStorage.setItem(corpse, label);
label = '(6, 0, 0)';
corpse = 'ii/food/Diseased Lung';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Disney Historical Accuracy Department';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Disney Historical Fallacy Department';
localStorage.setItem(corpse, label);
label = '(10, 0, 0)';
corpse = 'ii/food/Doggymorph';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Don of the Dead';
localStorage.setItem(corpse, label);
label = '(0, 2, 4)';
corpse = 'ii/food/Draughtsbeast';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Drunken Nudist';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Duck & Penguin in Spats';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Dump Truck Operator';
localStorage.setItem(corpse, label);
label = '(3, 0, 0)';
corpse = 'ii/food/Earwigs';
localStorage.setItem(corpse, label);
label = '(1, 2, 0)';
corpse = 'ii/food/Elrod Gulch';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Emily the Buxom Barmaid';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Emo Boy';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Emu';
localStorage.setItem(corpse, label);
label = '(5, 2, 0)';
corpse = 'ii/food/Enchanted Stewpot';
localStorage.setItem(corpse, label);
label = '(2, 2, 3)';
corpse = 'ii/food/Evolution\'s Greatest Failure';
localStorage.setItem(corpse, label);
label = '(2, 1, 2)';
corpse = 'ii/food/Fat Butcher';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Father Time';
localStorage.setItem(corpse, label);
label = '(3, 0, 0)';
corpse = 'ii/food/Felonious Skunk';
localStorage.setItem(corpse, label);
label = '(2, 2, 0)';
corpse = 'ii/food/Feral Budget Horse';
localStorage.setItem(corpse, label);
label = '(3, 3, 3)';
corpse = 'ii/food/Feral Kittybikes';
localStorage.setItem(corpse, label);
label = '(10, 0, 0)';
corpse = 'ii/food/Filthy Thieving Squats';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Fire Alarm';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/Fire-Breathing Kangaroo';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/Flesh-Eating Virus';
localStorage.setItem(corpse, label);
label = '(4, 2, 2)';
corpse = 'ii/food/Flock of Fanboys';
localStorage.setItem(corpse, label);
label = '(3, 1, 0)';
corpse = 'ii/food/Flock of Migratory Teakettles';
localStorage.setItem(corpse, label);
label = '(3, 1, 0)';
corpse = 'ii/food/Flock of Swallows';
localStorage.setItem(corpse, label);
label = '(2, 2, 0)';
corpse = 'ii/food/Flying Helper Monkey';
localStorage.setItem(corpse, label);
label = '(0, 1, 4)';
corpse = 'ii/food/Flying Hipster Pig';
localStorage.setItem(corpse, label);
label = '(4, 1, 0)';
corpse = 'ii/food/Flying Sea Serpent';
localStorage.setItem(corpse, label);
label = '(5, 2, 0)';
corpse = 'ii/food/Flying Spaghetti Monster';
localStorage.setItem(corpse, label);
label = '(2, 2, 0)';
corpse = 'ii/food/Foilwench';
localStorage.setItem(corpse, label);
label = '(1, 0, 2)';
corpse = 'ii/food/Foreign Meatloaf Dinner';
localStorage.setItem(corpse, label);
label = '(1, 0, 2)';
corpse = 'ii/food/Foreign Traveler';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Gary Gygax';
localStorage.setItem(corpse, label);
label = '(2, 2, 1)';
corpse = 'ii/food/Gary Larson';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Generic Monster';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Giant Squat';
localStorage.setItem(corpse, label);
label = '(3, 1, 0)';
corpse = 'ii/food/Giant Teddy Bear';
localStorage.setItem(corpse, label);
label = '(3, 1, 0)';
corpse = 'ii/food/Goddamn Aye-aye';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Gordon the Cheese Eater';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Gothic Romantic Heroine';
localStorage.setItem(corpse, label);
label = '(2, 2, 1)';
corpse = 'ii/food/Grammar Police';
localStorage.setItem(corpse, label);
label = '(3, 2, 1)';
corpse = 'ii/food/Great-Aunt Alice';
localStorage.setItem(corpse, label);
label = '(0, 5, 1)';
corpse = 'ii/food/Grue';
localStorage.setItem(corpse, label);
label = '(3, 3, 0)';
corpse = 'ii/food/Guerilla Gorilla';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Guy Who Keeps Running Behind You';
localStorage.setItem(corpse, label);
label = '(0, 0, 3)';
corpse = 'ii/food/Ham Bush';
localStorage.setItem(corpse, label);
label = '(0, 2, 4)';
corpse = 'ii/food/Hannibal Lecture';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Harry Potter Reenactor';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Health and Safety Inspector';
localStorage.setItem(corpse, label);
label = '(0, 2, 2)';
corpse = 'ii/food/Hiker';
localStorage.setItem(corpse, label);
label = '(0, 0, 4)';
corpse = 'ii/food/Hippopotamus';
localStorage.setItem(corpse, label);
label = '(2, 0, 0)';
corpse = 'ii/food/Hover Leech (Canned Leeches)';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Humanmorph';
localStorage.setItem(corpse, label);
label = '(0, 0, 6)';
corpse = 'ii/food/Humongous Giant Clam';
localStorage.setItem(corpse, label);
label = '(3, 2, 2)';
corpse = 'ii/food/Immortal Slasher Villain';
localStorage.setItem(corpse, label);
label = '(1, 1, 3)';
corpse = 'ii/food/Insurance Salesman';
localStorage.setItem(corpse, label);
label = '(0, 2, 5)';
corpse = 'ii/food/Interrupting Cow';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Jokosquabotantmorph';
localStorage.setItem(corpse, label);
label = '(6, 0, 0)';
corpse = 'ii/food/Kentucky Fried Zombie';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Kierkegaard';
localStorage.setItem(corpse, label);
label = '(3, 2, 1)';
corpse = 'ii/food/Lame Ass';
localStorage.setItem(corpse, label);
label = '(0, 1, 4)';
corpse = 'ii/food/Land Shark';
localStorage.setItem(corpse, label);
label = '(0, 1, 0)';
corpse = 'ii/food/Lemming';
localStorage.setItem(corpse, label);
label = '(3, 1, 0)';
corpse = 'ii/food/Little Old Lady';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Lolrus';
localStorage.setItem(corpse, label);
label = '(2, 2, 1)';
corpse = 'ii/food/Loud Hecklers';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Mad Scrabble Player';
localStorage.setItem(corpse, label);
label = '(2, 3, 0)';
corpse = 'ii/food/Madness Duck';
localStorage.setItem(corpse, label);
label = '(2, 3, 0)';
corpse = 'ii/food/Madness Duck';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Man from the Ministry';
localStorage.setItem(corpse, label);
label = '(2, 1, 0)';
corpse = 'ii/food/Master of Disguise';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Mathematician';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Member of Doktor Improbable Lovers Anonymous';
localStorage.setItem(corpse, label);
label = '(0, 3, 0)';
corpse = 'ii/food/Mephistopheles, Duck of Hell';
localStorage.setItem(corpse, label);
label = '(0, 0, 1)';
corpse = 'ii/food/Metamorphic Mess';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Meter Maid';
localStorage.setItem(corpse, label);
label = '(3, 3, 0)';
corpse = 'ii/food/Militant Pacifist';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Milk Beast';
localStorage.setItem(corpse, label);
label = '(0, 1, 2)';
corpse = 'ii/food/Mini-Minotaur';
localStorage.setItem(corpse, label);
label = '(0, 2, 2)';
corpse = 'ii/food/Mongol Hordette';
localStorage.setItem(corpse, label);
label = '(1, 2, 4)';
corpse = 'ii/food/Monkey Ghostwriter Franchise';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Monster At The End of This Path';
localStorage.setItem(corpse, label);
label = '(1, 2, 4)';
corpse = 'ii/food/Moose';
localStorage.setItem(corpse, label);
label = '(1, 2, 0)';
corpse = 'ii/food/Motorcycle Daredevil';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/Mouldywarp';
localStorage.setItem(corpse, label);
label = '(1, 2, 0)';
corpse = 'ii/food/NASCAR Fan';
localStorage.setItem(corpse, label);
label = '(1, 2, 0)';
corpse = 'ii/food/Network Sponsor';
localStorage.setItem(corpse, label);
label = '(0, 0, 4)';
corpse = 'ii/food/Ninjas';
localStorage.setItem(corpse, label);
label = '(0, 3, 0)';
corpse = 'ii/food/Nitro Bunny';
localStorage.setItem(corpse, label);
label = '(3, 2, 1)';
corpse = 'ii/food/Occam\'s Razorback';
localStorage.setItem(corpse, label);
label = '(1, 6, 1)';
corpse = 'ii/food/Octophant';
localStorage.setItem(corpse, label);
label = '(1, 1, 0)';
corpse = 'ii/food/Old Crippled Beggar';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Ooze';
localStorage.setItem(corpse, label);
label = '(7, 2, 0)';
corpse = 'ii/food/Orc';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Oronte';
localStorage.setItem(corpse, label);
label = '(3, 1, 0)';
corpse = 'ii/food/Pacifist';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Pack of Chewing Gum';
localStorage.setItem(corpse, label);
label = '(0, 0, 10)';
corpse = 'ii/food/Panthzer';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Passive-Aggressive Co-worker';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/People on Streets';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Phony Psychic';
localStorage.setItem(corpse, label);
label = '(0, 0, 5)';
corpse = 'ii/food/Pile of Uncooked Meat';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Pinball Wizard';
localStorage.setItem(corpse, label);
label = '(2, 0, 0)';
corpse = 'ii/food/Pizza That Time Forgot';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Play on Words';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Poisonous Strangler Vines of Doom';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Pope';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Potato News Caster';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Poultrygeist';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Predatory Petitioner';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Pretentious Jerks';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Professional Romance Writer';
localStorage.setItem(corpse, label);
label = '(0, 1, 4)';
corpse = 'ii/food/Puppies of a Minor Diplomatic Incident';
localStorage.setItem(corpse, label);
label = '(4, 2, 0)';
corpse = 'ii/food/Purple People Eater';
localStorage.setItem(corpse, label);
label = '(10, 0, 0)';
corpse = 'ii/food/Quivering Flesh Heap';
localStorage.setItem(corpse, label);
label = '(12, 0, 0)';
corpse = 'ii/food/Rabid Suburban Squirrel Hive';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Rat Pack';
localStorage.setItem(corpse, label);
label = '(3, 4, 5)';
corpse = 'ii/food/Ravening Bugblatter Beast of Aaaaaaaaarrrgh';
localStorage.setItem(corpse, label);
label = '(0, 0, 1)';
corpse = 'ii/food/Red Herring';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Reginald, Your Paper Boy';
localStorage.setItem(corpse, label);
label = '(20, 0, 0)';
corpse = 'ii/food/Rejected Monsters';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Religious Zombie';
localStorage.setItem(corpse, label);
label = '(2, 2, 0)';
corpse = 'ii/food/Reluctant Cannibal';
localStorage.setItem(corpse, label);
label = '(2, 4, 2)';
corpse = 'ii/food/Reluctant Rabbits';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Rind Flayer';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Robert Catesby';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Rodent Of Unusual Size';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Rogue Orrery';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Rude Duplicate Creature';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Rush Hour Driver';
localStorage.setItem(corpse, label);
label = '(5, 1, 0)';
corpse = 'ii/food/Santa';
localStorage.setItem(corpse, label);
label = '(3, 0, 0)';
corpse = 'ii/food/Schrodinger\'s Other Cat';
localStorage.setItem(corpse, label);
label = '(2, 2, 0)';
corpse = 'ii/food/Scotsman Clad in Kilt';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Scrabble Players Anonymous';
localStorage.setItem(corpse, label);
label = '(20, 0, 0)';
corpse = 'ii/food/Season Three Test Monster';
localStorage.setItem(corpse, label);
label = '(2, 0, 0)';
corpse = 'ii/food/Self-Conscious Dwarf';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Seth the Handsome Bard';
localStorage.setItem(corpse, label);
label = '(10, 0, 0)';
corpse = 'ii/food/Seven Filthy Thieving Squats';
localStorage.setItem(corpse, label);
label = '(50, 0, 0)';
corpse = 'ii/food/Seventy-Headed Hellhound';
localStorage.setItem(corpse, label);
label = '(0, 4, 0)';
corpse = 'ii/food/Shaggy Dog';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Sigmund Freud';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Sinister Dexter';
localStorage.setItem(corpse, label);
label = '(4, 2, 4)';
corpse = 'ii/food/Smog';
localStorage.setItem(corpse, label);
label = '(4, 4, 0)';
corpse = 'ii/food/Snake Oil Salesman';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Society of British Bedstead Men';
localStorage.setItem(corpse, label);
label = '(8, 0, 0)';
corpse = 'ii/food/Socktopus';
localStorage.setItem(corpse, label);
label = '(3, 2, 1)';
corpse = 'ii/food/Someone Else\'s Quest Monster';
localStorage.setItem(corpse, label);
label = '(1, 3, 1)';
corpse = 'ii/food/Someone With Caterpillars in Their Vagina';
localStorage.setItem(corpse, label);
label = '(1, 2, 2)';
corpse = 'ii/food/Son of Budget Cow';
localStorage.setItem(corpse, label);
label = '(1, 2, 2)';
corpse = 'ii/food/Son of Budget Horse';
localStorage.setItem(corpse, label);
label = '(1, 2, 2)';
corpse = 'ii/food/Sorority Girl in Nightie';
localStorage.setItem(corpse, label);
label = '(2, 0, 1)';
corpse = 'ii/food/SpiderKitty';
localStorage.setItem(corpse, label);
label = '(7, 3, 0)';
corpse = 'ii/food/SpiderMorph';
localStorage.setItem(corpse, label);
label = '(2, 0, 0)';
corpse = 'ii/food/Squat Paladin';
localStorage.setItem(corpse, label);
label = '(3, 1, 0)';
corpse = 'ii/food/Squat Plumber';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Squat with Fungal Infection';
localStorage.setItem(corpse, label);
label = '(7, 1, 0)';
corpse = 'ii/food/Squat Zombie Mutant';
localStorage.setItem(corpse, label);
label = '(12, 0, 0)';
corpse = 'ii/food/Squats from the Train Station';
localStorage.setItem(corpse, label);
label = '(12, 0, 0)';
corpse = 'ii/food/Squats from the Travel Agency';
localStorage.setItem(corpse, label);
label = '(2, 2, 1)';
corpse = 'ii/food/Squats with Matching Factory Uniforms';
localStorage.setItem(corpse, label);
label = '(0, 0, 1)';
corpse = 'ii/food/Squicky the Bunny';
localStorage.setItem(corpse, label);
label = '(2, 2, 0)';
corpse = 'ii/food/Star Wars Nerd';
localStorage.setItem(corpse, label);
label = '(2, 1, 2)';
corpse = 'ii/food/Stereotypical Severe Nun';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Storm Snail';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Strict Non-Smoker';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/S-Trumpet';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Tall Squat';
localStorage.setItem(corpse, label);
label = '(5, 0, 0)';
corpse = 'ii/food/Team Awesome';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/That Cutie from Work';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/The Angler';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/The Eggman';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/The Guy Who Couldn\'t Beat Tom Carney';
localStorage.setItem(corpse, label);
label = '(0, 0, 1)';
corpse = 'ii/food/The Tooth Fairy';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/The Unreality of Time';
localStorage.setItem(corpse, label);
label = '(0, 2, 3)';
corpse = 'ii/food/The Walrus';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/Thesaurus Rex';
localStorage.setItem(corpse, label);
label = '(2, 0, 0)';
corpse = 'ii/food/Thing from the Back Of The Fridge';
localStorage.setItem(corpse, label);
label = '(0, 1, 0)';
corpse = 'ii/food/Thing in the Attic';
localStorage.setItem(corpse, label);
label = '(2, 3, 1)';
corpse = 'ii/food/This Guy';
localStorage.setItem(corpse, label);
label = '(3, 3, 0)';
corpse = 'ii/food/Three Droogs';
localStorage.setItem(corpse, label);
label = '(0, 0, 5)';
corpse = 'ii/food/Three French Hens';
localStorage.setItem(corpse, label);
label = '(3, 0, 0)';
corpse = 'ii/food/Three-Toed Sloth';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Tom Cruise';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/Totally Baffling Reference';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Tour Guide';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Towel-less Hitchhiker';
localStorage.setItem(corpse, label);
label = '(1, 2, 3)';
corpse = 'ii/food/Turkey';
localStorage.setItem(corpse, label);
label = '(0, 5, 0)';
corpse = 'ii/food/Typical Squaresoft Hero';
localStorage.setItem(corpse, label);
label = '(7, 0, 0)';
corpse = 'ii/food/Typo Gremlin';
localStorage.setItem(corpse, label);
label = '(0, 0, 4)';
corpse = 'ii/food/Unbeatable Monster';
localStorage.setItem(corpse, label);
label = '(0, 0, 4)';
corpse = 'ii/food/Undead Dreaming Catfish God';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Unicycle Entertainer';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Union Member With Seniority';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Unlicensed Plastic Surgeon';
localStorage.setItem(corpse, label);
label = '(1, 1, 1)';
corpse = 'ii/food/Unlucky Bastard';
localStorage.setItem(corpse, label);
label = '(10, 0, 0)';
corpse = 'ii/food/Uranium Man';
localStorage.setItem(corpse, label);
label = '(4, 2, 1)';
corpse = 'ii/food/Urbane Antagonist';
localStorage.setItem(corpse, label);
label = '(4, 3, 0)';
corpse = 'ii/food/Vampire-Bat Prince';
localStorage.setItem(corpse, label);
label = '(6, 0, 0)';
corpse = 'ii/food/Vegan Zombie';
localStorage.setItem(corpse, label);
label = '(1, 3, 0)';
corpse = 'ii/food/Velociraptor';
localStorage.setItem(corpse, label);
label = '(0, 2, 2)';
corpse = 'ii/food/Veteran Player';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Vigilante';
localStorage.setItem(corpse, label);
label = '(0, 2, 4)';
corpse = 'ii/food/Violin Suspense';
localStorage.setItem(corpse, label);
label = '(3, 2, 3)';
corpse = 'ii/food/Walrus';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Washed-Up Celebrity';
localStorage.setItem(corpse, label);
label = '(1, 2, 0)';
corpse = 'ii/food/Weatherman';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Well-Meaning Moron';
localStorage.setItem(corpse, label);
label = '(10, 0, 5)';
corpse = 'ii/food/Whale';
localStorage.setItem(corpse, label);
label = '(2, 1, 1)';
corpse = 'ii/food/Whining Old-School Gamer';
localStorage.setItem(corpse, label);
label = '(3, 0, 0)';
corpse = 'ii/food/Whopper with Cheese';
localStorage.setItem(corpse, label);
label = '(0, 4, 4)';
corpse = 'ii/food/Wild Horses';
localStorage.setItem(corpse, label);
label = '(0, 6, 0)';
corpse = 'ii/food/Wild Monkeys';
localStorage.setItem(corpse, label);
label = '(1, 2, 2)';
corpse = 'ii/food/Wizard of Yendor';
localStorage.setItem(corpse, label);
label = '(4, 4, 0)';
corpse = 'ii/food/Wolpertinger';
localStorage.setItem(corpse, label);
label = '(2, 1, 0)';
corpse = 'ii/food/Work Experience Lads';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Yesterday\'s Salad';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Your Future Self';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Your In-Laws';
localStorage.setItem(corpse, label);
label = '(0, 0, 1)';
corpse = 'ii/food/Your Own Tongue';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Your Past Self';
localStorage.setItem(corpse, label);
label = '(2, 1, 0)';
corpse = 'ii/food/Your Pasta Self';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Your Present Self';
localStorage.setItem(corpse, label);
label = '(1, 1, 2)';
corpse = 'ii/food/Zen Master';
localStorage.setItem(corpse, label);
label = '(5, 0, 0)';
corpse = 'ii/food/Zombie Kitten';
localStorage.setItem(corpse, label);
label = '(4, 0, 0)';
corpse = 'ii/food/Zombie Puppy';
localStorage.setItem(corpse, label);
label = '(1, 0, 0)';
corpse = 'ii/food/Zombie Worm';
localStorage.setItem(corpse, label);
label = '(1, 2, 1)';
corpse = 'ii/food/Zombified Luciano Pavarotti';
localStorage.setItem(corpse, label);
var target = what[1];
var key = 'ii/food/' + target;
var value = localStorage.getItem(key);
// GM_log( "cached value(s) for '" + target + "'" );
// duff stored value
if (value == '(0, 0, 0)')
{
done = false;
value = null;
localStorage.removeItem(key);
}
if (!done) {
sessionStorage.setItem('ii/food/last-carcass', key);
}
// GM_log( "looking up '" + key + "'");
if (value)
{
// GM_log( target + " == " + value );
node.setAttribute('title', value);
}
else
{
// GM_log( key + " == null" );
node.setAttribute('title', '(?, ?, ?)');
}
}
}
===== Version 1 =====
[[http://userscripts-mirror.org/scripts/show/117083|Version 1.2]]
// ==UserScript==
// @name ii-nutritional-value
// @namespace http://users.pepperfish.net/vivek/ii/
// @description Improbable Island Butchery Guide (remembers nutritional values)
// @include http://www.improbableisland.com/*
// @include http://improbableisland.com/*
// ==/UserScript==
var done = false;
var sieve = "//div[@class='maincolumn']/h2/parent::*" + "|" +
"//td[@class='content']/h2/parent::*" + "|" +
"//fieldset/legend/parent::*/div[@class='block']";
var filter = "//div[@class='navbox']/a[@class='nav']" + "|" +
"//td[@class='navigation']/a[@class='nav']" + "|" +
"//td[@class='nav']/a[@class='nav']";
var nodes = document.evaluate( filter, document, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null );
var corpse = null;
if( corpse = sessionStorage.getItem('ii/food/last-carcass') )
{
var a = 0;
var b = 0;
var c = 0;
var label = "";
var butchery = document.evaluate( sieve, document, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null );
sessionStorage.removeItem('ii/food/last-carcass');
for( var i = 0; i < butchery.snapshotLength; i++ )
{
var raw = butchery.snapshotItem(i).textContent;
var got = null;
// GM_log( "processing raw text: " +
// butchery.snapshotItem(i) + " : " + raw );
if( got = raw.match("You tear off enough to make ([0-9]+) rough bite") )
{
a += got[1] * 1;
}
if( got = raw.match("the fattier muscle, and before too long "+
"you have ([0-9]+) rough bite") )
{
b += got[1] * 1;
}
if( got = raw.match("slide easily from the bone, and you " +
"wind up with ([0-9]+) rough bite") )
{
c += got[1] * 1;
}
}
// only log the value if we successfully parsed at least one category:
if( (a > 0) || (b > 0) || (c > 0) )
{
label = "(" + a + ", " + b + ", " + c + ")";
localStorage.setItem( corpse, label );
// GM_log( "storing " + corpse + " value : " + label );
done = true;
}
}
for( var x = 0; x < nodes.snapshotLength; x++ )
{
var node = nodes.snapshotItem(x);
var text = node.textContent;
var what = null;
if( what = text.match("Clean\\s+the\\s+carcass\\s+of\\s+(.*?)\\s+\\(") )
{
var target = what[1];
var key = 'ii/food/' + target;
var value = localStorage.getItem(key);
// GM_log( "cached value(s) for '" + target + "'" );
// duff stored value
if( value == "(0, 0, 0)" )
{
done = false;
value = null;
localStorage.removeItem( key );
}
if( !done ) { sessionStorage.setItem('ii/food/last-carcass', key); }
// GM_log( "looking up '" + key + "'");
if( value )
{
// GM_log( target + " == " + value );
node.setAttribute( "title", value );
}
else
{
// GM_log( key + " == null" );
node.setAttribute( "title", "(?, ?, ?)" );
}
}
}