Still working on the Echelon Reference Series, and I’m rebuilding my prerequisite parsing and linking system.
I didn’t think to capture metrics before I started, but I’m already a little over 90% ‘pretty definitive matches’ — that is, where I can match a prerequisite string to a specific game entity such as a feat or class feature. There are some cases where the link is ambiguous, such as when a named prerequisite matches both a feat and a class feature. In cases like that I modified the scripts to favor feats over class features (and similar decisions for other collisions… of which I had 26 out of the 6,695 prerequisite strings being examined.
Of the 6,695 strings being examined, right now I have 661 that I not successfully parsed (see below/beyond ‘more’ if on the front page). Many are trivially solved, but I’m sleepy and have to get up early tomorrow.
- ‘caster level #’ and related (around 65? tricky to count without finding duplicates) are a bunch of cheap wins.
- racial traits (56) will be as easy as feats and class features, as soon as I integrate racial information into my data set. This will be mildly funky because not only can later data sources modify an existing race — much as a new data source can add new rage powers or cleric domains — but the same-named racial trait can appear in many races. I know how to do it, I just haven’t done it yet.
Some others can be picked up by looking at ‘unqualified values’, such as class subfeatures that do not identify their parent feature. Normally the data says something like ‘suggestion bardic performance’, but I can add code to have it accept ‘suggestion’ and recognize it as the same thing (being able to cast suggestion is labeled ‘ability to cast suggestion‘, so it is distinct). Similarly with special attack (‘breath weapon’) and so on.
Tomorrow! Tonight it’s time for sleep.