New Content - Implemented Summer 2015 Path: One Crazy Random Summer

Bale

Minion
dice ring: http://127.0.0.1:60080/desc_item.php?whichitem=835114452
dice belt buckle: http://127.0.0.1:60080/desc_item.php?whichitem=574345959
dice-print pajama pants: http://127.0.0.1:60080/desc_item.php?whichitem=212346816
dice-shaped backpack: http://127.0.0.1:60080/desc_item.php?whichitem=402888121
dice-print do-rag: http://127.0.0.1:60080/desc_item.php?whichitem=371916226
dice sunglasses: http://127.0.0.1:60080/desc_item.php?whichitem=483999849

When path is started, choiceAdventure1077 is encountered. There is only option 1, so it should be the default.

Most significantly, KoLmafia is incapable of recognizing any of the monsters since they have an adjective (or more) in front of their name. Also, the picture is messed with using CSS, but that might not trouble KoLmafia... I'm not sure about that. Here's a sample combat:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<script language=Javascript>
<!--
if (parent.frames.length == -1) location.href="game.php";
top.charpane.location.href="charpane.php";
//-->
</script>
<script language=Javascript src="//images.kingdomofloathing.com/scripts/keybinds.min.2.js"></script>
<script language=Javascript src="//images.kingdomofloathing.com/scripts/window.20111231.js"></script>
<script language="javascript">function chatFocus(){if(top.chatpane.document.chatform.graf) top.chatpane.document.chatform.graf.focus();}
if (typeof defaultBind != 'undefined') { defaultBind(47, 2, chatFocus); defaultBind(190, 2, chatFocus);defaultBind(191, 2, chatFocus); defaultBind(47, 8, chatFocus);defaultBind(190, 8, chatFocus); defaultBind(191, 8, chatFocus); }</script><script language=Javascript src="//images.kingdomofloathing.com/scripts/jquery-1.3.1.min.js"></script>
<script type="text/javascript">
jQuery(function ($) {
	$(document).ready(function() {
		throb_out();
	});
});
function throb_out() {
	jQuery(function ($) {
		$('.throbtext').fadeTo(Math.random()*400,.5);
	})
	setTimeout(throb_in,400+Math.random()*200);	
}
function throb_in() {
	jQuery(function ($) {
		$('.throbtext').fadeTo(Math.random()*400,Math.min(.95,Math.random()+.5));
		setTimeout(throb_out,400+Math.random()*200);	
		//setTimeout(throb_out,1200);	
	})
}
</script><script language="javascript" src="/images/scripts/core.js"></script><script language="javascript" src="/images/scripts/ocrs.js"></script><link rel="stylesheet" href="/images/scripts/ocrs.css" /><link rel="stylesheet" type="text/css" href="/images/actionbar.6.css">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="/images/actionbar.ie.4.css">
<script src='/images/scripts/minmax.js'></script>
<![endif]-->
<script>
var onturn = 1;
function newpic(pic, name, width, height)
{
   var h = height || 100;
   var w = width || 100;
   mpic = getObj('monpic');
   mnam = getObj('monname');
   mpic.src=pic;
   mpic.width=w;
   mpic.height=h;
   mnam.innerHTML=name;
}

var waking = false;

function killforms(sub) {
	sub.disabled = true;
	var is = document.getElementsByTagName("input");
	for (i=0; i < is.length; i++) {
		if (is[i].getAttribute('type') == 'submit') { is[i].disabled = true; }
	}

	if (waking) { clearTimeout(waking); }
	waking = setTimeout(function () {
		for (i=0; i < is.length; i++) {
			if (is[i].getAttribute('type') == 'submit') { is[i].disabled = false; }
		}
	}, 3000);

	sub.form.submit();

	return true;
}


</script>
<link rel="stylesheet" type="text/css" href="//images.kingdomofloathing.com/styles.20150113.css">
<style type='text/css'>
.faded {
	zoom: 1;
	filter: alpha(opacity=35);
	opacity: 0.35;
	-khtml-opacity: 0.35; 
    -moz-opacity: 0.35;
}
</style>

<script language="Javascript" src="/basics.js"></script><link rel="stylesheet" href="/basics.1.css" /></head>

