Hyborem's whisper prerequisites

smurven

Chieftain
Joined
Jul 30, 2007
Messages
97
What are the actual requirements for using this worldspell? I was playing kuriotates and switched to hyborem but couldn't use this spell. I had the necessary research (malevolent designs i think?) but the spell was greyed out. The first thing I assume is there needs to be more cities with ashen veil in them (as kuriotates I only had 3 or 4 cities). Secondly, do i need a city to cast the spell, or can hyborem's whisper be my first city?
 
IIRC you need to research Malevolent Design.
 
You need to have Malevolent Designs, and there have to be enough cities in the world that have the Ashen Veil present in them. I think that there must be at least 3, and that Capitals don't count. (I changed the spell significantly in my version so I can't look though the code to confirm that.)

You do not need to have a city to cast it per se, but I believe that you do have to have already adopted the Ashen Veil as your State Religion (I'd forgotten this at first, since it is one of the first things I changed, long before rewriting the spell completely). You can't adopt a religion until it is present in one of your cities, so you will need to found a city first. (Actually, I think the religion only has to be present in one of your team's cities, so if you somehow manage to get a permanent alliance before founding a city you could adopt AV and use the spell to take your first city.) If you are playing with Require Complete kills you could build a city, convert, let an enemy take the city, and use the spell to get a new capital.
 
Hey Magister,

Stop helping the kiddies and help me with my regicide mod mod!
 
Thanks for the response magister. That's interesting that you say you need to adopt ashen veil. I'm almost positive I didn't adopt ashen veil till after I got it by shear accident. I had just assumed hyborem started as ashen veil and suddenly I had all these friends I had converted to ashen veil saying "we demand you change your heathen religion!" (which is a funny thing to do when you're religionless, but that's just an aesthetic thing). So either I did hyborem's whisper after that (pretty sure I did it before) or the other requirement (besides city number, which I agree with) got solved somehow by building a city. It could have also been a time delay, hyborem cant cast it on his first turn, or maybe he needs to be IN a city to cast it?. I know the tooltip might get clunky to have all the requirements listed, but it is frustrating to have the spell grayed out, and have no idea what you're doing wrong. So maybe the civilopedia could have an expanded information on the spell?

Oh, and deadliver? Don't be a dick. If you're being sarcastic, a hint would help, if you're not, my post was well articulated and far from "kiddie."
 
Wow, I was the first person to reply to your post dude guess I am a real a-hole. Relax.
 
You were the first person to reply, and yet it looked like you didn't eve read the post, as I clearly stated I had malevolent designs. It looks like you were just kidding around, but seriously, way to make a welcoming environment to the forum.
 
I've only played Hyborem once, but it looked like casting the world spell only offered 3 choices of cities, though I believe there were more. I even spread Ashen Veil in a nearby city that I coveted but it did not show up as a city to take over.
One hint for this world spell... don't take a distant city of an enemy (like I did)... they'll take it back on their next turn.

I did not have to have Ashen Veil as my state religion, don't know if this is intented... I purposely avoided it as long as I could because as soon as I adopted it, all the Good Nations declared War and cloberred me!

The other requirement is that only Hyborem can cast it.
 
Maybe it doesn't have a religion prereq then. I thought it did, but I had changed the code so much I couldn't check. The (unmodded) spell definitely does give you a choice of 3 AV cities no matter how many AV cities there are, the 3 which the computer deems "best." I haven't looked into how it determines this, but I think that Population is a major factor. I know the spell won't work unless there are at least 3 AV cities to choose from.


Taking a distant city isn't that bad, so long as you have powerful defenders that you can send there through your obsidian gates.


(In my version it isn't a world spell. It works like Rantine's Convert city spell, except on AV instead of Barbarian cities, and the defender's strength is irrelevant. It doesn't trigger an event with options, but just has a chance to take the city that Hyborem is in. Its chance of success and chance of causing war are determined by the plot counter and the AC. It takes several turns to work. Hyborem is a lot stronger, and can move in rival territory, but he cannot enter non-hell terrain. He has to corrupt rivals before he can take them over.Luckily AV units have a spell that raises the plot counter of the tiles around them, sort of a reverse sanctify.)
 
Maybe it doesn't have a religion prereq then. I thought it did, but I had changed the code so much I couldn't check. The (unmodded) spell definitely does give you a choice of 3 AV cities no matter how many AV cities there are, the 3 which the computer deems "best." I haven't looked into how it determines this, but I think that Population is a major factor. I know the spell won't work unless there are at least 3 AV cities to choose from.


Taking a distant city isn't that bad, so long as you have powerful defenders that you can send there through your obsidian gates.


(In my version it isn't a world spell. It works like Rantine's Convert city spell, except on AV instead of Barbarian cities, and the defender's strength is irrelevant. It doesn't trigger an event with options, but just has a chance to take the city that Hyborem is in. Its chance of success and chance of causing war are determined by the plot counter and the AC. It takes several turns to work. Hyborem is a lot stronger, and can move in rival territory, but he cannot enter non-hell terrain. He has to corrupt rivals before he can take them over.Luckily AV units have a spell that raises the plot counter of the tiles around them, sort of a reverse sanctify.)

Obsidian gates... I hadn't thought of that. Good idea, still must be careful, they'll want that city back in the worst way.

I really like your idea of a influential Hyborem, he should be much more impressive than he seems to be in FfH now.

Question about Hell terain. I noted, in the one game I played as Hyborem, that Hell terain did not spread in my Infernal lands. Only in the Sheim's who had brought Hyborem into the world had hell terrain. Was it becuase I hadn't adopted Ashen Veil, do you suppose?
Thanks,
 
Question about Hell terain. I noted, in the one game I played as Hyborem, that Hell terain did not spread in my Infernal lands. Only in the Sheim's who had brought Hyborem into the world had hell terrain. Was it becuase I hadn't adopted Ashen Veil, do you suppose?
Thanks,

That seems wrong. Below AC 25 you have to have AV as state religion in order for the plot counters of your territory to increase based on surrounding plot counters, but all Infernal owned tiles have their counters set to 100 every turn.

(Hell terrain is controlled by the tile's plot counter. A counter of 10 or more make a tile turn to hell.)


if the Sheaim didn't have hell terrain I'd say that you accidentally selected the option that turns off plotCounter-based terrain changes.
 
The AC was 70 and though most of my tiles are frozen ice and peaks, maybe 20% are wooded and/or tundra. I do note that 1 tile has gone to broken lands and 1 resource is nightmare on tundra, but that's it. It did seem not to be working so I suppose I should post the save to the bug thread?
Can I readily see the "plot counter" in my game?
I'm embarrassed to say I wasn't sure if ice was supposed to turn to hell terain or not... (I never play Hyborem).
 
Maybe I will play around in the world editor. I'm almost positive I couldn't cast his worldspell till I had a city of my own. Ooo, just thought of something. Maybe there was one too few ashen veil cities and making a city of my own made one more ashen veil city so I could cast it. Something to look into. (Alternatively I could look at the code, but that sounds a lot more daunting since I've never modded civ in any way).
 
The only in-game sign of the plot counter is that the terrain turns to hell terrain and the resources turn to hell resources if it is 10 or higher. However, Peaks, Oceans, Coasts, Ice(Snow), and Tundra do not have any hell equivalent (in unmodded FfH that is, I added hell equivalents in my version so Hyborem doesn't get stuck), so they do not change even if the plot counter is 100. Forests cannot exist on hell terrain so they are usually destroyed by the spread of hell, but they can stick around on Tundra.

If you cast Scorch or Vitalize it should turn the terrain to something that can turn to hell, showing that the plot counter in fact is 100. (I forget whether it would change instantly or the next turn.)



I know I've used the unmodded spell without already having a city. The reason is because there were too few non-capital AV cities.

I just realized that I didn't change the spell in FF, so assuming that Vehem didn't change it and that Kael didn't change it from 0.33, I still have the unmodded code:
Spoiler :
Code:
in CIV4SpellInfos.xml:

<SpellInfo>			<!-- Hyborem's Whisper -->
			<Type>SPELL_HYBOREMS_WHISPER</Type>
			<Description>TXT_KEY_SPELL_HYBOREMS_WHISPER</Description>
			<Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
			<Help>TXT_KEY_SPELL_HYBOREMS_WHISPER_HELP</Help>
			<UnitClassPrereq>UNITCLASS_HYBOREM</UnitClassPrereq>
			<CivilizationPrereq>CIVILIZATION_INFERNAL</CivilizationPrereq>
			<TechPrereq>TECH_MALEVOLENT_DESIGNS</TechPrereq>
			<bAllowAI>1</bAllowAI>
			<bGlobal>1</bGlobal>
			<iAIWeight>300</iAIWeight>
			<bDisplayWhenDisabled>1</bDisplayWhenDisabled>
			<bHasCasted>1</bHasCasted>
			<PyResult>spellHyboremsWhisper(pCaster)</PyResult>
			<PyRequirement>reqHyboremsWhisper(pCaster)</PyRequirement>
			<Effect>EFFECT_SPELL1</Effect>
			<Sound>AS3D_SPELL_HOPE</Sound>
			<Button>Art/Interface/Buttons/Spells/Hyborems Whisper.dds</Button>
		</SpellInfo>


----------------------
in CvSpellInterface.py:


def reqHyboremsWhisper(caster):
	if gc.getGame().isNetworkMultiPlayer():
		return False
	pCity = cf.getAshenVeilCity(3)
	if pCity == -1:
		return False
	return True

def spellHyboremsWhisper(caster):
	iPlayer = caster.getOwner()
	pPlayer = gc.getPlayer(iPlayer)
	iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_HYBOREMS_WHISPER')
	triggerData = pPlayer.initTriggeredData(iEvent, true, -1, caster.getX(), caster.getY(), iPlayer, -1, -1, -1, -1, -1)


----------------------
in CustomFunctions.py:


	def getAshenVeilCity(self, iNum):
		iInfernal = gc.getInfoTypeForString('CIVILIZATION_INFERNAL')
		iVeil = gc.getInfoTypeForString('RELIGION_THE_ASHEN_VEIL')
		iBestValue1 = 0
		iBestValue2 = 0
		iBestValue3 = 0
		pBestCity1 = -1
		pBestCity2 = -1
		pBestCity3 = -1
		for iPlayer in range(gc.getMAX_PLAYERS()):
			pPlayer = gc.getPlayer(iPlayer)
			if (pPlayer.isAlive() and pPlayer.getCivilizationType() != iInfernal):
				for iCity in range(pPlayer.getNumCities()):
					pCity = pPlayer.getCity(iCity)
					if (pCity.isHasReligion(iVeil) and pCity.isCapital() == False):
						bValid = True
						iValue = pCity.getPopulation() * 100
						iValue += pCity.getCulture(iPlayer) / 3
						iValue += pCity.getNumBuildings() * 10
						iValue += pCity.getNumWorldWonders() * 100
						iValue += pCity.countNumImprovedPlots()
						if iValue > iBestValue1:
							iBestValue3 = iBestValue2
							pBestCity3 = pBestCity2
							iBestValue2 = iBestValue1
							pBestCity2 = pBestCity1
							iBestValue1 = iValue
							pBestCity1 = pCity
							bValid = False
						if (bValid and iValue > iBestValue2):
							iBestValue3 = iBestValue2
							pBestCity3 = pBestCity2
							iBestValue2 = iValue
							pBestCity2 = pCity
							bValid = False
						if (bValid and iValue > iBestValue3):
							iBestValue3 = iValue
							pBestCity3 = pCity
		if iNum == 1:
			return pBestCity1
		if iNum == 2:
			return pBestCity2
		if iNum == 3:
			return pBestCity3
		return -1

----------------------
in CIV4EventTriggerInfos.xml:


        <EventTriggerInfo>
            <Type>EVENTTRIGGER_HYBOREMS_WHISPER</Type>
            <WorldNewsTexts>
                <Text></Text>
            </WorldNewsTexts>
            <TriggerTexts>
                <TriggerText>
                    <Text>TXT_KEY_EVENT_HYBOREMS_WHISPER</Text>
                    <Era>NONE</Era>
                </TriggerText>
            </TriggerTexts>
            <bSinglePlayer>1</bSinglePlayer>
            <iPercentGamesActive>100</iPercentGamesActive>
            <iWeight>0</iWeight>
            <bProbabilityUnitMultiply>0</bProbabilityUnitMultiply>
            <bProbabilityBuildingMultiply>0</bProbabilityBuildingMultiply>
            <Civic>NONE</Civic>
            <iMinTreasury>0</iMinTreasury>
            <iMinPopulation>0</iMinPopulation>
            <iMaxPopulation>0</iMaxPopulation>
            <iMinMapLandmass>0</iMinMapLandmass>
            <iMinOurLandmass>0</iMinOurLandmass>
            <iMaxOurLandmass>-1</iMaxOurLandmass>
            <MinDifficulty>NONE</MinDifficulty>
            <iAngry>0</iAngry>
            <iUnhealthy>0</iUnhealthy>
            <UnitsRequired>
            </UnitsRequired>
            <iNumUnits>0</iNumUnits>
            <iNumUnitsGlobal>0</iNumUnitsGlobal>
            <iUnitDamagedWeight>0</iUnitDamagedWeight>
            <iUnitDistanceWeight>0</iUnitDistanceWeight>
            <iUnitExperienceWeight>0</iUnitExperienceWeight>
            <bUnitsOnPlot>0</bUnitsOnPlot>
            <BuildingsRequired>
            </BuildingsRequired>
            <iNumBuildings>0</iNumBuildings>
            <iNumBuildingsGlobal>0</iNumBuildingsGlobal>
            <iNumPlotsRequired>0</iNumPlotsRequired>
            <bOwnPlot>0</bOwnPlot>
            <iPlotType>-1</iPlotType>
            <FeaturesRequired>
            </FeaturesRequired>
            <TerrainsRequired>
            </TerrainsRequired>
            <ImprovementsRequired>
            </ImprovementsRequired>
            <BonusesRequired>
            </BonusesRequired>
            <RoutesRequired>
            </RoutesRequired>
            <ReligionsRequired>
            </ReligionsRequired>
            <iNumReligions>0</iNumReligions>
            <CorporationsRequired>
            </CorporationsRequired>
            <iNumCorporations>0</iNumCorporations>
            <bPickReligion>0</bPickReligion>
            <bStateReligion>0</bStateReligion>
            <bHolyCity>0</bHolyCity>
            <bPickCorporation>0</bPickCorporation>
            <bHeadquarters>0</bHeadquarters>
            <Events>
                <Event>EVENT_HYBOREMS_WHISPER_1</Event>
                <Event>EVENT_HYBOREMS_WHISPER_2</Event>
                <Event>EVENT_HYBOREMS_WHISPER_3</Event>
            </Events>
            <PrereqEvents>
            </PrereqEvents>
            <bPrereqEventPlot>0</bPrereqEventPlot>
            <OrPreReqs>
            </OrPreReqs>
            <AndPreReqs>
            </AndPreReqs>
            <ObsoleteTechs>
            </ObsoleteTechs>
            <bRecurring>0</bRecurring>
            <bTeam>0</bTeam>
            <bGlobal>1</bGlobal>
            <bPickPlayer>0</bPickPlayer>
            <bOtherPlayerWar>0</bOtherPlayerWar>
            <bOtherPlayerHasReligion>0</bOtherPlayerHasReligion>
            <bOtherPlayerHasOtherReligion>0</bOtherPlayerHasOtherReligion>
            <bOtherPlayerAI>0</bOtherPlayerAI>
            <iOtherPlayerShareBorders>0</iOtherPlayerShareBorders>
            <OtherPlayerHasTech>NONE</OtherPlayerHasTech>
            <bPickCity>0</bPickCity>
            <bPickOtherPlayerCity>0</bPickOtherPlayerCity>
            <bShowPlot>0</bShowPlot>
            <iCityFoodWeight>0</iCityFoodWeight>
            <PythonCanDo></PythonCanDo>
            <PythonCanDoCity></PythonCanDoCity>
            <PythonCanDoUnit></PythonCanDoUnit>
            <PythonCallback></PythonCallback>
            <iPrereqCrime>0</iPrereqCrime>
            <iPrereqGlobalCounter>0</iPrereqGlobalCounter>
            <PrereqAlignment>NONE</PrereqAlignment>
            <PrereqCivilizationPleased>NONE</PrereqCivilizationPleased>
            <PrereqLeader>NONE</PrereqLeader>
            <PrereqTrait>NONE</PrereqTrait>
        </EventTriggerInfo>

--------------------
in CIV4EventInfos.xml:


        <EventInfo>
            <Type>EVENT_HYBOREMS_WHISPER_1</Type>
            <Description>TXT_KEY_EVENT_HYBOREMS_WHISPER_1</Description>
            <LocalInfoText></LocalInfoText>
            <WorldNewsTexts>
            </WorldNewsTexts>
            <OtherPlayerPopup></OtherPlayerPopup>
            <QuestFailText></QuestFailText>
            <bQuest>0</bQuest>
            <bGlobal>0</bGlobal>
            <bTeam>0</bTeam>
            <bPickCity>0</bPickCity>
            <bPickOtherPlayerCity>0</bPickOtherPlayerCity>
            <bDeclareWar>0</bDeclareWar>
            <iGold>0</iGold>
            <bGoldToPlayer>0</bGoldToPlayer>
            <iRandomGold>0</iRandomGold>
            <iCulture>0</iCulture>
            <iEspionagePoints>0</iEspionagePoints>
            <bGoldenAge>0</bGoldenAge>
            <iFreeUnitSupport>0</iFreeUnitSupport>
            <iInflationMod>0</iInflationMod>
            <iSpaceProductionMod>0</iSpaceProductionMod>
            <Tech>NONE</Tech>
            <TechFlavors>
            </TechFlavors>
            <iTechPercent>0</iTechPercent>
            <iTechCostPercent>0</iTechCostPercent>
            <iTechMinTurnsLeft>0</iTechMinTurnsLeft>
            <PrereqTech>NONE</PrereqTech>
            <UnitClass>NONE</UnitClass>
            <iNumFreeUnits>0</iNumFreeUnits>
            <bDisbandUnit>0</bDisbandUnit>
            <iUnitExperience>0</iUnitExperience>
            <iUnitImmobileTurns>0</iUnitImmobileTurns>
            <UnitPromotion></UnitPromotion>
            <UnitName></UnitName>
            <UnitCombatPromotions>
            </UnitCombatPromotions>
            <UnitClassPromotions>
            </UnitClassPromotions>
            <BuildingClass>NONE</BuildingClass>
            <iBuildingChange>0</iBuildingChange>
            <BuildingExtraYields>
            </BuildingExtraYields>
            <BuildingExtraCommerces>
            </BuildingExtraCommerces>
            <BuildingExtraHappies>
            </BuildingExtraHappies>
            <BuildingExtraHealths>
            </BuildingExtraHealths>
            <iHappy>0</iHappy>
            <iHealth>0</iHealth>
            <iHurryAnger>0</iHurryAnger>
            <iHappyTurns>0</iHappyTurns>
            <iRevoltTurns>0</iRevoltTurns>
            <iMinPillage>0</iMinPillage>
            <iMaxPillage>0</iMaxPillage>
            <iFood>0</iFood>
            <iFoodPercent>0</iFoodPercent>
            <FreeSpecialistCounts>
            </FreeSpecialistCounts>
            <FeatureType>NONE</FeatureType>
            <iFeatureChange>0</iFeatureChange>
            <ImprovementType>NONE</ImprovementType>
            <iImprovementChange>0</iImprovementChange>
            <BonusType>NONE</BonusType>
            <iBonusChange>0</iBonusChange>
            <RouteType>NONE</RouteType>
            <iRouteChange>0</iRouteChange>
            <BonusRevealed>NONE</BonusRevealed>
            <BonusGift>NONE</BonusGift>
            <PlotExtraYields>
            </PlotExtraYields>
            <iConvertOwnCities>0</iConvertOwnCities>
            <iConvertOtherCities>0</iConvertOtherCities>
            <iMaxNumReligions>-1</iMaxNumReligions>
            <iOurAttitudeModifier>0</iOurAttitudeModifier>
            <iAttitudeModifier>0</iAttitudeModifier>
            <iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
            <iPopulationChange>0</iPopulationChange>
            <AdditionalEvents>
            </AdditionalEvents>
            <EventTimes>
            </EventTimes>
            <ClearEvents>
            </ClearEvents>
            <PythonCallback>applyHyboremsWhisper1</PythonCallback>
            <PythonExpireCheck></PythonExpireCheck>
            <PythonCanDo></PythonCanDo>
            <PythonHelp>helpHyboremsWhisper1</PythonHelp>
            <Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
            <iAIValue>1000</iAIValue>
            <iCrime>0</iCrime>
            <iGlobalCounter>0</iGlobalCounter>
            <PrereqAlignment>NONE</PrereqAlignment>
            <PrereqBonus>NONE</PrereqBonus>
            <PrereqCivilization>NONE</PrereqCivilization>
            <PrereqCorporation>NONE</PrereqCorporation>
            <PrereqReligion>NONE</PrereqReligion>
            <PrereqStateReligion>NONE</PrereqStateReligion>
        </EventInfo>
        <EventInfo>
            <Type>EVENT_HYBOREMS_WHISPER_2</Type>
            <Description>TXT_KEY_EVENT_HYBOREMS_WHISPER_2</Description>
            <LocalInfoText></LocalInfoText>
            <WorldNewsTexts>
            </WorldNewsTexts>
            <OtherPlayerPopup></OtherPlayerPopup>
            <QuestFailText></QuestFailText>
            <bQuest>0</bQuest>
            <bGlobal>0</bGlobal>
            <bTeam>0</bTeam>
            <bPickCity>0</bPickCity>
            <bPickOtherPlayerCity>0</bPickOtherPlayerCity>
            <bDeclareWar>0</bDeclareWar>
            <iGold>0</iGold>
            <bGoldToPlayer>0</bGoldToPlayer>
            <iRandomGold>0</iRandomGold>
            <iCulture>0</iCulture>
            <iEspionagePoints>0</iEspionagePoints>
            <bGoldenAge>0</bGoldenAge>
            <iFreeUnitSupport>0</iFreeUnitSupport>
            <iInflationMod>0</iInflationMod>
            <iSpaceProductionMod>0</iSpaceProductionMod>
            <Tech>NONE</Tech>
            <TechFlavors>
            </TechFlavors>
            <iTechPercent>0</iTechPercent>
            <iTechCostPercent>0</iTechCostPercent>
            <iTechMinTurnsLeft>0</iTechMinTurnsLeft>
            <PrereqTech>NONE</PrereqTech>
            <UnitClass>NONE</UnitClass>
            <iNumFreeUnits>0</iNumFreeUnits>
            <bDisbandUnit>0</bDisbandUnit>
            <iUnitExperience>0</iUnitExperience>
            <iUnitImmobileTurns>0</iUnitImmobileTurns>
            <UnitPromotion></UnitPromotion>
            <UnitName></UnitName>
            <UnitCombatPromotions>
            </UnitCombatPromotions>
            <UnitClassPromotions>
            </UnitClassPromotions>
            <BuildingClass>NONE</BuildingClass>
            <iBuildingChange>0</iBuildingChange>
            <BuildingExtraYields>
            </BuildingExtraYields>
            <BuildingExtraCommerces>
            </BuildingExtraCommerces>
            <BuildingExtraHappies>
            </BuildingExtraHappies>
            <BuildingExtraHealths>
            </BuildingExtraHealths>
            <iHappy>0</iHappy>
            <iHealth>0</iHealth>
            <iHurryAnger>0</iHurryAnger>
            <iHappyTurns>0</iHappyTurns>
            <iRevoltTurns>0</iRevoltTurns>
            <iMinPillage>0</iMinPillage>
            <iMaxPillage>0</iMaxPillage>
            <iFood>0</iFood>
            <iFoodPercent>0</iFoodPercent>
            <FreeSpecialistCounts>
            </FreeSpecialistCounts>
            <FeatureType>NONE</FeatureType>
            <iFeatureChange>0</iFeatureChange>
            <ImprovementType>NONE</ImprovementType>
            <iImprovementChange>0</iImprovementChange>
            <BonusType>NONE</BonusType>
            <iBonusChange>0</iBonusChange>
            <RouteType>NONE</RouteType>
            <iRouteChange>0</iRouteChange>
            <BonusRevealed>NONE</BonusRevealed>
            <BonusGift>NONE</BonusGift>
            <PlotExtraYields>
            </PlotExtraYields>
            <iConvertOwnCities>0</iConvertOwnCities>
            <iConvertOtherCities>0</iConvertOtherCities>
            <iMaxNumReligions>-1</iMaxNumReligions>
            <iOurAttitudeModifier>0</iOurAttitudeModifier>
            <iAttitudeModifier>0</iAttitudeModifier>
            <iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
            <iPopulationChange>0</iPopulationChange>
            <AdditionalEvents>
            </AdditionalEvents>
            <EventTimes>
            </EventTimes>
            <ClearEvents>
            </ClearEvents>
            <PythonCallback>applyHyboremsWhisper2</PythonCallback>
            <PythonExpireCheck></PythonExpireCheck>
            <PythonCanDo></PythonCanDo>
            <PythonHelp>helpHyboremsWhisper2</PythonHelp>
            <Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
            <iAIValue>900</iAIValue>
            <iCrime>0</iCrime>
            <iGlobalCounter>0</iGlobalCounter>
            <PrereqAlignment>NONE</PrereqAlignment>
            <PrereqBonus>NONE</PrereqBonus>
            <PrereqCivilization>NONE</PrereqCivilization>
            <PrereqCorporation>NONE</PrereqCorporation>
            <PrereqReligion>NONE</PrereqReligion>
            <PrereqStateReligion>NONE</PrereqStateReligion>
        </EventInfo>
        <EventInfo>
            <Type>EVENT_HYBOREMS_WHISPER_3</Type>
            <Description>TXT_KEY_EVENT_HYBOREMS_WHISPER_3</Description>
            <LocalInfoText></LocalInfoText>
            <WorldNewsTexts>
            </WorldNewsTexts>
            <OtherPlayerPopup></OtherPlayerPopup>
            <QuestFailText></QuestFailText>
            <bQuest>0</bQuest>
            <bGlobal>0</bGlobal>
            <bTeam>0</bTeam>
            <bPickCity>0</bPickCity>
            <bPickOtherPlayerCity>0</bPickOtherPlayerCity>
            <bDeclareWar>0</bDeclareWar>
            <iGold>0</iGold>
            <bGoldToPlayer>0</bGoldToPlayer>
            <iRandomGold>0</iRandomGold>
            <iCulture>0</iCulture>
            <iEspionagePoints>0</iEspionagePoints>
            <bGoldenAge>0</bGoldenAge>
            <iFreeUnitSupport>0</iFreeUnitSupport>
            <iInflationMod>0</iInflationMod>
            <iSpaceProductionMod>0</iSpaceProductionMod>
            <Tech>NONE</Tech>
            <TechFlavors>
            </TechFlavors>
            <iTechPercent>0</iTechPercent>
            <iTechCostPercent>0</iTechCostPercent>
            <iTechMinTurnsLeft>0</iTechMinTurnsLeft>
            <PrereqTech>NONE</PrereqTech>
            <UnitClass>NONE</UnitClass>
            <iNumFreeUnits>0</iNumFreeUnits>
            <bDisbandUnit>0</bDisbandUnit>
            <iUnitExperience>0</iUnitExperience>
            <iUnitImmobileTurns>0</iUnitImmobileTurns>
            <UnitPromotion></UnitPromotion>
            <UnitName></UnitName>
            <UnitCombatPromotions>
            </UnitCombatPromotions>
            <UnitClassPromotions>
            </UnitClassPromotions>
            <BuildingClass>NONE</BuildingClass>
            <iBuildingChange>0</iBuildingChange>
            <BuildingExtraYields>
            </BuildingExtraYields>
            <BuildingExtraCommerces>
            </BuildingExtraCommerces>
            <BuildingExtraHappies>
            </BuildingExtraHappies>
            <BuildingExtraHealths>
            </BuildingExtraHealths>
            <iHappy>0</iHappy>
            <iHealth>0</iHealth>
            <iHurryAnger>0</iHurryAnger>
            <iHappyTurns>0</iHappyTurns>
            <iRevoltTurns>0</iRevoltTurns>
            <iMinPillage>0</iMinPillage>
            <iMaxPillage>0</iMaxPillage>
            <iFood>0</iFood>
            <iFoodPercent>0</iFoodPercent>
            <FreeSpecialistCounts>
            </FreeSpecialistCounts>
            <FeatureType>NONE</FeatureType>
            <iFeatureChange>0</iFeatureChange>
            <ImprovementType>NONE</ImprovementType>
            <iImprovementChange>0</iImprovementChange>
            <BonusType>NONE</BonusType>
            <iBonusChange>0</iBonusChange>
            <RouteType>NONE</RouteType>
            <iRouteChange>0</iRouteChange>
            <BonusRevealed>NONE</BonusRevealed>
            <BonusGift>NONE</BonusGift>
            <PlotExtraYields>
            </PlotExtraYields>
            <iConvertOwnCities>0</iConvertOwnCities>
            <iConvertOtherCities>0</iConvertOtherCities>
            <iMaxNumReligions>-1</iMaxNumReligions>
            <iOurAttitudeModifier>0</iOurAttitudeModifier>
            <iAttitudeModifier>0</iAttitudeModifier>
            <iTheirEnemyAttitudeModifier>0</iTheirEnemyAttitudeModifier>
            <iPopulationChange>0</iPopulationChange>
            <AdditionalEvents>
            </AdditionalEvents>
            <EventTimes>
            </EventTimes>
            <ClearEvents>
            </ClearEvents>
            <PythonCallback>applyHyboremsWhisper3</PythonCallback>
            <PythonExpireCheck></PythonExpireCheck>
            <PythonCanDo></PythonCanDo>
            <PythonHelp>helpHyboremsWhisper3</PythonHelp>
            <Button>,Art/Interface/Buttons/Process/Blank.dds,Art/Interface/Buttons/Beyond_the_Sword_Atlas.dds,8,5</Button>
            <iAIValue>800</iAIValue>
            <iCrime>0</iCrime>
            <iGlobalCounter>0</iGlobalCounter>
            <PrereqAlignment>NONE</PrereqAlignment>
            <PrereqBonus>NONE</PrereqBonus>
            <PrereqCivilization>NONE</PrereqCivilization>
            <PrereqCorporation>NONE</PrereqCorporation>
            <PrereqReligion>NONE</PrereqReligion>
            <PrereqStateReligion>NONE</PrereqStateReligion>
        </EventInfo>



----------------------
in CvRandomEventInfos.py:



def applyHyboremsWhisper1(argsList):
	iEvent = argsList[0]
	kTriggeredData = argsList[1]
	pPlayer = gc.getPlayer(kTriggeredData.ePlayer)
	pCity = cf.getAshenVeilCity(1)
	pPlayer.acquireCity(pCity,false,false)

def helpHyboremsWhisper1(argsList):
	iEvent = argsList[0]
	kTriggeredData = argsList[1]
	pCity = cf.getAshenVeilCity(1)
	szHelp = localText.getText("TXT_KEY_EVENT_HYBOREMS_WHISPER_HELP", (pCity.getName(), ))
	return szHelp

def applyHyboremsWhisper2(argsList):
	iEvent = argsList[0]
	kTriggeredData = argsList[1]
	pPlayer = gc.getPlayer(kTriggeredData.ePlayer)
	pCity = cf.getAshenVeilCity(2)
	pPlayer.acquireCity(pCity,false,false)

def helpHyboremsWhisper2(argsList):
	iEvent = argsList[0]
	kTriggeredData = argsList[1]
	pCity = cf.getAshenVeilCity(2)
	szHelp = localText.getText("TXT_KEY_EVENT_HYBOREMS_WHISPER_HELP", (pCity.getName(), ))
	return szHelp

def applyHyboremsWhisper3(argsList):
	iEvent = argsList[0]
	kTriggeredData = argsList[1]
	pPlayer = gc.getPlayer(kTriggeredData.ePlayer)
	pCity = cf.getAshenVeilCity(3)
	pPlayer.acquireCity(pCity,false,false)

def helpHyboremsWhisper3(argsList):
	iEvent = argsList[0]
	kTriggeredData = argsList[1]
	pCity = cf.getAshenVeilCity(3)
	szHelp = localText.getText("TXT_KEY_EVENT_HYBOREMS_WHISPER_HELP", (pCity.getName(), ))
	return szHelp

This is possibly most complicated spell in the game, or at least the one that depends on the most files. Still, it isn't hard to see that it requires there be at least 3 AV cities that are not capitals, and that it doesn't require the caster to already own any cities.
 
All my lands were either tundra, tundra with forest, or ice. The one broken land tile that did appear must have been non-tundra at some earlier point in the game.
I'll post the screen shot if you'd like to review. Deer and fur must either be protected by the tundra and ice or not have an equivalent hell resource to change to.
Thanks agian.
 
Top Bottom