GuildWiki:New skill box format

Original proposal
I have a proposal for a revamp of that I've been stewing over for nearly a year. I've implemented the changes at and, as well as setting a couple new CSS rules in MediaWiki:Common.css, and you can view it in use on Unbalancing Soul Explosion.

The new CSS rules apply green and gray colors to bold and italic text, respectively, that appears within any element with. This enhancement could easily be added to the existing skill box (independent of any other changes) by simply wrapping the descriptions with a span tag.

The idea came to me when I first started extracting skill descriptions from Gw.dat. The raw descriptions allow for the insertion of the "green number" variables by using placeholder parameters that look like. Each string can use up to 3 of these parameters. (Because the % symbol is used to identify the parameters, when an actual % symbol is desired, it is given as .)  There is also a mechanism for plural forms - the word that follows a parameter can be appended with a value in square brackets that is used if the parameter is not 1. The most common usage is for durations, e.g. .  More complex plurals (anything besides adding an 's') use the format.

I figured this format could translate well to the wiki, but it took me a while to actually start working on it, and then even longer to get it to a point that seemed good enough to use.

In the new template, the description and progression parameters are completely changed. and  have been replaced with   and. All of the  parameters are replaced by ,  , and   (* = 1, 2, 3), where _min and _max are the values at the "anchor" attribute ranks of 0 and 15 (these are the values that are set explicitly in the game engine, everything in between (and above 15) is calculated). The _min and _max values are used to build "range" variables that then replace the str* parameters in the raw description; currently, I have it designed to calculate the 12 value and display a 3-value range of 0...12...15.

There are a number of advantages:
 * Simplification. It only requires the green number values to be entered once, in the _min/_max parameters, instead of 3+ times like the current implementation (in the normal description, in the concise, in the progression_* parms, and in any QR notes the skill may have).  I haven't modified the QR boxes yet to handle the parameter substitution, but it can be done.  It also eliminates the confusion of having to provide both 0...12 ranges (in the descriptions) and 0...15 ranges (for progression).
 * Easy to change for skill updates. The numbers only have to be changed in one place.  I can copy the descriptions directly from Gw.dat without the bother of inserting and formatting the numbers manually.

There are also a few drawbacks:
 * Descriptions have to be copied from Gw.dat. This isn't really necessary when a skill receives a simple text update (typo correction etc.), but when a skill gets a major revamp, the only way to be sure which parms are used where is by pulling it out of Gw.dat.  (Of course, as long as they are internally consistent in the skill template, they wouldn't have to exactly match the game's raw version.)  Luckily, I already have a Perl script that I've been using to parse out the text files from Gw.dat, and I could extend it to grab the skill descriptions from those files and post them to the wiki if they've changed.
 * Plurals. I don't know how to handle the plural format with wikicode.  There are a number of ways we could handle it, but I'll leave that open to discussion.
 * Links. If I do write a script to automatically post new descriptions to the wiki, it wouldn't be able to make any links in them.  Well, it could, but it would have to be based on a list of all the different words that need to be linked (and would have to relate various word forms to the article that it needs to point to, e.g. resurrect -> Resurrect (action), knocked down -> knockdown).

Anyway, I need to stop typing and post this so I can go eat lunch. &mdash;Dr Ishmael 17:15, 8 July 2011 (UTC)

Revised proposal
Still basically the same idea, but implemented as a wiki extension instead, which provides a new parser function . The raw description and str(123)_min/max values are passed to it as parameters, and it performs a number of transformations on the raw text:


 * %str1% parameters are dynamically replaced. If only str1_min is given, a direct replacement occurs; if both min/max are given, the replacement is the calculated 0...12...15 values, formatted as bold text.  If only str1_max is given, or if neither are given when the string contains %str1%, an error is returned.
 * Potential plurals are all converted to the plural form. This is still a minor issue, because there are rare instances where %str1% could be replaced with a static "1", and we would want the singular form for that.
 * Keywords are linked to articles based on an associative array of regex fragments defined in the code and augmented at MediaWiki:Skill-description-links.
 * The final description is wrapped with  to enable the new CSS formatting of green numbers and concise drawback text.

While this parser function can be used anywhere on the wiki, it is probably not much use outside of the skill templates.

Future todo

 * Expand the plural processing so that the singular form is used if the preceding word is exactly "1".
 * Functionalize the green-number processing so that it can be accessed as a separate parser function, e.g. for the specialized skill QRs that don't need the keyword linking.

Final rollout
Now that we're rolling with the new format, I plan to roll it out gradually, doing 1 or 2 attributes (or maybe a whole profession, if I'm feeling ambitious (aka bored at work)) per day over the next couple weeks.

What you can do is to double-check my work to verify that I'm not screwing up the numbers. I've been keeping my own "skills database" in a spreadsheet for the past couple years, but I stopped maintaining it religiously sometime last fall, and I'm not 100% sure how out-of-date it is. Today I went through all the game updates in the past year, noting which skills had been officially changed, and updated them in my database; I was also able to catch any descriptions that had changed, simply by running a diff of the Gw.dat files from last August to today (at one point I made an archive of the text files after every game update). However, I don't know how many unofficial green number changes may have escaped me.

Of course I'll do my best to notice if my numbers are different from what's currently in the template, and then try to verify the correct numbers from in-game, but I know I won't catch everything. And it's even possible that the wiki doesn't have everything 100% correct anymore. So if a few people could voluntarily double-check everything I'd appreciate it. Just sign in the table below for the stuff you've checked. &mdash;Dr Ishmael 01:08, 4 August 2011 (UTC)