<body>
<img src='/images/itemimages/blank.gif' id='dragged'><div id='debug'></div><div class=contextmenu id='skillmenu'></div><div class=contextmenu id='itemsmenu'></div><div id=topbar><center><table class=actionbar cellpadding=0 cellspacing=1><tbody><tr class=label><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>0</td><td>–</td><td>=</td><td></td><td></td><td></td></tr><tr class=blueback><td><a href='fight.php?action=custom'><img src='/images/itemimages/plexpock.gif'></td><td class=spacer></td><td><img src='/images/itemimages/book3.gif' id='skills'></td><td class=spacer></td><td><img src='/images/itemimages/blank.gif' id='button1'></td><td><img src='/images/itemimages/blank.gif' id='button2'></td><td><img src='/images/itemimages/blank.gif' id='button3'></td><td><img src='/images/itemimages/blank.gif' id='button4'></td><td><img src='/images/itemimages/blank.gif' id='button5'></td><td><img src='/images/itemimages/blank.gif' id='button6'></td><td><img src='/images/itemimages/blank.gif' id='button7'></td><td><img src='/images/itemimages/blank.gif' id='button8'></td><td><img src='/images/itemimages/blank.gif' id='button9'></td><td><img src='/images/itemimages/blank.gif' id='button10'></td><td><img src='/images/itemimages/blank.gif' id='button11'></td><td><img src='/images/itemimages/blank.gif' id='button12'></td><td valign=center align=center class=page><a class=nounder href='javascript:pageup();'><img src='/images/otherimages/tinyup.gif' class=updown></a><br><span id='page_out'></span><br><a class=nounder href='javascript:pagedown();'><img src='/images/otherimages/tinydown.gif' class=updown></a></td><td class=spacer></td><td><img src='/images/itemimages/backpack.gif' id='items'></td></tr><tr class=label><td>script</td><td></td><td>skills</td><td></td><td id='qty1'></td><td id='qty2'></td><td id='qty3'></td><td id='qty4'></td><td id='qty5'></td><td id='qty6'></td><td id='qty7'></td><td id='qty8'></td><td id='qty9'></td><td id='qty10'></td><td id='qty11'></td><td id='qty12'></td><td></td><td></td><td>items</td></tr></tbody></table></center></div><div class=content id='content_'><div id='effdiv' style='display: none'></div><div style='overflow: auto'><center><!--faaaaaaart--><table  width=95%  cellspacing=0 cellpadding=0><tr><td style="color: white;" align=center bgcolor=blue><b>Combat: Round 1!</b></td></tr><tr><td style="padding: 5px; border: 1px solid blue;"><center><table><tr><td><center><table><tr><td><div id=monsterpic style='position: relative;'>	<img id='monpic'  crossorigin="Anonymous"  src="/images/adventureimages/kg_madsci.gif" width=100 height=100></div></td><td valign=center>You're fighting <span id='monname'>a jittery Sub-Assistant Knob Mad Scientist</span></td><td width=30></td><td><table><tr><td width=30><img src=/images/itemimages/nicesword.gif width=30 height=30 alt="Enemy's Attack Power" title="Enemy's Attack Power"></td><td width=50 valign=center align=left><b><font size=+2>11</font></b></td><td><img src=/images/itemimages/goblinflavor.gif alt="This monster is a Goblin" title="This monster is a Goblin"></td></tr><tr><td width=30><img src=/images/itemimages/whiteshield.gif width=30 height=30 alt="Enemy's Defense" title="Enemy's Defense"></td><td width=50 valign=center align=left><b><font size=+2>11</font></b></td><td><img src=/images/itemimages/circle.gif width=30 height=30 alt="This monster has no particular elemental alignment." title="This monster has no particular elemental alignment."></td></tr><tr><td width=30><img src=/images/itemimages/hp.gif width=30 height=30 alt="Enemy's Hit Points" title="Enemy's Hit Points"></td><td width=50 valign=center align=left><b><font size=+2>11</font></b></td><td><img src=/images/itemimages/lightningbolt.gif alt="Always wins initiative" title="Always wins initiative"></td></tr></table></td></tr></table><br><script type="text/javascript">var monsterstats = {"hp":"11","def":"11","off":"11"};</script></center><blockquote>You know how sometimes a Mad Scientist will have an assistant?  Well, sometimes those assistants have assistants, and that's what this Knob Goblin is.  He's got a few tricks up his sleeve, though, so watch out.</blockquote><center><p><p>He gets the jump on you.<p><script>var ocrs = ["jitter"];</script><p><table><tr><td>He tries to blind you with science, but you dodge like poetry in motion.</td></tr></table><div id='fightform' class='hideform'><p><center><table><a name="end"><form name=attack action=fight.php method=post><input type=hidden name=action value="attack"><tr><td align=center><input id='tack' picurl=acc5 onclick="return killforms(this)"  class=button type=submit value="Attack with your Shakespeare's Sister's Accordion"></td></tr></form></a><form name=useitem action=fight.php method=post><input type=hidden name=action value="useitem"><tr><td align=left><select name=whichitem><option value=0>(select an item)</option><option picurl=syringe3 selected value=7383>DNA extraction syringe (1)</option><option picurl=tooth value=2>seal tooth (1)</option></select><br><select name=whichitem2><option value=0>(select an item)</option><option  value=7383>DNA extraction syringe (1)</option><option selected value=2>seal tooth (1)</option></select> <input class=button type=submit onclick="return killforms(this);" value="Use Item(s)"></td></tr></form><form name=skill action=fight.php method=post><input type=hidden name=action value="skill"><tr><td align=center><select name=whichskill><option value='none'>(select a skill)</option><option value="2" picurl="fireball" >Chronic Indigestion (3 Mojo Points)</option><option value="15" picurl="commacha" >CLEESH (8 Mojo Points)</option><option value="19" picurl="snout" >Transcendent Olfaction (38 Mojo Points)</option><option value="29" picurl="campfire" >Conjure Relaxing Campfire (28 Mojo Points)</option><option value="31" picurl="snowflake" >Maximum Chill (28 Mojo Points)</option><option value="37" picurl="wink" >Inappropriate Backrub (28 Mojo Points)</option><option value="33" picurl="blooddrops" >Mudbath (28 Mojo Points)</option><option value="43" picurl="creepysleepy" >Creepy Lullaby (28 Mojo Points)</option><option value="79" picurl="tattle" >Tattle (5 Mojo Points)</option><option value="117" picurl="rrainbow" >Belch The Rainbow (3 Mojo Points)</option><option value="131" picurl="garbagenova" >Garbage Nova (48 Mojo Points)</option><option value="92" picurl="upsideturtle" >Club Earth (48 Mojo Points)</option><option value="94" picurl="splattersmash" >Splattersmash (23 Mojo Points)</option><option value="97" picurl="turtleini" >Turtleini (33 Mojo Points)</option><option value="98" picurl="sauceshell" >Sauceshell (28 Mojo Points)</option><option value="99" picurl="whispers" >Conspiratorial Whispers (23 Mojo Points)</option><option value="102" picurl="shadownoodles" >Shadow Noodles (28 Mojo Points)</option><option value="104" picurl="splashdance" >Splashdance (28 Mojo Points)</option><option value="1022" picurl="clobber" >Clobber (1 Mojo Point)</option><option value="1023" picurl="hookspear" >Harpoon! (28 Mojo Points)</option><option value="1004" picurl="club2" >Lunge Smack (1 Mojo Point)</option><option value="1003" picurl="club" >Thrust-Smack (1 Mojo Point)</option><option value="1033" picurl="clubfoot" >Club Foot (6 Mojo Points)</option><option value="1005" picurl="cudgel" >Lunging Thrust-Smack (6 Mojo Points)</option><option value="1038" picurl="northernexp" >Northern Explosion (14 Mojo Points)</option><option value="2022" picurl="ssnapper" >Spectral Snapper (18 Mojo Points)</option><option value="2023" picurl="toss" >Toss (1 Mojo Point)</option><option value="2024" picurl="leviatuga" >Summon Leviatuga (38 Mojo Points)</option><option value="2003" picurl="headbutt" >Headbutt (1 Mojo Point)</option><option value="2028" picurl="shellup" >Shell Up (4 Mojo Points)</option><option value="2032" picurl="spiritsnap" >Spirit Snap (8 Mojo Points)</option><option value="2015" picurl="kneebutt" >Kneebutt (2 Mojo Points)</option><option value="3019" picurl="fearfulfet" >Fearful Fettucini (30 Mojo Points)</option><option value="3020" picurl="line" >Spaghetti Spear (1 Mojo Point)</option><option value="3003" picurl="ravshurikens" >Ravioli Shurikens (2 Mojo Points)</option><option value="3004" picurl="entnoodles" >Entangling Noodles (1 Mojo Point)</option><option value="3009" picurl="lasbandage" >Lasagna Bandages (4 Mojo Points)</option><option value="3005" picurl="pastacannon" >Cannelloni Cannon (6 Mojo Points)</option><option value="3007" picurl="stuffshell" >Stuffed Mortar Shell (6 Mojo Points)</option><option value="3008" picurl="ironspoon" >Weapon of the Pastalord (30 Mojo Points)</option><option value="4020" picurl="salsaball" >Salsaball (1 Mojo Point)</option><option value="4024" picurl="scurse1" >Curse of Vichyssoise (1 Mojo Point)</option><option value="4003" picurl="saucestream" >Stream of Sauce (1 Mojo Point)</option><option value="4014" picurl="saucysalve" >Saucy Salve (2 Mojo Points)</option><option value="4005" picurl="raincloud" >Saucestorm (4 Mojo Points)</option><option value="4029" picurl="scurse3" >Curse of Marinara (2 Mojo Points)</option><option value="4009" picurl="saucewave" >Wave of Sauce (8 Mojo Points)</option><option value="4031" picurl="scurse2" >Curse of the Thousand Islands (4 Mojo Points)</option><option value="4032" picurl="saucecicle" >Saucecicle (10 Mojo Points)</option><option value="4012" picurl="saucegeyser" >Saucegeyser (22 Mojo Points)</option><option value="4034" picurl="scurse4" >Curse of Weaksauce (6 Mojo Points)</option><option value="5019" picurl="terrortango" >Tango of Terror (6 Mojo Points)</option><option value="5021" picurl="hernia" >Suckerpunch (1 Mojo Point)</option><option value="5003" picurl="eyepoke" >Disco Eye-Poke (1 Mojo Point)</option><option value="5005" picurl="dance1" >Disco Dance of Doom (1 Mojo Point)</option><option value="5008" picurl="dance2" >Disco Dance II: Electric Boogaloo (2 Mojo Points)</option><option value="5012" picurl="facestab" >Disco Face Stab (6 Mojo Points)</option><option value="5033" picurl="knifedark" >Knife in the Dark (8 Mojo Points)</option><option value="5035" picurl="irondagger" >Disco Shank (11 Mojo Points)</option><option value="5036" picurl="dance3" >Disco Dance 3: Back in the Habit (8 Mojo Points)</option><option value="5037" picurl="fire" >Disco Inferno (13 Mojo Points)</option><option value="6025" picurl="breath" >Sing (0 Mojo Points)</option><option value="6029" picurl="brokenflute" >Dissonant Riff (1 Mojo Point)</option><option value="6030" picurl="cadenza" selected>Cadenza (0 Mojo Points)</option><option value="6032" picurl="accordionbash" >Accordion Bash (3 Mojo Points)</option><option value="6034" picurl="cdlm" >Concerto de los Muertos (6 Mojo Points)</option><option value="6037" picurl="bawdyrefrain" >Bawdy Refrain (9 Mojo Points)</option><option value="6040" picurl="zydecone" >Cone of Zydeco (13 Mojo Points)</option><option value="7245" picurl="lb_mosquito" >Summon Love Mosquito (0 Mojo Points)</option><option value="7246" picurl="lb_stink" >Summon Love Stinkbug (0 Mojo Points)</option><option value="7247" picurl="lb_gnats" >Summon Love Gnats (0 Mojo Points)</option><option value="17047" picurl="exclam" >Mild Curse (1 Mojo Point)</option></select> <input class=button type=submit onclick="return killforms(this);" value="Use Skill"></td></tr></form><form name=macro action=fight.php method=post><input type=hidden name=action value="macro"><input type="hidden" name="macrotext" value=""><tr><td align=center><select name=whichmacro><option value='0'>(select a macro)</option><option value="80723" picurl="grimglaive" >Spam Attack</option><option value="81441" picurl="vampirefangs" >Spam Infection</option><option value="134959" picurl="dv_mark6" >Stasis 'till I Die</option><option value="18415" picurl="heboulder" >Yellow Ray</option></select> <input class=button type=submit onclick="return killforms(this);" value="Execute Macro"></td></tr></form><form name=runaway action=fight.php method=post><input type=hidden name=action value="runaway"><tr><td align=center><input class=button onclick="return killforms(this);" type=submit value="Run Away"></td></tr></form></table></center></div><br><a href='#' onclick='document.getElementById("fightform").className="showform"; document.getElementById("formlink").style.display = "none";' id='formlink' class=tiny>(show old combat form)</a></td></tr></table></center></td></tr><tr><td height=4></td></tr></table><!--faaaaaaart--></center></div></div><script>var pwd="20d07c43b11dfeb2c6c67c1dcf16b85a";</script><script src='/images/scripts/actionbar.20140514.js'></script></body><script src="/onfocus.1.js"></script><script src="/combatfilter.1.js"></script></html>
 
