[MOD] MagisterModmod

In order to see the spell buildings you must first turn off the "Hide Inactive" toggle (the second from the right on the third row)
Thanks for the tip!

I'm just not seeing the behavior you described. Losing mana is making the city lose the extra food from Fertility, which may leave it without enough to sustain a large population that had come to rely on the mana food bonus, but I'm not seeing the bonus go negative.
I'm probably not explaining well.
I started a new game and used the WB to create a demonstration.
Check the following screenshots for a step-by-step:
Spoiler Screenshots :

1) I have 5 life mana and build fertility in the city. Since I have >0 life mana, I get +50% food.
Spoiler :
20231005171216_1.jpg


2) I cast dispel magic on one of my life nodes - I now have 4 life mana. The percentage bonus is removed, despite me still having >0 life mana.
Spoiler :
20231005171228_1.jpg


3) I dispel another node, bringing me to 3 life mana. The base food (tile yields+building) is now modified by -50%
Spoiler :
20231005171237_1.jpg


4) Dispel another node, we're now down to -100%. Total Food Produced is 0.
Spoiler :
20231005171246_1.jpg

5) Another dispelled, down to -150%.
Spoiler :
20231005171301_1.jpg

6) We remove the caster and end the turn, deconstructing fertility. The game removes another 50% since fertility is gone, thus bringing us to -200%
Spoiler :
20231005172409_1.jpg

7) Re-casting fertility brings us back to -150%
Spoiler :
20231005172417_1.jpg

 
I just uploaded a new version. It is a minor update which includes mnai-2.9.2u, a few python bug fixes, minor tweaks to the Arda mechanic, and some better civilopedia documentation. It also changes the Escape spells to move units to the nearest city instead of to the capital city.


It does not break saved games from the previous update.


You may download the installer here or the archive here.


Thanks for the tip!


I'm probably not explaining well.
I started a new game and used the WB to create a demonstration.
Check the following screenshots for a step-by-step:
Spoiler Screenshots :

1) I have 5 life mana and build fertility in the city. Since I have >0 life mana, I get +50% food.

2) I cast dispel magic on one of my life nodes - I now have 4 life mana. The percentage bonus is removed, despite me still having >0 life mana.

3) I dispel another node, bringing me to 3 life mana. The base food (tile yields+building) is now modified by -50%

4) Dispel another node, we're now down to -100%. Total Food Produced is 0.

5) Another dispelled, down to -150%.

6) We remove the caster and end the turn, deconstructing fertility. The game removes another 50% since fertility is gone, thus bringing us to -200%

7) Re-casting fertility brings us back to -150%

Unfortunately I was not able to reproduce this bug with the previous update, but could with this new version.

Edit: just found a bug after uploading.
Code:
Traceback (most recent call last):

  File "CvSpellInterface", line 137, in miscast

RuntimeError: unidentifiable C++ exception
ERR: Python function miscast failed, module CvSpellInterface
Traceback (most recent call last):

  File "CvSpellInterface", line 60, in canCast

  File "<string>", line 0, in ?

  File "CvSpellInterface", line 32691, in 
reqSmokelessFire
NameError: global name 'iX' is not defined
ERR: Python function canCast failed, module CvSpellInterface
It needs to have the lines

iX = pCaster.getX()
iY = pCaster.getY() added before for iiX in xrange(iX-iRange, iX + iRange+1, 1):
 
Last edited:
Thank you for the new version. However when I tried it I could not explore lairs. Also could you clarify where in CvSpellInterface the extra lines go.
I assumed that you could tell from the error message I included that the lines should go at line 32691 or CvSpellInterface. Make sure they are indented to the same level as the following for iiX in xrange(iX-iRange, iX + iRange+1, 1):

If indentation is off then the while file may stop working, preventing the use of any python spells.


Can I get more details on when you are unable to explore lairs?

Did you mean after installing the new version of after trying to include that python fix?


In my current game I seemed to be able to explore them all, at least once.
I noticed that at some point I stopped being able to explore Asmoday's Grave. I just now figured out that I have some code I'd forgotten about in the Sanctify spell setting it as python inactive, which makes it impossible to explore anymore.
 
Thank you for your quick response.

Yesterday I installed the update, but did change the Python. I started a new game and tried to explore a dungeon. The explore spell appeared, but was greyed out. I also tried to explore a major dungeon with the same result. However I could explore graveyards.

Today I re-installed the update and changed the Python. I started a new game, and I could not explore lairs. Even worse there is no spell when I am on a graveyard.


In the past have seen the Grave of Asomoday become unexplorable after being sanctified. I couldn't tell if it was a bug or a feature.

The Doviello world spell is not working for me. With Hunting they can cast it, but there is no effect.
 
Last edited:
Thank you for your quick response.

Yesterday I installed the update, but did change the Python. I started a new game and tried to explore a dungeon. The explore spell appeared, but was greyed out. I also tried to explore a major dungeon with the same result. However I could explore graveyards.

Today I re-installed the update and changed the Python. I started a new game, and I could not explore lairs. Even worse there is no spell when I am on a graveyard.


In the past have seen the Grave of Asomoday become unexplorable after being sanctified. I couldn't tell if it was a bug or a feature.

The Doviello world spell is not working for me. With Hunting they can cast it, but there is no effect.
I'm pretty sure you are messing up the indentation or something when trying to fix that python bug. Maybe I should just upload a new CvSpellInterface.py

edit: the site wouldn't let me upload a python file without putting it in a zip archive.

edit2: Right after uploading I found a python bug whose cause was not in the python file but in the XML.

In Sid Meier's Civilization 4\Beyond the Sword\Mods\Magister Modmod for FfH2\Assets\XML\Units\CIV4SpellInfos.xml

helpFeed(lpUnits) should be helpFeed(lpUnits, eSpell)
 

Attachments

  • CvSpellInterface.zip
    218.7 KB · Views: 16
Last edited:
I found a couple more bugs caused by CvSpellInterface.py and CIV4SpellInfos.xml and decided to upload another, very minor update tonight. it does not break saves.
 
