He's a god for gods sake!

zacman

Chieftain
Joined
Dec 28, 2008
Messages
96
A small modmod that makes auric acended invincible to all units but one with the godslayer:)

Enjoy!:D
 

Attachments

Sorry for the glitch........... fixed now:blush:
 
I like it. It's nice to have an easy way to beef up Auric without having to mod in the files myself. Of course I'm a modder so I could do this anyways but if I couldn't I would be very happy.
 
Why hello there. :wavey:
 
nice idea. I tend to agree that the godslayer should be more the only thing that kills him. I also think that retrieving the godslayer should be more exciting than having it magically appear in one of your cities. something like "if the illians are in the game, GO EXPLORE LAIRS!" would be lots of fun imho.
 
But technically, Kylorin has the blade, so where did he go if godslayer magically appeared ina land far far away? :p.

I wonder what would happen if Auric was wielding godslayer. What would happen ifhe accidentally cut himself?
 
Hmmm, can the AI handle this? Does it know that it has to immediately send the one with godslayer towards auric or the rest of its units are doomed?

Sounds quite interesting for an MP game, although it's probably harder to ascend Auric when playing other humans, as they'll probably grow aware of what your doing and will try and keep you from completing the necessary rituals, especially if it creates an invincible unit.

Nice idea, regardless. You deserve a happy face. :)

EDIT: One more question, does the godslayer-bearing units strength matter? If I send a warrior with the godslayer, will it kill auric automatically?
 
Killing Auric automatically is part of the standard FfH code. The unit bearing the godslayer may nto survive the fight, but neither will the "god."


Thematically the Netherblade should work too, although that should not be obvious to players who haven't finished the scenarios. (I forget whether this is the modmod that includes that already.)



In my version, Auric Ascended terraforms all lands around him automatically, and he can move like an ICBM, plus of course the ascention ritual only upgrades him from the mortal Auric unit and he can get promotions before that.
 
I think that a system that allows Auric to come into the world as the Auric unit to gain promotions would be useful. The Nether blade should be able to kill Auric automatically at that stage but I doubt it would have any power close to the godslayer when he has ascended.
 
Wow! lot's of comments:)

@ Gekko: your right, it would be a bit [or a lot!:lol:] more exciteing if you had to DO somthing for it.

@ Seon: no clue:confused: and :lol::lol::lol::lol::suicide:

@ Bootsiuv: I didnt do any ai work, but i thought sending the unit with the godslayer was part of standered ffh code. Ty for the happy face. [you should have one back:)]
And no, it dose't matter. It always survive's.

@ MagisterCultuum: I can't remember.....................

@ cyther and MagisterCultuum: I have no clue how to do that..................:confused: all i do is change xml:lol:
 
It isn't hard to make the mortal Auric buildable, just change his cost to something other than -1.

You would of course probably want to give all other civ's NONE as his UU, or (as I did in my version), forbid any leader but Auric from building Auric. You'd probably want to give him a tech prereq like Mysticism or Elementalism too.

(I've also considered having him be created in python, perhaps making him only enter the game when the Illians find Letum Frigus. If I go that route, I may try making the Illians start with Braeden the Laconic as their normal leader but changing the leader to Auric when they find him in the Cold Ruin.)

You'd also probably want to give Auric a PythonPostCombatLost call to make the leader loose his traits like they would when Auric Ascended, Basium, or Hyborem die. You could reuse their python calls if you don't care about trophies.

CvGameUtils.py:
Code:
	def cannotTrain(self,argsList):

...


		if eUnit == gc.getInfoTypeForString('UNIT_AURIC'):
			if pPlayer.getLeaderType() != gc.getInfoTypeForString('LEADER_AURIC'):
				return True

		if eUnit == gc.getInfoTypeForString('UNIT_PRIEST_OF_WINTER'):
			if not (gc.getGame().getProjectCreatedCount(gc.getInfoTypeForString('PROJECT_THE_WHITE_HAND')) > 0):
	

			return True


......

	def cannotCreate(self,argsList):

...


		if eProject == gc.getInfoTypeForString('PROJECT_ASCENTION'):
			iHero = gc.getInfoTypeForString('UNITCLASS_AURIC'):
			if pPlayer.getUnitClassCount(iHero) !=1:
				return True


CvEventManager.py:
Code:
	def onProjectBuilt(self, argsList):

...

		if iProjectType == gc.getInfoTypeForString('PROJECT_THE_WHITE_HAND'):
			newUnit1 = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_PRIEST_OF_WINTER'), pCity.getX(), pCity.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
			newUnit1.setName("Dumannios")
			
			newUnit1.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EXTENSION1'), True)
			newUnit1.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
			newUnit1.setHasPromotion(gc.getInfoTypeForString('PROMOTION_INQUISITOR'), True)
			
			newUnit2 = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_PRIEST_OF_WINTER'), pCity.getX(), pCity.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
			newUnit2.setName("Riuros")
			
			newUnit2.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EXTENSION1'), True)
			newUnit2.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
			newUnit2.setHasPromotion(gc.getInfoTypeForString('PROMOTION_INQUISITOR'), True)
			
			newUnit3 = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_PRIEST_OF_WINTER'), pCity.getX(), pCity.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
			newUnit3.setName("Anagantios")
			
			newUnit3.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EXTENSION1'), True)
			newUnit3.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), True)
			newUnit3.setHasPromotion(gc.getInfoTypeForString('PROMOTION_INQUISITOR'), True)

