[MOD] MagisterModmod

I just tried another option, as a first step toward trying out that new proposal mentioned above. I might decide to keep it this way, rather than performing a complete overhaul, because it is easier and seems like it might be more fun and balanced.

Archmages have their strength reduced to 1, but every 3rd level spell sphere grants affinity for the associated mana; with sufficient resources archmages can be mighty in combat, but seizing their nodes leaves them vulnerable.

Adepts, Mages, and Archmages can only be trained/upgraded if you control at least one type of mana.

Arcane units no longer are given free spell sphere promotions based on how much mana you control. (Druids, Vampires, and those with the Unholy Taint still do, but I might change that later.)

Instead, every Arcane unit will be randomly assigned a natural talent in only one spell sphere, and be given every available level in that precept; Adepts only ever get one 1st level spell for free, Mages get the 1st & 2nd levels spells in the one sphere, and Archmages get all 3 levels (and thus affinity) in one sphere.

The free promotions may or may not be in the same sphere in which the unit had specialized before upgrading from a previous level. (The way the python part of upgrade code works, I could not check what promotions the old unit has in order to change the new units promotions even if I wanted to.)

Which sphere is determined randomly, but weighted so that spheres in which you control the most mana are the most likely. The unit's religion and owner's state religion also play a role.

There is no way to control what spell sphere will be granted, save by restricting yourself to only possessing one type of mana.

The Tower of Mastery grants only Channeling II, not Channeling 3, thus allowing limitless mage-equivalents with lo level requirements but keeping archmages extra special.
 
I was starting to read the reddit post and thinking about how to answer you...
but then you changed your question.

it seems nice, but IMO it's mostly a nerf of arcane units (no-huge amount of free spellsspheres in late-game empire), and an un-tested change to Archmages: transforming Archmages in Djinn wannabee, but they are very weak for a time.

About "multi-mana affinity", I'd think it would be great if being an EarthIII - Chaos-III archmage (in a 3mana earth- 3mana chaos empire) is more powerful than being an Earth III archmage in a (all-my-6-mana-are-earth-empire).
I get it that you'll always have 3-4 mana that can't be converted to other manas, and thus, getting a lvl 3 in those mana would give the Earth&Chaos archmage a +1str that he wouldn't have as a "full-earth archmage"... but that seems "small".

(as a side note, it means that current archmages will be much weaker than current archmagi, until they get 5affinity: either get multiple (3-4 or 5) level 3 spells, or your really specialise your empire into having 5 nodes of the same mana).



For your earlier question: limiting arcane units to 1 mana would have needed a bit overhaul of the game IMO. we would need to have multiple spells per mana-sphere-level just to give a bit of utility to each arcane unit.

however the current game could work lore-wise if we think of it as a small team of adepts/mages working together : 1 is proefficient in water, and the other in body...etc
however that doesn't fit well with the 1 spell per turn.

but I thougth that a limit to "1 school" would be "playable" : it means 5 mana types per unit... so enough versatilty, and you can dabble in a second school only if you get all 5 of the other school (or maybe a mage can get level 2 in his school and level 1 in any other school...).
only issue would be that adepts would have limited use for their level-up promotions (it is rare to have starting manas from the same school).

Regarding your current proposition:
I liked the idea of implementing affinity.