hey, i just started playing FFH2 and have been using Magister Modmod and its awesome! i have come across some small bugs though, and some other things that seem like they might be big bugs or possibly im not understanding the game mechanics correctly.

for the small bugs, i have noticed some text errors for some of the world spell names for civ leaders when you start a game. off the top off my head for when i played Perpentech his world spell was listed something like "TEXT_NOT_FOUND" or something like that, not exactly but you get the idea... other times, i noticed i didnt get something that the civlopedia entry said i should get when building a certain building or founding a religion. specifically i founded the Laeden Chord (sp?) religion and then went for the offshoot branch of it, and it said i was supposed to receive a free scribe (i forget if it was for founding the religion or building the wonder that makes you found it), but i never received the scribe. also in a game i just played i did an Undercouncil vote that passed to get a free Night Watch, and i did receive it. later on that same proposal came up again, and it passed again but that time i didnt receive the unit. it seems like a lot of these unit rewards are hit or miss. (also if theres any way to easily see a list of your owned units someone PLEASE tell me, im totally new to Civ 4 but this is a feature i desperately miss from 5 and 6 and if its here i cant see it. also is there any way to lock a tooltip so i can read or click the links in them?)

for the bigger stuff, these might be game mechanics that im not understanding or that arent communicated clearly but they're pretty jarring to me and seem like they could be bugs. late into a game i was playing i started receiving a bunch of technologies seemingly for free, sometimes up to 4 per turn. the only thing that i can think of if its not a bug, is that its because i had a pretty strong culture output and was touching borders with several people on a small map. i know strong cultural output can net you rival's technologies in some other 4x games i've played, but i was hoping i could get clarification if this is intended or not. if it is intended behavior, being able to turn that into a toggle option would be really nice i think.

the part that made me really question that though, is that after receiving 4 religious technologies for free all in the same turn (i think it was the "tier 0" ones at the very begining of the tree), it gave me a free priest unit for each of those religions. it then proceeded to allow me to cast spells from them which had listed restrictions of requiring the caster to have that religion, even though i had my own religion that was different from those. i guess maybe it was referring to the actual unit's religion? but it seemed really weird to me that i literally got all that for free, and then had the ability the build a bunch of religion specific wonders and powerful religion specific spells from other religions when i already had my own that i invested heavily in.

additionally, i like to play with no time limit and around turn ~250 i was starting to get crashes to desktop seemingly from lots of spells and movement being calculated during big late game wars. i've seen this happen in Civ 5 and other games too, so i used the old trick of going back 2 turns prior and trying to roll it again (since going back only 1 turn it will always just crash again), which usually worked. im guessing this is probably due to being an old and heavily modded game struggling during the late game as turn times started to degrade heavily the later it got.

lastly, and this is more of a balance commentary thing and since i've only played Magister Modmod and not vanilla FFH2 i dont know if its different there, but anytime Khazaad is in the game led by either of their leaders they absolutely steamroll everyone. im starting on Emperor with scaling difficulty enabled so it goes up to Deity. they always go for the Runes of Kilimorph religion and manage to get it early and then use that powerful UU to snowball out of control and paint the map from there. it sucks because i like to play with random opponents but i've been unfortunate enough to get them in almost all my games i've played so far and the same thing happens every time, usually without me being able to affect it much partially due to my playstyle but also because they're too far away for me to contest them.

anyways, that may have been a little long winded but i wanted to get this out while it was fresh in my mind. looking forward to hopefully getting some clarity on these things but also just wanted to say thanks for the mod, even as a pretty much brand new player i've been able to notice a lot of the extra stuff you added like the additional leaders and religion stuff which i think is really damn cool. this mod with the modmods is so incredibly deep, it totally blows most modern offering out of the water. i look forward to playing a lot more and will be following this thread and the MNAI-U one closely.

EDIT: forgot to add one item/question. i played a game as Sheaim and built the Planar Gate. i assumed that with the substantial happiness penalty the units that it produced would be permanent and thats what it sounds like in the tooltip description (it says they "join your civilization"), however i was extremely underwhelmed when my first Imp that came through only lasted 3 turns. i assumed after that that the units it produced are temporary, or that maybe the Imp being the most basic non-specialized one was even though as far as i can see it isnt listed as a temporary summon anywhere. however, the second Imp that came through lasted longer then 3 turns and seemed to be permanent, the only difference being at that time the city the gate was in was under siege and he was seeing constant combat every turn. i dont know if that was having any effect on his duration or not.

i could be mistaken since im still learning the game and mechanics, but it seems to me that there might be a bug or issue with units that are "awarded" to you through various means. they either just dont show up half the time for me, or they seem to randomly dissapear after receiving them for no reason. several times in different games as different races i've seen these units mysteriously vanish so i think there may be some kind of problem here.
 
Last edited:
Greetings, everyone! For the last week I have been describing my thoughts on changes that would benefit the game.

I've got the text for 3-4 posts on this forum. Below is an "introductory" post without which the following posts will be a bit difficult to read. Also this post will be an indicator for me, whether it is worth developing ideas in this direction further.


********

Each unit of dominion mana now reduces the chance of failure of that dominion's spells (the effect is cumulative).

Every spell except level 0 "spells" (more on level 0 "spells" later) and enhanced versions of spells now has a chance to fail, but also reduces the chance of spell failure for all spells of that dominion.

Level 0 - 0% chance to fail, -14% chance to fail for all spells of this dominion,
+3% chance to gain this dominion's affinity as the level of Channeling increases

Level 1 - 28% chance of failure, -14% chance of failure for all spells of this dominion,
+3% chance to gain this dominion's affinity when increasing the level of Channeling

Level 2 - 56% chance of failure, -14% chance of failure for all spells of this dominion,
+3% chance to gain this dominion's affinity when increasing the level of Channeling

Level 3 - 84% chance of failure, -14% chance of failure for all spells of this dominion,
+3% chance to gain this dominion's affinity when increasing the level of Channeling

Changed the reduction of the chance of failure for level 1,2,3,4 Channeling to 7% (the effect is cumulative to 28% on Direction 4).
All units possessing a Channeling of the required level can learn any spells for which the requirements in the form of the level of the Channeling and the presence of a source of mana are met, ignoring the earlier pumping.

