It was always supported with lua.All wonders requiring Lake have busted requirements.
"Water = 1, MinAreaSize = 1" doesn't work anymore as Lake requirement. Better substitute with Lua.
Code:
-- checks if city is between River and Sea and adds this condition (normally it would be treated like city with Lake)
-- Sea and Lake = FreshWater == true, Water>=1 == true true
-- Lake and River = FreshWater == true, Water>=1 == true true
-- Sea and River = FreshWater == true, Water>=1 == true true? (should be false)
-- Sea = FreshWater == false, Water>=1 == true false
-- Lake = FreshWater == true, Water>=1 == true true
-- River = FreshWater == true, Water>=1 == false false
function IsLakeWithOcean(ePlayer, eCity, eBuilding)
if not tValidIsNearLake[eBuilding] then return true end
if bReachedMaxEra then return false end
local pPlayer = Players[ePlayer]
if not pPlayer:IsAlive() then return false end
local pCity = pPlayer:GetCityByID(eCity)
local iCityX = pCity:GetX()
local iCityY = pCity:GetY()
if pCity:IsCoastal(1) then -- city is adjacent to at least one water tile
for dir = 0, DirectionTypes.NUM_DIRECTION_TYPES - 1 do
if Map.PlotDirection(iCityX, iCityY, dir):IsLake() then
return true
end
end
end
return false
end
GameEvents.CityCanConstruct.Add(IsLakeWithOcean)
Code:
-- IsNearLake
-- add lake buildings ==> lake is when: FreshWater = 1, Water = 1, MinAreaSize = 1
for building in GameInfo.Buildings() do
if building.FreshWater and building.Water and building.MinAreaSize == 1 and building.IsCorporation == 0 then
local eBuilding = GameInfoTypes[building.Type]
--dprint("...adding (id,building,requirement)", building.ID, building.Type, "(IsNearLake)")
tValidIsNearLake[building.ID] = true
end
end
How about other "lake" wonders?