Quick Modding Questions Thread

Yes. Special buildings/units being valid is a property of the game, that is set globally for everyone once the project is completed.
 
Do minor civs fight with barbarian units? And vice versa? And with other minor civs?

For example, if I have two minor civs and the barbarians, and I spawn units for all three in one area, will they all duke it out with each other?
 
Do minor civs fight with barbarian units? And vice versa? And with other minor civs?

For example, if I have two minor civs and the barbarians, and I spawn units for all three in one area, will they all duke it out with each other?
Yes
 
I don't think minor civs are inherently at war with each other, and if I understand them correctly, they will not actively pursue war/expansion either. But barbarians will definitely treat minor civs like any other civ.
 
I don't think minor civs are inherently at war with each other
I'm pretty sure they are.
from CvGame::initDiplomacy
Code:
   for (iI = 0; iI < MAX_TEAMS; iI++)
   {
       GET_TEAM((TeamTypes)iI).meet(((TeamTypes)iI), false);

       if (GET_TEAM((TeamTypes)iI).isBarbarian() || GET_TEAM((TeamTypes)iI).isMinorCiv())
       {
           for (iJ = 0; iJ < MAX_CIV_TEAMS; iJ++)
           {
               if (iI != iJ)
               {
                   GET_TEAM((TeamTypes)iI).declareWar(((TeamTypes)iJ), false, NO_WARPLAN);
               }
           }
       }
   }
This has been modified in RFC, though.
 
Nevermind then, sorry for the misinformation.
 
CvCity::canCreate uses Python callbacks named "canCreate" and "cannotCreate". I don't have the source code on hand for that but you should find this function in EntryPoints/CvGameInterface.py. You have the city and the project ID available there.
 
Thanks for the answer but I wasn't clear enough.
I am a noob for python. I can only modify and merge python code - and even that may be wrong :lol: - but I cannot write new code. That's why I asked for a mod comp that I could merge.
 
Ooookay...

So I have found this in PyHelperrs.py:
Code:
    def canCreate (self, iProject):
        return self.city.canCreate(iProject, False, False)

    def canMaintain (self, iItem):
        return self.city.canMaintain(iItem, False)
       
    def getProductionBuilding(self):
        "int - What building ID this city is working on"
        return self.city.getProductionBuilding()
       
    def getProductionProject(self):
        "int - What Project ID this city is working on"
        return self.city.getProductionProject()
Or is it just some interface thingy? :shifty:
Have so much to learn :rolleyes:

EDIT:

And found this in Platy's Gigapack:
Code:
                    if city.isHasReligion(iStateReligion):
 
Last edited:
Hi, I've got a weird problem, specifically a leaderhead problem.

In Final Frontier Plus, the leaderheads while in-game do not have any idle animations, they will play their intial greeting animation and others (disgruntled/happy anims) but they will freeze once they are done doing their greeting animation.
The weird thing is is that this is not a problem in the normal Final Frontier mod.

What the hell is causing this weird error? I've tried copying the leaderhead art files from the original final frontier over the plus files (thinking that there might have been some kind of weird copying error) but the problem persists, so there is some kind of code somewhere I have to deal with, where are idle leaderhead anims defined?
 
Hi, I've got a weird problem, specifically a leaderhead problem.

In Final Frontier Plus, the leaderheads while in-game do not have any idle animations, they will play their intial greeting animation and others (disgruntled/happy anims) but they will freeze once they are done doing their greeting animation.
The weird thing is is that this is not a problem in the normal Final Frontier mod.

What the hell is causing this weird error? I've tried copying the leaderhead art files from the original final frontier over the plus files (thinking that there might have been some kind of weird copying error) but the problem persists, so there is some kind of code somewhere I have to deal with, where are idle leaderhead anims defined?
Sounds a bit like only half of the kf files (which hold the animation information) are present in the folder. Could you post your entry in the CIV4ArtDefines_Leaderhead.xml file? And also a screenshot of the folder the <KFM> line in it points towards?
 
Sounds a bit like only half of the kf files (which hold the animation information) are present in the folder. Could you post your entry in the CIV4ArtDefines_Leaderhead.xml file? And also a screenshot of the folder the <KFM> line in it points towards?

Hey, I took your advice, unfortunately it didn't work, still same issue.
I compared the regular final frontier Defines_Leaderhead xml and compared it to FFplus's version, but there were no differences, the weird thing is that I do not encounter this error in the regular Final Frontier mod. To be safe I copied the kfm and kf files from the base game leaderheads into the leaderhead folders to see if something weird was happening with the base game folders not being read, but the error still persisted despite the necessary files being in there. To confirm, there were no changes to a new game either.

Nevertheless, just incase I missed something, here's both xml files (From the base mod and FFplus) and a screenshot of one of the leader folders after I got done with my copying that did not resolve the problem.
 