For example. An Archmage can learn the level 3 spell "Call of the Fire Elemental" ignoring the 0,1,2 level spells and having access to Fire mana.
It is worth considering that the chance of failure will be 42% compared to the stated below 84% since.
1.Archimage has Channeling 3 (-21% chance of failure),
2.He has learned only 1 Fire magic spell(-14% chance of failure),
3. Your faction possesses 1 Fire mana(-7% chance of failure)
4? If your Archimage would own all Fire spells (excluding the level 4 spell), he could use "Call of the Elemental" without fear of it failing.

Now every unit with learned Channeling 1 can learn any level 0 "spell" ignoring mana availability in their territory with the ability to then learn level 1,2,3 spells.(still also ignoring the presence of mana in your boundaries).

********

P.s. I really hope that the magic system I'm proposing today (and going forward) doesn't go much against the one described in the lore. I am ready to listen to your opinions and criticism on this matter.
 
Last edited:
having a really epic game come to a heartbreaking screeching halt at exacly Turn 250... no matter how many times i reload or how many saves i go back it stalls indefinitely after hitting end turn and task manager shows the program as "not responding". anything i can do about this? turn times start getting really bad around turn ~230 i've noticed but i've usually managed to get around CTD's by going back a few saves but not this time.

EDIT: i was able to salvage this situation by loading a save from an alternate path i took previously where i had declared war on somebody sooner. i imagine this changed the goings on of the map enough that it avoided whatever situation was causing the game to stall on turn 250. i wound up losing to a domination victory shortly after anyway, but it felt good to at least be able to finish the game. i dont know if theres anything that can be done to address late game turns eventually turning into a gamble of whether or not you can continue, but with how long these games can go it seems worth investigating.
 
Last edited:
MIN_CITY_RANGE is already at 3. BtS default is 2. I guess I could put it back to that. I don't like the AI crowding that much though. I guess I could use python to block AI cities at that distance only, but it could mess up already bad AI behavior.
I would really appreciate that change. Personally, I don't care about AI crowding (they hardly ever settle enough cities anyway), but it really annoys me whenever I want to settle a normally legal spot and I'm blocked.
 
Hello again, I thought I'd post an example of one of the changes I talked about in the post above. I am waiting for your thoughts on it).



Law (-7% to the upkeep of cities, -7% to the chance of failure of Law spells. -3% to the failure chance of ALL other Dominions)

Every Great General can learn level 0 Law spells.
Every follower of the Order (religion) now has 0 level Law.

  • "Loyalty" is a level 0 spell.
    Spell targets now have a 21% chance to set up on not receiving Loyalty.

  • A new 1st level spell. "Faithful Command".

This spell is replaced by multiple Orders when used.
Each new Order replaces an old one. Unimproved units can only take one command per turn.

All Orders work only on creatures with the Loyalty effect.

  • Order: March roll. Gives +1 movement range. At the end of the turn, while this order is in effect, it deals 7% of all units under this order's effect. -21% retreat.
  • Order: Attack. Gives +1 attack. -1 defense. -21% retreat.
  • Order: Camp. Instant fortification. Increases regeneration by 21%. Blocks movement. -21% retreat.
  • Order: Defense. Gives +1 defense. -1 attack. -21% retreat.
  • Order: Training: +21% chance to gain 1 experience, -1 strength. -21% retreat.
  • Order: Reconnaissance. +3 unlimited vision range, -1 strength.
  • Order: Pray. Strengthens the Arda of all priests in the stack by 3% for each unit in the stack, for the duration of the stack with the caster. Gives a +3 movement penalty. -21% retreat chance.
  • Order: Freely. Removes all Orders

Each order has a 7% chance of ending at the end of the turn.

The ENHANCED version allows TWO orders per turn.
 
Good day, I've just finished a Balseraph campaign with the Stewards of Inequity religion on mod version from July(?), so I have no idea if some of the issues/designs have been addressed or not, but here is what I find a bit problematic.

Unique units religion requirements. Not a big deal for a player, but I highly doubt AI can handle it. That means you most likely won't see them having Courtesan.
Mimics. They keep Mimic promotion upon upgrade, Phalanx with this ability very quickly ends up being invincible, but through it they can acquire the negative promotions such as Burning Blood. For balance it probably might be better if they had a chance of gaining promotion on a kill and only from a certain list of promotions also they should lose Mimic during upgrade. I have no idea how or why one could mimic Weak or Possessed.

I liked the Stewards of Inequity religion, it works really nicely with Undercouncil, which I assume it was desinged for.
 
Greetings, everyone! For the last week I have been describing my thoughts on changes that would benefit the game.

I've got the text for 3-4 posts on this forum. Below is an "introductory" post without which the following posts will be a bit difficult to read. Also this post will be an indicator for me, whether it is worth developing ideas in this direction further.


********

Each unit of dominion mana now reduces the chance of failure of that dominion's spells (the effect is cumulative).

Every spell except level 0 "spells" (more on level 0 "spells" later) and enhanced versions of spells now has a chance to fail, but also reduces the chance of spell failure for all spells of that dominion.

Level 0 - 0% chance to fail, -14% chance to fail for all spells of this dominion,
+3% chance to gain this dominion's affinity as the level of Channeling increases

Level 1 - 28% chance of failure, -14% chance of failure for all spells of this dominion,
+3% chance to gain this dominion's affinity when increasing the level of Channeling

Level 2 - 56% chance of failure, -14% chance of failure for all spells of this dominion,
+3% chance to gain this dominion's affinity when increasing the level of Channeling

Level 3 - 84% chance of failure, -14% chance of failure for all spells of this dominion,
+3% chance to gain this dominion's affinity when increasing the level of Channeling

Changed the reduction of the chance of failure for level 1,2,3,4 Channeling to 7% (the effect is cumulative to 28% on Direction 4).
All units possessing a Channeling of the required level can learn any spells for which the requirements in the form of the level of the Channeling and the presence of a source of mana are met, ignoring the earlier pumping.

