Yeah, I'd love to do that, I just haven't fogured out how to do it in a reasonable manner yet, but it isn't for lack of trying.
I added a patch in the first post. It continues to build out the spell system, lots of good stuff in there for anyone looking to mod FfH2. These are the current Spell attributes:
Description
Civilopedia
Strategy
Help
PromotionPrereq1
PromotionPrereq2
UnitPrereq
bAllowAI- if the AI is allowed to use it
bInBordersOnly- if it can only be cast inside the players borders
bInCityOnly- if the can only be cast in cities
iAIWeight- Weighting modifier on AI spell selection
bDisplayWhenDisabled- if the spell will be displayed "grey" when it cant be cast (or not shown at all)
bHasCasted- if the spell marks the caster as having casted that turn
bIgnoreHasCasted- if the spell can be cast even if the player has already casted
bResistable- if the spell can be resisted
iRange- the range of the spell
iResistModify- modification to the target resist chances
iDamage- base damage form the spell
iDamageLimit- maximum damage the spell can do
DamageType- damage type the spell does (not enabled yet)
AddPromotionType1- promotion added by the spell
AddPromotionType2- promotion added by the spell
AddPromotionType3- promotion added by the spell
RemovePromotionType1- promotion removed by the spell
RemovePromotionType2- promotion removed by the spell
RemovePromotionType3- promotion removed by the spell
bBuffCasterOnly- if buff spells (add/remove promotions) only effect the caster
ConvertUnitType- if the spell transforms the caster into another unit type
CreateBuildingType- building created by the spell
CreateFeatureType- feature created by the spell
CreateImprovementType- improvement created by the spell
CreateUnitType- unit summoned
iCreateUnitNum- amount of the units that are summoned
bPermanentUnitCreate- if the summoned units are permanent
bImmuneTeam- if units on the players team are immune to the spell
bImmuneNeutral- if units that arent on the players team and arent at war with the player are immune to the spell
bImmuneEnemy- if enemy units are immune to the spell
bImmuneFlying- if flying units are immune to the spell
bImmuneNotAlive- if units that arent alive are immune to the spell
bDispel- if the spell dispels dispellable promotions
bPush- if the spell pushs effected targets away from the caster
bSacrificeCaster- if the spell destroys the caster
iImmobileTurns- how many turns the spell keeps effect units from moving
PyResult- if there is an entry here that function will be run when the spell is cast
PyRequirement- if there is an entry here that function will run to see if the spell can be cast
Effect- effect displayed when the spell is cast
Sound- sound played when the spell is cast
So for example, to create Entangle I just set: Range 1, ImmuneTeam, ImmuneNeutral, Resistable, ImmuneFlying, iImmobileTurns 1. So that will only hit non-flying enemy units, the unit is allow to attempt to resist the spell and if he fails he will be unable to move for one turn.
Rust has range 1, resistable, adds promotion rust, removes promotion bronze weapons, removes promotion iron weapons, removes promotion mithril weapons, immune team, immune neutral.
Etc etc. Lots of cool stuff to do, and I'll will be adding more attributes.
I also started checking the new FfH promotion attributes in. The following have been added and are activated (more will be coming):
bDispellable- if the promotion can be dispeled
bFear- if the promotion causes fear
bFlying- if the promotion allows the unit to fly (pass over all terrain types, set movement rate, ignores terrain cost)
bImmuneToFear- makes the unit immune to fear
bNotAlive- if the promotion makes the unit not alive
bRace- if the promotion sets the units race
bRemovedByCombat- if the promotion is removed by combat
bRemovedWhenHealed- if the promotion is removed when the unit is fully healed
bTwincast- if the promotion causes summons to be doubled
bValidate- if the promotion checks the unitcombat to make its valid, if not it removes itself
bWaterWalking- if the promotion allows the unit to travel over water tiles
iAIWeight- weighting on the AIs selection of promotions (also used by the spell system when it considers spells that add/remove promotions)
iCasterResistModify- casters modification to victims resist chances
iExpireChance- chance per turn the promotion will expire
iExtraCombatStr- modifier to the units strength
iFreeXPPerTurn- amount of experience points the unit gets per turn for free
iFreeXPFromCombat- amount of bonus experience the unit gets from combat
iResistMagic- modifier to the units resist chances
iSpellCasterXP- modifier to the rate spell casters gain xp
iSpellDamageModify- modification to damage done by all the casters spells
PromotionSummonPerk- if the promotion passes a promotion on to summons
BonusPrereq- if the promotion requires a bonus before it can be learned
PromotionPrereqOr3
PromotionPrereqOr4
PromotionPrereqAnd
Lots of fun stuff. Play with it, let me know about crashes and errors. There is more to come.