Attachments

  • Halis.JPG
    Halis.JPG
    97.4 KB · Views: 104
  • CIV4ArtDefines_Leaderhead (Final Frontier unmodded).xml
    4.5 KB · Views: 31
  • CIV4ArtDefines_Leaderhead (Final Frontier plus Version).xml
    4.9 KB · Views: 38
Last edited:
Hey, I took your advice, unfortunately it didn't work, still same issue.
I compared the regular final frontier Defines_Leaderhead xml and compared it to FFplus's version, but there were no differences, the weird thing is that I do not encounter this error in the regular Final Frontier mod. To be safe I copied the kfm and kf files from the base game leaderheads into the leaderhead folders to see if something weird was happening with the base game folders not being read, but the error still persisted despite the necessary files being in there. To confirm, there were no changes to a new game either.

Nevertheless, just incase I missed something, here's both xml files (From the base mod and FFplus) and a screenshot of one of the leader folders after I got done with my copying that did not resolve the problem.
Hm, good question what is going wrong there. Guess your first try was without any kf or kfm files in the Halis folder, right? Otherwise you could try to remove them all from the Halis folder, since the <KFM> line is not referencing to the Halis folder anyhow. Otherwise, you could try to change the <KFM> line to:
Code:
           <KFM>art/LeaderHeads/Halis/Gilgamesh.kfm</KFM>
Do you have the same problem for all leaderheads? If so, maybe try to use the unmoddified Final Frontier CIV4ArtDefines_Leaderhead.xml instead and see if the leaderheads work in that case at least.
 
Little help please.

Was it possible to build farms in Tundra in original game? I am pretty sure it wasn't.
However in my mod I changed something and now I can build farms in Tundras, which is becoming OP.
Best part is, only Plains and Grassland specifically set to allow farms.

Some insight please:

Code:
       <ImprovementInfo>
           <Type>IMPROVEMENT_FARM</Type>
           <Description>TXT_KEY_IMPROVEMENT_FARM</Description>
           <Civilopedia>TXT_KEY_IMPROVEMENT_FARM_PEDIA</Civilopedia>
           <ArtDefineTag>ART_DEF_IMPROVEMENT_FARM</ArtDefineTag>
           <PrereqNatureYields>
               <iYield>1</iYield>
               <iYield>0</iYield>
               <iYield>0</iYield>
           </PrereqNatureYields>
           <IrrigatedYieldChange>
               <iYield>1</iYield>
               <iYield>0</iYield>
               <iYield>0</iYield>
           </IrrigatedYieldChange>
           <bActsAsCity>0</bActsAsCity>
           <bHillsMakesValid>0</bHillsMakesValid>
           <bFreshWaterMakesValid>1</bFreshWaterMakesValid>
           <bRiverSideMakesValid>0</bRiverSideMakesValid>
           <bNoFreshWater>0</bNoFreshWater>
           <bRequiresFlatlands>1</bRequiresFlatlands>
           <bRequiresRiverSide>0</bRequiresRiverSide>
           <bRequiresIrrigation>1</bRequiresIrrigation>
           <bCarriesIrrigation>1</bCarriesIrrigation>
           <bRequiresFeature>0</bRequiresFeature>
           <bWater>0</bWater>
           <bGoody>0</bGoody>
           <bPermanent>0</bPermanent>
           <bUseLSystem>1</bUseLSystem>
           <iAdvancedStartCost>30</iAdvancedStartCost>
           <iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
           <iTilesPerGoody>0</iTilesPerGoody>
           <iGoodyRange>0</iGoodyRange>
           <iFeatureGrowth>0</iFeatureGrowth>
           <iUpgradeTime>0</iUpgradeTime>
           <iAirBombDefense>5</iAirBombDefense>
           <iDefenseModifier>0</iDefenseModifier>
           <iHappiness>0</iHappiness>
           <iPillageGold>5</iPillageGold>
           <bOutsideBorders>0</bOutsideBorders>
           <TerrainMakesValids>
               <TerrainMakesValid>
                   <TerrainType>TERRAIN_GRASS</TerrainType>
                   <bMakesValid>1</bMakesValid>
               </TerrainMakesValid>
               <TerrainMakesValid>
                   <TerrainType>TERRAIN_PLAINS</TerrainType>
                   <bMakesValid>1</bMakesValid>
               </TerrainMakesValid>
           </TerrainMakesValids>
           <FeatureMakesValids/>
           <BonusTypeStructs>
               <BonusTypeStruct>
                   <BonusType>BONUS_CORN</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_RICE</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_WHEAT</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_POTATO</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
           </BonusTypeStructs>
           <ImprovementPillage/>
           <ImprovementUpgrade/>
           <TechYieldChanges>
               <TechYieldChange>
                   <PrereqTech>TECH_AGRICULTURE2</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_SEASONROTATION</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_MECHFARMING</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_FERTILIZER</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_MECHFARMING2</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>

           </TechYieldChanges>
           <RouteYieldChanges/>
           <bGraphicalOnly>0</bGraphicalOnly>
       </ImprovementInfo>
 
