Bug Heartstone middle letter uses 'lastEncounter', which is not updated on monodent 'talk to some fish'.

Irrat

Member
I'm not sure what the expected invocation is, but heartstone_middle_letter() does not understand when a monster is replaced.

In this situation, I fought a Dusken Raider Ghost which gives the letter I. I then spoke to some fish which gives no letter.
Indeed, I do not have the skill available. However, heartstone_middle_letter() reports the letter is i.
The easy fix on my end is to just provide last_monster() to the function.

For kolmafia's fix, I'm unsure about. It wasn't a new encounter was it, and if I understand my logs, the round didn't even reset. my logs

So I don't know if lastEncounter should have been updated when I replaced the monster, or if heartstone_middle_letter() should have used a different way to get the middle letter. Its a design choice I'm too tired to go through. The obvious slap a patch on it and call it done, isto change it to use the monster data instead, but, is that the correct design, no idea.

The test for this encounter is at canDetectSeadentFishReplace perhaps?
 
`lastEncounter` is the entity-decoded actual monster name.

So I would need to check whether e.g. Legstrong bicycle and the monster modifier-added monsters still go through correctly.
 
This happens with other monster stats with replaced monsters. Casting a macro-type skill does not update the monster atk/def/hp either.
In my scripts I reload the fight page to get those to update.
 
Back
Top