[MOD] MagisterModmod

I'm not sure about that. Balancewise maybe, since only two civs can really get anything out of the Mountain Mines. But flavorwise it seems kind weird to me to have mountain climbing engineers.

Maybe someone else has an idea about how to balance that one out.

I will say that the Khazad are bound to the Runes Religion at the hip just about game mechanic wise. They can do okay with Runes even if they don't found it or get the heroes, but it would be nice if they had more of a chance. Right now the "tech" civs and philosophical ones usually beat them to it.

I'm not sure what you could do about that though.
 
I'd rather be able to make Dwarven units be able to purchase a promotion that makes them able to move through peaks, but it seems that the closest things possible without changing the DLL would be giving them flying. I definitely don't want those dwarves to have flat movement costs or the ability to walk on water.

I just tried to see if I could use the <TerrainPassableTechs> tags to let units like Great Engineers move through peaks only after learning some tech (I tested with Smelting, but was thinking of using a later tech like Blasting Powder), but it doesn't work. (The game engine handles peaks quite oddly, treating them like normal terrains for some things but not most.)

What would you think if I added a Dwarven Engineer UU that could move through peaks while normal Great Engineers could not?


I had thought I'd try to make it check to see if the unit in question has the ability to builds mines normally, but I think it would be easier just to check for the unitclass. This way Soldiers of Kilmorph can still use the ability, without requiring me to give the unit the ability to build mines (which apparently causes terrible AI issues if they cannot also built roads).

I'm about to test this code:
Code:
def reqMountainMine(pCaster):
	pPlot = pCaster.plot()
	if not pPlot.isPeak():
		return False
	if pPlot.getImprovementType() != -1:
		return False
	if not pPlot.isOwned():
		return False
	if pCaster.getTeam() != pPlot.getTeam():
		return False
	iUnitClass = pCaster.getUnitClassType()
	if iUnitClass == gc.getInfoTypeForString('UNITCLASS_WORKER'):
		return True
	elif iUnitClass == gc.getInfoTypeForString('UNITCLASS_DWARVEN_SOLDIER_RUNES'):
		return True
	elif iUnitClass == gc.getInfoTypeForString('UNITCLASS_ENGINEER'):
		return True
	return False

Right now the only xml prereq is the Runes State religion. I'm thinking it should have a tech pereq too. It obviously shouldn't be available before mining, and should probably be later than that. Would Blasting Powder be too late? Should I add other prereqs in python, like maybe the Arete civic?
 
I think the Khazad workers being able to pass through peaks is an excellent idea.

The Luchiurp have a lot of advantages on the Khazad in the early game, and I think the Mud Golems still work faster.
 
It should be noted that the <Capture> tag works through unitclass, not unit type. Captured workers become the UU of the capturing civ, which could result in things like Orcish Dwarven Workers. That seems wrong to me. It would still be rather wrong with Engineers, but at least they don't get captured nearly as often.

I suppose I could try replacing the workers and/or engineers secretly using python instead of a unique unit set in xml, so that I could check the racial promotions first. I am however unsure where the default races and the races of captured units get applied. They might get added after the onUnitCreated code, in which case I could not make use of it. I suppose I could only replace the workers built in Khazad cities, or simply make the dwarven worker a separate UU.

I'm still not a big fan of both dwarven civs having their own worker UUs though. A shared Great Engineer UU seems better, although I don't love it either.

I'd still really rather be able to apply <bCanMoveImpassable> through promotions. I just asked Tholal if he could do so for me in his next release, although I do not except that he will say yes; he hasn't been very accommodating when I asked for new xml tags in the past. (To be fair, it is a lot of work for something he has no intention of ever using himself.)
 
In the Orbis mod captured workers (and sometimes regular units) became slaves on capture. That might not be how you want to do things though.
 
Hello,

I'm having a hang on 'waiting for other civilizations' on this game. Can anyone help point me at what might be the problem? I'm fairly new to troubleshooting. I've attached the only log files that have been modified today.

Thanks.
 

Attachments

Those two log files (init.log and PythonErr2.log) pretty much always look that like. I've never found any useful information in either of them. I'm afraid I can't really help based on that.

When it comes to Waiting for Other Civilization issues, it is usually best to look in BBAI.log and MPLog.txt; I think those may require turning on more then the usual logging options in CivilizationIV.ini, so I leave them all activated.