For example. An Archmage can learn the level 3 spell "Call of the Fire Elemental" ignoring the 0,1,2 level spells and having access to Fire mana.
It is worth considering that the chance of failure will be 42% compared to the stated below 84% since.
1.Archimage has Channeling 3 (-21% chance of failure),
2.He has learned only 1 Fire magic spell(-14% chance of failure),
3. Your faction possesses 1 Fire mana(-7% chance of failure)
4? If your Archimage would own all Fire spells (excluding the level 4 spell), he could use "Call of the Elemental" without fear of it failing.

Now every unit with learned Channeling 1 can learn any level 0 "spell" ignoring mana availability in their territory with the ability to then learn level 1,2,3 spells.(still also ignoring the presence of mana in your boundaries).

********

P.s. I really hope that the magic system I'm proposing today (and going forward) doesn't go much against the one described in the lore. I am ready to listen to your opinions and criticism on this matter.

Hello again, I thought I'd post an example of one of the changes I talked about in the post above. I am waiting for your thoughts on it).



Law (-7% to the upkeep of cities, -7% to the chance of failure of Law spells. -3% to the failure chance of ALL other Dominions)

Every Great General can learn level 0 Law spells.
Every follower of the Order (religion) now has 0 level Law.

  • "Loyalty" is a level 0 spell.
    Spell targets now have a 21% chance to set up on not receiving Loyalty.

  • A new 1st level spell. "Faithful Command".

This spell is replaced by multiple Orders when used.
Each new Order replaces an old one. Unimproved units can only take one command per turn.

All Orders work only on creatures with the Loyalty effect.

  • Order: March roll. Gives +1 movement range. At the end of the turn, while this order is in effect, it deals 7% of all units under this order's effect. -21% retreat.
  • Order: Attack. Gives +1 attack. -1 defense. -21% retreat.
  • Order: Camp. Instant fortification. Increases regeneration by 21%. Blocks movement. -21% retreat.
  • Order: Defense. Gives +1 defense. -1 attack. -21% retreat.
  • Order: Training: +21% chance to gain 1 experience, -1 strength. -21% retreat.
  • Order: Reconnaissance. +3 unlimited vision range, -1 strength.
  • Order: Pray. Strengthens the Arda of all priests in the stack by 3% for each unit in the stack, for the duration of the stack with the caster. Gives a +3 movement penalty. -21% retreat chance.
  • Order: Freely. Removes all Orders

Each order has a 7% chance of ending at the end of the turn.

The ENHANCED version allows TWO orders per turn.


I thought I'd already replied to this first post weeks ago, but it somehow my reply got lost. I probably got distracted while editing before I hit Post Reply, and then cleared by browser's cache before coming back to the forum.


I don't think this is at all incompatible with the lore, but a lot of it is incompatible with the game mechanics.



Making spells work this way would require massive changes to the DLL, which are beyond my skill and are probably not worth the effort for someone who is more experienced in coding C++ and making XML schemas.

Miscast chances are determined by 3 tags:
<iMiscastChance> in CIV4UnitInfos.xml determines the unit type's base chance of miscasting any spell
<iMiscastChance> in CIV4PromotionInfos.xml lets promotions modify that miscast chance for any spell
<iMiscastChance> in CIV4SpellInfos.xml sets the base miscast chance of a specific spell, which gets modified by the other two tags.


I would love to make the miscast rate of spells depend on factors like mana supply and to let promotions change the chance of miscasting specific spells, but that just isn't possible right now.

(Canonically affinity for a sphere should not only make casting spells in that sphere easier, but also make spells from the opposing sphere harder. Arak the Erkling has high affinity for both Sun and Shadow, enough that he could be a great archmage in either sphere if it were his only affinity, but they balance each other out so that he is incapable of casting spells from either sphere. I gave the great person with his name a promotion to block him from using any magic, but it would fit the lore better if he could use most abilities normally but his sun affinity made shadow spells always miscast and vice versa. I think it would be nice if Force magic promotions could negate the miscasting due to opposing spheres.)

In my mod I use the Arda dummy promotions to change a priest's overall chance to miscast because that is the only option. I would rather Ardas only effect divine magic, or perhaps magic from that god's sphere and have the opposite effect on the directly opposing sphere.

I tried but failed to convince lfgr to change the iMiscastChance tag in CIV4SpellInfos.xml to a python callback (which would allow miscast chances to depend on all sorts of things like mana supply, religious influence, promotions, ect).





Allowing great generals or units following the Order to learn spells that are also availible to adepts would be tricky. Great generals are in the civilian unitcombat, so promotions they can learn also be learned by other great persons or workers. Promotions can have religion requirements, but those religion requirements would apply to every unit. Letting Order units from other unitcombats lern Law 0 would mean adepts could not learn law spells without the Order religion. I suppose I could make alternate versions of promotions for units of different types, but that would either require duplicating all the spells for different versions of the prereqs or else using some messy python to swap out one promotion for another.
It would be easier if you don't want Great Generals or Order units to learn the level 0 spells but just start with them automatically. Giving a specific unit a promotion in its xml defines is easy, as is using python to check a unit's religion type when it is created. Adding promotions to units that are converted to religions with the Evangelism spell is a bit harder. It would be easy for Evanelize Order to Units to grant Law 0 to all units that don't resist it and are of the right unitcombat, but that would probably just mean adepts.


I would love it if promotions could be given a python prereq (which would be checked only if a unit could level up and met all the xml prereqs) but implementing that is well beyond my skill.


I'm not sure how those Orders spells could be implemented either. It would probably require some really messy python. XML spells can add or remove up to 3 promotions from either the caster only or from all units in the stack that don't resist the spell and (in the case of adding) are of a unitcombat that is listed in the promotion's xml defines. You cannot make a promotion effect only units with some other promotions without python.


Good day, I've just finished a Balseraph campaign with the Stewards of Inequity religion on mod version from July(?), so I have no idea if some of the issues/designs have been addressed or not, but here is what I find a bit problematic.

Unique units religion requirements. Not a big deal for a player, but I highly doubt AI can handle it. That means you most likely won't see them having Courtesan.
Mimics. They keep Mimic promotion upon upgrade, Phalanx with this ability very quickly ends up being invincible, but through it they can acquire the negative promotions such as Burning Blood. For balance it probably might be better if they had a chance of gaining promotion on a kill and only from a certain list of promotions also they should lose Mimic during upgrade. I have no idea how or why one could mimic Weak or Possessed.

