[MOD] MagisterModmod

There are a few new Area of Effect spells. There are multiple versions of Pillar of Fire, which all use the same python code as the original. The Evangelize to Units spells are xml only in their results, but in more recent releases are AoE python spells as far as prereqs go. The python for Cult of the Dragon units belonging to non-dragon civs, Empyrean units belonging to the Calabim, and White Hand units belonging to someone at war with Auric Ulvin abandoning their owners work much like AoE python spells.

I just added if not pPlot.isNone(): after every instance of pPlot = CyMap().plot(iiX,iiY) in CvSpellInterface.py. (A few AoE spells already had this, but a most did not. A couple had it in the effect but not the prerequisite.) This should eliminate any errors of spells hitting the corners of maps and so might improve things, but I have not yet tested it to be sure. (I don't really have time to play a test game tonight, as I have to wake up early tomorrow morning to drive my father to his chemotherapy appointment.)



It is possible that Sacrifice the Weak is partially responsible for the revolts, as with Puppet States and Revolutions activated I believe it adds to instability caused by non state religions. A revolt set for 2 turns is probably a Cult of the Dragon issue though. (I just now added messages for the revolts caused by Cult of the Dragon, The Empyrean in Calabim lands, and the White Hand when at war with Auric Ulvin after The Draw is completed, so it should be easier to know for sure next release.) You need Inquisition or the Purge of the Unfaithful ritual (available at Priesthood) to deal with that.



I went ahead and made a note in the Pilgrimage help text that Devouts automatically get the bonuses for unique features controls at the time they were created.

Building the Mercurian Gate as Ethne the White is canonically quite appropriate. As Einion Logos, it is more fitting to be really upset with whomever it was who lets the Mercurians into the world.


The difficulty is changing because I forgot that I'd left the Flexible Difficulty game option as a default before releasing my modmod. That will change in the next release, and can easily be turned off in a custom game now.
 
Would you consider making resurrected heroes lose their accumulated XP? I don't mind fighting Yvain more than once, but fighting a level 15 Yvain every turn is a little much.

Also, is it intentional for enemies to be able to cast bloom on my terrian? Sorta weird for the elves to come in and make new forests over my bananas.

Also, also, I can apparently cast ad to freak show w/o there being a freak show.
 
for creating the mercurian gate as Elohim, I understand it is canonical.. however I don't want to surrender my capitol and it is presently the sole city able to build it (in a reasonnable amount of turns)... so... I delayed and delayed...
 
There is no problem with building a Mercurian Gate in your capital with my modmod. Building the gate does not automatically turn the city over to the Mercurians. In fact, just building the gate does nothing but allow you to cast the Open Mercurian Gate spell (or the Call Mercurian Reinforcements spell if the Mercurians have been in the game already but Basium has been slain), which is what creates the Mercurians. Basium's Convert City spell will never work in a capital city. It no longer requires the Mercurian Gate in the city, but can be cast in any non-capital city of another team member. The AI will only use it in settlements or if the teammate has at least twice as many cities as Baisum does. (I might change it so that an AI Basium can never use his convert city spell in a city belonging to a human player.)
 
Cutlass, I think MM has it so that the floating difficulty option is enabled by default when you hit "play now." I think he said he'd correct that in a later release. Choosing a custom game should enable you to turn that off.


I'm using the latest release. :dunno: I'll have to abandon this game and try again.
 
Another crash. Couldn't tell you why, it just crashes on me after I hit end turn.
 
Magister could you add to your mod one specific feature - multiple production addon. Hoarding GP is nice but regardless how many hammers you have, you stlll can build only one unit per turn. That sucks. I do like to specialize my cities, instead of producing unit per turn in every city.
 
OK MagisterCultuum, I've done some testing on your mod using my latest Debug DLL.

I get the following error on game start. It doesnt keep the game from loading, but it may cause other less obvious issues.

File: CvXMLLoadUtilityGet.cpp
Line: 656
Expression: false
Message: Error in GetChildXmlVal function, unable to find a child node

This generally means there is a typo or a missing line or incorrect tag order or something else that is slightly off in the XML. Seems to be related to CivicInfos.xml though I took a quick look and didnt notice anything wrong. These sorts of errors are a pain to track down.

Also:
* You have at least one promo that gives a negative withdrawal rate but the game doesn't accept withdrawal rates of less than 0. Not a big issue and I suppose I could code something to deal with the assert error.


I'm getting a repeatable CtD at the end of this turn. Deleting the Balseparph city of Coombe View seems to prevent it, if that helps.

Looks like Magister hasn't merged in all of the python changes from my last release. In this particular case, there are a couple of error checks missing from Revoltions.py

3) I am having a strange culture glitch. This picture is from a new city with nothing in it:



It is listing several buildings as providing cultural

Finally figured out how to disable this feature. In the BUG options, under the city tab, in the Building Actual Effects section, everything after the first checkbox is about displaying those potential builds in the grey text. I'll make the options more clearly labeled in my next release.

Another crash. Couldn't tell you why, it just crashes on me after I hit end turn.

Govannon is trying to SPELL_TEACH_SPELLCASTING but Magister has removed that spell from his version. Unfortunately, its hardcoded in the DLL to make sure the AI uses it properly. I put in a workaround in the DLL for this particular issue that will be included with next More Naval AI release.

Unfortunately, after fixing the crash, this game immediately went into a WoC state related to one of Basium's Dragon Fanatics casting SPELL_EVANGELIZE_UNITS_DRAGON_CULT. Not exactly sure what's happening, but something about this spell is causing infinite loops. I tried switching to Basium and casting it myself and could tell that some sort of loop processing was going on in the background as the game became mostly unresponsive.