Last edited:
The 1337 adjective also malforms the monster name. Here's some examples I encountered:
Code:
1337 1 1mp
1337 gr4v3 r0b3r zm0b13
1337 drunk3n h41f-0rc h0b0
1337 Gn01115h G34rh34d
 

lostcalpolydude

Developer
Staff member
Code:
<script>var ocrs = ["pixellated"];</script>
That's one thing on the page. I bet we could use that to figure out which prefixes to strip, which handles the majority of cases (but not all of them).
 

lostcalpolydude

Developer
Staff member
Code:
var ocrs = ["turgid","haunted","appendimg:adventureimages\/ol_haunted.gif:0:-0"];
You're fighting a turgid, haunted bar
That's what shows up for multiple modifiers. Looks like anything in ocrs with a colon needs ignoring, maybe, and there are commas to remove for prepended modifier words.
 

lostcalpolydude

Developer
Staff member
I have code written that should handle monster recognition (except for 1337 monsters, which will need their own code), I'm just testing it now since I keep finding little things to fix.
 

lostcalpolydude

Developer
Staff member
And done in 15833. The same code would work when wearing the path reward gear outside of the path, but it isn't running yet. I don't want it to run when it can't possibly apply.

I made use of XPath stuff thanks to roippi's threads from several months ago. I wanted contains(), but I was able to get by without it.