Hm, good question what is going wrong there. Guess your first try was without any kf or kfm files in the Halis folder, right? Otherwise you could try to remove them all from the Halis folder, since the <KFM> line is not referencing to the Halis folder anyhow. Otherwise, you could try to change the <KFM> line to:
Code:
           <KFM>art/LeaderHeads/Halis/Gilgamesh.kfm</KFM>
Do you have the same problem for all leaderheads? If so, maybe try to use the unmoddified Final Frontier CIV4ArtDefines_Leaderhead.xml instead and see if the leaderheads work in that case at least.

Yeah, all the leaderheads have the same problem, no idle animations in game, but all other anims.
Unfortunately, your suggestion of using the unmodded FF defines_leaderhead xml didn't work, the same issue persisted. Changing the <kfm> line didn't do anything either.
To be extra certain I reinstalled the mod into a clean folder and tried it again, but the idle error still persisted, I used the installer executable as those tend to be idiot proof, but still no dice.

The really weird thing about this problem is that I just noticed it only happens while you are in the in-game diplomatic screen, it doesn't happen anywhere else, idle animations for the leaderheads play in the civilopedia and even in that little pop up you get at the start of a new game that shows your choice of leader, yeah pretty dang weird that it works in the 2 least important places for the leaderheads but it doesn't work in the one place that really matters: in-game.

Is there anywhere else at all that could be affecting this aside from the CIV4ArtDefines_Leaderhead.xml file and the leaderhead art directory?
 
Little help please.

Was it possible to build farms in Tundra in original game? I am pretty sure it wasn't.
However in my mod I changed something and now I can build farms in Tundras, which is becoming OP.
Best part is, only Plains and Grassland specifically set to allow farms.

Some insight please:

Code:
       <ImprovementInfo>
           <Type>IMPROVEMENT_FARM</Type>
           <Description>TXT_KEY_IMPROVEMENT_FARM</Description>
           <Civilopedia>TXT_KEY_IMPROVEMENT_FARM_PEDIA</Civilopedia>
           <ArtDefineTag>ART_DEF_IMPROVEMENT_FARM</ArtDefineTag>
           <PrereqNatureYields>
               <iYield>1</iYield>
               <iYield>0</iYield>
               <iYield>0</iYield>
           </PrereqNatureYields>
           <IrrigatedYieldChange>
               <iYield>1</iYield>
               <iYield>0</iYield>
               <iYield>0</iYield>
           </IrrigatedYieldChange>
           <bActsAsCity>0</bActsAsCity>
           <bHillsMakesValid>0</bHillsMakesValid>
           <bFreshWaterMakesValid>1</bFreshWaterMakesValid>
           <bRiverSideMakesValid>0</bRiverSideMakesValid>
           <bNoFreshWater>0</bNoFreshWater>
           <bRequiresFlatlands>1</bRequiresFlatlands>
           <bRequiresRiverSide>0</bRequiresRiverSide>
           <bRequiresIrrigation>1</bRequiresIrrigation>
           <bCarriesIrrigation>1</bCarriesIrrigation>
           <bRequiresFeature>0</bRequiresFeature>
           <bWater>0</bWater>
           <bGoody>0</bGoody>
           <bPermanent>0</bPermanent>
           <bUseLSystem>1</bUseLSystem>
           <iAdvancedStartCost>30</iAdvancedStartCost>
           <iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
           <iTilesPerGoody>0</iTilesPerGoody>
           <iGoodyRange>0</iGoodyRange>
           <iFeatureGrowth>0</iFeatureGrowth>
           <iUpgradeTime>0</iUpgradeTime>
           <iAirBombDefense>5</iAirBombDefense>
           <iDefenseModifier>0</iDefenseModifier>
           <iHappiness>0</iHappiness>
           <iPillageGold>5</iPillageGold>
           <bOutsideBorders>0</bOutsideBorders>
           <TerrainMakesValids>
               <TerrainMakesValid>
                   <TerrainType>TERRAIN_GRASS</TerrainType>
                   <bMakesValid>1</bMakesValid>
               </TerrainMakesValid>
               <TerrainMakesValid>
                   <TerrainType>TERRAIN_PLAINS</TerrainType>
                   <bMakesValid>1</bMakesValid>
               </TerrainMakesValid>
           </TerrainMakesValids>
           <FeatureMakesValids/>
           <BonusTypeStructs>
               <BonusTypeStruct>
                   <BonusType>BONUS_CORN</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_RICE</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_WHEAT</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_POTATO</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
           </BonusTypeStructs>
           <ImprovementPillage/>
           <ImprovementUpgrade/>
           <TechYieldChanges>
               <TechYieldChange>
                   <PrereqTech>TECH_AGRICULTURE2</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_SEASONROTATION</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_MECHFARMING</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_FERTILIZER</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_MECHFARMING2</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>

           </TechYieldChanges>
           <RouteYieldChanges/>
           <bGraphicalOnly>0</bGraphicalOnly>
       </ImprovementInfo>