I'm getting an end of turn hang. Click the end turn button and the globe just keeps spinning around w/ no end.

This is the same issue as above.
 
That crash is rather odd. I got it too, but the logs did not seem to show anything wrong.


I'd love to make it to that you could dedicate a city's production (and research) in different amounts towards different things, but have absolutely no clue how to implement that much less teach the AI how to use it. Simply creating extra copies of the same unit based on production overflow would marginalize the effect of Clan of Embers' Warrens building.

Edit: Thanks Tholal!

Could the negative xp from granted by the Pacifism and Theocracy civics be responsible for the issue in CivicInfos.xml?


I do prefer for Devotion and Herald's Blessing to reduce withdrawal chances, but I guess I can remove that until I get a new DLL.


So many of the differences between our latest Revolutions.py files were just unnecessary white space in your version that I guess I overlooked a couple important changes in the merge. I just corrected that.

Since the suggested buildings can be turned off in BUG, does that mean I should change the BUG_BUILDING_ADDITIONAL_ global defines back to 1 instead of 0?


I guess it makes sense that Govannon was the issue with that crash, as the last thing in BBAI.log is him casting a spell (Floating Eye). I really wish Kael never hard coded things like that.


I may have figured out the SPELL_EVANGELIZE_UNITS_DRAGON_CULT issue. I think the problem lies in effectCultusDraconis(caster). When this causes a unit to abandon its master for either the nearest dragon or dragon fanatic, it creates a new unit that could immediately qualify to cast the spell and call the same effect. Whereas in other places I make the Barbarian State, Sheaim, and Kuriotates immune to Cult of the Dragon effect, here the Kuriotates were the only civ immune without having to actually own a dragon at the time. As rebellious units turn barbarian, most Dragon Fanatics will be barbarian and so the barbarian state being immune is pretty important. I also forgot to include a check making only dragons or dragon fanatics owned by other players able to cause a cult of the dragon unit to rebel. This is the cause of the bug someone reported where building one dragon fanatic ended up creating a huge stack of the units. I just fixed these issues, and am about to test them.


How long will the wait be on the next More Naval AI release? Will it be soon enough that I ought to wait before my next release, or should I create a dummy version of SPELL_TEACH_SPELLCASTING to make do in the meantime?
 
It looks nice, but would require a custom DLL. I won't be compiling my own DLL any time soon, so you should try to convince Tholal to include it in the next version of More Naval AI if you want it in the next version of Magister Modmod.
 
I've attached a new DLL that you can use for your next release. It should fix the Govannon and Withdrawal issues.

I've also included a debug version that you can use for testing. Even if you don't have a programming environment installed, it will at least give you more detailed and informative error messages.

Could the negative xp from granted by the Pacifism and Theocracy civics be responsible for the issue in CivicInfos.xml?

I dont think so.

I do prefer for Devotion and Herald's Blessing to reduce withdrawal chances, but I guess I can remove that until I get a new DLL.

It should be fine now.

Since the suggested buildings can be turned off in BUG, does that mean I should change the BUG_BUILDING_ADDITIONAL_ global defines back to 1 instead of 0?

Yes.
 
Thanks again Tholal.


I discovered that the debug issue from CivicInfox.xml had to do with trying to allow players with the Overcouncil to not require Temples of The Emyprean. I couldn't really figure out the right way to implement that, but don't think it really matters. I don't recall why I wanted it that way in the first place, so I just removed it.

The only other debug issue I've been getting so far is this message when I try to start a custom game:
Code:
Assert Failed

File:  CvPlayer.cpp
Line:  2303
Expression:  false
Message:  python findStartingPlot() returned an invalid plot index!
I should probably note that I get that using the debug dll with a clean version of More Naval AI v2.1 too.
 
Balance/exploit issue: using the dimension magic promotions with the tower of elements or necromancy, mages can obtain infinite XP by summoning elementals (or specters). The dimensional promotion will return a portion of the free 10 xp the summoned creatures receive when they expire.
 
@ Tholal:
I don't recall with certainty what mapscript I was using, but I would guess Tectonics as I use that for a majority of my games. When I told it to ignore the assert failure, the game seemed to run just fine.

@BvBPL:
That exploit was kind of intentional, but since you complained I decided to change it. The Tower of The Elements and The Tower of Necromancy will no longer grant any free xp to Elementals and the Undead. Instead, they will grant a free promotion pick for each of the appropriate mana types you control. That means 5 free promotions if you still control all the prerequisite mana required to build the Towers in the first place, but less if you lose control of or cast Dispel Magic on some of them. If you don't control any mana, the towers won't do anything to boost your summons.

-------------------

I just uploaded a new version. Hopefully this fixes the CtD and WoC problems. Other changes are fairly minor. Apart from some TXT_KEYs, I believe I have mentioned them all already.
 
Question: I thought that every combat victory should result in at least 1xp. Yet I just killed 4 mistforms with Bambur with no xp gained.
 
Another balance item: you may want to re-evaluate how many ice nodes the deepening generates. I'm playing as the Illians and I presently have 10 ice mana (which includes mana from New Mulkyr and Wyrmhold) without ever building an ice node. This makes for shockingly powerful ice elementals and thanks to the various XP bonuses I can roll out 9 XP adepts who are just a turn or two away from becoming mages.

This also stretches the Temple of the Hand's terraforming out a damn long way,
 
What level is the unit doing the killing? Remember that you only get experience for killing animal and barbs up till 100.

I didn't know that about barbs.

Another things I don't understand, the adventures occasionally revert to basic adventurer. And the hidden nationality promotion spontaneously disappears. Is that intentional?
 
Top Bottom