however it would be great if affinity gave a boost to the spell sphere : (improved spell or twincast /or double cast for this sphere only ? but how would that work for spells that have no use to be casted twice ? or maybe the spell from this sphere are "free" ? an earth mage can cast 1 free earth spell per turn, and a second spell : either the same earth (not free) or another spell ? (I can see a complicated xml way to do it) (you might need to create multiple replica/improved spells.)
a balancing act could be to remove access to the promotion of the opposite spell sphere.
(with maybe some events giving dual affinity or allowing spells-spheres from opposite affinities)
 
Last edited:
I think if the goal is to reduce the outsized power of magic, then the simple solution is that no spell cast can affect more than 6 total units. As is, a maelstrom can damage a stack of 100, or a haste can move one, or a heal can heal all damaged units in it. This makes those who use magic well able to punch far above their weight class.

A few other thoughts from my current and recent games:

Blood of the Phoenix has a problem in that it doesn't just apply to units killed, it applies to units sacrificed. So I build an Alter, and my Great Prophet reappears to build a second one. I build a dancing bear, and get a new bear, I join commander, and get another commander.

Vampires can be made into werewolves. Seems should be one or the other.

Heroes can be made into werewolves, and that goes around the can't be captured. But at the same time, it kills them. So a hero can be made into a werewolf, and the resurrected as a hero, and both be alive at the same time. But a werewolf unit isn't actually dead. So shouldn't be resurrecable.

Speaking of Resurrection, you can resurrect Duin, even if you didn't build him the first time. You can also do that with the religious heroes, if that's your state religion, and the hero was killed while on another team. But you can't resurrect a Adventurer that was on your own team. I've lost 2 Adventurers this game, and am late enough to have Life III and those aren't an option.

As for heroes, random thought, but I was wondering about a non-hero unit that kills a hero unit gets the hero promotion? Some reward like that seems like it'd be cool.

Another thought, the AI does too much attacking when the combat odds are just too low. The AI threw stack after stack at Acheron, until Acheron was over 200xp, and just kept doing it until I'd leveled up a Beastmaster enough to do the job. And that really used up the AI's resources to no gain. So now I have a level 19 dragon that isn't rebellious, so I don't have to worry about losing him.

The AI also doesn't mine the unique features, ruins, ect, as much as the player does. And so misses out on the value that can be gained from those.

Another thought, goody huts and the other features shouldn't gift a technology over the second column. Maybe cap it at 1500 research points or something like that. Finding a hut on an island and getting a 10,000 point tech out of it seems off. And a greater probability of a negative outcome from Explore Lair would nerf that a bit too.
 
I like the idea of making arcane units unable to get all the spheres (it is a bit ridiculous having an Adept with 10-15 spheres as Amurite) but having little to no ability to influence their starting spheres seem counterintuitive. I always make a 'city mage' with Creation (once i get the Wonder for it), Earth, Spirit, and then slap on additional spheres as fitting (Law for cities producing units, Fire for border cities to support w. fireballs et cetera) but without any choice in what spheres an adept begins with i fear i may start sacrificing them right off the bat if their random spheres make a horrible composition.

I suspect it is not possible, but the optimal would be if one could only choose say 3 adept-level spheres (for example Fire, Body & Law). While you would be able to advance in the chosen spheres afterwards (as Mage and then Archmage) you would be unable to gain any additional spheres.

However, it sounds like this might not be possible, so if a semi-random selection of spheres is the only method of restricting the number and breadth of spells, i would prefer the spells to be nerfed (preferably with Cutlass' idea of a limited amount of targets for spells) and mages be made much cheaper than they are, encouraging you to have a noteable contingent of arcane units accompanying your army.
In current games, as Amurites i either create an army of mages trained in 6-10 schools or create a more traditional army with 2-4 mages supporting them (via Life, Spirit, Body, et cetera).
 
The new plan I am leaning towards is this:

Arcane units no longer get free spell spheres based on the number of mana sources you control.

They can still purchase any of the spell spheres upon leveling up, assuming they have the prerequisite promotions and at least one source of the prerequisite mana, exactly the same way they could before.

(Edit: Actually, I just thought of one very thematic change. I may make it so that Creation spell spheres (at least the first level, if not 1,2, and 3) cannot be purchased through experience. It would only be available to those who were born with Affinity for the sphere. You could encourage the birth of Creation mages, however, because I would allow Creation Nodes to be constructed on Raw Mana just like the other Mana Node types. You would no longer have to rely on a lucky map placement or getting the Empyrean holy city in order to acquire the mana you need for the Towers of Divination and Mastery.)

They can also still gain free promotion picks from risking their lives in the Cave Trials in an Amurite Cave of Ancestors, which will become more valuable.

The cost of Adepts will be reduced.

Adepts will be given one first level spell for free, determined at random based on the mana sources you control, or those nearby, and based on religion.

Mages and Archmages will be randomly assigned affinity for one sphere of magic. (A quarter of them may be assigned affinity for a second sphere.) They get all of the available spells in those spheres for free. (e.g., a Wizard with Fire and Ice affinity would start with Fire 1, Fire 2, Ice 1, and Ice2, while an Archmage with Force affinity would start with Force 1, Force 2, and Force 3.)

I would remove the restriction from Govannon's Ethics so that he is able to teach magic to other Arcane units, at least at the lower tiers. Arcane Guards and Archmages would still be excluded, as they represent the restrictive Mage Guild bureaucratic hierarchies that he despises.


The Unholy Taint promotion would still make a unit a mage-equivalent for the fallen spheres. It may grant affinity for one random evil sphere of magic, if you have access to it. (An AV mage taking this promotion might supplement his original affinity with a second or third sphere, becoming a Petrarch or Decliarch through the infusion of demonic power.) This affinity would still come with free spells in that sphere. The promotion would not grant free promotions in any other sphere, but would still allow them to be purchased.


Vampirism would never grant affinity.

A Vampire who acquired his dark gift from a Governor's Manor gets no free spell promotions.

The promotion would still allow the purchase of Death, Body, Mind, and Shadow promotions when you level up while controlling the proper mana source. (It also still lets AV Vampires purchase Unholy Taint, and get an evil affinity that way.)

Those who acquire Vampirism as a gift from an older vampire learn all of the Death, Body, Mind, and Shadow magic that its Sire knows, but only if it qualifies to learn such magic anyway. (e.g., a Vampire Lord with the 3rd level in all 4 spheres could teach all of that magic with an Archmage, given a steady supply of all 4 mana types, but a Vampire Moroi could never learn the top tier spells from him.)

A Vampire Spawn would be bound to his Sire, using the same mechanic with which I bind an extra-planar Summon is bound to its Summoner. (I just realized that would make Rings of Warding effective against Vampire Spawn, which at first I thought was a problem but now I think nicely echoes the legends of how vampires cannot enter houses without permission.) I might amend the spawns name to say "Spawn of [insert Sire's name]" to help you keep track of this without worldbuilder.

(I'd have to test it to see how it works with the new Vampirism mechanic, but I believe there is a weird quirk that could proove interesting. I have noticed in the past that a summon from a Djinni seems to be treated as a summon of the Djinni's summoner instead of of the Djinni itself. That might mean that the Spawn's summons get perks from the Sire's promotions, or that the xp they earn would go to the Sire if the Sire knows Dimensional magic.)

Whenever a Vampire Spawn is slain, while his Sire lives, the Sire feeds on his soul as if he were a mere Bloodpet. This could enable a Vampire Lord to stay safe and secure in the capital while sending out waves of Moroi-Vampire Vassals on suicide missions in order to milk them for the experience needed to become the world's most powerful Lich.




The Tower of Mastery would grant a new "Mastery" promotion to Arcane units in the city. It would increase the strength of spells and allow non-heroes to access Twincast, Summoner, and Arcane. It also allows units to purchase any of the new Affinity promotions, if they already have the 3rd level promotion in that sphere and a source of mana.

Instead of Metamagic Mana, I might make the Tower of Mastery provide a source of Reagents, in case you cannot find the resource needed to upgrade Mages and Ritualists to Archmages or Profanes.

The Tower would thus not allow limitless Archmage-equivalents anymore, but would make it easier to get Archmages and would enable the 4 Archmages (and 1 Lich) that you are permitted to eventually gain Kylorin-level powers.

I changed the Enchantment 3 spell from "Enchant Spellstaff" to "Enchant Spellstaffs," causing it to grant that piece of equipment not only to the caster but to every Arcane unit in your stack.

I made all of the spell sphere promotions whose spells are simple buffs (like Blur, Haste, Shadowwalk, Regeneration, and Spellstaff) grant those buffs at random to the unit itself. This should reduce a bit of micromanagement and stop you from wasting a spell on only one unit.


I'm still trying to think of how to make the Affinity promotions boost magical strength itself. For spells that just add promotions or create buildings it just seems impossible. For direct damage spells it is difficult. I could make the promotion boost the direct damage somewhat, but it would have to apply to all spheres of magic equally, which I do not want.

The most feasible option seems to be boosting Summons by having each Affinity promotion pass itself along as a Summon Perk. Letting those most gifted in their sphere summon Einherjar with law affinity, Fireballs with fire affinity, or Water Elementals with extra water affinity seems nice. I would not want to allow any Air Elementals with Earth affinity though. I suppose the way out of this would be to use use python, even if it is not as efficient as I would like.

The model I'd have to follow is that which I use to make any Angels summoned by units with Unholy Taint become demons instead. I have Unholy Taint grant Demon Possessed as a Summon perk, and give Demon Possessed a PyPerTurn effect. (I was thinking I used def onUnitPromoted, but after looking at the code I think I recall that it does not get called for summon perks, at least not at the right point. PyPerTurn triggers when a promotion is first added, and again every turn if it is not removed.)

(Now that I am thinking about it, I may modify def effectPossessed(pCaster): for Gosea in particular, so that her mana affinity and spells shift around at random as she is taken over by different spirits.)


I was planning on applying the free spell spheres based on affinity using def onUnitPromoted, which gets called every time a unit purchases a promotion and can be forced at other times such as when a unit it first created. If I instead use <PyPerTurn>effectAffinity(pCaster) <PyPerTurn> the code will be called whenever the promotion is first applied, and then again once per turn. That could have the benefit of making sure that an archmage gets the top tier spell sphere from the dominion he mastered as a mage, and could let mages regain their favored magic after losing it to a Runewyn. The main benefit though is that the code bit of code could remove the promotion from units that I deem ineligible. That would probably mean anyone without Channeling I (or Unholy Taint, for some spheres) that does not have the associated mana as a prereq. (I was thinking of giving all of the summons a mana prereq in xml anyway, just to make them easier to find in the pedia.) I considered making it so that a caster loses its Affinity promotion if it ever losses access to the associated mana, but that might be too big a nerf.


I cannot be sure but suspect these changes might actually make magic easier for the AI to understand. The AI can use most spells just fine, but is bad at picking promotions based on what spells will be useful in the future. It is also not good at deciding which of several possible spells would be the most useful in a given moment. Giving the AI fewer possible options to consider it probably a good idea if we want it to actually use the stronger spells effectively.



I think if the goal is to reduce the outsized power of magic, then the simple solution is that no spell cast can affect more than 6 total units. As is, a maelstrom can damage a stack of 100, or a haste can move one, or a heal can heal all damaged units in it. This makes those who use magic well able to punch far above their weight class.
The goal is not to reduce the power of magic. As always, it is to try to be as close to the lore as I can while also making the game more fun.

You suggestion is not a simple solution. It is the sort of thing that would require a major rewrite of the DLL, which is beyond my skillset, or else switching those spells to sing some really ugly and slow python code instead of C++.
A few other thoughts from my current and recent games:

Blood of the Phoenix has a problem in that it doesn't just apply to units killed, it applies to units sacrificed. So I build an Alter, and my Great Prophet reappears to build a second one. I build a dancing bear, and get a new bear, I join commander, and get another commander.
Kael said he does not mind it, and neither do I.
Vampires can be made into werewolves. Seems should be one or the other.
I don't see any reason why they must be incompatible in FfH lore.
Heroes can be made into werewolves, and that goes around the can't be captured. But at the same time, it kills them. So a hero can be made into a werewolf, and the resurrected as a hero, and both be alive at the same time. But a werewolf unit isn't actually dead. So shouldn't be resurrecable.
I believe I fixed the issue of resurrecting werewolves a long time ago, but might not have released it.You should not be able to resurrect a Lycantropic hero until its wolf-form has been slain. I guess I'll need to test this.
Speaking of Resurrection, you can resurrect Duin, even if you didn't build him the first time. You can also do that with the religious heroes, if that's your state religion, and the hero was killed while on another team. But you can't resurrect a Adventurer that was on your own team. I've lost 2 Adventurers this game, and am late enough to have Life III and those aren't an option.
Keeping track of who first built a unit is difficult if not impossible. I don't personally see a problem with resurrecting hero who served another player in his previous life.

There is (now, and I thought in previous version also) a spell that should let you resurrect an Adventurer,. Limitations in game mechanics make it impossible to select which of potentially numerous Adventurers will be brought back each time Resurrect Adventurer is cast, however.
As for heroes, random thought, but I was wondering about a non-hero unit that kills a hero unit gets the hero promotion? Some reward like that seems like it'd be cool.
I don't think that should happen all of the time, or even most of the time. I would not want that to be an automatic bonus that people come to rely upon. However, as a random reward that happens perhaps one in seven such victories it could be quite fun. I think I'll try it out.

Another thought, the AI does too much attacking when the combat odds are just too low. The AI threw stack after stack at Acheron, until Acheron was over 200xp, and just kept doing it until I'd leveled up a Beastmaster enough to do the job. And that really used up the AI's resources to no gain. So now I have a level 19 dragon that isn't rebellious, so I don't have to worry about losing him.

The AI also doesn't mine the unique features, ruins, ect, as much as the player does. And so misses out on the value that can be gained from those.

Another thought, goody huts and the other features shouldn't gift a technology over the second column. Maybe cap it at 1500 research points or something like that. Finding a hut on an island and getting a 10,000 point tech out of it seems off. And a greater probability of a negative outcome from Explore Lair would nerf that a bit too.

There is not much I can do about those.


I like the idea of making arcane units unable to get all the spheres (it is a bit ridiculous having an Adept with 10-15 spheres as Amurite) but having little to no ability to influence their starting spheres seem counterintuitive. I always make a 'city mage' with Creation (once i get the Wonder for it), Earth, Spirit, and then slap on additional spheres as fitting (Law for cities producing units, Fire for border cities to support w. fireballs et cetera) but without any choice in what spheres an adept begins with i fear i may start sacrificing them right off the bat if their random spheres make a horrible composition.

I suspect it is not possible, but the optimal would be if one could only choose say 3 adept-level spheres (for example Fire, Body & Law). While you would be able to advance in the chosen spheres afterwards (as Mage and then Archmage) you would be unable to gain any additional spheres.

However, it sounds like this might not be possible, so if a semi-random selection of spheres is the only method of restricting the number and breadth of spells, i would prefer the spells to be nerfed (preferably with Cutlass' idea of a limited amount of targets for spells) and mages be made much cheaper than they are, encouraging you to have a noteable contingent of arcane units accompanying your army.
In current games, as Amurites i either create an army of mages trained in 6-10 schools or create a more traditional army with 2-4 mages supporting them (via Life, Spirit, Body, et cetera).

Yeah, those ideas are not really possible (and not as cool as the proposals I suggested above).
 
Last edited:
Awesome ideas to the next update ! I can't wait to see them ! Besides the reorganization between the arcane units and their relationship with the mana aspects, do you have any other plans for this update ? I have observed some issues that are not big ones, but could help improve the mod.
 
Thanks a lot for this modmod(mod). It has kept FfH really fresh. There are a number of cosmetic have noticed with my installation of the mod, however: the Doviello Berserker appears to use the (frankly, slightly goofy looking) original graphics rather than the chap using that ghastly corpse-flail. Could this be because it is not a UU like the other units? Or am I mistaken?

Another thing are the unit order sounds. I think all Dwarven units should get the same “hail tae ye“ voice, including the Runes heroes. Having a number of their units speak in modern German has been somewhat immersion breaking. Same with the Luchuirp and their golems... also (I know it's been in there for ages) would it be possible to utilise more languages other than standard Arabic for the various civs? Maybe Norwegian (?), Gaelic, Low Saxon among others... or more resources from other fantasy games (especially golems)? Also given the fact that Orcs and Bannor share common ancestors shouldn't they be speaking Romance (this is a joke)? Regarding the Luchuirp: should they get Dwarven cannons? Or is the figure manning the cannon sufficiently ambiguous? Also sniper riflemen still appear human...

Another issue and a leftover from the original mod is the fact that ogres can upgrade to orcish berserkers. Well this might have to do with the fact that they used to be pikemen and horse archers before becoming champions/men at arms... and that there are only four ogrish models (an ogre cannoneer based on the chinese hand cannon or the anti tank gun would be fun, but no idea about lore friendliness). I don't know if anyone minds though.

Anyway kudos and (as we say here) a good slide into the New Year!
 
Also given the fact that Orcs and Bannor share common ancestors shouldn't they be speaking Romance (this is a joke)?
Maybe the Orcs could speak Vanilla Byzantine or Holy Roman?
 
Awesome ideas to the next update ! I can't wait to see them ! Besides the reorganization between the arcane units and their relationship with the mana aspects, do you have any other plans for this update ? I have observed some issues that are not big ones, but could help improve the mod.

Just a few things. I decided to improve the Wyrnholds by making it give Cult of the Dragon units Crown of Brilliance for Eurabatres, Unholy Taint for Abadhi, Fire 1 for Acheron, Immune Cold for Drifa, and Crazed for Thalotth.

I'm making Gosea a disciple unit with divine 1 that randomly changes religions and affinity for different mana as she channels new spirits. If her demon possession wears off she gets it again from combat.

I'm thinking of letting Brood Guards generate Bloodpets from combat, and replacing the Brood Guards' mana promotions with a unit specific Blood Bond spell. This would grant Loyalty and Courage but also tie the effected units to the caster in much the same way as Gift Vampirism ties a spawn to its sire, so that lower level units can also be used as fodder whose death benefits the Brood Guard. If the sire rebels, then the thralls will too.

Vampire Lords start with Fear. I might give them channeling 2 and make them eligible for affinity, but have not decided yet.

Brujahs gain the Cannibalize promotion. They still have Irabundus, but it won't cause so much clutter as I realized making a promotion it oen next level hides it from view.

The Revelation spell frees spawns and thralls from their vampire sites, and damages those sires slightly.

I'm not sure why, but the ring if warding does not seem to block spawn from entering.

Feeding an immortal unit to a vampire will transfer its immortality to the vampire, making Blood of the Phoenix extra valuable for the Calabim. I may have it transfer Burning Blood too.


I'm bringing Lethe and Judecca in line with the mana spheres Kael shared. A Pact With Lethe will give your Profanes Entropy 3 and Spirit 3. A Pact with Judecca gives Profanes Earth 3 and gives all siege and adept units Entropy 1. Since he seems siege rather than arcane focused, I may make Pact with Hyborem extend summon duration instead.


I just realized that I can make the various pact traits change the effective mana supply, so I will probably do that too.


I changed the mana panel to show effective mana supply in the format (real mana supply) + (civ, state religion, and trait mana bonuses) = (effective mana). Unfortunately. I gave not found a way to dusplay the unit mana bonuses, which include the bonuses from local terrain and unit religion.

There may be other unreleased things I added a while back but have forgotten.
 
Last edited:
Did you give the bones of Thalatth their proper name yet? They're still called Dragon Bones. Also, Thalatth's Wyrmhold spells its name as 'Thatlatth'. Minor stuff, but annoying for me.
 
@ magister,
I like your idea for mages, but noticed your coding explanation going toward the complicated part of coding.

two options I see that you don't mention:
- affinity grants access to spell without need of the "mana sphere Lvl promotion" (need to redesign the conditions on the spells or create "duplicate spells")
- creating 63 new spells with increased effect

in detail :

- how to manage the affinity to X promotion: affinity (the "easy part") : on first application : removes "related mana spheres", forbids earning related mana spheres ; "X affinity" works like divine or religion : X affinity allows 3 spells depending on having chan I, II or III... (+ bonus to affinity) (no need to reapply each turn... or have the spells be allowed or to have the affinity "gift" some promotion to units on creation : only issue is that there is a high chance that all arcmages will have 2 affinities.. and thus get "free" 2 lvl 3 spells. (need to either redesign the conditions on the spells or create "duplicate spells")

- how to translate the "boosted" aspect of the "affinity to X" (the "hard part") : what about creating 63 new spells ? only allowed with the X affinity & Chanelling Y :
-Elementals can be the same, but the summoning spell gives them ... Heroic attack & def ? / affinity ? / new promotion you invent for the occasion which gives +1str, +20%str, +2FS ...etc) ;
-buffs need new promotion/effect : removes the "normal buff" + give the "boosted buff" + "forbids the normal buff" + need to code the new buff or new spells, same buff+secondary effect (other buff or bonus to caster only);
-buildings either need code+new building or code + same building + secondary effect.
(as a specific effect, instead of increasing the effect of the spell, the spell gives the same effect but gives a boost to the mage, a simple "+1xp next turn", or "increased odds of getting xp next turn" could be enough, or a +1defense until next turn, or )

I think it can be done in a minimalist way with "only" creating 63 new spells, and maybe less than 10 "new effects/promotions" (1 for summons, 4 for 1 per buffs from each school, 4 for 1 per spell-buildings from each school).. and if complicated : 63 new spells, 40 new effects ( 1 specific for each building & buff)

I think it would be more "xml intensive", but less hard code-wise on the dll.. and wouldn't involve an increase of the "effects needed to be checked per turn".
 
Python code is more fun and versatile than xml, but you might have a point. I started to write a reply dismissing your ideas yesterday, but today they are growing on me. I'll have to think it over.

I'd still have to use python to remove related mana spheres when Affinity is added (unless we want the spell list cluttered with weaker duplicates, or worse yet adding python prereqs to common spells to hide them when the better version is available), but that would be a quick check that runs only once. XML alone would allow me to block access to up to 3 promotions per promotion. Spirit 3 could be a complication, as that already blocks promotions (Paranoid, Burning Blood, and Enraged) and removes more promotions in python which I would like to have it block.

I still think running a PyPrereq every turn might be more efficient than adding a bunch of new spells, because they would be run once per unit whereas every spell needs to have its prereqs checked every time any unit is selected. For some reason the code checks python before several other prereqs like religion, but the promotions prereqs are checked first so spells with an Affinity prereq shouldn't slow the game terribly.

I don't think I really want Adept-level spells to benefit from affinity (letting mere adepts themselves get affinity promotions at all seems very overpowered and not particularly thematic), so I would only have to consider duplicates for Mage and Archmage level spells.

Since I would not be letting units without Creation affinity access the sphere, there is no reason to duplicate those. I will probably make those buildings stronger those, with <BonusHealthChanges>, <BonusHappinessChanges>, and <BonusYieldModifiers> to make their benefits scale with mana supply. Nothing but Health, Happiness, or Yields can scale with mana though.

(Last night I added a Greater Hope spell, which requires Spirit Affinity and a Hope Building in the city. It passively adds a second spell building, which improves Hope by adding +1 Happiness per source of Spirit mana. I could easily make it a duplicate of the regular Hope that has that mana bonus too though. I might also make a Greater Hope building improve the effects of other Hope buildings in all cities, although that would require going back to having a separate BUILDING_CLASS for each spell building rather than all sharing one. )

I have a hard time thinking of what to do for an Affinity-enhanced version of Ring of Warding or Unyielding Order. I could make a version of Warding that offers stronger city defenses against normal units or more resistance to spells for units in the city, but the main benefit of making the plot impassible to summons is hard to improve without making it insane overpowered (such as making the whole empire impassible to summons).

There are technically 2 versions of Unyielding Order already. One is a passive effect that makes sure revolutions stay squashed. I'd rather not have to make four versions to maintain an even less yielding order. (Now that I think of it, I'm not sure why I couldn't just combine tho existing spells so that it ends revolutions if the building is already present. There must have been a reason. I guess I'll have to test it.)

I wonder what would happen if I made a spell building grant another spell building in every city? I may have to test to see whether the free buildings would be maintained.

The thought just came to mind that I could let casters with Affinity grant a version of the building that endure without the cater remaining in the city, but maybe remove themselves when your mana supply is gone.


For summons I still think the best boost is passing on the same affinity promotions that enable the spells. I could easily make a duplicate of each summon spell that passes on affinity to the summon itself using not <PromotionSummonPerk> in CIV4PromotionInfos.xml but with the <CreateUnitPromotion> in CIV4PromotionInfos.xml. (The only summon one that currently uses that tag is Summon Chaos Marauder, which adds rebellious. I could just as easily make Chaos Marauders start out Rebellious in their XML infos but remove that for Planar Gate units.)

I might also make the Affinity Summon spells have a larger <iCreateUnitNum> value. When your enemies are using a large number of weak units, having 2, 3, or 7 mediocre summons is far more useful than one powerful one. I could make the number scale with mana supply if I use python, but I'd rather not. The AI would not understand what the spell does if it creates units in python, but I believe it would highly value the ability to produce many elementals at once in xml.


I can easily make duplicates of promotion-granting or damage dealing spells that have a greater range, using xml, although I'd need python if I want them to scale with mana supply.

For spells that are resistible, I could make versions that cannot be resisted or which are at least harder to resist.

Currently I have 3 versions of Bloom, one to make New Forests and the other to upgrade them to Forests or Ancient Forests. I think I might make the Ancient Forest version require Affinity. I could also make the Druid's Vitalize spell require Nature affinity, as Druids have that anyway.

I could make Auric Ulvin's Snowfall Greater the Affinity version of Ice 3.


Theone barrier to me using duplicate spells for affinity is Life 3: that one promotion allows for 55 different Resurrection spells, as well as Destroy Netherblade.

I could however add a spell that requires Life Affinity and Channeling 3 and adds Life 3 to the caster, thus enabling the other resurrection spells and not requiring more xp to regain Life 3 again after using any of them.

Since the 2nd level spell spheres are prerequisites for the 3rd, I guess I really only need to make affinity block level 2.

Edit: I just realized there is a problem with having Affinity grant spells only with Channeling promotions: it would not allow Ritualists and Mobius Witches use mage tier magic.

I could just have the affinity promotions grant the mage level spell and require both that and channeling 3 for the archmage level spell (since I am not letting adepts have affinity anyway), but then I could not pass on affinity to summons without letting them use the mage level spells too. I'd have to think over whether that it ok.

Fireballs are blocked from casting anything, so that is no worry. The DLL also prevents any unit from summoning more of its own kind, so Ice Elementals would not summon Ice Elementals either. Air Elementals casting Maelstrom seems ok. I guess a Fire Elemental throwing Fireballs is not so bad. I'd rather Wraiths not summon Spectres, but I guess I can tolerate it. I just recently removed Force 2 from Runewyns, but letting those with affinity still cast Ring of Warding seems acceptable. Guardian Vines casting Bloom would be ok. I guess Mistforms casting Shadowwalk is ok too, and Aureales casting Blind. Water Elementals have Water Walking already.

Now that I think of it, yeah, letting summons of casters with affinity share the benefits of affinity spells might actually be rather nice.

---

I'm thinking I may change the mechanism I'd mentioned before by which affinity is granted based on the Unholy Taint promotion. Instead of granting an evil spell at random, I might make it so that each of the Demon Pact trait grants every unit with Unholy Taint a sphere of affinity. Those would be removed when the Demon Pact is broken.

I was kind of hoping that it would turn out that each demon lord was associated with a different evil sphere of mana, but it turns out that the two we know about are both Petrarchs, Entropy/Spirit for Lethe and Entropy/Earth for Judecca.
 
Last edited:
thanks for taking those ideas into consideration.
I have to admit that I don't do python... so it always seems (overly) complicated to me.
it was just what went through my head when reading your post, and I wanted to share (I also had to rewrite it twice because my "ideas" were to messy). Anyway, I hope this feedback doesn't bother you too much, and either helps in some way or at least confort you in doing it the initial way :)

in any case do it like you want, I'll still play :), and I'm sure I won't notice the processing difference

(NB: I don't think it is necessary that each and every spell is boosted .. maybe some could only have secondary effects : Law III could, with unyielding order, grant a promotion : +1xp/turn until unit moves, until 100xp : as long as UO is in force, the archmage earns some xp..) ..
it could be : spell can be casted, and another spell can be casted. (ie: affinity promotion is disabled for 1 turn, but unit is considered as having not casted : the unit is free to use the "affinity spell" once per turn.)

...Etc
 
I really don't like the idea of adding any new promotions that provide boosts like faster xp gain from spell buildings.

I do like the idea of having the affinity spell buildings have the <bHasCasted>0 and/or <bIgnoreHasCasted>, so that they can be used without preventing the unit from casting other spells that turn. With a spell building you can be sure that particular spell is only used once in that city. Letting a summoning spell be used over and over ad infinitum would be a problem.

I have already made a greater version of Ring of Warding that provides stronger defenses plus gives units in the city the Magic Resistance promotion. I've also made a greater version of Unyielding Order than grants Valor instead of Loyalty, and had a stronger effect at increasing stability across the whole civilization. I just now added a Greater Rift gate, making it so that the basic one allows 1 airlift and the affinity one allows 3. I believe those do stack together with each other and with the Obsidian Gates and Nexus in order to allow more units to be airlifted on the same turn.


Right now I am thinking about adding a thematic new ability to Auric Ulvin, in his mortal pre-ascended form. Kael said "Auric has no ability to manifest magical effect on his own, but a strong ability to detect and manipulate magic that already exists. He is vessel capable of consuming and expelling great power." I am thinking of making it so that he has Affinity for whatever mana is found on his current tile, but looses it immediately whenever he leave the tile for one without a mana source. On Letum Frigus, he could use Snowfall Greater. On the Mirror of Heaven he could blind everyone nearby, or summons Aureales to do so. On Tarch's Tower he could hurl lightning, as he did there in the Ashes of Brigdarrow but could not do once he wandered too far away from it.

(I also made Auric able to move through impassible terrain, so he won't get stuck if Letum Frigus is blocked off my mountain ranges.)

I just changed the supplemental unit mana part of the effective mana calculation so that it count any mana found on the unit's tile more strongly. If you move an adept or mage to a mana node before upgrading to a mage or archmage, there is a pretty good chance (but not a certainty) that that node's mana type will be chosen as the unit's new affinity.

The other mana nodes in the area are now ignored, except for the barbarian state which lacks a palace and gets no supplemental effective mana based on civ or state religion type. The sizes of areas can vary so much and contain so many different types of mana it was overwhelming all the other determiners of affinity and making the mechanism way too random seeming.

----
I should really be getting to bed now, as I have to wake up in about 5 hours to drive my mother to surgery. I except to be sitting in a hospital waiting room with no real news for most of the day tomorrow. I plan to bring my laptop so I can get some more modding done there.
 
thats sounds really interesting.
I hope your mother's surgery will go as planned..

so in conclusion, you have
- summons get affinity (skellies or Lvl 2 summons : pit beasts/host/spectres/fireballs/sandlions with affinity will be OP ; lvl with double affinity will also be OP but that's a difference piece of cake ; NB: Djinn will become worse of as they'll only get 1 mana with double affinity (metamagic ? which you want in few numbers) whereas other elementals from an "affinity archmage" will get double affinity on a mana which is already planned to be stocked up...
-buildings that allows to be freely casted and/or boosted
-attack spells that are boosted (i count debuffs : rust & dispel as attack spells)
-buffs that are boosted (some could also be freely casted and become interesting without needing to be boosted !) : you can't abuse having a mutli-cast per turn of fire-arrows or poisonblade or waterwalking or regeneration or valor or fair-winds / courage / haste..Etc (it only allows to free up the mage from micro-management) / deletable buffs : blade of chaos, stoneskins, can be slightly abused, but it's not a real issue : you need blitz units to profit it, or use it in attack and re-apply for defense which is not becoming abusive)

it seems to be everything... and it would fit well.
(IMO giving affinity to summons would be a bit too strong... access to a twincas like-spell would IMO be more balanced for summoned affinities)
 
The way I have it now skeletons get no buffs buffs from affinity. None of the adept level spells have affinity boosted equivalents. Affinity promotions may grant adept level spells for free

All of the 2nd and 3rd level summons from a caster with affinity do get affinity. The second level affinity spells also generate 2 summons at once. The 3rd level spells generate 3 at once.

I just made Wraiths start with the Cannot Cast promotion, so you cannot summon 3 Wraith who can then summon 6 Spectres. Since I discovered that I can make a promotion its own next level to hide it, I did so.

I am still considering whether I want to apply that to the other top tier summons. I know I do not want it for Djinni, as their main point is casting more spells.

Djinni are Arcane units with Channeling 2, so they get assigned random affinities just like normal mages in addition to having Metamagic Affinity passed on to them if summoned from the greater version of the spell. Djinni previously had 3 Megamagic affinity is their xml defines, but that has been reduced to 1. Their total strength thus should be no more than it was before.

I was thinking that the benefit of the greater version of Regeneration, Stoneskin, and Enchant Spellstaff, would be that they effect the whole stack instead of only the caster, and of Shadowwalk and Flaming Arrows would be that they effect units on adjacent tiles too. Now that I mention it I guess I could make it a free spell that does not prevent other casting though. That would be quite powerful, but so it getting multiple summons with affinity.

It makes be think the spell buildings would need a boost though. At the very least Greater Hope would have to grant more than 1 happiness per Spirit mana.

Do you think it would detract from the Kuriotates too much if Abundance increased a city's radius, as well as eliminating all unhealth? That spell could only ever be used by Archmages (or Eaters of Dreams) who are born with Creation Affinity, as no one can ever learn that sphere from experience. The Kuriotates themselves have the best chance of getting that spell, but might get the least use from it. It might be really cool if I could make it so that this spell allowed them to turn a Settlement into a City Hub without it counting towards the city limit, but I have not figured out if that is possible yet.

---
I am in the waiting room at the hospital now. They just took mom back to go under anesthesia. If everything goes as they hope she might be out by noon, but I doubt it. Last time it took longer than expected for anesthesia to take effect, so she was not out until about 4pm, she did not wake up until almost 6pm, and she was so groggy for the rest of the day that we feared she had another stroke. The next morning she woke up fine though, and all the tests showed everything went well.
 
So, it seems it is pretty simple to let Abundance permit a Kuriotate settlement to become an extra city hub, so I'm going with that.

I changed it so that the Tower of Elements no longer grants free promotion picks to all elementals for all elemental mana types, but only gives elementals the bonus based on their own prerequisite mana type. I'm playing around with letting Angels of Death get free promotions based on how much death mana your enemies possess.

I still like the idea of giving the summons affinity, but in my current Illian game it does seem a bit too powerful. I may end up removing the summons' affinity eventually, but first I want to try making it so that Ice mana nodes can only be built on Ice mana rather than raw mana, like how Creation mana used to work. I may make The Deepening add some more unimproved Ice mana though.


Auric's new ability to gain affinity for whatever mana is found on his current tile is pretty awesome. I'm loving him having archmage powers so long as he stands in the right place, bur becoming weak and vulnerable whenever he is forced to retreat.


I'm really liking the mechanic where each Demonic Pact trait gives different Affinities to units with Unholy Taint. I'm considering eliminating that promotion as a prereq for the normal evil spell spheres, to make AV players rely on Demonic Pacts more. I don't know what are the right spheres to give most of the demon lords though, and am waiting to see if Kael will tell us more about each.

---

My mom came through the surgery fine. Yesterday before we left she seemed to be recovering much more quickly than most patients do, enough that the doctor said there is a good chance she could come home today. After we left light night though her blood pressure rose quite high, she got a bad headache, and she did not sleep well. This morning he says he wants her to spend a second night in the ICU. If she does well tonight then he plans to lt her come home without sending her to a regular hospital room first.
 
That Auric bonus sounds incredibly interesting, although i would mourn the loss of the insane levels of Ice mana one could accumulate (it was fun having ~60 strength Heirs of Taranis). Letting the player gain more Ice via the Deepening sounds like a good replacement, however. Any possibility it could also affect the Ritual of Oghma? That is, if you've completed the Deepening then perhaps some of the Oghma rituals could spawn ice magic (when performed by Illians or White Hand faithful, that is)?
 
I went ahead and removed the affinity promotion from temporary summons of affinity casters, replacing it with Strong. I'm thinking of leaving the affinity but removing the multiple units from guarduan vines and flesh golems. I am considering having the greater djinn summoning spell give one djinn with channeling 3 instead of 3 djinni with an extra affinity.


I don't want to make the Deepening change how the Rutes if Oghma works, but I am thinking of maybe making the Deepening not add any new mana source but rather transform all of the world's unimproved raw mana into in unimproved ice mana.



I'm also thinking of letting Auric Ascended automatically convert any unit that has affinity for ice mana, as if they were of the White Hand religion. (Also having another affinity might make them immune.)

--------

I just got a call saying that mom is going well and we can take her home in a couple hours.
 
Last edited:
I’m not familiar with this modmod’s unique mechanics, but from what I remember of base ffh ice mana is very rare outside of the Illians, so I’d worry making the deepening transform a lot of nodes to it would suddenly make it very common among other civs.

Can I ask a question about the late-game crash issues discussed earlier in this thread? Are they the sort of “save often, may crash after several turns, but not really a big deal”, or more like “games will become unfeasible to finish as you encounter repeatable crashes, or else crashes so frequent that you can’t complete more than a couple turns”?

Just excited about checking the mod out, so want to know what to expect. Thanks for all the work in continuing its development!
 
Back
Top Bottom