I would have liked Java 7's switching on Strings for this, but it doesn't really matter.
 

Veracity

Developer
Staff member
(after eating an optimal dog)
> counters

Last semirare found 0 turns ago (on turn 264) in Twin Peak

Unexpired counters:
Spookyraven Lights Out (2)
Fortune Cookie (0)

> inv golden

evil golden arch (2)
Golden Light

[265] The Hidden Temple
Encounter: throbbing Baa'baa'bu'ran
Round 0: Veracity wins initiative!
Round 1: Veracity uses the Golden Light!
You acquire an effect: Everything Looks Yellow
Round 2: Tubert runs in circles around your opponent, tangling him up in the nasty child leash and dealing 13 damage.
Round 2: Baa'baa'bu'ran takes 13 damage.
Round 2: Veracity wins the fight!
After Battle: A love firefly flits flirtatiously around your head.
You gain 4 Enchantedness
You acquire an item: stone wool
You acquire an item: stone wool
You acquire an item: stone wool
After Battle: Tubert is so excited about Crimbo that he starts doing backflips. (+9 Stats)
You gain 8 Strongness
You gain a Muscle point!
You gain 13 Enchantedness
You gain 30 Sarcasm
You spent 950 Meat
after spending another turn:

> counters

Last semirare found 2 turns ago (on turn 264) in Twin Peak

