Bug - Fixed Some 1337 monsters have the wrong name after logging the encounter

heeheehee

Developer
Staff member
I think this problem is tied to monsters that are identified by image.

Some excerpts from my session log:
Encounter: cartwheeling, 1337 g14n7 g14n7 g14n7 c3n71p3d3
Round 0: heeheehee loses initiative!
Round 0: heeheehee casts POCKET CRUMBS!
Round 1: giant giant giant centipede takes 6 damage.

Encounter: 1337 3d 7h3 Undy1ng
Round 0: heeheehee loses initiative!
Round 1: 3d 7h3 undy1ng takes 9 damage.

Encounter: The 1337 N4ugh7y 50rc3r355 (2)
Round 0: heeheehee loses initiative!
You lose 3 hit points
Round 1: heeheehee attacks!
Round 2: the n4ugh7y 50rc3r355 (2) takes 144 damage.

Centipede (and in fact, most monsters) were identified just fine, but these two in particular were not.
 

Veracity

Developer
Staff member
Well... AdventureRequest.translateGenericType is where it does all the disambiguation.

The first thing it does is to use BasementRequest.basementMonster if you are in the basement. I believe that uses text from the encounter to identify the monster, rather than monster name or image, so we should be OK.

The next thing it does is strip off the random modifiers and translate the monster name from 1337 speak, if appropriate.

And then it proceeds with the other methods we have for disambiguating monsters: consequences.txt, monster image, video game monsters. Most of the consequences.txt disambiguation depends partly on the base monster name (which we SHOULD have trnslated correctly from 1337) AND monster images. So, for Ed the Undying:

Code:
MONSTER	Ed the Undying	/ed(\d)\.gif	"Ed the Undying ($1)"
MONSTER	Ed the Undying	.	"Ed the Undying (1)"
and for the Naughty Sorceress, well, we have no special handling for her, since KoL itself reports her as Naughty Sorceress, Naughty Sorceress (2), and Naughty Sorceress (3).What I notice is this:

Encounter: 1337 3d 7h3 Undy1ng
Round 1: 3d 7h3 undy1ng takes 9 damage.

We did not match the monster. Notice that the "U" is capitalized in the Encounter.

Encounter: The 1337 N4ugh7y 50rc3r355 (2)
Round 2: the n4ugh7y 50rc3r355 (2) takes 144 damage.

We did not match the monster. Notice that the "N" is capitalized in the Encounter.

I don't see why that would be a problem:

> ash leetify( "Ed the Undying" )

Returned: 3d 7h3 Undy1ng

> ash leetify( "Naughty Sorceress (2)" )

Returned: N4ugh7y 50rc3r355 (2)
... since exactly those strings should be in our 1337 -> monster translation table. But, perhaps not.

Here are my results from yesterday with Ed and the Naughty Sorceress:

Code:
[703] The Lower Chambers (Empty/Empty/Ed's Chamber)
Encounter: annoying Ed the Undying
Round 2: Ed the Undying (1) takes 12 damage.

[704] The Lower Chambers
Encounter: skinny Ed the Undying
Round 2: Ed the Undying (2) takes 267 damage.

[705] The Lower Chambers
Encounter: haunted Ed the Undying
Round 2: Ed the Undying (3) takes 220 damage.

[706] The Lower Chambers
Encounter: sleazy Ed the Undying
Round 2: Ed the Undying (4) takes 203 damage.

[707] The Lower Chambers
Encounter: skinny Ed the Undying
Round 2: Ed the Undying (5) takes 274 damage.

[708] The Lower Chambers
Encounter: tiny Ed the Undying
Round 2: Ed the Undying (1) takes 317 damage.

[709] The Lower Chambers
Encounter: broke Ed the Undying
Round 2: Ed the Undying (7) takes 218 damage.
Notice that we successfully disambiguated Ed via his image - except for "tiny" Ed, who obviously didn't have the same image.

Code:
[795] The Naughty Sorceress' Chamber
Encounter: The twirling Naughty Sorceress
Round 2: Naughty Sorceress takes 82 damage.

[796] The Naughty Sorceress' Chamber
Encounter: The invisible Naughty Sorceress (2)
Round 2: Naughty Sorceress (2) takes 77 damage.

[796] The Naughty Sorceress' Chamber
Encounter: The foul-mouthed Naughty Sorceress (3)
Round 0: Veracity loses initiative!
You lose 32 hit points
You lose 466,990 hit points

[809] The Naughty Sorceress' Chamber
Encounter: The untouchable Naughty Sorceress
Round 2: Naughty Sorceress takes 6 damage.

[809] The Naughty Sorceress' Chamber
Encounter: The yuletide Naughty Sorceress
Round 2: Naughty Sorceress takes 105 damage.

[810] The Naughty Sorceress' Chamber
Encounter: The electrified Naughty Sorceress (2)
Round 2: Naughty Sorceress (2) takes 55 damage.

[810] The Naughty Sorceress' Chamber
Encounter: The throbbing Naughty Sorceress
Round 2: Naughty Sorceress takes 107 damage.

[811] The Naughty Sorceress' Chamber
Encounter: The filthy Naughty Sorceress (2)
Round 2: Naughty Sorceress (2) takes 104 damage.

[811] The Naughty Sorceress' Chamber
Encounter: The restless Naughty Sorceress (3)
Round 0: Veracity loses initiative!
Round 1: Veracity wins the fight!
Since we did not need to disambiguate the Naughty Sorceress, we had no problem.

So, obviously something is different about 1337 Ed and 1337 Naughty Sorceress.

For the latter, I wonder if we are trying to disambiguate "The Naughty Sorceress", even though the actual monster is named "Naughty Sorceress". For Ed, no idea, yet.
 

Veracity

Developer
Staff member
Code:
Encounter: cartwheeling, unstoppable Video Game Minion (weak)
That was how KoL itself reported it; it was not a "filthy bat minion" (or whatever). It was a "Video Game Minion (weak)". That happens to be the Manuel name for the monster.

Code:
Encounter: jittery, 1337 V1d30 G4m3 M1n10n (w34k)
If I could assume that after you strip out the adjectives, what remains is exactly the Manuel name of the monster - possibly leetified - that could be useful. Unfortunately, not quite.

Code:
Encounter: The yuletide Naughty Sorceress
Round 2: Naughty Sorceress takes 105 damage.
For some monsters, the monname span includes an Article which is not part of the official monster name. And, as this thread points out, The Naughty Sorceress is such a monster.

There are a handful of monsters which actually have "The" as part of their Manuel name:

Code:
The Big Wisniewski
The Clownlord Beelzebozo
The Darkness (blind)
the former owner of the Skeleton Store
the ghost of Phil Bunion
the gunk
The Man
The Mariachi With No Name
The Master of Thieves
The Nuge
The Snake With Like Ten Heads
The Temporal Bandit
I wonder how those get leetified? Well, I should be able to test "the gunk" in aftercore, using my ascension rewards that add random attributes; the others are not things that you can repeatedly test (easily) if they don't happen to be randomly given the 1337 attribute when you encounter them.

Code:
Encounter: drunk The Big Wisniewski
A ha. The adjectives go in front of the Manuel name, including "The"

I am thinking that before we remove random adjectives, if the monster name starts with "The " (i.e., in front of the adjectives, as it does for The yuletide Naughty Sorceress"), we should strip it off before removing the adjectives. Then, once all the adjectives are gone, we should end up with exactly the Manuel name, and when we unleetify it, we'll be able to look it up.

I still don't understand the issue with Ed the Undying. When I go after him tomorrow, I'll keep a DEBUG log going, and perhaps I'll see a 1337 Ed.
 

Veracity

Developer
Staff member
Revision 15860 does that. Hopefully, that will fix the Naughty Sorceress. I'm leaving this open until I can get a DEBUG log of 1337 Ed the Undying and can see what's up with him.
 

Veracity

Developer
Staff member
Code:
[720] Hippy Camp
Encounter: tiny, 1337 7h3 B1g W15n13w5k1
Round 0: Veracity wins initiative!
Round 1: Veracity attacks!
You lose 5 hit points
Round 2: The Big Wisniewski takes 58 damage.[720] Hippy Camp
Encounter: tiny, 1337 7h3 B1g W15n13w5k1
Round 0: Veracity wins initiative!
Round 1: Veracity attacks!
You lose 5 hit points
Round 2: The Big Wisniewski takes 58 damage.
As expected, 1337 The Big Wisniewski worked.

By the way, with no +ML, Manuel says that he had 200 HP - exactly 10% of normal.
I think we understand "tiny" now.
 

Yendor

Member
This wasn't recognized in my encounter listing:
Code:
[701] Fastest Adventurer Contest
Encounter: The 1337 745m4n14n D3rv15h
Manuel says Tasmanian Dervish does not have a The in its name.
 
Last edited:

Veracity

Developer
Staff member
Revision 15872 should fix 1337 Ed and 1337 <Your Shadow>. The problem with those is although KoL reports you are fighting "Ed the Undying" or "a Shadow Walrus Boxer" (for example), we don't have those monsters in monsters.txt, only the ones that we disambiguate via image. As a result, we didn't have 1337 entries for them in our table. I added those (dummy) monsters to monster.txt, and now my saved logs work correctly:

throbbing, ghostly, 1337 3d 7h3 Undy1ng -> Ed the Undying (1)
a tie-dyed, 1337, American 5h4d0w W41ru5 B1udg30n3r -> Your Shadow

I'll have to look at consequences.txt to see if there are other similar cases.
 

Veracity

Developer
Staff member
Looking at consequences.txt, I would guess that if we saw any of the following with 1337 names, we would not be able to find them in the LEET_MONSTER_DATA map, since the KoL name is not in monsters.txt by itself, since it's always disambiguated to something else.

Orcish Frat Boy
Ninja Snowman
The Darkness
Trippy Floating Head
Gorgolok, the Infernal Seal
Stella, the Turtle Poacher
Spaghetti Elemental
Lumpy, the Sinister Sauceblob
the Spirit of New Wave
Somerset Lopez, Dread Mariachi

The first three might actually come up in-run; the last 7 only if you do the Nemesis quest with random attributes active.
 

Veracity

Developer
Staff member
OK, I just tested Orcish Frat Boys and Ninja Snowmen in aftercore with 6 random modifier gear. It still took a long time to get 1337 versions of them that didn't have their image changed because of another modifier, but they came, and they were disambiguated correctly.

I also got proceeded in the Nemesis quest, and with revision 15890, was able to similarly recognize the Spaghetti Elemental in the Inner Sanctum.

I think is working as well as I am motivated to make it work. So, I declare this done.
 

Veracity

Developer
Staff member
By the way, I also tested the Haiku Dungeon with random modifiers. The haiku announcing the monster is unchanged, although the image is, and the ocrs variable is set. So, we detect monster and save attributes just fine.
 
Top