You could upload a saved game and have me try to see if I can locate the problem, but that would require me to roll back to a previous release on my end. I don't particularly feel like doing that.


I'm planning to release a new version within a few days. Whatever was causing your problem might already be fixed in it.
 
Thanks for taking a look for me. Rolling back seems like too much of a hassle. I'll wait for the next release and see if it fixes it.

Couple of log questions for you though:

BBAI.log only has data in it from a previous game. Shouldn't it have overwritten for this one?

MPLog.txt doesn't seem to exist at all. Is there a different setting in the ini to create it?

And an observation:

The AI tends to send units out to dungeons and shipwrecks, but never explore them. The unit just stands on top of them.

Thanks for all your work. I'm glad you've continued the development.
 
Magister, please check this out: here is my save, summoned infernals, took over, and some 20-something turns later the white hand was established at Trinity( my infernal first city), I swear, I did nothing for it and by WB neither illians nor doviello are in the game
 

Attachments

I'm not going to bother downloading the file or rolling back on my end for that, because I am pretty sure that this is just a known issue that I fixed about 2 days after my last release.

Manes add their religion to a city when they are added to the city population. This is intended. They also add their xp as culture and production for the city.

In my previous releases this was done through def sluagh(self, unit):, but then I realized that the Infernals were getting an unfair advantage because it was also applied when Manes were upgraded rather than only when they used the Add to City ability. I have since moved the code to a PyResult of Add to City.

Around the same time I added a check so that the religion is only added to the city after he religion has already been founded.



This issue is caused by the death of a unit with The White Hand religion, which before the White Hand ritual is completed is almost certainly a Frostling. In all the cases I saw the Frostling was one of those spawned by the Samhain ritual (which only the Illians could complete), but come to think of it there is an event that can spawn a single Frostling without the ritual.
 
How do you get rid of Basium? The other day I played a game with the Kuriotates, and did the Stir from Slumber ritual.

The Ljosalfar had their usual 20 to 30 huge cities, and built the Mercurian Gate. Well and good.

I flew Eurabates over and razed Evermore and the city with the Mercurian Gate. I then sent Eurabates over to destroy every city the Mercurians had. I destroyed them because I couldn't get anything there to reinforce them. Which of course sent the Armageddon counter from below 10 to the 40's.

No dice. Even without the gate, the Ljosalfar can always give the Mercurians a city. Also apparently as long as one Mercurian is around, Basium will still be there.

As nearly as I can tell you pretty much have to destroy the Ljosalfar to get rid of them. Eurabates can do it, but I am limited by the Armageddon counter. Plus Basium gets more Mercurians as I do this.

Also in this game the only people left at this point were the Malakim, Elohim, Ljolsalfar, and the Kuriotates.

I got fed up and deleted the Ljolsalfar cities in world builder. Apparently as long as one Angel is around somewhere Basium will be around and totally annoying.

Also Eurabates personally destroyed the two Infernal Civs that got summoned. But even if he hadn't, what do the Infernals do if there are no evil civs to feed them manes? As it stands now they aren't exactly the last hope of evil. Without evil civs in the game there really isn't very much they can do.

I have never played the Infernals, maybe there is some angle a human player can use that is great. But in the games I've played the Mercurians are much more deadly threat than the Infernals. The Infernals are fairly trivial to take out, unlike the Mercurians.
 
city of thousands slums doesn't work for me. My city still can use only first 2 circles of tiles

EDIT:
Ok nevermind it works now
 
The sphere if life is about resurrection and persistence. It is no coincidence that it is so hard to keep the Mercurians down.

In my modmod the Mercurian Gate has a world limit of seven instead of one, and also a team limit of one. That means that while a team may control only one Mercurian Gate at a time, seven different gates may be completed across the world. Once Basium has already been summoned by the Open Mercurian Gate spell and then killed, the Mercurian Gates can be used to cast the Call Mercurian Reinforcements spell. This causes Basium to return again with another army of angels. It also grants Peace, Open Borders, and a Defensive Pact with the Mercurians, causes the two teams to join each other's wars, and gives Basium a diplomatic bonus towards you. (I just decided to change it so that Basium won't drag his new summoner into his wars, since that might we why so many players joined the war against me in my last game. Basium will still join his new summoner's wars.)

