Questions for modders

This is once more based on Lutefisk_Mafia's code. I just took it a bit further and added all livestock with one spell to grab resource and five spells to drop it, plus a promotion to allow these spells.

First CIV4PromotionInfos.xml adding Herder, Cow Herd, Deer Herd, Horse Herd, Pig Herd and Sheep Herd Promotions:
Spoiler :

Code:
        <PromotionInfo>
            <Type>PROMOTION_HERDER</Type>
            <Description>TXT_KEY_PROMOTION_HERDER</Description>
            <Help></Help>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <LayerAnimationPath>NONE</LayerAnimationPath>
            <PromotionPrereq>NONE</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>
            </UnitCombats>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>0</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/Builds/BuildPasture.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,8,7</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>0</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>NONE</PromotionPrereqAnd>
            <PromotionNextLevel>NONE</PromotionNextLevel>
            <PyPerTurn></PyPerTurn>
            <iGroupSize>0</iGroupSize>
            <UnitArtStyleType>NONE</UnitArtStyleType>
            <PromotionCombatType>NONE</PromotionCombatType>
            <iPromotionCombatMod>0</iPromotionCombatMod>
            <DamageTypeCombats>
            </DamageTypeCombats>
            <BonusAffinities>
            </BonusAffinities>
            <DamageTypeResists>
            </DamageTypeResists>
	    <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
	    <iAlignmentModifier>0</iAlignmentModifier>  
        </PromotionInfo>
        <PromotionInfo>
            <Type>PROMOTION_COW_HERD</Type>
            <Description>TXT_KEY_PROMOTION_COW_HERD</Description>
            <Help></Help>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <LayerAnimationPath>NONE</LayerAnimationPath>
            <PromotionPrereq>NONE</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>
            </UnitCombats>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>0</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Cow.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,7,12</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>0</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>NONE</PromotionPrereqAnd>
            <PromotionNextLevel>NONE</PromotionNextLevel>
            <PyPerTurn></PyPerTurn>
            <iGroupSize>0</iGroupSize>
            <UnitArtStyleType>NONE</UnitArtStyleType>
            <PromotionCombatType>NONE</PromotionCombatType>
            <iPromotionCombatMod>0</iPromotionCombatMod>
            <DamageTypeCombats>
            </DamageTypeCombats>
            <BonusAffinities>
            </BonusAffinities>
            <DamageTypeResists>
            </DamageTypeResists>
	    <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
	    <iAlignmentModifier>0</iAlignmentModifier>  
        </PromotionInfo>
        <PromotionInfo>
            <Type>PROMOTION_DEER_HERD</Type>
            <Description>TXT_KEY_PROMOTION_DEER_HERD</Description>
            <Help></Help>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <LayerAnimationPath>NONE</LayerAnimationPath>
            <PromotionPrereq>NONE</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>
            </UnitCombats>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>0</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Deer.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,1,15</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>0</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>NONE</PromotionPrereqAnd>
            <PromotionNextLevel>NONE</PromotionNextLevel>
            <PyPerTurn></PyPerTurn>
            <iGroupSize>0</iGroupSize>
            <UnitArtStyleType>NONE</UnitArtStyleType>
            <PromotionCombatType>NONE</PromotionCombatType>
            <iPromotionCombatMod>0</iPromotionCombatMod>
            <DamageTypeCombats>
            </DamageTypeCombats>
            <BonusAffinities>
            </BonusAffinities>
            <DamageTypeResists>
            </DamageTypeResists>
	    <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
	    <iAlignmentModifier>0</iAlignmentModifier>  
        </PromotionInfo>

Continued in the next post.
 
Promotions Continued:
Spoiler :

