New Content Feb 2022 IotM: Combat lover's locket

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
I can't work on it right now but we'll need
  • Items
  • A pref for the monsters you've fought via the locket today (you can only fight each monster once, and only three total). Probably comma separated monster ids.
    • Do we have a second pref for number of fights done? Or do we just split by comma and count?
  • A function & cli command for getting all of the monsters you have in your locket - I think a pref will quickly grow too large as it persists across ascension, so this should just visit the [reminisce] page and parse it.
    • The cli command would probably benefit from a mode to also initiate a fight.

Later down the line:
  • This item now gives us instant feedback over whether a monster is marked NOCOPY or BOSS by KoL - we could use a "Mafia thinks X but actually Y" message, and a spading hook.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
Oh also a pref for last phylum fought to make the mod strings work
 
I personally would split by comma and count, but also I don't think it hurts anyone to have a pref for number of fights done.

We need to know if the lastLocketPhylum preference needs an underscore. I expect it won't, and perhaps dev magick will tell us definitively before RO, but it's definitely worth mentioning that we don't fully know the reset mechanic there.

Do we want the ash function to visit the reminisce page every time it's called? Or just once per session? Given that there's a message for enlocketing a monster, it doesn't feel like we'd need to do the server hit every time.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
Yeah we can visit once per session and then add to it if necessary, that's fine
 

VladYvhuce

Member
It's not yet in Mr Store, so spading will be limited to people with subscriptions, unless they put it in the mall.
 

Ryo_Sangnoir

Developer
Staff member
  • This item now gives us instant feedback over whether a monster is marked NOCOPY or BOSS by KoL - we could use a "Mafia thinks X but actually Y" message, and a spading hook.
So does Rain Man, right? But Rain Man looks in Manuel too, so it's even better.
 

Veracity

Developer
Staff member
I've been playing with printing the choice select options. I am amused that KoL itself has the dropdown ordered by (case insensitive) monster name, rather than by monster id - which is the actual value of the option; the name is the spoiler, so to speak.

I munged how we print choice "select" options to print like that:

Code:
> choice

choice 1: (secret choice)
  select = mid (81 options)
    1541 => animated mahogany nightstand
    1542 => animated ornate nightstand
    1543 => animated rustic nightstand
    388 => banshee librarian
    202 => bar
    2153 => basic lihc
    150 => batrat
    48 => beanbat
    1246 => bearpig topiary animal
    571 => beefy bodyguard bat
    156 => big creepy spider
    1073 => big swarm of ghuol whelps
    387 => bookbat
    108 => bugbear-in-the-box
    472 => cavewomyn hippy
    383 => chalkdust wraith
    400 => claw-foot bathtub
    157 => completely different spider
    112 => creepy clown
    393 => cubist bull
    373 => demonic icebox
    126 => Demoninja
    1071 => dirty old lihc
    110 => disease-in-the-box
    395 => empty suit of armor
    127 => Fallen Archfiend
    125 => G imp
    190 => gaunt ghuol
    189 => gluttonous ghuol
    195 => grave rober zmobie
    394 => guy with a pitchfork, and his wife
    128 => Hellion
    281 => hung-over half-orc hobo
    153 => Knob Goblin Assistant Chef
    155 => Knob Goblin Barbecue Team
    1062 => Knob Goblin Madam
    124 => L imp
    109 => lemon-in-the-box
    32 => lihc
    2156 => magical fruit bat
    389 => malevolent hair clog
    1070 => modern zmobie
    2155 => musical fruit bat
    338 => Ninja Snowman
    1185 => ninja snowman assassin
    339 => Ninja Snowman Janitor
    340 => Ninja Snowman Weaponmaster
    1238 => oil cartel
    123 => P imp
    374 => paper towelgeist
    2154 => party skelteon
    372 => possessed silverware drawer
    159 => rushing bum
    111 => scary clown
    1010 => screambat
    192 => senile lihc
    285 => shaky clown
    29 => skleleton
    377 => skullery maid
    152 => sleeping Knob Goblin Guard
    193 => slick lihc
    1230 => smut orc jacker
    1232 => smut orc nailer
    1231 => smut orc pipelayer
    1233 => smut orc screwer
    185 => spiny skelelton
    201 => spooky mummy
    1 => spooky vampire
    154 => Sub-Assistant Knob Mad Scientist
    390 => toilet papergeist
    186 => toothy sklelton
    342 => triffid
    122 => W imp
    1540 => Wardröb nightstand
    199 => warwelf
    200 => wolfman
    31 => zmobie
    33 => zobmie
    378 => zombie chef

But you know - that's only useful for displaying to humans, rather than processing by programs, which probably are perfectly happy to have a set of available monster IDs.
 
Monster tracking looks like it has some issues. Fought a Black Crayon Penguin from the locket first today.

