RunLogSummary

ckb

Minion
Staff member
RunLogSummary

Creates a Run Log data file in a tab separated format for importing into excel/google sheets/whatever. Easy to parse and read and comment on.
I wrote this mostly to critique my own runs and see where my scripts were having trouble. If you know excel, it is easy to pull data and metrics out of this.

Code:
svn checkout https://svn.code.sf.net/p/ckbrunlogsum/code/

Only creates a log of your current run.
Initial work in progress released for review and comment.
I am hoping this will advance to become as useful as the previous Java based parser that has been floating around, but with automatic updates because it is Mafia based. I would like feedback on what other features / notes / data would be useful to add.

A Note on bugs/feedback: If you have some strange thing happening, or if yor logs are not parsing correctly, please send/post a copy of your raw run log (session logs) for that run. Thanks.
 
Last edited:
This looks great for analyzing your own runs, or for further processing.
Sadly, it's not as helpful for sharing you runs with others: the old parser had many helpful summary listings for when you just want to see what the other guy digitized/YR'd/wished/ate/stench jellied/whatever.
This makes it more of an info dump than an overview of the strategic decisions, which is great for tracking trends or shaving the last few turns off your own runs, but kinda overwhelming when you are reading someone elses log and trying to find out what strategic decisions make him 20 or 30 turns faster than you.

That said, it is definitely in a format setup for further processing, so even if you don't want to, other scripts can be created to work with the output.
 
Last edited:

ckb

Minion
Staff member
the old parser had many helpful summary listings for when you just want to see what the other guy digitized/YR'd/wished/ate/stench jellied/whatever.

Once the data is collected, it is easy to create this info. Can you give an example of what you would like to see?
The 'Special' column is meant to show what was digitized/YR'd/punched/banished/etc.
Perhaps a separate summary for each of the Special categories? If you sort by 'special' does this give you what you want?
 
Sorting by special does a decent job as far as combat skills goes (though it get's a little tricky when multiples are used in the same fight, since it then just depends on the order where they get sorted).

I'm just trying to say that a log from the old parser gives you the actual run, and then a roughly equal length of summaries of various types, which is really helpful when you are just trying to see what strategic decisions the player makes. When someone posts one of those logs with the question of: "how can I get harder/better/faster/stronger?" they really help to identify possible pain points. If someone posts one of these, I need some serious reading, and mental tracking to keep track of what's going on, and why that is/might be, and why that might not be the optimal way to go.

Lets see, in order, there are: Adventures Per Zone, Adventures per Quest, Pulls, Levelup timings (and statgains per turn for each level), A breakdown of the stats gained (between combats, noncombats, food, booze, etc), Familiar Usage, Semi-rares, Sniffings, Banishes, Yellow Rays, Copied Combats, Free Runs, Wandering Combats, Combat Item usages, Skill Casts, MP, Meat, Diet and a guess at Bottlenecks.

Some of those I don't really care about, but I can certainly see how they can all reveal potential bottlenecks, and helpful for players in certain situations.
Other possible additions could be wishes, time-spinner usages, Stench Jelly Locations, Turkey Blaster Locations, Macrometeorites, Hugpockets and Cat Burglings

And if you feel that's outside of your intended goals, that's fine, yours does seem intended to be more raw and personal rather than prettied up and share-friendly.

Edit: for whoever wants an old log for reference: https://www.dropbox.com/s/bxixiptotwiq6zr/the dictator_ascend20161203.html?dl=0
 
Last edited:
This is great!

I very much agree with the dictator that it needs a few more metrics*, if you want it to replace what the old log parser could have been, if it was updated. (again, assuming that's what you want it to be, which in my opinion is a thing the community could really use and appreciate)

*some of them can be summed up using excel from the information already gathered, but some (like daily usage of iotm's) require more data to be collected.
 

ckb

Minion
Staff member
Updated with the ability to run multiple logs (input number to run logs for N runs).
Also added summaries of locations visited and familiar used. And it now logs when you gain a level.
More to come.
 

ckb

Minion
Staff member
I added DG skills to the 'Special' list
Please report bugs here and I will try to fix them. Better if you can post your whole mafia run log too so I can try to parse it ans recreate the issues.
 
Thank you for keeping this updated!

edit: found a typo- in the very last part, right next to where it gives a tally* of adventures spent, it says "Faliliar"
 
Last edited:

ckb

Minion
Staff member
Script updated with cleaner output. Now spits out 2 files - a run summary and the raw Mafia log of the run.
 

ikzann

Member
For me, RunLogSum seems to cut off the last character of most of the fields it records (so adventures are "The Haunted Pantr"). I assume this is because of the code that tries to cut off the newlines. Maybe you could replace it with a trim()/split() kind of function? Happy to post a patch if that would be helpful.
 

ckb

Minion
Staff member
For me, RunLogSum seems to cut off the last character of most of the fields it records (so adventures are "The Haunted Pantr"). I assume this is because of the code that tries to cut off the newlines. Maybe you could replace it with a trim()/split() kind of function? Happy to post a patch if that would be helpful.

Can you post your raw session logs so I can see what is happening?
Also, what OS are you using?
 
Last edited:

ikzann

Member
Replacing the three substring calls with the following strip function fixed the issue:


string strip(string input) {
matcher start = create_matcher("^\\s+", input);
input = start.replace_all("");
matcher end = create_matcher("\\s+$", input);
return end.replace_all("");
}
 
Top