Code:
       <PromotionInfo>
            <Type>PROMOTION_HORSE_HERD</Type>
            <Description>TXT_KEY_PROMOTION_HORSE_HERD</Description>
            <Help></Help>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <LayerAnimationPath>NONE</LayerAnimationPath>
            <PromotionPrereq>NONE</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>
            </UnitCombats>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>0</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Horse.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,4,13</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>0</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>NONE</PromotionPrereqAnd>
            <PromotionNextLevel>NONE</PromotionNextLevel>
            <PyPerTurn></PyPerTurn>
            <iGroupSize>0</iGroupSize>
            <UnitArtStyleType>NONE</UnitArtStyleType>
            <PromotionCombatType>NONE</PromotionCombatType>
            <iPromotionCombatMod>0</iPromotionCombatMod>
            <DamageTypeCombats>
            </DamageTypeCombats>
            <BonusAffinities>
            </BonusAffinities>
            <DamageTypeResists>
            </DamageTypeResists>
	    <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
	    <iAlignmentModifier>0</iAlignmentModifier>  
        </PromotionInfo>
        <PromotionInfo>
            <Type>PROMOTION_PIG_HERD</Type>
            <Description>TXT_KEY_PROMOTION_PIG_HERD</Description>
            <Help></Help>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <LayerAnimationPath>NONE</LayerAnimationPath>
            <PromotionPrereq>NONE</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>
            </UnitCombats>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>0</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Pig.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,8,15</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>0</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>NONE</PromotionPrereqAnd>
            <PromotionNextLevel>NONE</PromotionNextLevel>
            <PyPerTurn></PyPerTurn>
            <iGroupSize>0</iGroupSize>
            <UnitArtStyleType>NONE</UnitArtStyleType>
            <PromotionCombatType>NONE</PromotionCombatType>
            <iPromotionCombatMod>0</iPromotionCombatMod>
            <DamageTypeCombats>
            </DamageTypeCombats>
            <BonusAffinities>
            </BonusAffinities>
            <DamageTypeResists>
            </DamageTypeResists>
	    <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
	    <iAlignmentModifier>0</iAlignmentModifier>  
        </PromotionInfo>
        <PromotionInfo>
            <Type>PROMOTION_SHEEP_HERD</Type>
            <Description>TXT_KEY_PROMOTION_SHEEP_HERD</Description>
            <Help></Help>
            <Sound>AS2D_IF_LEVELUP</Sound>
            <LayerAnimationPath>NONE</LayerAnimationPath>
            <PromotionPrereq>NONE</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>
            </UnitCombats>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>0</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Sheep.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,2,14</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>0</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>NONE</PromotionPrereqAnd>
            <PromotionNextLevel>NONE</PromotionNextLevel>
            <PyPerTurn></PyPerTurn>
            <iGroupSize>0</iGroupSize>
            <UnitArtStyleType>NONE</UnitArtStyleType>
            <PromotionCombatType>NONE</PromotionCombatType>
            <iPromotionCombatMod>0</iPromotionCombatMod>
            <DamageTypeCombats>
            </DamageTypeCombats>
            <BonusAffinities>
            </BonusAffinities>
            <DamageTypeResists>
            </DamageTypeResists>
	    <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
	    <iAlignmentModifier>0</iAlignmentModifier>  
        </PromotionInfo>

Continued in the next post.
 
Then adding spells in CIV4SpellInfos.xml - "Capture Herd", and Release Herd for each resource.
Spoiler :

