RoM's xml for Mine and Shaft mine:
Mine's iUpgradeTime is 40 so that it upgrades to Shaft Mine.
Now in BuildInfos xml file these improvements have the following settings:
So, Mine is set to automatically upgrade to Shaft Mine and once player discovers Steam Power he can build directly Shaft Mine. Normal Mines keep upgrading to Shaft Mines of course if city works on those plots. This system uses default BtS features. Note that PlotLSystem probably prevents this system with cottage->town upgrade path as those improvements have the setting bUseLSystem == 1 in the improvements xml file.
Code:
<ImprovementInfo>
<Type>IMPROVEMENT_MINE</Type>
<Description>TXT_KEY_IMPROVEMENT_MINE</Description>
<Civilopedia>TXT_KEY_IMPROVEMENT_MINE_PEDIA</Civilopedia>
<ArtDefineTag>ART_DEF_IMPROVEMENT_MINE</ArtDefineTag>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
<bActsAsCity>0</bActsAsCity>
<bHillsMakesValid>1</bHillsMakesValid>
<bFreshWaterMakesValid>0</bFreshWaterMakesValid>
<bRiverSideMakesValid>0</bRiverSideMakesValid>
<bNoFreshWater>0</bNoFreshWater>
<bRequiresFlatlands>0</bRequiresFlatlands>
<bRequiresRiverSide>0</bRequiresRiverSide>
<bRequiresIrrigation>0</bRequiresIrrigation>
<bCarriesIrrigation>0</bCarriesIrrigation>
<bRequiresFeature>0</bRequiresFeature>
<bWater>0</bWater>
<bGoody>0</bGoody>
<bPermanent>0</bPermanent>
<iAdvancedStartCost>24</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iTilesPerGoody>0</iTilesPerGoody>
<iGoodyRange>0</iGoodyRange>
<iFeatureGrowth>0</iFeatureGrowth>
<iUpgradeTime>40</iUpgradeTime>
<iAirBombDefense>10</iAirBombDefense>
<iDefenseModifier>0</iDefenseModifier>
<iHappiness>0</iHappiness>
<iPillageGold>10</iPillageGold>
<bOutsideBorders>1</bOutsideBorders>
<TerrainMakesValids/>
<FeatureMakesValids/>
<BonusTypeStructs>
<BonusTypeStruct>
<BonusType>BONUS_BAUXITE</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>1</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_COAL</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_COPPER</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_GEMS</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>-1</iYieldChange>
<iYieldChange>5</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_GOLD</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>-1</iYieldChange>
<iYieldChange>6</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_IRON</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_SILVER</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>-1</iYieldChange>
<iYieldChange>4</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_URANIUM</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>0</iYieldChange>
<iYieldChange>3</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_SULPHUR</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>0</iYieldChange>
<iYieldChange>2</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_LEAD</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
</BonusTypeStructs>
<ImprovementPillage/>
<ImprovementUpgrade>IMPROVEMENT_SHAFT_MINE</ImprovementUpgrade>
<TechYieldChanges>
<TechYieldChange>
<PrereqTech>TECH_SEISMOLOGY</PrereqTech>
<TechYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</TechYields>
</TechYieldChange>
</TechYieldChanges>
<RouteYieldChanges>
<RouteYieldChange>
<RouteType>ROUTE_ROAD</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_PAVED</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_MODERN_ROAD</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_RAILROAD</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>2</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_RAILROAD_ELECTRIC</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>2</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
</RouteYieldChanges>
<bGraphicalOnly>0</bGraphicalOnly>
</ImprovementInfo>
<ImprovementInfo>
<Type>IMPROVEMENT_SHAFT_MINE</Type>
<Description>TXT_KEY_IMPROVEMENT_SHAFT_MINE</Description>
<Civilopedia>TXT_KEY_IMPROVEMENT_SHAFT_MINE_PEDIA</Civilopedia>
<ArtDefineTag>ART_DEF_IMPROVEMENT_MINE</ArtDefineTag>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>2</iYieldChange>
<iYieldChange>1</iYieldChange>
</YieldChanges>
<bActsAsCity>0</bActsAsCity>
<bHillsMakesValid>0</bHillsMakesValid>
<bFreshWaterMakesValid>0</bFreshWaterMakesValid>
<bRiverSideMakesValid>0</bRiverSideMakesValid>
<bNoFreshWater>0</bNoFreshWater>
<bRequiresFlatlands>0</bRequiresFlatlands>
<bRequiresRiverSide>0</bRequiresRiverSide>
<bRequiresIrrigation>0</bRequiresIrrigation>
<bCarriesIrrigation>0</bCarriesIrrigation>
<bRequiresFeature>0</bRequiresFeature>
<bWater>0</bWater>
<bGoody>0</bGoody>
<bPermanent>0</bPermanent>
<iAdvancedStartCost>48</iAdvancedStartCost>
<iAdvancedStartCostIncrease>0</iAdvancedStartCostIncrease>
<iTilesPerGoody>0</iTilesPerGoody>
<iGoodyRange>0</iGoodyRange>
<iFeatureGrowth>0</iFeatureGrowth>
<iUpgradeTime>0</iUpgradeTime>
<iAirBombDefense>10</iAirBombDefense>
<iDefenseModifier>0</iDefenseModifier>
<iHappiness>-1</iHappiness>
<iPillageGold>10</iPillageGold>
<bOutsideBorders>1</bOutsideBorders>
<TerrainMakesValids/>
<FeatureMakesValids/>
<BonusTypeStructs>
<BonusTypeStruct>
<BonusType>BONUS_BAUXITE</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>1</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_COAL</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_COPPER</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_GEMS</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>-1</iYieldChange>
<iYieldChange>5</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_GOLD</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>-1</iYieldChange>
<iYieldChange>6</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_IRON</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_SILVER</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>-1</iYieldChange>
<iYieldChange>4</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_URANIUM</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>0</iYieldChange>
<iYieldChange>3</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_SULPHUR</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>0</iYieldChange>
<iYieldChange>2</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
<BonusTypeStruct>
<BonusType>BONUS_LEAD</BonusType>
<bBonusMakesValid>1</bBonusMakesValid>
<bBonusTrade>1</bBonusTrade>
<iDiscoverRand>10000</iDiscoverRand>
<YieldChanges>
<iYieldChange>0</iYieldChange>
<iYieldChange>1</iYieldChange>
<iYieldChange>0</iYieldChange>
</YieldChanges>
</BonusTypeStruct>
</BonusTypeStructs>
<ImprovementPillage>IMPROVEMENT_MINE</ImprovementPillage>
<ImprovementUpgrade/>
<TechYieldChanges>
<TechYieldChange>
<PrereqTech>TECH_SEISMOLOGY</PrereqTech>
<TechYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</TechYields>
</TechYieldChange>
</TechYieldChanges>
<RouteYieldChanges>
<RouteYieldChange>
<RouteType>ROUTE_ROAD</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_PAVED</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_MODERN_ROAD</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>1</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_RAILROAD</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>2</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
<RouteYieldChange>
<RouteType>ROUTE_RAILROAD_ELECTRIC</RouteType>
<RouteYields>
<iYield>0</iYield>
<iYield>2</iYield>
<iYield>0</iYield>
</RouteYields>
</RouteYieldChange>
</RouteYieldChanges>
<bGraphicalOnly>0</bGraphicalOnly>
</ImprovementInfo>
Now in BuildInfos xml file these improvements have the following settings:
Code:
<BuildInfo>
<Type>BUILD_MINE</Type>
<Description>TXT_KEY_BUILD_MINE</Description>
<Help/>
<PrereqTech>TECH_MINING</PrereqTech>
<iTime>400</iTime>
<iCost>0</iCost>
<bKill>0</bKill>
<ImprovementType>IMPROVEMENT_MINE</ImprovementType>
<RouteType>NONE</RouteType>
<EntityEvent>ENTITY_EVENT_MINE</EntityEvent>
<FeatureStructs/>
<HotKey>KB_M</HotKey>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>,Art/Interface/Buttons/Builds/BuildMine.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,6,7</Button>
</BuildInfo>
<BuildInfo>
<Type>BUILD_SHAFT_MINE</Type>
<Description>TXT_KEY_BUILD_SHAFT_MINE</Description>
<Help/>
<PrereqTech>TECH_STEAM_POWER</PrereqTech>
<iTime>800</iTime>
<iCost>25</iCost>
<bKill>0</bKill>
<ImprovementType>IMPROVEMENT_SHAFT_MINE</ImprovementType>
<RouteType>NONE</RouteType>
<EntityEvent>ENTITY_EVENT_MINE</EntityEvent>
<FeatureStructs/>
<HotKey>KB_M</HotKey>
<bAltDown>0</bAltDown>
<bShiftDown>1</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>,Art/Interface/Buttons/Builds/BuildMine.dds,Art/Interface/Buttons/Actions_Builds_LeaderHeads_Specialists_Atlas.dds,6,7</Button>
</BuildInfo>