Code:
Took choice 1463/1: (secret choice)
choice.php?whichchoice=1463&pwd&option=1&mid=1204
Preference lastEncounter changed from The Mad Tea Party to Black Crayon Penguin
Encounter: Black Crayon Penguin
Preference _lastCombatStarted changed from  to 20220205073041
Preference _hipsterAdv changed from 0 to 1
Round 0: Malibu Stacey wins initiative!

Then an Embezzler

Code:
Preference locketPhylum changed from goblin to penguin
Took choice 1463/1: (secret choice)
choice.php?whichchoice=1463&pwd&option=1&mid=530
Preference lastEncounter changed from Witchess Knight to Knob Goblin Embezzler
Encounter: Knob Goblin Embezzler
Preference _lastCombatStarted changed from 20220205073635 to 20220205073819
Round 0: Malibu Stacey wins initiative!
Preference _locketMonstersFought changed from  to 530
Preference locketPhylum changed from penguin to goblin

Note how it sets locketPhylum (correctly) to "penguin" presumably when the current enchantments are read when I opened inventory. It is still "goblin" erroneously at that point from yesterdays Embezzler fight.

Both fights were initiated by manually clicking on the [reminisce] link on the item in inventory then selecting the appropriate monster in the choice page.

Code:
> ash get_locket_monsters()

Returned: aggregate boolean [monster]
Striking Gift-Wrapper Elf => true
Knob Goblin Embezzler => false
Wacky Zack Flacky => true
Black Crayon Man => true
smut orc screwer => true
Tin of Submardines => true
Norwhal => true
Arctic Octolus => true

This should be listing the Black Crayon Penguin but I'm guessing it's relying on the _locketMonstersFought property being correct since those you've fought today get removed from the reminisce choice page.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
If someone can provide a debug log for when the phylum should be set in a fight but isn't, I can fix this easily.
 

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
I have a fix PR up for this now I think
 
Not sure if this is worth its own thread or not, but cliExecute("reminisce witchess knight") appears to increment your witchess fights counter.​
EDIT: PR
 
Last edited:
reminisce command doesn't run CCS (or presumably any other custom combat actions, does anyone actually use any of those). Just starts a fight & sits there doing nothing.
 

ckb

Active member
What is the Location that a locket reminisce fight takes place in? Currently, Mafia just reports your previous location - though I imaging it is probably $location[none] in KoL

Also, for logging purposes it would be nice to output the turn number and the fact that the fight was a Locket reminisce monster in the way that the genie summoned monster does:
Code:
use 1 pocket wish
Took choice 1267/1: (secret choice)
choice.php?whichchoice=1267&wish=to+fight+forest+spirit&option=1

[1067] genie summoned monster
Encounter: forest spirit
Round 0: ckb1 wins initiative!

This is what a locket encounter looks like now:
Code:
Took choice 1463/1: (secret choice)
choice.php?whichchoice=1463&pwd&option=1&mid=1153
Encounter: mountain man
Round 0: ckb1 wins initiative!

as a result, there is no [XX] in the session logs for the turn XX that was used to fight the reminisce monster
 
Last edited:

gausie

D̰͕̝͚̤̥̙̐̇̑͗̒e͍͔͎͈͔ͥ̉̔̅́̈l̠̪̜͓̲ͧ̍̈́͛v̻̾ͤe͗̃ͥ̐̊ͬp̔͒ͪ
Staff member
Yeah I've been meaning to add this. I'll do so
 

Magus_Prime

Active member
What would be awesome, but I doubt that it would be considered "in scope" for KoLmafia, would be a way to compare the list of monsters currently in the locket to the complete list of "capturable" monsters. That would help interested people fill gaps in their locket collection.

Sort of like what the Manuel reporting script does.
 

ckb

Active member
What would be awesome, but I doubt that it would be considered "in scope" for KoLmafia, would be a way to compare the list of monsters currently in the locket to the complete list of "capturable" monsters. That would help interested people fill gaps in their locket collection.

Sort of like what the Manuel reporting script does.
Try this:
Code:
foreach mm in $monsters[] { if (!contains_text(mm.attributes,"NOCOPY") && !(get_locket_monsters() contains mm)) { print(mm); } }
 

Veracity

Developer
Staff member
As the maintainer of missingManuel.ash, I'd consider making a missingLocket.ash script based on it.

The locket has the disadvantage that once you've used all its charages today, you can't go to inspect it and see what it has.
So, the script could only be run in a fresh session if you haven't used it yet today.
 

Ryo_Sangnoir

Developer
Staff member
Here's a missing locket script that I made by changing missingManuel and deleting things. It is not good but may be useful.

Also rather a lot of bosses aren't marked as NOCOPY.
 

Attachments

  • missingLocket.ash
    14.2 KB · Views: 10
Top