Code:
         <SpellInfo>
            <Type>SPELL_CAPTURE_HERD</Type>
            <Description>TXT_KEY_SPELL_CAPTURE_HERD</Description>
            <Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
            <Strategy>NONE</Strategy>
            <Help>TXT_KEY_SPELL_CAPTURE_HERD_HELP</Help>
            <PromotionPrereq1>PROMOTION_HERDER</PromotionPrereq1>
            <PromotionPrereq2>NONE</PromotionPrereq2>
            <UnitPrereq>NONE</UnitPrereq>
            <UnitClassPrereq>NONE</UnitClassPrereq>
            <UnitCombatPrereq>UNITCOMBAT_RECON</UnitCombatPrereq>
            <UnitInStackPrereq>NONE</UnitInStackPrereq>
            <CivilizationPrereq>CIVILIZATION_AMBULNATI</CivilizationPrereq>
            <ReligionPrereq>NONE</ReligionPrereq>
            <StateReligionPrereq>NONE</StateReligionPrereq>
            <TechPrereq>NONE</TechPrereq>
            <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
   	    <iAlignmentModifier>0</iAlignmentModifier>
            <bAllowAI>1</bAllowAI>
            <bAdjacentToWaterOnly>0</bAdjacentToWaterOnly>
            <bCausesWar>1</bCausesWar>
            <bGlobal>0</bGlobal>
            <bInBordersOnly>0</bInBordersOnly>
            <bInCityOnly>0</bInCityOnly>
            <iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>0</bDisplayWhenDisabled>
            <bHasCasted>1</bHasCasted>
            <bIgnoreHasCasted>0</bIgnoreHasCasted>
            <bResistable>0</bResistable>
            <iRange>0</iRange>
            <iResistModify>0</iResistModify>
            <iDamage>0</iDamage>
            <iDamageLimit>0</iDamageLimit>
            <DamageType>NONE</DamageType>
            <AddPromotionType1>NONE</AddPromotionType1>
            <AddPromotionType2>NONE</AddPromotionType2>
            <AddPromotionType3>NONE</AddPromotionType3>
            <RemovePromotionType1>NONE</RemovePromotionType1>
            <RemovePromotionType2>NONE</RemovePromotionType2>
            <RemovePromotionType3>NONE</RemovePromotionType3>
            <bBuffCasterOnly>1</bBuffCasterOnly>
            <ConvertUnitType>NONE</ConvertUnitType>
            <CreateBuildingType>NONE</CreateBuildingType>
            <CreateFeatureType>NONE</CreateFeatureType>
            <CreateImprovementType>NONE</CreateImprovementType>
            <SpreadReligion>NONE</SpreadReligion>
            <CreateUnitType>NONE</CreateUnitType>
            <iCreateUnitNum>0</iCreateUnitNum>
            <bPermanentUnitCreate>0</bPermanentUnitCreate>
            <CreateUnitPromotion>NONE</CreateUnitPromotion>
            <bImmuneTeam>0</bImmuneTeam>
            <bImmuneNeutral>0</bImmuneNeutral>
            <bImmuneEnemy>0</bImmuneEnemy>
            <bImmuneFlying>0</bImmuneFlying>
            <bImmuneNotAlive>0</bImmuneNotAlive>
            <bDispel>0</bDispel>
            <bPush>0</bPush>
            <bRemoveHasCasted>0</bRemoveHasCasted>
            <bSacrificeCaster>0</bSacrificeCaster>
            <iChangePopulation>0</iChangePopulation>
            <iCost>0</iCost>
			<iDelay>0</iDelay>
            <iImmobileTurns>0</iImmobileTurns>
            <iMiscastChance>0</iMiscastChance>
            <PyMiscast></PyMiscast>
            <PyResult>spellCaptureHerd(pCaster)</PyResult>
            <PyRequirement>reqCaptureHerd(pCaster)</PyRequirement>
            <Effect>EFFECT_SPELL1</Effect>
            <Sound>AS3D_SPELL_TRAIN</Sound>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>1</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/Builds/BuildPasture.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,8,7</Button>
        </SpellInfo>
        <SpellInfo>
            <Type>SPELL_RELEASE_HORSE_HERD</Type>
            <Description>TXT_KEY_SPELL_RELEASE_HERD</Description>
            <Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
            <Strategy>NONE</Strategy>
            <Help>TXT_KEY_SPELL_RELEASE_HERD_HELP</Help>
            <PromotionPrereq1>PROMOTION_HORSE_HERD</PromotionPrereq1>
            <PromotionPrereq2>NONE</PromotionPrereq2>
            <UnitPrereq>NONE</UnitPrereq>
            <UnitClassPrereq>NONE</UnitClassPrereq>
            <UnitCombatPrereq>UNITCOMBAT_RECON</UnitCombatPrereq>
            <UnitInStackPrereq>NONE</UnitInStackPrereq>
            <CivilizationPrereq>CIVILIZATION_AMBULNATI</CivilizationPrereq>
            <ReligionPrereq>NONE</ReligionPrereq>
            <StateReligionPrereq>NONE</StateReligionPrereq>
            <TechPrereq>NONE</TechPrereq>
            <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
   	    <iAlignmentModifier>0</iAlignmentModifier>
            <bAllowAI>1</bAllowAI>
            <bAdjacentToWaterOnly>0</bAdjacentToWaterOnly>
            <bCausesWar>0</bCausesWar>
            <bGlobal>0</bGlobal>
            <bInBordersOnly>0</bInBordersOnly>
            <bInCityOnly>0</bInCityOnly>
            <iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
            <bHasCasted>1</bHasCasted>
            <bIgnoreHasCasted>0</bIgnoreHasCasted>
            <bResistable>0</bResistable>
            <iRange>0</iRange>
            <iResistModify>0</iResistModify>
            <iDamage>0</iDamage>
            <iDamageLimit>0</iDamageLimit>
            <DamageType>NONE</DamageType>
            <AddPromotionType1>NONE</AddPromotionType1>
            <AddPromotionType2>NONE</AddPromotionType2>
            <AddPromotionType3>NONE</AddPromotionType3>
            <RemovePromotionType1>NONE</RemovePromotionType1>
            <RemovePromotionType2>NONE</RemovePromotionType2>
            <RemovePromotionType3>NONE</RemovePromotionType3>
            <bBuffCasterOnly>1</bBuffCasterOnly>
            <ConvertUnitType>NONE</ConvertUnitType>
            <CreateBuildingType>NONE</CreateBuildingType>
            <CreateFeatureType>NONE</CreateFeatureType>
            <CreateImprovementType>NONE</CreateImprovementType>
            <SpreadReligion>NONE</SpreadReligion>
            <CreateUnitType>NONE</CreateUnitType>
            <iCreateUnitNum>0</iCreateUnitNum>
            <bPermanentUnitCreate>0</bPermanentUnitCreate>
            <CreateUnitPromotion>NONE</CreateUnitPromotion>
            <bImmuneTeam>0</bImmuneTeam>
            <bImmuneNeutral>0</bImmuneNeutral>
            <bImmuneEnemy>0</bImmuneEnemy>
            <bImmuneFlying>0</bImmuneFlying>
            <bImmuneNotAlive>0</bImmuneNotAlive>
            <bDispel>0</bDispel>
            <bPush>0</bPush>
            <bRemoveHasCasted>0</bRemoveHasCasted>
            <bSacrificeCaster>0</bSacrificeCaster>
            <iChangePopulation>0</iChangePopulation>
            <iCost>0</iCost>
			<iDelay>0</iDelay>
			<iImmobileTurns>0</iImmobileTurns>
            <iMiscastChance>0</iMiscastChance>
            <PyMiscast></PyMiscast>
            <PyResult>spellReleaseHorseHerd(pCaster)</PyResult>
            <PyRequirement>reqReleaseHorseHerd(pCaster)</PyRequirement>
            <Effect>EFFECT_SPELL1</Effect>
            <Sound>AS3D_SPELL_TRAIN</Sound>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>1</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Horse.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,4,13</Button>
        </SpellInfo>
        <SpellInfo>
            <Type>SPELL_RELEASE_PIG_HERD</Type>
            <Description>TXT_KEY_SPELL_RELEASE_HERD</Description>
            <Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
            <Strategy>NONE</Strategy>
            <Help>TXT_KEY_SPELL_RELEASE_HERD_HELP</Help>
            <PromotionPrereq1>PROMOTION_PIG_HERD</PromotionPrereq1>
            <PromotionPrereq2>NONE</PromotionPrereq2>
            <UnitPrereq>NONE</UnitPrereq>
            <UnitClassPrereq>NONE</UnitClassPrereq>
            <UnitCombatPrereq>UNITCOMBAT_RECON</UnitCombatPrereq>
            <UnitInStackPrereq>NONE</UnitInStackPrereq>
            <CivilizationPrereq>CIVILIZATION_AMBULNATI</CivilizationPrereq>
            <ReligionPrereq>NONE</ReligionPrereq>
            <StateReligionPrereq>NONE</StateReligionPrereq>
            <TechPrereq>NONE</TechPrereq>
            <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
   	    <iAlignmentModifier>0</iAlignmentModifier>
            <bAllowAI>1</bAllowAI>
            <bAdjacentToWaterOnly>0</bAdjacentToWaterOnly>
            <bCausesWar>0</bCausesWar>
            <bGlobal>0</bGlobal>
            <bInBordersOnly>0</bInBordersOnly>
            <bInCityOnly>0</bInCityOnly>
            <iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
            <bHasCasted>1</bHasCasted>
            <bIgnoreHasCasted>0</bIgnoreHasCasted>
            <bResistable>0</bResistable>
            <iRange>0</iRange>
            <iResistModify>0</iResistModify>
            <iDamage>0</iDamage>
            <iDamageLimit>0</iDamageLimit>
            <DamageType>NONE</DamageType>
            <AddPromotionType1>NONE</AddPromotionType1>
            <AddPromotionType2>NONE</AddPromotionType2>
            <AddPromotionType3>NONE</AddPromotionType3>
            <RemovePromotionType1>NONE</RemovePromotionType1>
            <RemovePromotionType2>NONE</RemovePromotionType2>
            <RemovePromotionType3>NONE</RemovePromotionType3>
            <bBuffCasterOnly>1</bBuffCasterOnly>
            <ConvertUnitType>NONE</ConvertUnitType>
            <CreateBuildingType>NONE</CreateBuildingType>
            <CreateFeatureType>NONE</CreateFeatureType>
            <CreateImprovementType>NONE</CreateImprovementType>
            <SpreadReligion>NONE</SpreadReligion>
            <CreateUnitType>NONE</CreateUnitType>
            <iCreateUnitNum>0</iCreateUnitNum>
            <bPermanentUnitCreate>0</bPermanentUnitCreate>
            <CreateUnitPromotion>NONE</CreateUnitPromotion>
            <bImmuneTeam>0</bImmuneTeam>
            <bImmuneNeutral>0</bImmuneNeutral>
            <bImmuneEnemy>0</bImmuneEnemy>
            <bImmuneFlying>0</bImmuneFlying>
            <bImmuneNotAlive>0</bImmuneNotAlive>
            <bDispel>0</bDispel>
            <bPush>0</bPush>
            <bRemoveHasCasted>0</bRemoveHasCasted>
            <bSacrificeCaster>0</bSacrificeCaster>
            <iChangePopulation>0</iChangePopulation>
            <iCost>0</iCost>
			<iDelay>0</iDelay>
			<iImmobileTurns>0</iImmobileTurns>
            <iMiscastChance>0</iMiscastChance>
            <PyMiscast></PyMiscast>
            <PyResult>spellReleasePigHerd(pCaster)</PyResult>
            <PyRequirement>reqReleasePigHerd(pCaster)</PyRequirement>
            <Effect>EFFECT_SPELL1</Effect>
            <Sound>AS3D_SPELL_TRAIN</Sound>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>1</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Pig.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,8,15</Button>
        </SpellInfo>
        <SpellInfo>
            <Type>SPELL_RELEASE_SHEEP_HERD</Type>
            <Description>TXT_KEY_SPELL_RELEASE_HERD</Description>
            <Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
            <Strategy>NONE</Strategy>
            <Help>TXT_KEY_SPELL_RELEASE_HERD_HELP</Help>
            <PromotionPrereq1>PROMOTION_SHEEP_HERD</PromotionPrereq1>
            <PromotionPrereq2>NONE</PromotionPrereq2>
            <UnitPrereq>NONE</UnitPrereq>
            <UnitClassPrereq>NONE</UnitClassPrereq>
            <UnitCombatPrereq>UNITCOMBAT_RECON</UnitCombatPrereq>
            <UnitInStackPrereq>NONE</UnitInStackPrereq>
            <CivilizationPrereq>CIVILIZATION_AMBULNATI</CivilizationPrereq>
            <ReligionPrereq>NONE</ReligionPrereq>
            <StateReligionPrereq>NONE</StateReligionPrereq>
            <TechPrereq>NONE</TechPrereq>
            <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
   	    <iAlignmentModifier>0</iAlignmentModifier>
            <bAllowAI>1</bAllowAI>
            <bAdjacentToWaterOnly>0</bAdjacentToWaterOnly>
            <bCausesWar>0</bCausesWar>
            <bGlobal>0</bGlobal>
            <bInBordersOnly>0</bInBordersOnly>
            <bInCityOnly>0</bInCityOnly>
            <iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
            <bHasCasted>1</bHasCasted>

            <bIgnoreHasCasted>0</bIgnoreHasCasted>
            <bResistable>0</bResistable>
            <iRange>0</iRange>
            <iResistModify>0</iResistModify>
            <iDamage>0</iDamage>
            <iDamageLimit>0</iDamageLimit>
            <DamageType>NONE</DamageType>
            <AddPromotionType1>NONE</AddPromotionType1>
            <AddPromotionType2>NONE</AddPromotionType2>
            <AddPromotionType3>NONE</AddPromotionType3>
            <RemovePromotionType1>NONE</RemovePromotionType1>
            <RemovePromotionType2>NONE</RemovePromotionType2>
            <RemovePromotionType3>NONE</RemovePromotionType3>
            <bBuffCasterOnly>1</bBuffCasterOnly>
            <ConvertUnitType>NONE</ConvertUnitType>
            <CreateBuildingType>NONE</CreateBuildingType>
            <CreateFeatureType>NONE</CreateFeatureType>
            <CreateImprovementType>NONE</CreateImprovementType>
            <SpreadReligion>NONE</SpreadReligion>
            <CreateUnitType>NONE</CreateUnitType>
            <iCreateUnitNum>0</iCreateUnitNum>
            <bPermanentUnitCreate>0</bPermanentUnitCreate>
            <CreateUnitPromotion>NONE</CreateUnitPromotion>
            <bImmuneTeam>0</bImmuneTeam>
            <bImmuneNeutral>0</bImmuneNeutral>
            <bImmuneEnemy>0</bImmuneEnemy>
            <bImmuneFlying>0</bImmuneFlying>
            <bImmuneNotAlive>0</bImmuneNotAlive>
            <bDispel>0</bDispel>
            <bPush>0</bPush>
            <bRemoveHasCasted>0</bRemoveHasCasted>
            <bSacrificeCaster>0</bSacrificeCaster>
            <iChangePopulation>0</iChangePopulation>
            <iCost>0</iCost>
			<iDelay>0</iDelay>
			<iImmobileTurns>0</iImmobileTurns>
            <iMiscastChance>0</iMiscastChance>
            <PyMiscast></PyMiscast>
            <PyResult>spellReleaseSheepHerd(pCaster)</PyResult>
            <PyRequirement>reqReleaseSheepHerd(pCaster)</PyRequirement>
            <Effect>EFFECT_SPELL1</Effect>
            <Sound>AS3D_SPELL_TRAIN</Sound>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>1</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Sheep.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,2,14</Button>
        </SpellInfo>
        <SpellInfo>
            <Type>SPELL_RELEASE_COW_HERD</Type>
            <Description>TXT_KEY_SPELL_RELEASE_HERD</Description>
            <Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
            <Strategy>NONE</Strategy>
            <Help>TXT_KEY_SPELL_RELEASE_HERD_HELP</Help>
            <PromotionPrereq1>PROMOTION_COW_HERD</PromotionPrereq1>
            <PromotionPrereq2>NONE</PromotionPrereq2>
            <UnitPrereq>NONE</UnitPrereq>
            <UnitClassPrereq>NONE</UnitClassPrereq>
            <UnitCombatPrereq>UNITCOMBAT_RECON</UnitCombatPrereq>
            <UnitInStackPrereq>NONE</UnitInStackPrereq>
            <CivilizationPrereq>CIVILIZATION_AMBULNATI</CivilizationPrereq>
            <ReligionPrereq>NONE</ReligionPrereq>
            <StateReligionPrereq>NONE</StateReligionPrereq>
            <TechPrereq>NONE</TechPrereq>
            <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
   	    <iAlignmentModifier>0</iAlignmentModifier>
            <bAllowAI>1</bAllowAI>
            <bAdjacentToWaterOnly>0</bAdjacentToWaterOnly>
            <bCausesWar>0</bCausesWar>
            <bGlobal>0</bGlobal>
            <bInBordersOnly>0</bInBordersOnly>
            <bInCityOnly>0</bInCityOnly>
            <iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
            <bHasCasted>1</bHasCasted>
            <bIgnoreHasCasted>0</bIgnoreHasCasted>
            <bResistable>0</bResistable>
            <iRange>0</iRange>
            <iResistModify>0</iResistModify>
            <iDamage>0</iDamage>
            <iDamageLimit>0</iDamageLimit>
            <DamageType>NONE</DamageType>
            <AddPromotionType1>NONE</AddPromotionType1>
            <AddPromotionType2>NONE</AddPromotionType2>
            <AddPromotionType3>NONE</AddPromotionType3>
            <RemovePromotionType1>NONE</RemovePromotionType1>
            <RemovePromotionType2>NONE</RemovePromotionType2>
            <RemovePromotionType3>NONE</RemovePromotionType3>
            <bBuffCasterOnly>1</bBuffCasterOnly>
            <ConvertUnitType>NONE</ConvertUnitType>
            <CreateBuildingType>NONE</CreateBuildingType>
            <CreateFeatureType>NONE</CreateFeatureType>
            <CreateImprovementType>NONE</CreateImprovementType>
            <SpreadReligion>NONE</SpreadReligion>
            <CreateUnitType>NONE</CreateUnitType>
            <iCreateUnitNum>0</iCreateUnitNum>
            <bPermanentUnitCreate>0</bPermanentUnitCreate>
            <CreateUnitPromotion>NONE</CreateUnitPromotion>
            <bImmuneTeam>0</bImmuneTeam>
            <bImmuneNeutral>0</bImmuneNeutral>
            <bImmuneEnemy>0</bImmuneEnemy>
            <bImmuneFlying>0</bImmuneFlying>
            <bImmuneNotAlive>0</bImmuneNotAlive>
            <bDispel>0</bDispel>
            <bPush>0</bPush>
            <bRemoveHasCasted>0</bRemoveHasCasted>
            <bSacrificeCaster>0</bSacrificeCaster>
            <iChangePopulation>0</iChangePopulation>
            <iCost>0</iCost>
			<iDelay>0</iDelay>
			<iImmobileTurns>0</iImmobileTurns>
            <iMiscastChance>0</iMiscastChance>
            <PyMiscast></PyMiscast>
            <PyResult>spellReleaseCowHerd(pCaster)</PyResult>
            <PyRequirement>reqReleaseCowHerd(pCaster)</PyRequirement>
            <Effect>EFFECT_SPELL1</Effect>
            <Sound>AS3D_SPELL_TRAIN</Sound>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>1</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Cow.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,7,12</Button>
        </SpellInfo>
        <SpellInfo>
            <Type>SPELL_RELEASE_DEER_HERD</Type>
            <Description>TXT_KEY_SPELL_RELEASE_HERD</Description>
            <Civilopedia>TXT_KEY_SPELL_PLACEHOLDER_PEDIA</Civilopedia>
            <Strategy>NONE</Strategy>
            <Help>TXT_KEY_SPELL_RELEASE_HERD_HELP</Help>
            <PromotionPrereq1>PROMOTION_DEER_HERD</PromotionPrereq1>
            <PromotionPrereq2>NONE</PromotionPrereq2>
            <UnitPrereq>NONE</UnitPrereq>
            <UnitClassPrereq>NONE</UnitClassPrereq>
            <UnitCombatPrereq>UNITCOMBAT_RECON</UnitCombatPrereq>
            <UnitInStackPrereq>NONE</UnitInStackPrereq>
            <CivilizationPrereq>CIVILIZATION_AMBULNATI</CivilizationPrereq>
            <ReligionPrereq>NONE</ReligionPrereq>
            <StateReligionPrereq>NONE</StateReligionPrereq>
            <TechPrereq>NONE</TechPrereq>
            <iPrereqBroadAlignment>0</iPrereqBroadAlignment>
   	    <iAlignmentModifier>0</iAlignmentModifier>
            <bAllowAI>1</bAllowAI>
            <bAdjacentToWaterOnly>0</bAdjacentToWaterOnly>
            <bCausesWar>0</bCausesWar>
            <bGlobal>0</bGlobal>
            <bInBordersOnly>0</bInBordersOnly>
            <bInCityOnly>0</bInCityOnly>
            <iAIWeight>50</iAIWeight>
            <bDisplayWhenDisabled>1</bDisplayWhenDisabled>
            <bHasCasted>1</bHasCasted>
            <bIgnoreHasCasted>0</bIgnoreHasCasted>
            <bResistable>0</bResistable>
            <iRange>0</iRange>
            <iResistModify>0</iResistModify>
            <iDamage>0</iDamage>
            <iDamageLimit>0</iDamageLimit>
            <DamageType>NONE</DamageType>
            <AddPromotionType1>NONE</AddPromotionType1>
            <AddPromotionType2>NONE</AddPromotionType2>
            <AddPromotionType3>NONE</AddPromotionType3>
            <RemovePromotionType1>NONE</RemovePromotionType1>
            <RemovePromotionType2>NONE</RemovePromotionType2>
            <RemovePromotionType3>NONE</RemovePromotionType3>
            <bBuffCasterOnly>1</bBuffCasterOnly>
            <ConvertUnitType>NONE</ConvertUnitType>
            <CreateBuildingType>NONE</CreateBuildingType>
            <CreateFeatureType>NONE</CreateFeatureType>
            <CreateImprovementType>NONE</CreateImprovementType>
            <SpreadReligion>NONE</SpreadReligion>
            <CreateUnitType>NONE</CreateUnitType>
            <iCreateUnitNum>0</iCreateUnitNum>
            <bPermanentUnitCreate>0</bPermanentUnitCreate>
            <CreateUnitPromotion>NONE</CreateUnitPromotion>
            <bImmuneTeam>0</bImmuneTeam>
            <bImmuneNeutral>0</bImmuneNeutral>
            <bImmuneEnemy>0</bImmuneEnemy>
            <bImmuneFlying>0</bImmuneFlying>
            <bImmuneNotAlive>0</bImmuneNotAlive>
            <bDispel>0</bDispel>
            <bPush>0</bPush>
            <bRemoveHasCasted>0</bRemoveHasCasted>
            <bSacrificeCaster>0</bSacrificeCaster>
            <iChangePopulation>0</iChangePopulation>
            <iCost>0</iCost>
			<iDelay>0</iDelay>
			<iImmobileTurns>0</iImmobileTurns>
            <iMiscastChance>0</iMiscastChance>
            <PyMiscast></PyMiscast>
            <PyResult>spellReleaseDeerHerd(pCaster)</PyResult>
            <PyRequirement>reqReleaseDeerHerd(pCaster)</PyRequirement>
            <Effect>EFFECT_SPELL1</Effect>
            <Sound>AS3D_SPELL_TRAIN</Sound>
            <HotKey></HotKey>
            <bAltDown>0</bAltDown>
            <bShiftDown>0</bShiftDown>
            <bCtrlDown>0</bCtrlDown>
            <bGraphicalOnly>1</bGraphicalOnly>
            <iHotKeyPriority>0</iHotKeyPriority>
            <Button>,Art/Interface/Buttons/WorldBuilder/Deer.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,1,15</Button>
        </SpellInfo>