It could be the bFreshWaterMakesValid value. It could also be in the Builds file. Just guessing.
 
Little help please.

Was it possible to build farms in Tundra in original game? I am pretty sure it wasn't.
However in my mod I changed something and now I can build farms in Tundras, which is becoming OP.
Best part is, only Plains and Grassland specifically set to allow farms.

Some insight please:

Code:
       <ImprovementInfo>
           <Type>IMPROVEMENT_FARM</Type>
           <Description>TXT_KEY_IMPROVEMENT_FARM</Description>
           <Civilopedia>TXT_KEY_IMPROVEMENT_FARM_PEDIA</Civilopedia>
           <ArtDefineTag>ART_DEF_IMPROVEMENT_FARM</ArtDefineTag>
           <PrereqNatureYields>
               <iYield>1</iYield>
               <iYield>0</iYield>
               <iYield>0</iYield>
           </PrereqNatureYields>
           <IrrigatedYieldChange>
               <iYield>1</iYield>
               <iYield>0</iYield>
               <iYield>0</iYield>
           </IrrigatedYieldChange>
           <bActsAsCity>0</bActsAsCity>
           <bHillsMakesValid>0</bHillsMakesValid>
           <bFreshWaterMakesValid>1</bFreshWaterMakesValid>
           <bRiverSideMakesValid>0</bRiverSideMakesValid>
           <bNoFreshWater>0</bNoFreshWater>
           <bRequiresFlatlands>1</bRequiresFlatlands>
           <bRequiresRiverSide>0</bRequiresRiverSide>
           <bRequiresIrrigation>1</bRequiresIrrigation>
           <bCarriesIrrigation>1</bCarriesIrrigation>
           <bRequiresFeature>0</bRequiresFeature>
           <bWater>0</bWater>
           <bGoody>0</bGoody>
           <bPermanent>0</bPermanent>
           <bUseLSystem>1</bUseLSystem>
           <iAdvancedStartCost>30</iAdvancedStartCost>
           <iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
           <iTilesPerGoody>0</iTilesPerGoody>
           <iGoodyRange>0</iGoodyRange>
           <iFeatureGrowth>0</iFeatureGrowth>
           <iUpgradeTime>0</iUpgradeTime>
           <iAirBombDefense>5</iAirBombDefense>
           <iDefenseModifier>0</iDefenseModifier>
           <iHappiness>0</iHappiness>
           <iPillageGold>5</iPillageGold>
           <bOutsideBorders>0</bOutsideBorders>
           <TerrainMakesValids>
               <TerrainMakesValid>
                   <TerrainType>TERRAIN_GRASS</TerrainType>
                   <bMakesValid>1</bMakesValid>
               </TerrainMakesValid>
               <TerrainMakesValid>
                   <TerrainType>TERRAIN_PLAINS</TerrainType>
                   <bMakesValid>1</bMakesValid>
               </TerrainMakesValid>
           </TerrainMakesValids>
           <FeatureMakesValids/>
           <BonusTypeStructs>
               <BonusTypeStruct>
                   <BonusType>BONUS_CORN</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_RICE</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_WHEAT</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
               <BonusTypeStruct>
                   <BonusType>BONUS_POTATO</BonusType>
                   <bBonusMakesValid>1</bBonusMakesValid>
                   <bBonusTrade>1</bBonusTrade>
                   <iDiscoverRand>0</iDiscoverRand>
                   <YieldChanges>
                       <iYieldChange>3</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                       <iYieldChange>0</iYieldChange>
                   </YieldChanges>
               </BonusTypeStruct>
           </BonusTypeStructs>
           <ImprovementPillage/>
           <ImprovementUpgrade/>
           <TechYieldChanges>
               <TechYieldChange>
                   <PrereqTech>TECH_AGRICULTURE2</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_SEASONROTATION</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_MECHFARMING</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_FERTILIZER</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>
               <TechYieldChange>
                   <PrereqTech>TECH_MECHFARMING2</PrereqTech>
                   <TechYields>
                       <iYield>1</iYield>
                       <iYield>0</iYield>
                       <iYield>0</iYield>
                   </TechYields>
               </TechYieldChange>

           </TechYieldChanges>
           <RouteYieldChanges/>
           <bGraphicalOnly>0</bGraphicalOnly>
       </ImprovementInfo>
Maybe you set Tundra to have 1:food: ?
 
Top Bottom