Unexpired counters:
Spookyraven Lights Out (0)
It did not recognize the throbbing Baa'baa'bu'ran as a semirare - although it did recognize the monster: "Round 2: Baa'baa'bu'ran takes 13 damage."
 

heeheehee

Developer
Staff member
Since 1337 is not an invertible transformation (L and i get mapped to 1, so it's not injective), the best approach I could come up with is to precompute all the 1337ified names and store that mapping in a TreeMap. Proof-of-concept was in ASH; this should be fairly easy to translate to Java.
Code:
string leet(string name) {
    buffer b;
    string c;
    for i from 0 upto name.length() - 1 {
        c = name.char_at(i);
        switch (c) {
	    case 'o':
		b.append("0");
		break;
	    case 'i':
	    case 'l':
		b.append("1");
		break;
	    case 'e':
		b.append("3");
		break;
	    case 'a':
		b.append("4");
		break;
	    case 's':
		b.append("5");
		break;
	    case 't':
		b.append("7");
		break;
	    default:
		b.append(c);
        }
    }
    return b.to_string();
}
string leet_regex(string name) {
    name = replace_all(create_matcher("(?i)o", name), "0");
    name = replace_all(create_matcher("(?i)[il]", name), "1");
    name = replace_all(create_matcher("(?i)e", name), "3");
    name = replace_all(create_matcher("(?i)a", name), "4");
    name = replace_all(create_matcher("(?i)s", name), "5");
    name = replace_all(create_matcher("(?i)t", name), "7");
    return name;
}

static {
    monster [string] deleeted;
    foreach mob in $monsters[] {
	deleeted[leet(to_string(mob))] = mob;
    }
}

monster deleet(string name) {
    if (deleeted contains name) {
	return deleeted[name];
    }
    return $monster[none];
}


foreach name in $strings[1 1mp, gr4v3 r0b3r zm0b13, drunk3n h41f-0rc h0b0, Gn01115h G34rh34d, h31110n] {
    print(deleet(name));
}
 

Veracity

Developer
Staff member
That seems like a reasonable approach. I shook my head in disbelief when I started getting these:

a 1337 g4rb4g3 70ur157
a 1337 701137 p4p3rg3157
a 1337 1rr17471ng 53r135 0f R4nd0m 3nc0un73r5
 

Veracity

Developer
Staff member
If you have a monster with multiple random modifiers, one of which is 1337, do the random modifiers had 1337-ified too?
 

heeheehee

Developer
Staff member
I honestly don't know, but I can't imagine it'd matter, since we just parse the ocrs javascript variable to decide how many leading adjectives to strip away.
 

lostcalpolydude

Developer
Staff member
I refactored some code to fix monster names earlier, I just want to test it a bit more before committing. The result will be a setup where there is no mafia logging of anything about the modifiers. However, it's all stored as a List of Strings briefly, so it won't be too hard to do more from there.

I honestly don't know, but I can't imagine it'd matter, since we just parse the ocrs javascript variable to decide how many leading adjectives to strip away.

Actually, we parse that variable to determine exactly what text to remove, so it does matter.
 

Veracity

Developer
Staff member
Proof-of-concept was in ASH; this should be fairly easy to translate to Java.
That seems like a reasonable approach. I shook my head in disbelief when I started getting these:

a 1337 g4rb4g3 70ur157
a 1337 701137 p4p3rg3157
a 1337 1rr17471ng 53r135 0f R4nd0m 3nc0un73r5
Revision 15840 provides StringUtilities.leetify( String text ) - and, just for fun, ASH string leetify( string ) - which is like your ASH leet() function, except that it also translates uppercase characters since, as you can see, one of the monsters I encountered had such in its normal name.

> ash leetify( "garbage tourist" )

Returned: g4rb4g3 70ur157

> ash leetify( "toilet papergeist" )

Returned: 701137 p4p3rg3157

> ash leetify( "Irritating Series of Random Encounters" )

Returned: 1rr17471ng 53r135 0f R4nd0m 3nc0un73r5
I didn't make a map of 1337 monster names in MonsterDatabase, yet. Nor did I make a map of 1337 random attributes, since we don't know yet whether KoL munges attribute names when the 1337 attribute is present. Perhaps it munges all of them, or none of them, or those that appear AFTER the 1337 attribute.

But, this is the method we need for those things...
 

heeheehee

Developer
Staff member
The regex version actually handled that; I guess I forgot to add that to the version that just appends to a buffer.

edit: actually, ASH is slightly "weird" in that String equality checking (and hence switch / case) is case insensitive, so my leet function works just fine.
 
Last edited:

Veracity

Developer
Staff member
Revision 15842 adds the dice items.

I did not add a numeric "Random Monster Attribute" modifier. Those 6 items have it, as does the Curse of Randomness status effect. I'm not sure why anyone would care, although, I guess you could choose to maximize on it if it exists. Why not, I guess...
 

heeheehee

Developer
Staff member
I didn't make a map of 1337 monster names in MonsterDatabase, yet. Nor did I make a map of 1337 random attributes, since we don't know yet whether KoL munges attribute names when the 1337 attribute is present. Perhaps it munges all of them, or none of them, or those that appear AFTER the 1337 attribute.

Encounter: filthy, 1337 pygmy b0w13r
1337, clingy drunk pygmy
I guess that's conclusive?
 

Yendor

Member
Code:
--------------------
8296	Thwaitgold caterpillar statuette	681318742	thwaitcat.gif	none		0
# Item Thwaitgold caterpillar statuette
--------------------
 
Top