11 May 2012 at 4:43am
I checked your other posts. Great work so far! I don't want to muddy the water there, so I'll respond here.
The main difference in the solution that I'm proposing is that the abilities are abstract. So if you found an item (whatever the name), you'd click 'add item' and type the name, select the slot and abilities. That way you would not have to make an entry in the database for every single item ever published.
A similar table needs to exist for opponents, and their special abilities. In this case it's probably also important to "pre-assemble" opponents, so that you can select the opponent name from a dropdown list instead of building every opponent from an abstract list of abilities and stats.
On the other hand I don't know why building your loot provides satisfaction, it just does.
I've found that there are a lot of conditions that pop-up, making it so that some abilities are only applicable as certain stages of combat. Some stack; some don't. Some are multi-use, some are single use, or always-on. This is the codification I was talking about earlier. Each of these corner-cases is essentially a 'business rule'. I can codify these rules into an engine so that the character just needs an indexed collection of IDs that correspond to abilities. If the character has a relevant ability at a each stage of combat, the player has the option to use that ability.
So right now, I'm working out the logic for the engine.