...  

		if iProjectType == gc.getInfoTypeForString('PROJECT_ASCENSION'):
			py = PyPlayer(iPlayer)
			iAuric = gc.getInfoTypeForString('UNITCLASS_AURIC')
			for pUnit in py.getUnitList():
				if pUnit.getUnitClassType() == iAuric:
					pAuric = pUnit
			newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_AURIC_ASCENDED'), pAuric.getX(), pAuric.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
			newUnit.convert(pAuric)
			newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ICE3'), False)
			
			
			
			if pPlayer.isHuman():
				t = "TROPHY_FEAT_ASCENSION"
				if not CyGame().isHasTrophy(t):
					CyGame().changeTrophyValue(t, 1)
			if not CyGame().getWBMapScript():
				iBestPlayer = -1
				iBestValue = 0
				for iLoopPlayer in range(gc.getMAX_PLAYERS()):
					pLoopPlayer = gc.getPlayer(iLoopPlayer)
					if pLoopPlayer.isAlive():
						if not pLoopPlayer.isBarbarian():
							if pLoopPlayer.getTeam() != pPlayer.getTeam():
								iValue = CyGame().getSorenRandNum(500, "Ascension")
								if pLoopPlayer.isHuman():
									iValue += 2000
								iValue += (20 - CyGame().getPlayerRank(iLoopPlayer)) * 50
								if iValue > iBestValue:
									iBestValue = iValue
									iBestPlayer = iLoopPlayer
				if iBestPlayer != -1:
					pBestPlayer = gc.getPlayer(iBestPlayer)
					pBestCity = pBestPlayer.getCapitalCity()
					if pBestPlayer.isHuman():
						iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_GODSLAYER')
						triggerData = gc.getPlayer(iBestPlayer).initTriggeredData(iEvent, true, -1, pBestCity.getX(), pBestCity.getY(), iBestPlayer, -1, -1, -1, -1, -1)
					else:
						pBestPlayer.initUnit(gc.getInfoTypeForString('EQUIPMENT_GODSLAYER'), pBestCity.getX(), pBestCity.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)


(I went ahead and included the python I used to make the White Hand Ritual a prereq for building Priests of Winter too. I made these priests buildable and decreased their strength by 1.)





Letting Auric Ascended act like an ICBM is as simple as giving him the <iNukeRange>1 tag (without also giving him an <iAirRange>)


The simplest way of making him change the land around him is to give him this spell that uses the python effect of Snowfall_greater as its prereq instead.
Code:
	<SpellInfo>
		<Type>SPELL_SNOWFALL_PASSIVE</Type>
		<Description>TXT_KEY_SPELL_SNOWFALL</Description>
		<Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
		<Help>TXT_KEY_SPELL_SNOWFALL_HELP</Help>
		<UnitClassPrereq>UNITCLASS_AURIC_ASCENDED</UnitClassPrereq>
		<bAllowAI>1</bAllowAI>
		<bIgnoreHasCasted>1</bIgnoreHasCasted>
		<bImmuneTeam>1</bImmuneTeam>
		<PyRequirement>spellSnowfallGreator(pCaster)</PyRequirement>
		<Effect>EFFECT_SNOWFALL_GREATOR</Effect>
		<Sound>AS3D_SPELL_SPRING</Sound>
		<bGraphicalOnly>1</bGraphicalOnly>
		<Button>Art/Interface/Buttons/Spells/Snowfall.dds</Button>
	</SpellInfo>


To make the Netherbade work on him all you need to do is change the if pOpponent.isHasPromotion(gc.getInfoTypeForString('PROMOTION_GODSLAYER')): to if pOpponent.isHasPromotion(gc.getInfoTypeForString('PROMOTION_GODSLAYER')) or pOpponent.isHasPromotion(gc.getInfoTypeForString('PROMOTION_NETHERBLADE)): in def postCombatAuricAscendedWon(pCaster, pOpponent): in CvSpellInterface.py, although you may want to do it differently so as to have a different trophy.
 
that last bit of code looks wrong MC. you've written godslayer 2 times, I guess the second should be something like PROMOTION_NETHERBLADE
 
Back
Top Bottom