Feature - Implemented Improvements to appearance_rates()

matt.chugg

Moderator
From working through the Crimbo proselytizing (real word?) I also think the following:

Lord Spookyraven will not appear again in the Summoning Chamber after being defeated once?
Dense Liana will not appear in overgrown shrines after defeating 3 at each shrine?
 

Veracity

Developer
Staff member
It's cool that these are being found and fixed. I noticed today that the meat blobs are reversed.
Code:
combats.txt:The Haunted Pantry  80      possessed can of tomatoes       fiendish can of asparagus       flame-broiled meat blob: 1o     overdone flame-broiled meat blob: 1e    undead elbow macaroni
I believe you are incorrect.

My multi has ascended 30 times and is therefore on ascension #31.
Her "Crimbo 15 Progress" has this:

flame-broiled meat blob X X

Which is correct. She does not encounter "overdone flame-broiled meat blobs".
 

heeheehee

Developer
Staff member
Hm. It looks like you're correct (I'm in aftercore of ascension #230 and only encounter the overdone ones), so I'll go ahead and revert my earlier change.
 

Darzil

Developer
Clingy Pirates, Goblin King, Lord Spookyraven and Lianas should be dealt with in r16565.

Lianas is a little hacky, but I don't plan special tracking for edge cases just to make it perfect.
 

Yendor

Member
Slime Tube reports all slime forms at equal rates (at least before adventuring there), whereas it should only show one appearing based on current +ML.
 

Crowther

Active member
I'm often mistaken, but it was certainly wrong for me this run. I used a lot of turns before I realized the mistake. Maybe there's something more complex about meat blobs? No idea. I'll double check tomorrow.

Another place for improvement is the cyrpt bosses. Just to be extra safe, I checked:
Code:
> get cyrptNicheEvilness

23

> ash appearance_rates($location[The Defiled Niche])

Returned: aggregate float [monster]
none => 15.0
senile lihc => 14.166666666666666
slick lihc => 14.166666666666666
gargantulihc => 0.0
dirty old lihc => 56.666666666666664
 

Crowther

Active member
Additional testing on two characters shows that KoLmafia is just fine about the meat blobs. Additional testing to see if I'm losing my mind still underway.
 

Darzil

Developer
Curiously, it appears that my number of turns spent in the AdventureSpentDatabase for the overgrown shrines is 0, despite having completed the quests. This seems odd, as I cannot see anything that accounts for whether a fight is free or not (and if it did, that'd make this pointless for accounting for delay, which is pretty much all we use it for internally). I wonder if those fights somehow end without hitting line 2845 in FightRequest.
 

matt.chugg

Moderator
Curiously, it appears that my number of turns spent in the AdventureSpentDatabase for the overgrown shrines is 0, despite having completed the quests. This seems odd, as I cannot see anything that accounts for whether a fight is free or not (and if it did, that'd make this pointless for accounting for delay, which is pretty much all we use it for internally). I wonder if those fights somehow end without hitting line 2845 in FightRequest.

Are you using an antique machete, which ends combat without spending a turn?
 
Last edited:

heeheehee

Developer
Staff member
Curiously, it appears that my number of turns spent in the AdventureSpentDatabase for the overgrown shrines is 0, despite having completed the quests. This seems odd, as I cannot see anything that accounts for whether a fight is free or not (and if it did, that'd make this pointless for accounting for delay, which is pretty much all we use it for internally). I wonder if those fights somehow end without hitting line 2845 in FightRequest.

So, I think I figured out why turns_spent was resetting for me every session (or so it seemed). Turns out that Mafia only serializes the queues / turns_spent / whatever on clean exit, and I usually end up sending a SIGINT to exit Mafia (since rollover's already hit). I see two approaches: 1) periodically save, or 2) add a shutdownHook, which seems bad and could cause catastrophic losses of information. Maybe this should be split out into a different thread for some separate discussion.
 

Darzil

Developer
Are you using an antique machete, which ends combat without spending a turn?

Of course, however :

Turns spent is an interesting measure here, as of course it isn't really turns spent, it's Encounters encountered or some such. AdventureSpentDatabase seems to me from looking at the code, for combats, to always count a combat as one turn spent. There may be some correction of which I am not aware. If there is correction (for things like antique machete), then that means turnsSpent() is irrelevant for looking at delay, whereas various warnings and comparisons currently do look at turnsSpent() for this.
 

heeheehee

Developer
Staff member
Turns spent is perhaps a misnomer, as it really tracks visits that aren't noncombat skips, for the primary purpose of tracking delay.
 

lostcalpolydude

Developer
Staff member
Combats should be counted as soon as they end. They aren't counted when they start to avoid counting rollover runaways. I'm surprised that dense liana aren't counted.
 
Top