ExtraModMod

Crusade got fixed so that it doesn't spawn demagogs from enclaves. but Rally also needs the same fix, if you search for "spellrally" in cvspellinterface.py you'll find the code that needs editing. here's the corrected code for convenience:


Spoiler :
Code:
def spellRally(caster):
	iOwner = caster.getOwner()
	pPlayer = gc.getPlayer(iOwner)
	iDemagog = gc.getInfoTypeForString('UNIT_DEMAGOG')
	iTown = gc.getInfoTypeForString('IMPROVEMENT_TOWN')
	iVillage = gc.getInfoTypeForString('IMPROVEMENT_VILLAGE')
	iCount = 0
	for i in range (CyMap().numPlots()):
		pPlot = CyMap().plotByIndex(i)
		if pPlot.getOwner() == iOwner:
			if pPlot.isCity():
				newUnit = pPlayer.initUnit(iDemagog, pPlot.getX(), pPlot.getY(),  UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_THE_ASHEN_VEIL'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_THE_ASHEN_VEIL'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_THE_ORDER'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_THE_ORDER'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_FELLOWSHIP_OF_LEAVES'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_FELLOWSHIP_OF_LEAVES'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_RUNES_OF_KILMORPH'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_RUNES_OF_KILMORPH'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_OCTOPUS_OVERLORDS'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_OCTOPUS_OVERLORDS'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_THE_EMPYREAN'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_THE_EMPYREAN'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_COUNCIL_OF_ESUS'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_COUNCIL_OF_ESUS'));
			if pPlot.getImprovementType() == iTown :
				pCity = pPlot.getWorkingCity()
				newUnit = pPlayer.initUnit(iDemagog, pPlot.getX(), pPlot.getY(),  UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)			
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_THE_ASHEN_VEIL'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_THE_ASHEN_VEIL'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_THE_ORDER'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_THE_ORDER'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_FELLOWSHIP_OF_LEAVES'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_FELLOWSHIP_OF_LEAVES'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_RUNES_OF_KILMORPH'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_RUNES_OF_KILMORPH'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_OCTOPUS_OVERLORDS'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_OCTOPUS_OVERLORDS'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_THE_EMPYREAN'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_THE_EMPYREAN'));
				if pPlayer.getStateReligion() ==  gc.getInfoTypeForString ('RELIGION_COUNCIL_OF_ESUS'):
					newUnit.setReligion (gc.getInfoTypeForString ('RELIGION_COUNCIL_OF_ESUS'));

				pPlot.setImprovementType(iVillage)


there's actually another fix that could be applied here as well, one by Denev that prevents demagogs spawning on the same tile as an enemy unit. search for "doCrusade" in customfunctions.py and you'll find it :)
 
I thought both Crusade and Rally were SUPPOSED to spawn demagogues .... ?

only that the spawning should turn an enclave not into a village, but into a town instead.
 
Not really .... xD

But then maybe 'snooty nosed' enclave livin bannor don't wanna crusade? :p
 
[to_xp]Gekko;12749690 said:
Crusade got fixed so that it doesn't spawn demagogs from enclaves. but Rally also needs the same fix, if you search for "spellrally" in cvspellinterface.py you'll find the code that needs editing. here's the corrected code for convenience:

Ah, okay. Has it been reported in MNAI? As I mentioned earlier, I usually don't include bugfixes that are also useful for MNAI. When I do, it is to include the source code for the fix in my bug report for MNAI. There is no need to do the same work twice, and fixing stuff only to have it fixed later in MNAI and making future MNAI-ExtraModMod merges more complicated is throwing stones over my own roof.

[to_xp]Gekko;12749690 said:
there's actually another fix that could be applied here as well, one by Denev that prevents demagogs spawning on the same tile as an enemy unit. search for "doCrusade" in customfunctions.py and you'll find it :)

It should also be reported to MNAI IMO, ideally along with a fix :)

Speaking of merging errors... You seem to have Frozen Flame twice in CIV4BuildingInfos.xml and CIV4BuildingClassInfos.xml :)

Thanks for the report. It also loves to duplicate the Frozen Flame every time I do a merge with Events Enhanced (IIRC it was even triplicated once).
 
I have reported the Rally issue, but maybe Tholal missed it :)

I haven't reported Denev's fix though, I only realized that yesterday when I examined the code again.
 
Random Idea i just had....

Give summons(all or almost all of them) a penalty to city attack, this might reduce the impact they have lategame as killing antire civs with just a few archmages would be more tricky and siege units might acctualy matter.
No rly when was the last time you build a cannon in FFH?
 
Random Idea i just had....

Give summons(all or almost all of them) a penalty to city attack, this might reduce the impact they have lategame as killing antire civs with just a few archmages would be more tricky and siege units might acctualy matter.
No rly when was the last time you build a cannon in FFH?

Some mods have a type of 'Wall' Building that protects against magic and certain summons, depending on the mod.

Typically its something like a 'Force Wall' (force spell effect) or 'Arcane Wall' (available at Arcane Lore), and gives about 25-50% resist to most/all type typed damage (death/lightning/fire/cold/holy/unholy), some extra spell resist as well (like 10-15 spell resist), and sometimes a 40% bonus against 'summoned' units ... but to do this you'd have to have a special tag for all 'summoned' units.
 
you still plan to remove axemen access to mithril right? you could also consider having sons of asena neverobsolete since they are not buildable anymore as soon as you get ironworking.
 
other axemen are still available after iron working, because they can upgrade to chariots ( if you don't have both training yard and siege workshop ) . not so for doviello, it's the same issue as beastmen :)
 
speakiing of mithrilless units, do not forget pyre zombies, Terkhen.

Since Pyre Zombies are the final melee form for Sheaim, I should think that they should be allowed mithril.

Also remember that PZs are 60 hammers while all other axemen types are 45 hammers

(45 hammerss since EItB/eMM)
 
eh, its a combination of being a UU AND having no upgrades, but possible.

I'd only have it for Pyre Zombies solely to give even a reason for Sheaim to research the tech.
 
speakiing of mithrilless units, do not forget pyre zombies, Terkhen.

Pyre Zombies are IMO a special case. As Tasunke mentioned, they are the final unit of the melee unit for the Sheaim. Since this is not true for the Moroi, I don't think they should also have Mithril weapons.

[to_xp]Gekko;12763108 said:
other axemen are still available after iron working, because they can upgrade to chariots ( if you don't have both training yard and siege workshop ) . not so for doviello, it's the same issue as beastmen :)

Since both the normal axemen and the sons of asena can be made obsolete normally, why is it different for the sons?
 
Back
Top Bottom