xienwolf
Deity
How do Djinn & Mobius Witch units gain their random spheres upon generation?
if iUnit == gc.getInfoTypeForString('UNIT_MOBIUS_WITCH'):
promotions = [ 'PROMOTION_AIR1','PROMOTION_BODY1','PROMOTION_CHAOS1','PROMOTION_DEATH1','PROMOTION_DIMENSIONAL1','PROMOTION_EARTH1','PROMOTION_ENCHANTMENT1','PROMOTION_ENTROPY1','PROMOTION_FIRE1','PROMOTION_LAW1','PROMOTION_LIFE1','PROMOTION_MIND1','PROMOTION_NATURE1','PROMOTION_SPIRIT1','PROMOTION_WATER1' ]
newUnit.setLevel(4)
newUnit.setExperience(14, -1)
for i in promotions:
if CyGame().getSorenRandNum(10, "Bob") == 1:
newUnit.setHasPromotion(gc.getInfoTypeForString(i), True)
<PromotionInfo>
<Type>PROMOTION_DIMENSIONAL1</Type>
<Description>TXT_KEY_PROMOTION_DIMENSIONAL1</Description>
<Help></Help>
<Sound>AS2D_IF_LEVELUP</Sound>
<LayerAnimationPath>NONE</LayerAnimationPath>
<PromotionPrereq>PROMOTION_CHANNELING1</PromotionPrereq>
<PromotionPrereqOr1>NONE</PromotionPrereqOr1>
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
<StateReligionPrereq>NONE</StateReligionPrereq>
<bLeader>0</bLeader>
<bBlitz>0</bBlitz>
<bAmphib>0</bAmphib>
<bRiver>0</bRiver>
<bEnemyRoute>0</bEnemyRoute>
<bAlwaysHeal>0</bAlwaysHeal>
<bHillsDoubleMove>0</bHillsDoubleMove>
<bImmuneToFirstStrikes>0</bImmuneToFirstStrikes>
<iVisibilityChange>0</iVisibilityChange>
<iMovesChange>0</iMovesChange>
<iMoveDiscountChange>0</iMoveDiscountChange>
<iAirRangeChange>0</iAirRangeChange>
<iInterceptChange>0</iInterceptChange>
<iEvasionChange>0</iEvasionChange>
<iWithdrawalChange>0</iWithdrawalChange>
<iCargoChange>0</iCargoChange>
<iCollateralDamageChange>0</iCollateralDamageChange>
<iBombardRateChange>0</iBombardRateChange>
<iFirstStrikesChange>0</iFirstStrikesChange>
<iChanceFirstStrikesChange>0</iChanceFirstStrikesChange>
<iEnemyHealChange>0</iEnemyHealChange>
<iNeutralHealChange>0</iNeutralHealChange>
<iFriendlyHealChange>0</iFriendlyHealChange>
<iSameTileHealChange>0</iSameTileHealChange>
<iAdjacentTileHealChange>0</iAdjacentTileHealChange>
<iCombatPercent>0</iCombatPercent>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<iKamikazePercent>0</iKamikazePercent>
<iRevoltProtection>0</iRevoltProtection>
<iCollateralDamageProtection>0</iCollateralDamageProtection>
<iPillageChange>0</iPillageChange>
<iUpgradeDiscount>0</iUpgradeDiscount>
<iExperiencePercent>0</iExperiencePercent>
<TerrainAttacks>
</TerrainAttacks>
<TerrainDefenses>
</TerrainDefenses>
<FeatureAttacks>
</FeatureAttacks>
<FeatureDefenses>
</FeatureDefenses>
<UnitCombatMods>
</UnitCombatMods>
<DomainMods>
</DomainMods>
<TerrainDoubleMoves>
</TerrainDoubleMoves>
<FeatureDoubleMoves>
</FeatureDoubleMoves>
<UnitCombats>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ADEPT</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
</UnitCombats>
<HotKey></HotKey>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<bGraphicalOnly>0</bGraphicalOnly>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>Art/Interface/Buttons/Promotions/DIMENSIONAL1.dds</Button>
<bBoarding>0</bBoarding>
<bOnlyDefensive>0</bOnlyDefensive>
<bDispellable>0</bDispellable>
<bDoubleFortifyBonus>0</bDoubleFortifyBonus>
<bEquipment>0</bEquipment>
<bFear>0</bFear>
<bFlying>0</bFlying>
<bHiddenNationality>0</bHiddenNationality>
<bIgnoreBuildingDefense>0</bIgnoreBuildingDefense>
<bImmortal>0</bImmortal>
<bImmuneToCapture>0</bImmuneToCapture>
<bImmuneToFear>0</bImmuneToFear>
<bImmuneToMagic>0</bImmuneToMagic>
<bInvisible>0</bInvisible>
<bMutation>0</bMutation>
<bNotAlive>0</bNotAlive>
<bPrereqAlive>0</bPrereqAlive>
<bRace>0</bRace>
<bRemovedByCasting>0</bRemovedByCasting>
<bRemovedByCombat>0</bRemovedByCombat>
<bRemovedWhenHealed>0</bRemovedWhenHealed>
<bTargetWeakestUnit>0</bTargetWeakestUnit>
<bTargetWeakestUnitCounter>0</bTargetWeakestUnitCounter>
<bTwincast>0</bTwincast>
<bValidate>0</bValidate>
<bWaterWalking>0</bWaterWalking>
<iAIWeight>50</iAIWeight>
<iBetrayalChance>0</iBetrayalChance>
<iBetterDefenderThanPercent>0</iBetterDefenderThanPercent>
<iCasterResistModify>0</iCasterResistModify>
<iCombatCapturePercent>0</iCombatCapturePercent>
<iCombatHealPercent>0</iCombatHealPercent>
<iCombatPercentDefense>0</iCombatPercentDefense>
<iCombatPercentGlobalCounter>0</iCombatPercentGlobalCounter>
<iCombatPercentInBorders>0</iCombatPercentInBorders>
<iExpireChance>0</iExpireChance>
<iExtraCombatStr>0</iExtraCombatStr>
<iExtraCombatDefense>0</iExtraCombatDefense>
<iFreeXPPerTurn>0</iFreeXPPerTurn>
<iFreeXPFromCombat>0</iFreeXPFromCombat>
<iModifyGlobalCounter>0</iModifyGlobalCounter>
<iResistMagic>0</iResistMagic>
<iSpellCasterXP>0</iSpellCasterXP>
<iSpellDamageModify>0</iSpellDamageModify>
<CaptureUnitCombat>NONE</CaptureUnitCombat>
<PromotionCombatApply>NONE</PromotionCombatApply>
<PromotionImmune1>NONE</PromotionImmune1>
<PromotionImmune2>NONE</PromotionImmune2>
<PromotionImmune3>NONE</PromotionImmune3>
<PromotionRandomApply>NONE</PromotionRandomApply>
<PromotionSummonPerk>NONE</PromotionSummonPerk>
<BonusPrereq>BONUS_MANA_DIMENSIONAL</BonusPrereq>
<PromotionPrereqOr3>NONE</PromotionPrereqOr3>
<PromotionPrereqOr4>NONE</PromotionPrereqOr4>
<PromotionPrereqAnd>NONE</PromotionPrereqAnd>
<PromotionNextLevel>PROMOTION_DIMENSIONAL2</PromotionNextLevel>
<PyPerTurn></PyPerTurn>
<iGroupSize>0</iGroupSize>
<UnitArtStyleType>NONE</UnitArtStyleType>
<PromotionCombatType>NONE</PromotionCombatType>
<iPromotionCombatMod>0</iPromotionCombatMod>
<DamageTypeCombats>
</DamageTypeCombats>
<BonusAffinities>
</BonusAffinities>
<DamageTypeResists>
</DamageTypeResists>
</PromotionInfo>
<PromotionInfo>
<Type>PROMOTION_DIMENSIONAL2</Type>
<Description>TXT_KEY_PROMOTION_DIMENSIONAL2</Description>
<Help></Help>
<Sound>AS2D_IF_LEVELUP</Sound>
<LayerAnimationPath>NONE</LayerAnimationPath>
<PromotionPrereq>PROMOTION_DIMENSIONAL1</PromotionPrereq>
<PromotionPrereqOr1>NONE</PromotionPrereqOr1>
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
<StateReligionPrereq>NONE</StateReligionPrereq>
<bLeader>0</bLeader>
<bBlitz>0</bBlitz>
<bAmphib>0</bAmphib>
<bRiver>0</bRiver>
<bEnemyRoute>0</bEnemyRoute>
<bAlwaysHeal>0</bAlwaysHeal>
<bHillsDoubleMove>0</bHillsDoubleMove>
<bImmuneToFirstStrikes>0</bImmuneToFirstStrikes>
<iVisibilityChange>0</iVisibilityChange>
<iMovesChange>0</iMovesChange>
<iMoveDiscountChange>0</iMoveDiscountChange>
<iAirRangeChange>0</iAirRangeChange>
<iInterceptChange>0</iInterceptChange>
<iEvasionChange>0</iEvasionChange>
<iWithdrawalChange>0</iWithdrawalChange>
<iCargoChange>0</iCargoChange>
<iCollateralDamageChange>0</iCollateralDamageChange>
<iBombardRateChange>0</iBombardRateChange>
<iFirstStrikesChange>0</iFirstStrikesChange>
<iChanceFirstStrikesChange>0</iChanceFirstStrikesChange>
<iEnemyHealChange>0</iEnemyHealChange>
<iNeutralHealChange>0</iNeutralHealChange>
<iFriendlyHealChange>0</iFriendlyHealChange>
<iSameTileHealChange>0</iSameTileHealChange>
<iAdjacentTileHealChange>0</iAdjacentTileHealChange>
<iCombatPercent>0</iCombatPercent>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<iKamikazePercent>0</iKamikazePercent>
<iRevoltProtection>0</iRevoltProtection>
<iCollateralDamageProtection>0</iCollateralDamageProtection>
<iPillageChange>0</iPillageChange>
<iUpgradeDiscount>0</iUpgradeDiscount>
<iExperiencePercent>0</iExperiencePercent>
<TerrainAttacks>
</TerrainAttacks>
<TerrainDefenses>
</TerrainDefenses>
<FeatureAttacks>
</FeatureAttacks>
<FeatureDefenses>
</FeatureDefenses>
<UnitCombatMods>
</UnitCombatMods>
<DomainMods>
</DomainMods>
<TerrainDoubleMoves>
</TerrainDoubleMoves>
<FeatureDoubleMoves>
</FeatureDoubleMoves>
<UnitCombats>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ADEPT</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ANIMAL</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_BEAST</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_DISCIPLE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MOUNTED</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_NAVAL</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_SIEGE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
</UnitCombats>
<HotKey></HotKey>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<bGraphicalOnly>0</bGraphicalOnly>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>Art/Interface/Buttons/Buildings/trust.dds</Button>
<bBoarding>0</bBoarding>
<bOnlyDefensive>0</bOnlyDefensive>
<bDispellable>0</bDispellable>
<bDoubleFortifyBonus>0</bDoubleFortifyBonus>
<bEquipment>0</bEquipment>
<bFear>0</bFear>
<bFlying>0</bFlying>
<bHiddenNationality>0</bHiddenNationality>
<bIgnoreBuildingDefense>0</bIgnoreBuildingDefense>
<bImmortal>0</bImmortal>
<bImmuneToCapture>0</bImmuneToCapture>
<bImmuneToFear>0</bImmuneToFear>
<bImmuneToMagic>0</bImmuneToMagic>
<bInvisible>0</bInvisible>
<bMutation>0</bMutation>
<bNotAlive>0</bNotAlive>
<bPrereqAlive>0</bPrereqAlive>
<bRace>0</bRace>
<bRemovedByCasting>0</bRemovedByCasting>
<bRemovedByCombat>0</bRemovedByCombat>
<bRemovedWhenHealed>0</bRemovedWhenHealed>
<bTargetWeakestUnit>0</bTargetWeakestUnit>
<bTargetWeakestUnitCounter>0</bTargetWeakestUnitCounter>
<bTwincast>0</bTwincast>
<bValidate>0</bValidate>
<bWaterWalking>0</bWaterWalking>
<iAIWeight>100</iAIWeight>
<iBetrayalChance>0</iBetrayalChance>
<iBetterDefenderThanPercent>0</iBetterDefenderThanPercent>
<iCasterResistModify>0</iCasterResistModify>
<iCombatCapturePercent>0</iCombatCapturePercent>
<iCombatHealPercent>0</iCombatHealPercent>
<iCombatPercentDefense>0</iCombatPercentDefense>
<iCombatPercentGlobalCounter>0</iCombatPercentGlobalCounter>
<iCombatPercentInBorders>0</iCombatPercentInBorders>
<iExpireChance>0</iExpireChance>
<iExtraCombatStr>0</iExtraCombatStr>
<iExtraCombatDefense>0</iExtraCombatDefense>
<iFreeXPPerTurn>0</iFreeXPPerTurn>
<iFreeXPFromCombat>0</iFreeXPFromCombat>
<iModifyGlobalCounter>0</iModifyGlobalCounter>
<iResistMagic>0</iResistMagic>
<iSpellCasterXP>0</iSpellCasterXP>
<iSpellDamageModify>0</iSpellDamageModify>
<CaptureUnitCombat>NONE</CaptureUnitCombat>
<PromotionCombatApply>NONE</PromotionCombatApply>
<PromotionImmune1>NONE</PromotionImmune1>
<PromotionImmune2>NONE</PromotionImmune2>
<PromotionImmune3>NONE</PromotionImmune3>
<PromotionRandomApply>NONE</PromotionRandomApply>
<PromotionSummonPerk>NONE</PromotionSummonPerk>
<BonusPrereq>NONE</BonusPrereq>
<PromotionPrereqOr3>NONE</PromotionPrereqOr3>
<PromotionPrereqOr4>NONE</PromotionPrereqOr4>
<PromotionPrereqAnd>PROMOTION_CHANNELING2</PromotionPrereqAnd>
<PromotionNextLevel>PROMOTION_DIMENSIONAL3</PromotionNextLevel>
<PyPerTurn></PyPerTurn>
<iGroupSize>0</iGroupSize>
<UnitArtStyleType>NONE</UnitArtStyleType>
<PromotionCombatType>NONE</PromotionCombatType>
<iPromotionCombatMod>0</iPromotionCombatMod>
<DamageTypeCombats>
</DamageTypeCombats>
<BonusAffinities>
</BonusAffinities>
<DamageTypeResists>
</DamageTypeResists>
</PromotionInfo>
<PromotionInfo>
<Type>PROMOTION_DIMENSIONAL3</Type>
<Description>TXT_KEY_PROMOTION_DIMENSIONAL3</Description>
<Help></Help>
<Sound>AS2D_IF_LEVELUP</Sound>
<LayerAnimationPath>NONE</LayerAnimationPath>
<PromotionPrereq>PROMOTION_DIMENSIONAL2</PromotionPrereq>
<PromotionPrereqOr1>NONE</PromotionPrereqOr1>
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
<StateReligionPrereq>NONE</StateReligionPrereq>
<bLeader>0</bLeader>
<bBlitz>0</bBlitz>
<bAmphib>0</bAmphib>
<bRiver>0</bRiver>
<bEnemyRoute>0</bEnemyRoute>
<bAlwaysHeal>0</bAlwaysHeal>
<bHillsDoubleMove>0</bHillsDoubleMove>
<bImmuneToFirstStrikes>0</bImmuneToFirstStrikes>
<iVisibilityChange>0</iVisibilityChange>
<iMovesChange>0</iMovesChange>
<iMoveDiscountChange>0</iMoveDiscountChange>
<iAirRangeChange>0</iAirRangeChange>
<iInterceptChange>0</iInterceptChange>
<iEvasionChange>0</iEvasionChange>
<iWithdrawalChange>0</iWithdrawalChange>
<iCargoChange>0</iCargoChange>
<iCollateralDamageChange>0</iCollateralDamageChange>
<iBombardRateChange>0</iBombardRateChange>
<iFirstStrikesChange>0</iFirstStrikesChange>
<iChanceFirstStrikesChange>0</iChanceFirstStrikesChange>
<iEnemyHealChange>0</iEnemyHealChange>
<iNeutralHealChange>0</iNeutralHealChange>
<iFriendlyHealChange>0</iFriendlyHealChange>
<iSameTileHealChange>0</iSameTileHealChange>
<iAdjacentTileHealChange>0</iAdjacentTileHealChange>
<iCombatPercent>0</iCombatPercent>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<iKamikazePercent>0</iKamikazePercent>
<iRevoltProtection>0</iRevoltProtection>
<iCollateralDamageProtection>0</iCollateralDamageProtection>
<iPillageChange>0</iPillageChange>
<iUpgradeDiscount>0</iUpgradeDiscount>
<iExperiencePercent>0</iExperiencePercent>
<TerrainAttacks>
</TerrainAttacks>
<TerrainDefenses>
</TerrainDefenses>
<FeatureAttacks>
</FeatureAttacks>
<FeatureDefenses>
</FeatureDefenses>
<UnitCombatMods>
</UnitCombatMods>
<DomainMods>
</DomainMods>
<TerrainDoubleMoves>
</TerrainDoubleMoves>
<FeatureDoubleMoves>
</FeatureDoubleMoves>
<UnitCombats>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ADEPT</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ANIMAL</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_ARCHER</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_BEAST</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_DISCIPLE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_MOUNTED</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_NAVAL</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_RECON</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_SIEGE</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
</UnitCombats>
<HotKey></HotKey>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<bGraphicalOnly>0</bGraphicalOnly>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>Art/Interface/Buttons/Techtree/divination.dds</Button>
<bBoarding>0</bBoarding>
<bOnlyDefensive>0</bOnlyDefensive>
<bDispellable>0</bDispellable>
<bDoubleFortifyBonus>0</bDoubleFortifyBonus>
<bEquipment>0</bEquipment>
<bFear>0</bFear>
<bFlying>0</bFlying>
<bHiddenNationality>0</bHiddenNationality>
<bIgnoreBuildingDefense>0</bIgnoreBuildingDefense>
<bImmortal>0</bImmortal>
<bImmuneToCapture>0</bImmuneToCapture>
<bImmuneToFear>0</bImmuneToFear>
<bImmuneToMagic>0</bImmuneToMagic>
<bInvisible>0</bInvisible>
<bMutation>0</bMutation>
<bNotAlive>0</bNotAlive>
<bPrereqAlive>0</bPrereqAlive>
<bRace>0</bRace>
<bRemovedByCasting>0</bRemovedByCasting>
<bRemovedByCombat>0</bRemovedByCombat>
<bRemovedWhenHealed>0</bRemovedWhenHealed>
<bTargetWeakestUnit>0</bTargetWeakestUnit>
<bTargetWeakestUnitCounter>0</bTargetWeakestUnitCounter>
<bTwincast>0</bTwincast>
<bValidate>0</bValidate>
<bWaterWalking>0</bWaterWalking>
<iAIWeight>150</iAIWeight>
<iBetrayalChance>0</iBetrayalChance>
<iBetterDefenderThanPercent>0</iBetterDefenderThanPercent>
<iCasterResistModify>0</iCasterResistModify>
<iCombatCapturePercent>0</iCombatCapturePercent>
<iCombatHealPercent>0</iCombatHealPercent>
<iCombatPercentDefense>0</iCombatPercentDefense>
<iCombatPercentGlobalCounter>0</iCombatPercentGlobalCounter>
<iCombatPercentInBorders>0</iCombatPercentInBorders>
<iExpireChance>0</iExpireChance>
<iExtraCombatStr>0</iExtraCombatStr>
<iExtraCombatDefense>0</iExtraCombatDefense>
<iFreeXPPerTurn>0</iFreeXPPerTurn>
<iFreeXPFromCombat>0</iFreeXPFromCombat>
<iModifyGlobalCounter>0</iModifyGlobalCounter>
<iResistMagic>0</iResistMagic>
<iSpellCasterXP>0</iSpellCasterXP>
<iSpellDamageModify>0</iSpellDamageModify>
<CaptureUnitCombat>NONE</CaptureUnitCombat>
<PromotionCombatApply>NONE</PromotionCombatApply>
<PromotionImmune1>NONE</PromotionImmune1>
<PromotionImmune2>NONE</PromotionImmune2>
<PromotionImmune3>NONE</PromotionImmune3>
<PromotionRandomApply>NONE</PromotionRandomApply>
<PromotionSummonPerk>NONE</PromotionSummonPerk>
<BonusPrereq>NONE</BonusPrereq>
<PromotionPrereqOr3>NONE</PromotionPrereqOr3>
<PromotionPrereqOr4>NONE</PromotionPrereqOr4>
<PromotionPrereqAnd>PROMOTION_CHANNELING3</PromotionPrereqAnd>
<PromotionNextLevel>NONE</PromotionNextLevel>
<PyPerTurn></PyPerTurn>
<iGroupSize>0</iGroupSize>
<UnitArtStyleType>NONE</UnitArtStyleType>
<PromotionCombatType>NONE</PromotionCombatType>
<iPromotionCombatMod>0</iPromotionCombatMod>
<DamageTypeCombats>
</DamageTypeCombats>
<BonusAffinities>
</BonusAffinities>
<DamageTypeResists>
</DamageTypeResists>
</PromotionInfo>
def doAIOperations( self, iPlayer ):
lPlayers = PyGame().getCivPlayerList( )
player = gc.getPlayer( iPlayer )
lUnits = PyPlayer( iPlayer ).getUnitList( )
playerStateReligion = gc.getPlayer( iPlayer ).getStateReligion( )
for unit in lUnits:
if unit.getUnitType( ) == CvUtil.findInfoTypeNum(gc.getUnitInfo, gc.getNumUnitInfos(), "UNIT_PROPHET"):
if playerStateReligion == CvUtil.findInfoTypeNum(gc.getReligionInfo, gc.getNumReligionInfos(), "RELIGION_KI"):
for iOpponent in lPlayers:
if iOpponent.getID() != iPlayer:
iAttitude = player.AI_getAttitude( iOpponent.getID() )
if iAttitude == AttitudeTypes.ATTITUDE_ANNOYED:
if self.getRandomNumber( 15 ) == 0:
self.doAITargetOpponentEarthquake( iOpponent.getID(), iPlayer )
unit.kill( 0, unit.getOwner())
if iAttitude == AttitudeTypes.ATTITUDE_FURIOUS:
if self.getRandomNumber( 5 ) == 0:
unit.kill( 0, unit.getOwner())
self.doAITargetOpponentEarthquake( iOpponent.getID(), iPlayer )
if playerStateReligion == CvUtil.findInfoTypeNum(gc.getReligionInfo, gc.getNumReligionInfos(), "RELIGION_ENKI"):
for iOpponent in lPlayers:
if iOpponent.getID() != iPlayer:
iAttitude = player.AI_getAttitude( iOpponent.getID() )
if iAttitude == AttitudeTypes.ATTITUDE_ANNOYED:
if self.getRandomNumber( 15 ) == 0:
self.doAITargetOpponentTsunami( iOpponent.getID(), unit, iPlayer )
if iAttitude == AttitudeTypes.ATTITUDE_FURIOUS:
if self.getRandomNumber( 5 ) == 0:
self.doAITargetOpponentTsunami( iOpponent.getID(), unit, iPlayer )
if playerStateReligion == CvUtil.findInfoTypeNum(gc.getReligionInfo, gc.getNumReligionInfos(), "RELIGION_ENLIL"):
for iOpponent in lPlayers:
if iOpponent.getID() != iPlayer:
iAttitude = player.AI_getAttitude( iOpponent.getID() )
if iAttitude == AttitudeTypes.ATTITUDE_ANNOYED:
if self.getRandomNumber( 15 ) == 0:
self.doAITargetOpponentPlague( iOpponent.getID(), iPlayer )
unit.kill( 0, unit.getOwner())
if iAttitude == AttitudeTypes.ATTITUDE_FURIOUS:
if self.getRandomNumber( 5 ) == 0:
unit.kill( 0, unit.getOwner())
self.doAITargetOpponentPlague( iOpponent.getID(), iPlayer )
if playerStateReligion == CvUtil.findInfoTypeNum(gc.getReligionInfo, gc.getNumReligionInfos(), "RELIGION_NANNA"):
for iOpponent in lPlayers:
if iOpponent.getID() != iPlayer:
iAttitude = player.AI_getAttitude( iOpponent.getID() )
if iAttitude == AttitudeTypes.ATTITUDE_ANNOYED:
if self.getRandomNumber( 15 ) == 0:
self.doAITargetOpponentMeteor( iOpponent.getID(), iPlayer )
unit.kill( 0, unit.getOwner())
if iAttitude == AttitudeTypes.ATTITUDE_FURIOUS:
if self.getRandomNumber( 5 ) == 0:
unit.kill( 0, unit.getOwner())
self.doAITargetOpponentMeteor( iOpponent.getID(), iPlayer )
if playerStateReligion == CvUtil.findInfoTypeNum(gc.getReligionInfo, gc.getNumReligionInfos(), "RELIGION_UTU"):
for iOpponent in lPlayers:
if iOpponent.getID() != iPlayer:
iAttitude = player.AI_getAttitude( iOpponent.getID() )
if iAttitude == AttitudeTypes.ATTITUDE_ANNOYED:
if self.getRandomNumber( 15 ) == 0:
self.doAITargetOpponentBlight( iOpponent.getID(), iPlayer )
unit.kill( 0, unit.getOwner())
if iAttitude == AttitudeTypes.ATTITUDE_FURIOUS:
if self.getRandomNumber( 5 ) == 0:
unit.kill( 0, unit.getOwner())
self.doAITargetOpponentBlight( iOpponent.getID(), iPlayer )
def doAITargetOpponentEarthquake( self, iOpponent, iPlayer ):
lCities = PyPlayer( iOpponent ).getCityList()
numCities = len( lCities )
pCity = lCities[ self.getRandomNumber( numCities ) ]
if not self.doAnReligionCheck( iOpponent, iPlayer ):
self.doEventEarthquake( pCity.plot() )
def doAITargetOpponentPlague( self, iOpponent, iPlayer ):
lCities = PyPlayer( iOpponent ).getCityList()
numCities = len( lCities )
pCity = lCities[ self.getRandomNumber( numCities ) ]
if not self.doAnReligionCheck( iOpponent, iPlayer ):
self.doEventPlague( pCity.plot() )
def doAITargetOpponentMeteor( self, iOpponent, iPlayer ):
lCities = PyPlayer( iOpponent ).getCityList()
numCities = len( lCities )
pCity = lCities[ self.getRandomNumber( numCities ) ]
if not self.doAnReligionCheck( iOpponent, iPlayer ):
self.doEventMinorMeteorStrike( pCity.plot() )
def doAITargetOpponentBlight( self, iOpponent, iPlayer ):
lCities = PyPlayer( iOpponent ).getCityList()
numCities = len( lCities )
pCity = lCities[ self.getRandomNumber( numCities ) ]
if not self.doAnReligionCheck( iOpponent, iPlayer ):
self.doEventBlight( pCity.plot() )
def doAITargetOpponentTsunami( self, iOpponent, unit, iPlayer ):
lAllCities = PyPlayer( iOpponent ).getCityList()
lValidCities = [ ]
for pCity in lAllCities:
if pCity.plot().isCoastalLand():
lValidCities.append( pCity )
if len( lValidCities ) > 0:
numCities = len( lValidCities )
pChosenCity = lValidCities[ self.getRandomNumber( numCities ) ]
if not self.doAnReligionCheck( iOpponent, iPlayer ):
self.doEventTsunami( pChosenCity.plot() )
unit.kill( 0, unit.getOwner( ) )
def doAnReligionCheck( self, iOpponent, iPlayer ):
pyTargetPlayer = PyPlayer( iOpponent )
pDefendingPlayer = gc.getPlayer( iOpponent )
pAttackingPlayer = gc.getPlayer( iPlayer )
if pyTargetPlayer.getStateReligion( ) == CvUtil.findInfoTypeNum(gc.getReligionInfo, gc.getNumReligionInfos(), "RELIGION_AN"):
lUnits = pyTargetPlayer.getUnitList()
for unit in lUnits:
if unit.getUnitType() == CvUtil.findInfoTypeNum(gc.getUnitInfo, gc.getNumUnitInfos(), "UNIT_PROPHET"):
unit.kill( 0, unit.getOwner( ) )
if not ( pDefendingPlayer.isHuman( ) ):
pDefendingPlayer.AI_changeAttitudeExtra( iPlayer, -5 )
szAttackedCiv = pDefendingPlayer.getCivilizationDescriptionKey()
szAttackingCiv = pAttackingPlayer.getCivilizationDescriptionKey()
szTitle = localText.getText("TXT_KEY_GODS_DISASTER_ANGER_BLOCKED", (szAttackedCiv , szAttackingCiv, ))
CyInterface().addImmediateMessage( szTitle , None)
else:
szAttackedCiv = pDefendingPlayer.getCivilizationDescriptionKey()
szAttackingCiv = pAttackingPlayer.getCivilizationDescriptionKey()
szTitle = localText.getText("TXT_KEY_GODS_DISASTER_HUMAN_BLOCKED", (szAttackedCiv , szAttackingCiv, ))
CyInterface().addImmediateMessage( szTitle , None)
return 1
return 0