Topic: Progress Report
Serinor is a big project, and it taught me quite a bit about putting a game together. Today specifically, I'm talking about abilities. Serinor stores all of its abilities (and it's got a lot: 360 spells plus any class abilities. I think I'm past 500 by this point) in a long list. It tracks name, description, cost, and an effect number. Any individual effect is a reference to another long list, where each unique possible effect of an ability is scripted.
I added just one number to this when making Gelardia (okay, and another string, but it's less significant.) In addition to the effect reference, the ability database tracks the strength of the ability. It's ingenious, and I wish I'd done it for Serinor. Instead of having to seperately script a healing ability for every possible amount of healing, a healing ability knows innately how much it's going to heal. So I just script a heal effect once and every healing ability can point to that, passing in its own strength.
It's kind of fun, because descriptive text can be generated dynamically rather than being stored in a .dat file. So if your magic stat goes up, the description of all your abilities takes the change into effect and automatically updates the description of your abilities to reflect your increased power. That part's coded and working, complete with text highlighting of the important words/numbers in the description.
All of the initial character's abilities are defined, which is also a trick, since the cost and power of his abiliteis varies based on current magic point totals and not just his magic statistic. So his abilities grow weaker as he uses them, but he gains magic points for each monster he kills. (He's a manifestation of the god of war; he loses his magic after resting and only regains it through battle.) I think the abilities scale properly across the levels. I've also defined a few of the second charater's starting abilities, though his are more static.
Now that I've finalized how I want the information stored in Gelardia's memory and have a few abilities to play with, I can start scripting the actual ability effects. That should finish up the basics on the battle system, because it'll mean items work also. They use the same framework.