I know this topic is long dead, but I've recently restarted the project using C++ instead of Java. I developed a UI, but had to trash it because for some reason, Intellisense doesn't work if you start with a Windows Forms Application project. I had to create an empty project to get it working again. I've got some simple stuff going, but mainly I'm just designing the classes right now (the programming term, not game term). So far, I've developed a method of determining ability score modifiers dynamically, rather than hard-coding them. It works like this:
If the ability score is odd, it subtracts 1. It then takes the value of the score and subtracts 10. After that, it divides that value by 2 to get the modifier. Here's an example.
Example #1:
- 17 DEX (odd, subtract 1)
- (16 - 10) = 6
- 6 / 2
Therefore, the modifier is +3
Example #2:
- 8 STR (not odd, stays as is)
- (8 - 10) = -2
- (-2 / 2) = -1
Therefore, the modifier is -1.
As far as I know, this formula should work for any valid ability score value.
As far as equipment, feats, and powers go, I was thinking of parsing XML tables to make it easier, but I'll need to learn XML and how to parse it.
As for the legal side of it, I guess I could just not include feats, powers, or equipment, and as was suggested in a previous post, let people modify the XML sheets themselves. It wouldn't matter if I used the basic d20 system though, right? By that, I mean STR, CON, DEX, INT, WIS, CHA? They're just words... they can't be copyrighted. I might also need to put races and classes in external XML sheets.
I'm trying to think of anything I could do to make the character builder unique and better than the official WotC version.