far_wanderer
Prince
- Joined
- Dec 20, 2008
- Messages
- 454
I've been working on an idea to make the magic system a lot easier to work with, and I thought I'd share my idea.
The core change is to make each spell require its own promotion, and to make those promotions entirely separate from each other (although you could still make hierarchical spell chains if you wanted). So, for example, Sanctify requires the Spell: Sanctify promotion.
The second main change is alter the way arcane units work. Arcane units gain spells for free, they can have one per level (and probably a promotion tree increasing that number). At any town, they can use the ability "upgrade spellbook" to unlearn all current spells and pick new ones.
Why do this?
Some potential problems:
I have one request as you provide feedback:
Don't talk about spell ideas yet. I want to work out the core concept a bit before we get bogged down in discussion of individual spells. I deliberately stuck to only one spell in all of my examples. In a few days, I'll make a list of spells to start with and then we can brainstorm about specific spells
Here's a full example using Sanctify:
ADDENDUM: I've been starting to comb through the various modding guides and figuring out what I can do and what will be beyond my current abilities. Here are the current coding things I know I will need help with:
Miscellaneous ideas:
Govannon and the Amurites: The Amurites gain a promotion giving all of their units 1 spell slot, making their arcane units slightly better and giving a small amount of magic to everyone. Non-arcane units will still be limited to only spells that do not require a Channeling level or a promotion that is only available to arcane units (since all arcane units start with Channeling 1, the only current purpose of making a spell require it would be to affect whether or not non-arcane units can learn it). Govannon can cast a spell that adds a second promotion, adding a second bonus spell slot and Channeling 1 (so at that point, all Amurite units become effectively Adepts in most situations). Looking at the Mod-Modding Guides, it looks like it might be possible to make Govannon a mobile source for spellbook changing.
Plan for design:
Phase 1 - basic design. Get the mod functioning, but tweak the existing spell system as little as possible. The idea being that if people like the idea, they can absorb the code for the idea itself without having to deal with any major changes to spells.
The core change is to make each spell require its own promotion, and to make those promotions entirely separate from each other (although you could still make hierarchical spell chains if you wanted). So, for example, Sanctify requires the Spell: Sanctify promotion.
The second main change is alter the way arcane units work. Arcane units gain spells for free, they can have one per level (and probably a promotion tree increasing that number). At any town, they can use the ability "upgrade spellbook" to unlearn all current spells and pick new ones.
Why do this?
- Spells can have, as a requirement, any combination of:
- amount and type of mana
- level (both actual unit level and Channeling 1/2/3)
- state religion
- technology
- other normal promotions (combat 3, mobility 1, even racial promotions)
- buildings/wonders in the city
- civilization
- other spells
- anything else I forgot about that can be made a promotion requirement. (EDIT: upon reading the Mod-Modder's guides, it appears this list is about two pages long)
- Spells could have more than one possible requirement (for example, Sanctify could require one Life mana OR two Law mana) EDIT: Upon delving into the Mod-Modder's guide, I find that things are not quite as variable as I had thought - it is not possible to make a promotion requite one of two things if those two things are not of the same type (a Tech OR a Mana source, for example).
- It would be possible to make spells that can only be cast once before requiring a trip back to a city to relearn them.
- It would further be possible to make a spell that requires a building to be constructed and then picked up in order to learn the spell, thus attaching production time to specific spells.
- Spells can be placed in places outside the arcane research line (although most probably won't).
- Arcane units can be optimized to use whatever spells you want them to have, no superfluous spells
- Arcane units would no longer have to spend all of their promotions on spells, freeing up some potential design space (in addition to the more spells line I suggest above, I could also see a summoning enhancement line and a direct damage enhancing line at least, plus promotions to allow access to certain categories of spell).
- Spells will be able to have a whole lot more variability in power and effect, due to no longer being limited to a strict three-tier system.
- Maintaining more than one source of a single type of mana will be important for access to high level spells, not just for affinity.
Some potential problems:
- I can't do all of this on my own. There are a few things outside my current skill set that I list below. If I have to figure out those things by myself, it will take a lot longer to get this idea functional.
- Arcane units would be a little more dependent on cities, as they wouldn't be able to field-promote new spells (unless... that could be a new high level promotion)
I have one request as you provide feedback:
Don't talk about spell ideas yet. I want to work out the core concept a bit before we get bogged down in discussion of individual spells. I deliberately stuck to only one spell in all of my examples. In a few days, I'll make a list of spells to start with and then we can brainstorm about specific spells
Here's a full example using Sanctify:
Spoiler :
Spell Sanctify. Clears hell terrain, cleanses city ruins, etc. Requires Promotion Spell: Sanctify OR Promotion Cast Sanctify.
Promotion Spell: Sanctify. Requires 2 Law mana OR 1 Life mana.
Promotion Cast Sanctify. Devouts start with this promotion.
In this example, arcane units that meet the requirements could learn Sanctify in any city, using up one of their available spell slots. Devouts would simply cast it normally, as they do now.
Promotion Spell: Sanctify. Requires 2 Law mana OR 1 Life mana.
Promotion Cast Sanctify. Devouts start with this promotion.
In this example, arcane units that meet the requirements could learn Sanctify in any city, using up one of their available spell slots. Devouts would simply cast it normally, as they do now.
ADDENDUM: I've been starting to comb through the various modding guides and figuring out what I can do and what will be beyond my current abilities. Here are the current coding things I know I will need help with:
- Setting up the actual spell slot system. There needs to be a promotion requirement of 'available spell slot', arcane units need to automatically gain one spell slot per level, promotions need to be able to grant additional spell slots, and for future modding flexibility it would probably be good to have a promotion option to change the number of slots a single spell uses.
- A way of identifying spell promotions as different from other promotions, so that an 'upgrade spellbook' ability can simply remove all promotions of that type, without having to individually list each spell (I might need some help creating that ability, too)
- Adding a field to SpellInfos that allows a spell to require one promotion from a list, rather than all promotions from a list. This isn't truly necessary, but it will make things a whole lot simpler.
- Making the <PrereqBonus> lines allow the requirement of a minimum number of a specific resource, rather than just access to that resource.
- Once it's functional, I may need help figuring out the complexities of the modding process itself (things like updating, installing, best ways to make it available, etc.)
Miscellaneous ideas:
Spoiler :
Govannon and the Amurites: The Amurites gain a promotion giving all of their units 1 spell slot, making their arcane units slightly better and giving a small amount of magic to everyone. Non-arcane units will still be limited to only spells that do not require a Channeling level or a promotion that is only available to arcane units (since all arcane units start with Channeling 1, the only current purpose of making a spell require it would be to affect whether or not non-arcane units can learn it). Govannon can cast a spell that adds a second promotion, adding a second bonus spell slot and Channeling 1 (so at that point, all Amurite units become effectively Adepts in most situations). Looking at the Mod-Modding Guides, it looks like it might be possible to make Govannon a mobile source for spellbook changing.
Plan for design:
Spoiler :
Phase 1 - basic design. Get the mod functioning, but tweak the existing spell system as little as possible. The idea being that if people like the idea, they can absorb the code for the idea itself without having to deal with any major changes to spells.
- Learn how to work with the DLL by copying an existing field to a new place: adding a <PrereqPromotionOR> field to SpellInfos.
- Learn more about the DLL to add <iSpellSlotRequired> and <iSpellSlotProvided> to PromotionInfos. Help with this feature would still be appreciated.
- Make Arcane units automatically gain one spell slot per level (can do it with autoacquire promotions if there's no easier way).
- XML coding to change existing spells to the new system.
- Learn how to publish a mod.
- Rebalance all existing spells to take full advantage of the new system.
- Begin creating new spells
- Hopefully magange to limit phase 2 to a module.
- Create an easy to use XML template for new spells.
- Create a heavily abridged version of the Modder's Guide to FFH2, the Mod-Modder's Guide to FF, and some basic BTS promotion tags, limited to things that would be useful in creating spells and all together in one place.