Destroying all of the Mercurian cities should still kill Basium the player, and all of his units, but it probably won't take long for him to come back so long as even one Mercurian Gate remains in the hands of your enemies.


I agree that the Mercurians have seemed too strong in recent games though. I have reduced the number of free angels they get in my next release.
 
Banning Entropy, through Overcouncil, appears to ban the use of Rust and Enervate from mages that already have Entropy spheres. However, it doesn't seem to ban the use of the second sphere summoning spell. Not sure if that is intentional or not.

I discovered this when I was playing and couldn't figure out why I couldn't cast rust or enervate. I thought it was related to the anti-magic citadel (whatever it is called), but I guess the Overcouncil voted against entropy at some point.

Question: how, exactly, does "Magically Liberal" work? Can it transfer second or third spheres or is it limited to first sphere? What about spell extension, summoner, and twincast?
 
Are you sure about that resolution not blocking Summon Pit Beast? I haven't noticed it in the game, and looking back at the code I don't see how it is possible.

Are you sure you were in the Overcouncil when you noticed this? The council resolutions to ban resources only restrict players who are members of the Overcouncil.

Are you sure there were valid victims for the Rust and Enervate spells? Their python prereqs do not allow them to be cast when they would not have any effect. Those checks are within an if statement hat calls the exact same thing as is the python perequisite for the Summon Pit Beast Spell.

I suppose it is still possible that The Nullstone Citadel was involved in your case.




A unit with Magically Liberal can spread its first tier spells to other (living, non-beast, non-animal) units in its stack, provided its owner controls at least once source of the associated mana.

If it has Extension II it can spread Extension I.

If it has Channeling II it can spread Channeling I (which allows units to spend their xp to purchase any first tier spell sphere if they have the proper mana prerequisite).

If it has Channeling III it may spread Channeling II (which allows units to spend their xp to purchase second tier spell spheres if they have the proper mana prerequisites), but only to units that already have Channeling I. If it also has Extension III it can spread Extension II to units that already have Extension II. If it also has a third tier spell sphere it may spread the second level of that sphere, provided its owner controls at least two sources of the associated mana and the units it is teaching already know channeling II and the first level of the same sphere.


If it has the Caswallawn promotion (which can only be acquired by using the Cave Trials spell to risk the life of an archmage, and which only one unit in the world may have at a time), then it may spread Channeling III (which allows units to spend their xp to purchase third tier spell spheres if they have the proper mana prerequisites) to units that already have Channeling II. It also lets it spread the third tier spells that it knows to units that already know the second tier spells of the same spheres, provided its owner controls at least three sources of the proper mana type.


How much magic a unit can teach each turn is determined by its level. Teaching each additional unit a tier one spell (or Extension I, or Channeling I) requires that the magically liberal unit has another level. Teaching each additional unit a tier two spell (or Channeling II, or Extension II) requires that the magically liberal unit has seven more levels. Teaching each additional unit a tier three spell (or Channeling III, or Extension III) requires that the magically liberal unit has twenty-one more levels.

Note that teaching lower level spells takes precedence. If there are enough other units in the stack to be taught the lower level spells, then it will never proceed to teach the higher level spells.

Also note that teaching other Arcane units is a low priority. Whenever a unit is taught any magic it is also taught the Magically Liberal promotion. Arcane units however cannot be taught any magic until they are taught the Magically Liberal promotion. Teaching Magically Liberal to an arcane unit requires Channeling III, and is only about as likely as teaching Channeling II to a unit of a different unitcombat.

Magically Liberal never transfers Summoner, Arcane, or Twincast.
 
Are you sure about that resolution not blocking Summon Pit Beast? I haven't noticed it in the game, and looking back at the code I don't see how it is possible.

Are you sure you were in the Overcouncil when you noticed this? The council resolutions to ban resources only restrict players who are members of the Overcouncil.

Are you sure there were valid victims for the Rust and Enervate spells? Their python prereqs do not allow them to be cast when they would not have any effect. Those checks are within an if statement hat calls the exact same thing as is the python perequisite for the Summon Pit Beast Spell.

I suppose it is still possible that The Nullstone Citadel was involved in your case.

Here's what happened:

