Captain Scotch
New member
Hey folks.
It would be really lovely to have internal Mafia support for tracking the zone typing of a user's last 20 combats for the Cold Medicine Cabinet. If you are unfamiliar with the mechanic, it works like this: the eligible spleen item you can get from the Cold Medicine Cabinet is based on the zone types you've visited over your last 20 turn-taking combats; whichever zone type out of Underground, Indoors, and Outdoors makes up at least an 11/20 majority will spawn the corresponding spleen item. When doing speed runs, I have traditionally tried to keep the zone status straight on a piece of paper, and it's (frankly) relatively difficult; it adds a lot of time to my runs. I tried to make a postcombat script and found it was relatively difficult to do, and abandoned it.
In order for mafia to support this, I think the spec for it would be a new preference like "lastTwentyCombats" where each character represents the type of zone encountered in that combat in the last 20. It could start out every new ascension as "XXXXXXXXXXXXXXXXXXXX" (twenty Xs) to represent that there are 20 zoneless combats in the CMC queue. As you adventure, it could cycle out the last character and add U, I, or O, only altering the preference on combats that did not return FREEFREEFREE upon completion, reflecting the zone type of the zone the monster was placed in. Note that for the purposes of the CMC, free combats do not count, so it has to be turn-taking. And noncombats do not impact the proceedings at all, except (possibly) in a weird case we need to re-spade that I will footnote below.
So, for a hopefully clearer example, let's say that I ascended a new character and spent:
- 5 turns in the Spookyraven Kitchen (an indoor zone)
- Used Clara's Bell to get one NC in the Dark Heart of the Woods (an outdoor zone)
- Fought a free Kramco in the sea (zoneless; sea is "X" for the purposes of this tracking)
- 2 turns in Guano Junction (underground)
In this example, the property would update within the first and last bullet, and would not change at all in the second two bullets (as one is an NC and the other is a free fight). Therefore, after these 8 turns (and 1 free fight), instead of "XXXXXXXXXXXXXXXXXXXX", the string would instead be "UUIIIIIXXXXXXXXXXXXX", reflecting the new U/I turns.
I'm not positive that this is an easy feature to store or implement, and I expect that as it is built out, issues will be found with how KOL is actually registering CMC zones; earlier today we went over some of the spading and it sounded as though there were some residual oddities remaining from the old behavior (namely, that zoneless combats when flowed into NCs that do not take turns actually are somewhat inexplicably being overriden in location by the location in those free NCs; this is behavior that replicates old behavior prior to a major mechanical change to the IOTM that occurred in January, but it sounded as thought TPTB had fixed the old behavior, so if it still works like this, it definitely could make tracking a huge pain)... but even just a simple version of this would be massively helpful both for spading how it is currently working and assisting speedrunners in their on-the-fly routing.
I am OK at TS and Ash, but have never really touched Java, so I am a bit nervous about trying to put together this PR myself and would prefer if at all possible for someone else to at least take a first crack at it... but I am happy to answer any questions about the known mechanics of the CMC and any thoughts on how this could help players!
Thank you all for reading!
-- Captain Scotch
It would be really lovely to have internal Mafia support for tracking the zone typing of a user's last 20 combats for the Cold Medicine Cabinet. If you are unfamiliar with the mechanic, it works like this: the eligible spleen item you can get from the Cold Medicine Cabinet is based on the zone types you've visited over your last 20 turn-taking combats; whichever zone type out of Underground, Indoors, and Outdoors makes up at least an 11/20 majority will spawn the corresponding spleen item. When doing speed runs, I have traditionally tried to keep the zone status straight on a piece of paper, and it's (frankly) relatively difficult; it adds a lot of time to my runs. I tried to make a postcombat script and found it was relatively difficult to do, and abandoned it.
In order for mafia to support this, I think the spec for it would be a new preference like "lastTwentyCombats" where each character represents the type of zone encountered in that combat in the last 20. It could start out every new ascension as "XXXXXXXXXXXXXXXXXXXX" (twenty Xs) to represent that there are 20 zoneless combats in the CMC queue. As you adventure, it could cycle out the last character and add U, I, or O, only altering the preference on combats that did not return FREEFREEFREE upon completion, reflecting the zone type of the zone the monster was placed in. Note that for the purposes of the CMC, free combats do not count, so it has to be turn-taking. And noncombats do not impact the proceedings at all, except (possibly) in a weird case we need to re-spade that I will footnote below.
So, for a hopefully clearer example, let's say that I ascended a new character and spent:
- 5 turns in the Spookyraven Kitchen (an indoor zone)
- Used Clara's Bell to get one NC in the Dark Heart of the Woods (an outdoor zone)
- Fought a free Kramco in the sea (zoneless; sea is "X" for the purposes of this tracking)
- 2 turns in Guano Junction (underground)
In this example, the property would update within the first and last bullet, and would not change at all in the second two bullets (as one is an NC and the other is a free fight). Therefore, after these 8 turns (and 1 free fight), instead of "XXXXXXXXXXXXXXXXXXXX", the string would instead be "UUIIIIIXXXXXXXXXXXXX", reflecting the new U/I turns.
I'm not positive that this is an easy feature to store or implement, and I expect that as it is built out, issues will be found with how KOL is actually registering CMC zones; earlier today we went over some of the spading and it sounded as though there were some residual oddities remaining from the old behavior (namely, that zoneless combats when flowed into NCs that do not take turns actually are somewhat inexplicably being overriden in location by the location in those free NCs; this is behavior that replicates old behavior prior to a major mechanical change to the IOTM that occurred in January, but it sounded as thought TPTB had fixed the old behavior, so if it still works like this, it definitely could make tracking a huge pain)... but even just a simple version of this would be massively helpful both for spading how it is currently working and assisting speedrunners in their on-the-fly routing.
I am OK at TS and Ash, but have never really touched Java, so I am a bit nervous about trying to put together this PR myself and would prefer if at all possible for someone else to at least take a first crack at it... but I am happy to answer any questions about the known mechanics of the CMC and any thoughts on how this could help players!

-- Captain Scotch