Deliverator
Graphical Hackificator
This is a very old idea of Ahriman's that has never been implemented:
In terms of what benefits the stations give, there are some interesting amendments Xienwolf has made to Goody Huts for Fall Further that we could use:
Here are is the vanilla Goody Infos copy and pasted. Hopefully this shows what effects are available.
It would be good to come up with the complete list of effects we want for the testing stations.
AH29
Suggestion:
In the books there is much talk about the Imperial desert Botanical Testing Stations.
When the Atreides arrive on Dune there is mention that there are hundreds of them scattered around from the Imperial Botanical Testing era (when they were evaluating terraforming feasibility).
In one of the books people take refuge in them and loot them for stuff.
How about changing the Tribal Village into Botantical Testing Stations?
Particularly if we have the post-disaster Dune scenario in the back of our minds, it is easy to see that there could be much to gain in terms of equipment/wealth and technology from being the first to plunder these testing stations.
So I think they fit at least as well as Tribal Villages, but have more Dune flavor.
Would need some new art, obviously.
In the long run, I'd probably suggest tweaking the bonuses available from tribal villages (especially if we turn them into botanical testing stations), so that they don't give entire free techs, which is too much randomness and too much power.
In terms of what benefits the stations give, there are some interesting amendments Xienwolf has made to Goody Huts for Fall Further that we could use:
CIV4GoodyInfos.xml
<iScience>, <iScienceRand1>, <iScienceRand2> - Functions like iGold and partners to grant research toward current Tech being researched. These values are Percentages, the first is guaranteed and each of the others are random caps. So you could set iScienceRand1 to 100 for a completely random addition of Research, or set iScience to 100 for a guaranteed finishing of current research. These values can be negative as well as positive, and will never provide overflow research. Percentage is modified by gamespeed, so on Marathon games you will gain 1/3 of the listed percent, and on Quick games you will gain ~130% the listed. Thus to get a free Tech (just started researching it) on Marathon, you would need a Science value of 300 after both Randoms, but to get a free tech on quick you would only need a 67 after both randoms.
<PromotionAdds> & <PromotionRemoves> - Promotions listed will be granted to (revoked from) the unit popping the goody, or to any unit created by the goody instead (for free units or Barbarians). If promotion is being given to the unit who popped the result then it must be a valid promotion for the unit (ie - proper unitcombat)
<iMinTurnsElapsed> & <iMaxTurnsElapsed> - Earliest and Latest in the course of a game that the goody can be granted. Weighted by gamespeed
Here are is the vanilla Goody Infos copy and pasted. Hopefully this shows what effects are available.
Spoiler :
Code:
<Civ4GoodyInfo xmlns="x-schema:CIV4GameInfoSchema.xml">
<GoodyInfos>
<GoodyInfo>
<Type>GOODY_LOW_GOLD</Type>
<Description>TXT_KEY_GOODY_GOLD</Description>
<Sound>AS2D_GOODY_GOLD</Sound>
<iGold>20</iGold>
<iGoldRand1>21</iGoldRand1>
<iGoldRand2>21</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_HIGH_GOLD</Type>
<Description>TXT_KEY_GOODY_GOLD</Description>
<Sound>AS2D_GOODY_GOLD</Sound>
<iGold>20</iGold>
<iGoldRand1>51</iGoldRand1>
<iGoldRand2>51</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_MAP</Type>
<Description>TXT_KEY_GOODY_MAP</Description>
<Sound>AS2D_GOODY_MAP</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>4</iMapOffset>
<iMapRange>4</iMapRange>
<iMapProb>80</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_SETTLER</Type>
<Description>TXT_KEY_GOODY_SETTLER</Description>
<Sound>AS2D_GOODY_SETTLER</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>UNITCLASS_SETTLER</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_WARRIOR</Type>
<Description>TXT_KEY_GOODY_WARRIOR</Description>
<Sound>AS2D_GOODY_WARRIOR</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>UNITCLASS_WARRIOR</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_SCOUT</Type>
<Description>TXT_KEY_GOODY_SCOUT</Description>
<Sound>AS2D_GOODY_SCOUT</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>UNITCLASS_SCOUT</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_WORKER</Type>
<Description>TXT_KEY_GOODY_WORKER</Description>
<Sound>AS2D_GOODY_WORKER</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>UNITCLASS_WORKER</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_EXPERIENCE</Type>
<Description>TXT_KEY_GOODY_EXPERIENCE</Description>
<Sound>AS2D_GOODY_XP</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>5</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_HEALING</Type>
<Description>TXT_KEY_GOODY_HEALING</Description>
<Sound>AS2D_GOODY_HEAL</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>100</iHealing>
<iDamagePrereq>60</iDamagePrereq>
<bTech>0</bTech>
<bBad>0</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_TECH</Type>
<Description>TXT_KEY_GOODY_TECH</Description>
<Sound/>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>1</bTech>
<bBad>0</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>NONE</BarbarianClass>
<iBarbarianUnitProb>0</iBarbarianUnitProb>
<iMinBarbarians>0</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_BARBARIANS_WEAK</Type>
<Description>TXT_KEY_GOODY_BARBARIANS</Description>
<Sound>AS2D_GOODY_HOSTILE</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>1</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>UNITCLASS_WARRIOR</BarbarianClass>
<iBarbarianUnitProb>20</iBarbarianUnitProb>
<iMinBarbarians>1</iMinBarbarians>
</GoodyInfo>
<GoodyInfo>
<Type>GOODY_BARBARIANS_STRONG</Type>
<Description>TXT_KEY_GOODY_BARBARIANS</Description>
<Sound>AS2D_GOODY_HOSTILE</Sound>
<iGold>0</iGold>
<iGoldRand1>0</iGoldRand1>
<iGoldRand2>0</iGoldRand2>
<iMapOffset>0</iMapOffset>
<iMapRange>0</iMapRange>
<iMapProb>0</iMapProb>
<iExperience>0</iExperience>
<iHealing>0</iHealing>
<iDamagePrereq>0</iDamagePrereq>
<bTech>0</bTech>
<bBad>1</bBad>
<UnitClass>NONE</UnitClass>
<BarbarianClass>UNITCLASS_WARRIOR</BarbarianClass>
<iBarbarianUnitProb>40</iBarbarianUnitProb>
<iMinBarbarians>2</iMinBarbarians>
</GoodyInfo>
</GoodyInfos>
</Civ4GoodyInfo>
It would be good to come up with the complete list of effects we want for the testing stations.