Playing as the Amurites, I was taking a pit beast (Entropy II) startegy. I was definitely in Overcouncil. I was able to summon pit beasts but was unable to use either rust or enervation against Calabim stacks. The Calabim did have mithral weapons and had the Nullstone. I went out and raised the Nullstone. Still could not use enervate or rust (they were totally grayed out, even w/ appropriate targets). Then, at some point, I switched to Undercouncil and found that I was now able to cast rust and enervate on Calabim stacks.

So I was definitely in the Overcouncil, but I don't recall if the Overcouncil definitely banned entropy mana. I assume it did based on the previous run down of what happened.

I was also able to summon balors with an entropy III, unholy taint character while in the Undercouncil. (got unholy taint through a demonic tome result)
--

Just reloaded an old save where I was in the Overcouncil and found that I couldn't use rust then had a revolution to leave the Overcouncil and as soon as that happened I could use rust.

Entropy still showed as a sphere resource on the run down to the left of the screen even in Overcouncil.
 
It was probably still the Nullstone Citadel that was to blame. Razing it prevents it from having any further effect, but it does not undo the effects that have already happened. The way the code works does not make it possible for razing the city with the Nullstone Citadel to restore the casting ability it removed from nearby units without restoring the casting ability to all nearby units including those who actually had cast that turn. I didn't want to do that since it seemed like a larger exploit. Since I've gotten so many mistaken error reports over it though, I think I may do so anyway.


How long has Entropy been outlawed? Has the mana bar been updated since then? Try minimizing it and then maximizing it again (by clicking on the raw mana button twice).
 
Minimizing and maximizing it didn't have any effect. I don't know how long it was outlawed.

I had assumed it was an issue related to the Nullstone because I had only tried to cast spells against the Nullstone civ. But then I built a Chanter, a unit that starts w/ shadow II. I found I couldn't cast the shadow II spell either, which was caused me to think about the Overcouncil being an issue since it might have banned shadow too. Once I left Overcouncil I could cast shadow spells fine.

Most of this occurred no where near the site of the Nullstone. I was far enough away from the Nullstone that my casters could summon pit beasts.

I also went back some 100 turns from before the Nullstone was built and I found I could summon pit beasts but not cast rust. Was part of the Overcouncil at the time.

Also, I'm getting a massive diplomatic penalty against Basium. I'm at a -2119 diplomatic penalty against him. After seeing a tip on a load screen, I suspect this is related to summoning pit beasts.
 
I just changed the Nullstone Citadel code so that it displays a message whenever it blocks a unit from casting, and another message when it is destroyed and restores the casting ability to all units within a 3 tiles radius.


I don't really recall whether the mana bar is supposed to/does show mana that is unavailable due to Overcouncil resolutions. There is no way to force a vote to take place, so I cannot easily test it right now.


Basium gets a -1 diplomatic relations with the owner of every unit that is created with the Demon or Unholy Taint promotion. (The Sidar leaders have a similar reaction to the creation of Undead units.) Basium also gets -6 with the Infernals, -6 with founder of The Ashen Veil, and -2 with the founder of the Octopus Overlords. In my version permanently killing an evil hero with the Clava Vindex also causes -3 diplomatic relations (the Netherblade causes -2, and the Godslayer -12), but I think that is a recent change.

---
Some other recent changes that may interest you:

Homesteads now generate defenders the way they are supposed to. (I'm not sure I'd ever seen them generate unit at all until after the last release. When I finally did, I saw they the units sides with the wrong side of the war. This has all been sorted out.)


Adventurers are working properly, never creating duplicates when they upgrade. They can also upgrade through spells when upgrading the normal way is not possible. This means that rebels who do not yet have cities should be able to upgrade their adventurer heroes into more useful combat units.

All Great People now receive custom names (which is necessary for the aforementioned fix for Adventurers). Some of the great people whose back story we know are automatically given the appropriate race, religion, and promotion.

Auric, Anagantios, Riuros, and Dumannios have also been changed so as never to cause duplicates.

Rathus Denmora how has the ability to target living heroes (i.e., the unitclasses of pretty much every world unit except the dragons, the demon lords, Basium, the War Machine, Barnaxus, and himself) in stacks of stronger units. This makes the Nether Blade much more deadly in his hands.

Auric Ulvin can use the Inhale Mulcarn's Last Breath ability to sacrifice The Pieces of Barnaxus in order to hurry either The Draw or the Ascension ritual.

The Draw gives Auric Ulvin the Immortal promotion, so you can afford to risk him in combat at least a little bit.