And finally in entrypoints/CvSpellInterface.py adding spells and reqs to "Capture Herd" and the five Release Herd spells.
Spoiler :

Code:
def reqCaptureHerd(caster):
	pPlot = caster.plot()
	iHorse = gc.getInfoTypeForString('BONUS_HORSE')
	iPig = gc.getInfoTypeForString('BONUS_PIG')
	iSheep = gc.getInfoTypeForString('BONUS_SHEEP')
	iCow = gc.getInfoTypeForString('BONUS_COW')
	iDeer = gc.getInfoTypeForString('BONUS_DEER')
	iBonus = pPlot.getBonusType(-1)
	if pPlot.getBonusType(-1) != gc.getInfoTypeForString('BONUS_HORSE'):
		if pPlot.getBonusType(-1) != gc.getInfoTypeForString('BONUS_PIG'):
			if pPlot.getBonusType(-1) != gc.getInfoTypeForString('BONUS_COW'):
				if pPlot.getBonusType(-1) != gc.getInfoTypeForString('BONUS_SHEEP'):
					if pPlot.getBonusType(-1) != gc.getInfoTypeForString('BONUS_DEER'):
						return False
	if (caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_COW_HERD')) and iBonus == iCow):
		return False
	if (caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_HORSE_HERD')) and iBonus == iHorse):
		return False
	if (caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_PIG_HERD')) and iBonus == iPig):
		return False
	if (caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_SHEEP_HERD')) and iBonus == iSheep):
		return False
	if (caster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DEER_HERD')) and iBonus == iDeer):
		return False
	return True

def spellCaptureHerd(caster):
	pPlot = caster.plot()
	iHorse = gc.getInfoTypeForString('BONUS_HORSE')
	iPig = gc.getInfoTypeForString('BONUS_PIG')
	iSheep = gc.getInfoTypeForString('BONUS_SHEEP')
	iCow = gc.getInfoTypeForString('BONUS_COW')
	iDeer = gc.getInfoTypeForString('BONUS_DEER')
	if pPlot.getBonusType(-1) == iHorse:
		caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HORSE_HERD'), True)
	if pPlot.getBonusType(-1) == iPig:
		caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_PIG_HERD'), True)
	if pPlot.getBonusType(-1) == iCow:
		caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_COW_HERD'), True)
	if pPlot.getBonusType(-1) == iSheep:
		caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHEEP_HERD'), True)
	if pPlot.getBonusType(-1) == iDeer:
		caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEER_HERD'), True)	
	pPlot.setBonusType(-1)
	pPlot.setImprovementType(-1)
	if pPlot.isOwned():
		startWar(caster.getOwner(), pPlot.getOwner())

def reqReleasePigHerd(caster):
	pPlot = caster.plot()
#	if pPlot.getOwner() != caster.getOwner():
#		return False
	if pPlot.isWater():
		return false
	if pPlot.isCity():
		return False
	if pPlot.getBonusType(-1) != -1:
		return False
	return True

def spellReleasePigHerd(caster):
	pPlot = caster.plot()
	iBonus = gc.getInfoTypeForString('BONUS_PIG')
	pPlot.setBonusType(iBonus)
	caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_PIG_HERD'), False)

def reqReleaseSheepHerd(caster):
	pPlot = caster.plot()
#	if pPlot.getOwner() != caster.getOwner():
#		return False
	if pPlot.isWater():
		return false
	if pPlot.isCity():
		return False
	if pPlot.getBonusType(-1) != -1:
		return False
	return True

def spellReleaseSheepHerd(caster):
	pPlot = caster.plot()
	iBonus = gc.getInfoTypeForString('BONUS_SHEEP')
	pPlot.setBonusType(iBonus)
	caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHEEP_HERD'), False)

def reqReleaseCowHerd(caster):
	pPlot = caster.plot()
#	if pPlot.getOwner() != caster.getOwner():
#		return False
	if pPlot.isWater():
		return false
	if pPlot.isCity():
		return False
	if pPlot.getBonusType(-1) != -1:
		return False
	return True

def spellReleaseCowHerd(caster):
	pPlot = caster.plot()
	iBonus = gc.getInfoTypeForString('BONUS_COW')
	pPlot.setBonusType(iBonus)
	caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_COW_HERD'), False)

def reqReleaseDeerHerd(caster):
	pPlot = caster.plot()
#	if pPlot.getOwner() != caster.getOwner():
#		return False
	if pPlot.isWater():
		return false
	if pPlot.isCity():
		return False
	if pPlot.getBonusType(-1) != -1:
		return False
	return True

def spellReleaseDeerHerd(caster):
	pPlot = caster.plot()
	iBonus = gc.getInfoTypeForString('BONUS_DEER')
	pPlot.setBonusType(iBonus)
	caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEER_HERD'), False)

def reqReleaseHorseHerd(caster):
	pPlot = caster.plot()
#	if pPlot.getOwner() != caster.getOwner():
#		return False
	if pPlot.isWater():
		return false
	if pPlot.isCity():
		return False
	if pPlot.getBonusType(-1) != -1:
		return False
	return True

def spellReleaseHorseHerd(caster):
	pPlot = caster.plot()
	iBonus = gc.getInfoTypeForString('BONUS_HORSE')
	pPlot.setBonusType(iBonus)
	caster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HORSE_HERD'), False)


Here it is. Hope it's useful. And if there's a better way of doing it - please let me know!
 
Air Promotions available to everyone: This is because you are doing it as a Module. Modules don't load anything but numbers very nicely. If you look at the first promotions listed in the XML (while in game) you'll notice that THEY now have the pre-req's which you had set for the Modular Promotions instead. Really sucks, and I am working on making it not happen anymore, but the code to change over is quite extensive.


For the Herding: Well, the first better way to do it is to modify your Schema to make all those tags you aren't using (and have default values) not be listed at all :) Makes for easier review and posting IMO. As well as much smaller file sizes. You'll see quite a few samples of this in FF 041. Other than that... haven't looked too closely at the actual code, but if it is just what Lutefisk posted I'd bet it's pretty decent already :)
 
Air Promotions available to everyone: This is because you are doing it as a Module. Modules don't load anything but numbers very nicely. If you look at the first promotions listed in the XML (while in game) you'll notice that THEY now have the pre-req's which you had set for the Modular Promotions instead. Really sucks, and I am working on making it not happen anymore, but the code to change over is quite extensive.

Any way of avoiding this? Should just add promotions to the main file?
 
Pretty much. That or don't use anything but numbers in your modular files (so no Prereqs of any kind, among other things. Description/Civilopedia/Strategy entries are fine though. It has to do with referencing other XML that aren't loaded yet, or the current XML file)
 
Pretty much. That or don't use anything but numbers in your modular files (so no Prereqs of any kind, among other things. Description/Civilopedia/Strategy entries are fine though. It has to do with referencing other XML that aren't loaded yet, or the current XML file)

Thanks - moved the promotions to the bottom of the main file and things are looking good. Do you know if the "Palace Jump" done through SDK or some other way? Is it possible to have civ without a palace?

Edit: Taking off isCapital flag on Palace Building in XML does the trick. No more Palaces appearing all over the place. Having central government might help though... And does look in C like Capital is set with a building. Maybe if it's made a "caster" or "equipment" depending building it would only exist in city where a certain item is.
 
I believe it would stop the unit from being able to be loaded in a ship (or hunter, or Trojan Horse), but it would not stop it from being carried as cargo in general; the unit carrying it would just need to have <DomainCargo>DOMAIN_IMMOBILE</DomainCargo>, which would mean it could carry only immobile units.
 
Are there any SDK docs? It looks like civ4wiki used to have something like it, but I can't find anything else that describes the files available and functions in them.
 
Not too much so far. But if you have any specific requests you can pester me to update the Wikia (link in Sig). I have also linked every decent Modding help compilation I have found on the frontpage of the Wikia, there are quite a few attempts currently in the works to reconstruct the lost Civ4Wiki, but I don't know that any of them have really done SDK much so far.


But by all means, please do request things for the Wikia. Main reason I haven't posted much there is a fear that nobody is using it, and the fact that there is simply too much needing done for me to focus on any one piece and feel it is a worthwhile use of time. But if someone requests something then I will happily fill it in.
 
Top Bottom