CurtSibling
ENEMY ACE™
- Joined
- Aug 31, 2001
- Messages
- 29,455
Just like there are allImprovement and someImprovement categories, there are also allWonders and someWonders categories. The alternateParameters field allows you to specify entire alternate sets of conditions for the same unit. (Note that this must be a table of conditionTables, even if there is only one alternate condition.)One thing about the canbuild settings that I should add is that if a building is required but supplied through a wonder, it does not count towards the building of that unit.
This is to say that: Japan cannot build anything that requires a research lab (atom bomb) because the Imperial Academy already counts as one. Looking at how the thing is scripted, I think the best workaround would be one similar to how you did it for the engineers but have the override be if say, the city has an airbase, officer academy, and controls Tokyo. I think setting it to the wonder itself, which I was toying with doing, would just mean that only Tokyo could build A-bombs if controlled by the Japanese and they didn't occupy another city that already had a research facility.
wonderBuild[object.wSecretWeaponsProgram.id] ={alternateParameters = {{allImprovements={object.iOfficerAcademy},allWonders={object.wImperialAcademy},},}, allImprovements={object.iOfficerAcademy,object.iResearchFacility}}
Side question? Is there a ToT conversion of this scenario (Soviet Steel) uploaded? I know there was a ToT units file for it (I have it in my trove of downloads), but was the scenario, itself, ever formally converted?Overlords just flipped into Soviet Steel!
I've found it. Short explanation is that there is a bug in a General Library function that checks if a tile has irrigation, instead of irrigation or farmland.Here's a bit of odd behavior I can't explain. The agriculture (Farmland) improvements actually seem to decrease food yield. The only thing I have established so far is that it is connected to the events files: I disabled them once and food production behaved like it should.
I'll do more tinkering when I have time to see if I can identify the root cause.
Oh, now this is interesting!It is conceivable (though I don't know if it ever took place yet) that a scenario designer might want to change terrain type yields for individual cities.
The MechanicsFiles\customCosmicSettings.lua file does much of the work for you in the current version of the template.Oh, now this is interesting!
-- City Customisations
--[[
City customisations are registered with the function
customCosmic.registerCityCustomisation(customisation)
City customisations can apply to all cities, as long as
the `condition` is met. If the `condition`s for multiple
customisations are met, the one with the largest `priority`
is chosen.
the customisation is a table which has this structure:
]]
* `[baseTerrainObject]` = nil|table
+ `irrigateBonus` = nil|int>=0 or function(city)-->nil|int>=0
- Sets the base value of the irrigation bonus for the city and baseTerrain.
- If nil, refer to the authoritativeDefaultRules,
- If function, use the result of function(city),
+ `irrigateBonusModifier` = nil|int or function(city)-->nil|int
- Add this to the base irrigation bonus, but results less than 0 will be set to 0.
- If nil, use 0.
- If function, use result after evaluating function(city)
+ `mineBonus` = nil|int>=0 or function(city)-->nil|int>=0
- Sets the base value of the mining bonus for the city and baseTerrain.
- If nil, refer to the authoritativeDefaultRules,
- If function, use the result of function(city),
+ `mineBonusModifier` = nil|int or function(city)-->nil|int
- Add this to the base mining bonus, but results less than 0 will be set to 0.
- If nil, use 0.
- If function, use result after evaluating function(city)
+ `roadTrade` = nil|boolean or function(city)-->nil|boolean
- If true, for this city and baseTerrain, the road trade bonus is applied. If false, it is not.
- If nil, refer to the authoritativeDefaultRules
- If function, use result after evaluating function(city)
* `[terrainObject]` = {
+ `food` = nil|int>=0 or function(city)-->nil|int>=0
- Sets the base value for the food produced for this city by this terrain type.
- If nil, refer to the authoritativeDefaultRules
- If function, use the result of function(city)
+ `foodModifier` = nil|int or function(city)-->nil|int
- Add this to the base food production value, but if the result is less than 0, it will be raised to 0.
- If nil, use 0.
- If function, use the result of function(city)
+ `shields` = nil|int>=0 or function(city)-->nil|int>=0
- Sets the base value for the shields produced for this city by this terrain type.
- If nil, refer to the authoritativeDefaultRules
- If function, use the result of function(city)
+ `shieldsModifier` = nil|int or function(city)-->nil|int
- Add this to the base shield production value, but if the result is less than 0, it will be raised to 0.
- If nil, use 0.
- If function, use the result of function(city)
+ `trade` = nil|int>=0 or function(city)-->nil|int>=0
- Sets the base value for the trade produced for this city by this terrain type.
- If nil, refer to the authoritativeDefaultRules
- If function, use the result of function(city)
+ `tradeModifier` = nil|int or function(city)-->nil|int
- Add this to the base trade production value, but if the result is less than 0, it will be raised to 0.
- If nil, use 0.
- If function, use the result of function(city)
That is a good idea! At the moment, there are some airbases and rebel cities that can be used to build up forces for an anti-Axis campaign.I will be interested to see what happens when I join the war. Is there any even that will give the US a base in Europe if they are human-controlled? You might consider giving them Plymouth with an isHuman check so long as the Brits aren't also human.
I thought about giving a unit to the rebel civ and letting them take London, then “liberate” it, but it felt cheesy. Let the Americans come, if they dare.Get ready for the US navy to make a call!![]()