The Draw now requires Pass Through the Ether rather than Strength of Will.

The Draw now forces Auric's Vassals to adopt The White Hand state religion, forces any player that is at war with Auric to abandon this state religion religion, and forces any other player with this state religion to become Auric's vassal. (Permanent allies are not effected.) In order to make that work I had to switch the various leaders to have a -99 instead of -100 weight towards The White Hand. I believe that Kael said a -99 would always prevent an AI from adopting a religion, but would not block a human from doing so. (In one text game as Auric I managed to convince my permanent ally Basium to adopt the White Hand though.) I added some code that won't let any civ but the Illians or Doviello keep the White Hand religion before The Draw is completed.

Ascension grants Auric the Fallow Trait, and Manes of the White Hand religion to join him instead of the Infernals. (Their Add to City spell is no longer Infernal-only, so his cities can still grow.) His death removes this trait, kills all his Manes, gifts the Manes to the Infernal as they would have been otherwise, and removes the Demonic Citizens building that the Manes may add to his cities.

The Temple of the Hand no longer turn nearby hell terrain into Snow, but rather their hell equivalent Glaciers.

A problem with the Nive graphics that prevents their interface from showing properly has been fixed.

Aquilans no longer use the same Create Blizzard spell as High Priests of Winter. Instead they passively call blizzards from adjacent tiles or create new blizzards on their tile if this is not possible. (They also have more custom names, based on the names of real world cold winds.)

Units of the Children of the One religion can never return as either Manes or Angels. The presence of this religion is a city also reduces the number of angels or manes that may be generated based on the other religions from razing it.

When in cities, the Dragons and Auric Ascended passively spread their religions to said cities.

Units on Basium's team now have only a 3 in 10 (instead of 100%) chance of returning as Angels if other Manes/Angel gifting requirements are not met.

Death/Dimensional/Entropy II/III, instead of only level I, can now make a unit return as Manes. So can Vampirism or Unholy Taint.

The number of units Basium gets for free from the Open Mercurian Gate and Call Mercurian Reinforcements spells no longer gets so high later in the game. It is also capped based on the total number of units already in the area of the map.

There is a hidden Maintain Unyielding Order spell, which can only be used by units with Law III in cities with the Unyielding Order building. This calls the python result of Unyielding Order as if it were a prereq. This solves the issue of things like revolutions causing revolts which could not be suppressed because Unyielding Order was already in the city.

Summon Balor (the Unholy Taint + Entropy III spell) is now subject to the Oercouncil resolution against Entropy just like the other Entropy spells.

Heroes that are avatars of leaders defect to those leaders.

The Dispel Magic spell no longer removes improvements other than mana nodes. (Previously it could be used for eliminating rival towns or citadels.)

Barnaxus's strength has been reduced by 2, but he gained the Tinkerer promotion (which lets him repair Golems).

Great Engineers can move through Peaks. Great Engineers, Workers, Mud Golems, and Soldiers of Kilmorph can all use the Build Mountain Mine ability hen they are on peaks and belong to a player of the Runes of Kilmorph state religion who knows the Blasting Powder technology.

Djinni no longer have affinity for all mana types, but insteas have a base strength of 4 plus 3 Metamagic Affinity. They still get free promotions based on the other man types.

Severed Souls are now created in Python rather than through XML>SDK. Thy are thus not immobile at first anymore. They don't get all the summoner's promotions for free, just those related to vision or movement. They are given custom names ("Soul of ___") to help you keep track of which summon goes with which summoner.

The Shrine of Arawn and New Mulyr no longer remove access to Death and Fire mana (respectively), but instead cause those resources to cause unhappiness. The Shrine of Arawn still removes Death I, and units built in a city with that promotion loose all their Death promotions (although come to think of it I'm not sure this would ever matter unless you add the Sidar building to an Infernal city).

New Mulyr also causes unhappiness from Nature Mana. The White Hand religion now effects the free mana based promotions (counting like +1 Ice mana and -1 Fire and Nature mana) like other religions do.

Various things are better documented in the pedia than they were before.


You might as well take this post to be the change log for the next version. I'm planning to release it on 12/12/12.

Edit: I am uploading the new files as I type this.
 
For those of you who only check my thread when they see a new post, I am now writing to inform you that a new version of this modmod has been released.
 
Back
Top Bottom