I liked the Stewards of Inequity religion, it works really nicely with Undercouncil, which I assume it was desinged for.
I don't think I made any changes to Courtesans. That is a basic FfH2 vanilla thing. I never noticed the AI having any more trouble with Courtesans than with normal Shadows they replace.

I added the Mimic promotions specifically because I did not like the Balsereph Mimics losing the abilities they have in vanilla FfH2 when they upgrade.


The code also already excludes any promotion with a negative value in its <iAIWeight> tag.

Weak has <iAIWeight>-100 and Demon Possessed has <iAIWeight>-50, so the conditional "if info.getAIWeight() < 0:" should return true and skip those promotions already.

Burning Blood does not have any <iAIWeight> tag. It has a mix of positive and negative effects. I think giving it a negative <iAIWeight> would stop the Calabim from using their Moiroi's special ability.


There is also a list of specific disallowed promotions, which I suppose I could be convinced to extend. Adding Divine 2 and all the affinity promotions to the list probably makes sense.


Spoiler :

Code:
                if pWinner.isHasPromotion(gc.getInfoTypeForString('PROMOTION_MIMIC')):
                    listDontCopy = [    gc.getInfoTypeForString('PROMOTION_BRONZE_WEAPONS'),
                                gc.getInfoTypeForString('PROMOTION_IRON_WEAPONS'),
                                gc.getInfoTypeForString('PROMOTION_MITHRIL_WEAPONS'),
                                gc.getInfoTypeForString('PROMOTION_GREAT_GENERAL'),
                                gc.getInfoTypeForString('PROMOTION_DIVINE'),
                                gc.getInfoTypeForString('PROMOTION_CHANNELING4'),
                                gc.getInfoTypeForString('PROMOTION_CHANNELING3'),
                                gc.getInfoTypeForString('PROMOTION_HIDDEN_NATIONALITY'),
                                gc.getInfoTypeForString('PROMOTION_MERCENARY'),
                                gc.getInfoTypeForString('PROMOTION_MERCENARY_RECRUITER'),
                                gc.getInfoTypeForString('PROMOTION_CANNOT_CAST'),
                                gc.getInfoTypeForString('PROMOTION_IMMORTAL'),
                                gc.getInfoTypeForString('PROMOTION_TARGET_WEAKEST'),
                                iCasswallawn
                                ]

                    listProms = []
                    iCount = 0
                    for iProm in xrange(gc.getNumPromotionInfos()):
                        if pLoser.isHasPromotion(iProm):
                            if iProm in listDontCopy:
                                continue
                            info = gc.getPromotionInfo(iProm)
                            if info.isGraphicalOnly():
                                continue
                            if info.isEquipment():
                                continue
                            if info.isRace():
                                continue
                            if info.getAIWeight() < 0:
                                continue
                            if pWinner.isHasPromotion(iProm):
                                iCount += 1
                            else:
                                listProms.append(iProm)
                    if len(listProms) > 0:
                        iCount += 1
                        iProm = listProms[CyGame().getSorenRandNum(len(listProms), "Mimic" + str(pWinner.getName()) + ' slayer of '+ str(pLoser.getName()))]
                        infoProm = gc.getPromotionInfo(iProm)
                        pWinner.setHasPromotion(iProm, True)
                        CyInterface().addMessage(iPlayerW,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_PROMOTION_STOLEN", (infoProm.getDescription(),)),'',1,infoProm.getButton(),ColorTypes(8),pWinner.getX(),pWinner.getY(),True,True)
                        CyInterface().addMessage(iPlayerL,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_PROMOTION_STOLEN", (infoProm.getDescription(),)),'',1,infoProm.getButton(),ColorTypes(7),pWinner.getX(),pWinner.getY(),True,True)
                    if iCount >= 20:
                        if pPlayerW.isHuman():
                            t = "TROPHY_FEAT_MIMIC_20"
                            if not CyGame().isHasTrophy(t):
                                CyGame().changeTrophyValue(t, 1)
 
Last edited:
This mod is totally dope. It rocks. Thanks, MC.
 
Thank you Magister Сultum for responding to my posts above, and explaining the problems with introducing the mechanics I suggested. However, I still want to continue to dedicate everyone to my ideas and perhaps this will be an inspiration for you in your own realizations or inspiration for myself personally in the possible addition of their ideas in the game by me personally (to practice learning the necessary programming languages and wait for the moment when the Magister will post his version and updates will not be for a long time so that I can squeeze into this time window).

The changes described below were translated with the help of a translator and therefore some of the text may have lost its intent or been distorted. Also, some things are not thought out and balanced in a definitive way, and may contain conflicting information.

This is about a third of my thoughts at the moment and reflects mostly the magical component.

The next post will be about reworking the effects of religions (For example: improving the forests of the Fellowship of Leaves).




Starting with the Sacred Chants technology, you can hire a special "sentient" unit, symbolizing the first stage of touching the mystical forces of the world.
This unit represents an ordinary Civilian unit of one of the civilizations, whose daily activities are unconsciously supported by magical dominions inside, which cannot be called fully magical practices, but strive to be close to it (feeling where a large number of dead people can be buried being an archaeologist or feeling where it is better to dig a well with water for your desert settlement).
This is the first step in a given citizen becoming a priest of one of the religions by dedicating his life to the service of one of the deities or in becoming a mage by dedicating himself to the study of magic in its unbiased form. Although... nothing prevents him from staying at the basic level for the rest of the game, covering the necessary niches of the state with his activities.

A sentient unit is a civilian unit that, when created, receives the qualification of sentient (something like level 0 Direction for mages), thus receiving 1-2 random level 0 "spells" based on the effective mana reserve (+ modifiers). This unit can gain experience, but cannot gain perks.

The mechanics of Divine Revelation Ritual (available in Mysticism) allows you to get Priests of all religions based on one or another Mana.


Creation...(+% to the chance of luxury resources.)

Any Great Bard now starts a level 0 Creation spell.

All novices of the House of Abundance now have a level 0 spell of Creation magic.
The Museum of Magen now grants all units born in the city a level 0 Creation spell

0 level. Art Exhibition.
(This is the only level 0 skill that all units with Direction on the Creation Mana branch can pump.
It does not have a reduced chance of failure on all Creation magic spells, but unlike other Creation mana spells, it's still a good option to increase the chance to gain Creation affinity by 3%).
City Supported Spell.
Gives +1 culture for each mana type, luxury resource available in that city. Also gives +1 happiness for Gallery, Muse, Abundance, Hall of Mirrors, etc.

Entropy (-3% xp regeneration in your borders of enemy units, -7% to the failure chance of Entropy spells)

Every novice of the Veil of Ashes now has a level 0 Entropy spell.
0 level. - Point out flaws
Imposes a buff on friendly units that gives them a bonus for the duration of the battle as if he had learned the appropriate perk against that unit type (When attacking an Infantry unit, Shock 1 is given, if there is a Shock 1, Shock 2 is given). Ends after the battle.

Nature.(+% to the chance of resources that can be obtained through hunting camps. -7% chance of failing Nature spells.)
Every novice of the Fellowship of the Leaf now has 0 level of Nature.
Poisoned Blades is now a level 0 spell. The buff is now given until the end of combat.

The new 1st level spell is Animal Aspect.
Gives a buff to Scout units in the stack depending on the player's nation, amount of mana (+ modifiers) and religion practiced. You can have only one aspect.

An aspect can only be removed by an upgrade on Creation magic. You can also gain an aspect through mutation. The starting chance to gain any aspect is 3%.

Owl. +3% damage for each level of your unit LOWER than the level of an enemy unit. Elohim. Mana of the Soul. Brotherhood of the Watchers.

Elephant. +21% magic resistance. Grigori. Mana of Balance. Gray Council.

Rat. +21% experience gain. Luichirp. mana of enchantment. Ringbearers.

Dog. +21% damage to non-living units. Bannor. Mana of Law. Religion of Order.

Snake. +21% each turn to gain a Potion of Healing. Curiosities. Mana of Creation. House of Abundance.

Lion. +21% damage to units with stealth or invisibility perk. Malakim. Mana of Light. Empyrean.

Phoenix. 21% chance to resurrect in the capital in case of death. Mercurians. Mana of Life. Flawless.

Eagle. Increased 7% chance of gaining 1 experience each turn. Amurites. Metamagic. Lauran cord.

Horse. +21% to retreat chance. Hippus. Wind. Lysolids.

Ram. +21% damage on the Hills. Kazad, Earth Mana. Runes of Kilmorphs.

Whales. Allows the unit to swim in coastal water cells. Lanun. Mana of Water. Religion of the Tide.

Deer. +21% damage in the Forest/Jungle. Liosafar. Mana of Nature. Brotherhood of the foliage.

Raven. +21% damage when XP is below 42%. Sidars. Mana of Death. Eternal bondage.

Rabbit. +3 gold after winning a battle. Balsephars. Mana of Reason. Champions of Injustice.
Bat. +3% damage for each level of your unit HIGHER than the enemy unit. Calabim. Mana of the Body. Anointed
Scorpion. +21% damage resistance Fire. Clan of Coals. Mana of Fire. Coal Legion.
Wolf. +21% damage resistance in the Tundra. Doviello. Mana of Chaos. Sons of Discord.
Bear. +21% damage in the Snows. Illians. Mana of Ice. White Hand.
Locusts. + 21% damage in the Cursed Lands (all types of these lands). Infernals. Mana of Entropy. Veil of Ashes.
Chimera. +21% damage on a single target. Shame. Mana of Space. Melee.
Panther. 21% chance each turn to gain Stealth. Sfaltfars. Mana of Shadows. Council of Yesus.

The enhanced version spreads a buff within 1 radius of the caster.


Ice.(+1 to the penalty to enemy units moving within your borders, -7% chance to fail Ice spells).

0 level. - Ancient Traditions.
Supported Building
Gives +3 Culture, +3 Production, +7% to ritual production for the entire nation.
The effect on increased ritual production is stacked from different cities.


Enchantment.(+1 sentience in cities, -7% chance to fail Enchantment spells)
Any Great Engineer now has Enchantments of level 0.
All novices of the Ringbearers now have level 0 Enchantment magic.

0 level. - Instruction.
Applies a buff to units that can gain experience.
Passively gives +49% work speed (applies to laborers and the buff ends when the build is completed). Gains +21% experience from combat and +1 experience after a successful attack. Disappears after combat.

Space (+3 experience to summoned units, -7% to the failure chance of Space spells)
All Mezhdi novices now have 0 level of Space

0 level. - Decomposing Gossip.
Can be cast if there is an enemy unit stack of at least 2 units within 1 radius of the caster.
With a 21% chance, moves the weakest unit in the enemy stack to a random square within 1 square radius.

Fire (+3% to gain Fury after combat, -7% to the chance to fail Fire spells)

All Coal Legion novices are now level 0 Fire.

Arson is now a level 0 spell.

New level 1 spell. Burning Hearts.
Requires a source of Fire within 1 radius of the caster. A source of Fire mana also counts as a source for this spell. Gives itself +1 fire damage and immunity to fear. Disappears after combat.
The enhanced version allows the spell to be used near smoky terrain and also grants additional fire damage and immunity to fear to everyone in the stack.
Fire affinity now gives summoned units the effect of the Burning Hearts spell.



Water (+1% to the chance of getting insanity when creating units, -7% to the chance of Water spells failing.).
All Stream novices now have 0 level Water.

0 level.
The Spring is now called Dig a Well. Now creates a Well (analogous to Oasis/Rhodnik) at the point of application. Wells cannot touch. Wells spread water supply, which allows you to build farms around them as well as build anything in the desert around them.

Level 1.
Soothing Sip.
When you are near a water cage, river and well, you give the caster a flask that when used, allows your units to regain 7% of their max HP and finish Fury and there is a 1% chance of getting Frenzy on all units that have been treated by this skillet. Allows you to extinguish fire in neighboring squares when used.


Water affinity now has a chance to randomly give the wielder a flask every turn, and always give a flask to all summoned units(walking on water remains).

Walking on Water (level 2 spell) is now a mobile spell, updating the buff every turn on the caster's cage.
The enhanced version refreshes the buff within 1 radius of the caster.

Earth. (+% to the chance to discover new earth resources, -7% to the chance to fail Earth spells)
Every Great Engineer can now learn a level 0 Earth spell.
Every novice of the Runes of Kilmorpha now has 0 Earth spells.

Laboriousness is now a level 0 spell.

New (old) spell Stone Walls
The enhanced version allows you to make Stone Walls a mobile spell.

Air (+7% retreat chance, -7% chance to fail Air spells).
Now every follower of the Lysolydians has 0 level of Wind.
Now every unit with the Hero perk can learn Air spells up to level 0.

Crosswind is a level 0 spell.
It is now a mobile spell that casts the Gustwind buff on all eligible units in the stack.

New level 1 spell. Gust of Adventurism. All units in the stack get +1 attack, but -1 defense and +21% retreat chance. Can only be used on neutral and enemy lands.
The enhanced version allows this spell to be used on allied lands.
Wind Affinity now gives summoned units a buff from Winds of Passage and Gust of Adventurism (the Light perk remains).

Order. (-7% to the chance of failure of Order spells. -3% to the failure chance of ALL other Dominions).
Every Great General can learn level 0 Order spells.
Every follower of the Order now has 0 level Law.

Allegiance is a level 0 spell. Spell targets now have a 21% chance to set up on not receiving Allegiance.

A new 1st level spell. Faithful Command.

This spell is replaced by multiple Orders when used. Each new Order replaces an old one. Without the improved version, units can only take one command per turn. All Orders work only on creatures with the Faithful effect.
Orders: March roll. Gives +1 movement range. At the end of the turn, while this order is in effect, it deals 7% of all units under this order's effect. -21% retreat.
Order: Attack. Gives +1 attack. -1 defense. -21% retreat.
Order: Camp. Instant fortification. Increases regeneration by 21%. Blocks movement. -21% retreat.
Order: Defense. Gives +1 defense. -1 attack. -21% retreat.
Order: Training: +21% chance to gain 1 experience, -1 strength. -21% retreat.
Order: Reconnaissance. +3 vision range, -1 strength.
Order: Plea. Strengthens the Arda of all priests in the stack by 3% for each unit in the stack, for the duration of the stack with the caster. Gives a +3 movement penalty. -21% retreat chance.
Order: At ease. Removes all Orders

Each order has a 7% chance of ending at the end of the turn.
The enhanced version allows two orders per turn.

Chaos. (+3% to mutation chance, -7% to failure chance of Chaos spells, +3% to failure of spells of other dominions.)
Every Great General can learn level 0 Chaos magic
Every follower of the Sons of Discord now has level 0 Chaos magic.

Revamped the Dance of Blades skill to Dance of Rebellion. After casting the spell after each attack, the current moments are replaced with each other with a 21% chance to end them. There is a 7% chance to end the moment and gain the Rebel perk, removing the Faithful perk before doing so.
Does the Rebel perk now remove the unit's content?

Breakthrough Moment. Ignoring first strikes.
Breakthrough moment. Ignoring the strengthening bonus.
Attacking Momentum. +1 attack,
Defensive Momentum. +1 defense.
Advance Momentum. +3 First Strikes.
Retreating Momentum. +21% to retreat chance.
Fast Momentum. +1 number of hits.
Speed Momentum + 1 movement speed.

The enhanced version grants the ability to gain two tricks in 1 cast. Moments may be duplicated.


0 grades. Directed Violence.
Can be used if there is a barbarian unit nearby.
With a 21% chance, lures 1 barbarian unit of caster level or higher to your side.
On success, applies the Rebel perk to the lured unit.
If the caster has the War Aspect, the chance of luring is 100%.
The spell always fails on units with hidden nationality.
Does not work on heroes.



Body(+3% HP regeneration for all your units, -7% to the chance of failure of Body spells).
Every Anointed follower now has 0 Body level.
0 level. Stimulation from above.
Gives 21 production in the city when the spell is cast. Increases displeasure by 1 for 3 turns.

Soul(+7% to the production of great men, -7% to the failure chance of Soul spells)
Every Great Prophet can now learn Soul magic at level 0.
Every follower of the Brotherhood of Guardians now has Soul level 0.

New Level 0 Spell. Inspiration (carried over level 1 skill from Mind magic.).
Now gives 1 universal OWL instead of 2 Sage's OWL.
Science gain has been replaced by culture gain.
If there is a level 2 spell "Hope" in the city, it gives 1 more universal OVL.

New level 1 spell. Absolution. (Transferred Level 1 "Cleansing" skill from life magic.)
The enhanced version creates a temporary sacred ground in the cage with the caster.

Light.(+7% profit from trade routes, -7% to the failure chance of Light magic spells).
Now every follower of Empyreus has 0 level of Light.
Now every Great Merchant can learn level 0 Light magic.

0 level. Inquiries.
Supported Building
Gives +1 science for each trade path in the city. Has a 7% chance to illuminate a random resource within the borders of cities you trade with.
New 1st level spell. Sunmark. (Burn spell is added with Sunmark).
Casts on a selected point within 2 radius of the caster, unleashing Fog of War and dealing 5-15% fire damage to all units on the square. Unlocks invisibility and removes the Blur spell from targets. Casts a debuff on a unit that highlights it on the map, revealing its location. The debuff can expire with a 7% chance. The Blur spell removes the mark.
The enhanced version reveals visibility to everyone within 1 radius of the debuffed unit. Also allows you to use the mark within a radius of 3.

Shadow.(Reduces the reduction in crime income by 7%,-7% to the failure of Darkness magic spells)
Now every Great Merchant starts with a level 0 Shadow magic.
Every follower of the Council of Yesus now has level 0 Shadow magic.

0 level. Contraband.
Supported Build.
At the beginning of each turn, gives 1 random resource of 1 in a city with this building, available to players you trade with. If you have a Smuggler's Port, you ignore trade agreements to get the resource (you can literally get any resource owned by all players on the map).


Intelligence.(+7% to technology learning, +1 Intelligence mana modifier, -7% chance to fail Intelligence spells).
Any follower of the Champions of Inequality now has 0 level of Intelligence.

0 level. Tax Collection.
Supported Building.
Gives +3 gold per turn, +1 discontent in the city.

New 1st level spell
Inflicted Pain
Inflicts a debuff on enemies within 1 radius of the caster that increases Psychic damage by 21% and other damage types by 14%. Reduces the chance to set something up by 14%. Ends on a 21% chance.

Metamagic (+1 to ALL mana modifiers, -7% to the chance to fail spells of ALL Dominions)
Every Great Sage can now learn the magic of Metamagic at level 0.
Now every follower of the Laeran Cord has 0 level Metamagic magic.

0 level.
Horizon Description.
When applied on a mana source or in cities, grants one level 0 spell based on the mana you are standing on or have in the city.
When used on metamagic mana, grants a Floating Eye spell.
When used on pure mana with a 7% chance, gives a random level 0 spell.

Life (+1 health in cities, -7% chance of failing Life spells.)
Every follower of the Unsullied now has a level 0 Life.
Every unit with the Hero perk can learn level 0 Life magic spells.

Level 0 spell. Bravery is a transferred spell from Soul magic.
New 1st level spell. Noble Sacrifice.
Casts a buff on units that, if one of its fighters dies, hits all other Living units in the stack with 7% XP.
The enhanced version hits within 1 radius of the killed unit, and also begins to hit non-living units.
Affinity of Life now gives summoned units a buff from Noble Sacrifice (Marsh perk remains).

Death (+% to the appearance of graveyards in your territories, -7% to the chance of failure of Death spells).
Every follower of the Eternal Cabal now has 0 level of Death.
0 level.
Burial
Imposes a buff on allied units with an ending after combat. When units die from holders of this buff, there is a 14% chance to gain a Graveyard on the cell with the holder of this buff, if possible.
Death Affinity and Undead Affinity holders now give summoned units a buff from Burial.

Force (Equilibrium)(+-1 to ALL mana modifiers, equalizing them to zero, +1 to the relationship with all factions in the game, -7% to the chance to fail Force spells)
0 level.
Compromise
(incomplete)


P.s. I hope for your support in accepting and criticizing my ideas.
 
Last edited:
I decided to get back into FFH2, and am pretty excited to try out your modmod MagisterCultuum! 😁

There changelog and features are very extensive, so I thought it might be easier to ask. Are any of the below modcomps featured in your mod and if not, are they compatible?

FFH More Events Modmod Expanded (includes FFH More Events ModMod & Events with Images for FFH)

https://forums.civfanatics.com/threads/ffh-more-events-modmod-expanded.357987/
https://forums.civfanatics.com/threads/ffh-more-events-modmod.315251/
https://forums.civfanatics.com/threads/events-with-images-for-ffh.354770/


CitystyleModMod for FFH
https://forums.civfanatics.com/threads/citystylemodmod-for-ffh.333249/


Growing Forest On Improvement

https://forums.civfanatics.com/resources/growing-forest-on-improvement.14135/

Mana Flares and Unique Events Add-On

https://forums.civfanatics.com/threads/mod-mana-flares-and-unique-events-add-on.329453/

If someone could let me know on this, it would be much appreciated! 🙏
 
I decided to get back into FFH2, and am pretty excited to try out your modmod MagisterCultuum! 😁

There changelog and features are very extensive, so I thought it might be easier to ask. Are any of the below modcomps featured in your mod and if not, are they compatible?


FFH More Events Modmod Expanded (includes FFH More Events ModMod & Events with Images for FFH)

https://forums.civfanatics.com/threads/ffh-more-events-modmod-expanded.357987/
https://forums.civfanatics.com/threads/ffh-more-events-modmod.315251/
https://forums.civfanatics.com/threads/events-with-images-for-ffh.354770/


CitystyleModMod for FFH

https://forums.civfanatics.com/threads/citystylemodmod-for-ffh.333249/


Growing Forest On Improvement

https://forums.civfanatics.com/resources/growing-forest-on-improvement.14135/

Mana Flares and Unique Events Add-On

https://forums.civfanatics.com/threads/mod-mana-flares-and-unique-events-add-on.329453/

If someone could let me know on this, it would be much appreciated! 🙏
There are none of the above mentioned mods in the Magister's mod (based on my 500+ hours of playing for different factions). You could try to put a mod to improve the look of the cities, but most likely it will break the game because there are a number of buildings removed/changed/transferred in the cities of certain factions (for example: Arena Balsefar is now a sacred building of Kamulas religion, Sons of Discord).


I personally have a mod to add music themes for almost every new religion in the mod from Magister. If you need it I will update it for you. You may not like the music themes from it, and for some religions there are no themes at all. If you install and try it, I'm ready to hear your opinion on it.


P.s. I wouldn't mind seeing the modifications you listed in the game, but most likely the Magister doesn't have a lot of time to add and adapt them. If someone adapts them to the mod from the Magister and ask Him to add them, most likely he will agree.
 
Last edited:
I recently started a new game, and I had my first repeatable end of turn crash very early on, which was caused by AI player, I assume, trying to "explore" a dungeon. Once I used WB to remove said AI players unit from that "cell/dungeon", the game no longer crashed. This happened once more, at a different location I might add, and I was once again able to fix the crash by using WB. Now I am having my third end of turn crash, and I am unable to locate the dungeon that a AI player is trying explore, that is if that is the reason why I am experiencing end of turn crash again. Anyway if somebody who has more knowledge about python, and this mod, could take a look of my logs and savegame tell me where the problems is I would really appreciate it. And I must say MagisterCultuum has made greart progress with the mod from last time I check few years ago.

EDIT: Nevermind I found the AI player unit, which was trying explore a dungeon, that was causing the crash and used WB to remove the unit, but this is still a bug.
 

Attachments

  • Logs.rar
    46.1 KB · Views: 3
  • QuickSave.rar
    1.3 MB · Views: 4
Last edited:
Top Bottom