SR counter does not work for the first SR.
KoL Mafia does not display a semi-rare counter for the first semi-rare of an ascension. It knows everything it needs to know to make this work, but doesn't do it. It knows when to decrement the counter and when to leave it alone. It knows that different paths have different SR counters.
(Skip to the TL;DR if you want; I had to write a lot of bug reports today and I'm used to providing a lot of justification to force people to put my fixes over other, less eloquent requests.)
I mentioned this on the game forums and someone pointed out that the counter doesn't start until the first adventure.php location. I haven't fiddled with the source (I'm a .NET programmer but have always meant to peek at Mafia's source) but this led me to a psychic debugging session. Here's what my crystal ball says:
The code that maintains the SR counter is triggered when you encounter an SR adventure. When this happens, Mafia creates the new counters with appropriate values for your current path. Since the counter is triggered on an SR adventure, this cannot happen until you have your first SR encounter.
At this point my crystal ball started picking up some kind of fetish porn so I quit looking. My guess is that somewhere in the code there is a long list of "do this every adventure". To make the first SR counter work, this list would have to include this algorithm:
Code:
If adventure.php has not been accessed yet and the current request is adventure.php:
Set the SR counters
(That turned out less involved than I originally thought!) This, of course, has issues since it introduces some global state mafia must track. And it's going to get hosed if your settings file gets replaced or if you play on multiple computers; in these cases it could display a completely incorrect counter, which is worse than no counter at all. I'm not going to speculate on solutions yet because I just realized this problem and haven't given it any thought.
TL;DR
It'd be neat if Mafia started counters on the first adventure.php location in an ascension. This only works correctly if the ascension state can be recorded. In the worst case, implementing my proposed fix will display incorrect counters. There may be a better solution, but because of this issue I'm open to the idea that it doesn't work for the first one by design and I chose "feature" instead of "bug".