local iCivilization = GameInfoTypes.CIVILIZATION_ETC
local iDummyBuilding = GameInfoTypes.BUILDING_ETC
local iMaxCivs = GameDefines.MAX_MAJOR_CIVS
local iMaxPlayers = GameDefines.MAX_CIV_PLAYERS
local bPopup;
local tGreatWorkBuildings = {};
for pBuilding in GameInfo.Buildings() do
if pBuilding.GreatWorkCount > 0 then
local pBuildingClass = GameInfo.BuildingClasses("Type = '" ..pBuilding.BuildingClass.. "'")()
tGreatWorkBuildings[pBuildingClass.ID] = pBuildingClass.Type
end
end
function UpdateDummyBuildings(iPlayer)
local pPlayer = Players[iPlayer]
if pPlayer:GetCivilizationType() ~= iCivilization then return end
if pPlayer:IsEverAlive() and not pPlayer:IsMinorCiv() then
for pCity in pPlayer:Cities() do
local iBuildingsToAdd = 0
for iBuildingClass, pBuildingClass in pairs(tGreatWorkBuildings) do
local iCurrentWorks = pCity:GetNumGreatWorksInBuilding(iBuildingClass)
print("In the " .. pBuildingClass .. " in " .. pCity:GetName() .. " there are " .. iCurrentWorks .. " Great Works")
if iCurrentWorks > 0 then
for i = 0, iCurrentWorks - 1, 1 do
local iWorkType = pCity:GetBuildingGreatWork(iBuildingClass, i)
print("Found a Great Work!")
iBuildingsToAdd = iBuildingsToAdd + 1;
end
end
end
print("Adding " .. iBuildingsToAdd .. " buildings to " .. pCity:GetName())
pCity:SetNumRealBuilding(iDummyBuilding, iBuildingsToAdd);
end
end
end
function UpdateDummyBuildingsUI()
if bPopup then
UpdateDummyBuildings(Game:GetActivePlayer())
end
end
GameEvents.PlayerDoTurn.Add(UpdateDummyBuildings)
Events.SerialEventCityInfoDirty.Add(UpdateDummyBuildingsUI)
function SetCurrentPopup(popupInfo)
local popupType = popupInfo.Type
if popupType == ButtonPopupTypes.BUTTONPOPUP_CULTURE_OVERVIEW then
bPopup = true
end
end
Events.SerialEventGameMessagePopup.Add(SetCurrentPopup)
function ClearCurrentPopup()
bPopup = nil;
end
Events.SerialEventGameMessagePopupProcessed.Add(ClearCurrentPopup)