function Muscogee_GetNumTradeRoutesLeavingThisCity(playerID, city)
local player = Players[playerID]
local tradeRoutes = player:GetTradeRoutes()
local numTradeRoutes = 0
for i, v in ipairs(tradeRoutes) do
local originatingCity = v.FromCity
if originatingCity:GetID() == city:GetID() then
numTradeRoutes = numTradeRoutes + 1
end
end
return numTradeRoutes
end
----------------------------------------------------------------------------------------------------------------------------
-- Firebug_MicoScience
----------------------------------------------------------------------------------------------------------------------------
local buildingMuscogeeScienceID = GameInfoTypes["BUILDING_MICO_SCIENCE"]
function Muscogee_MicoScience(playerID)
local player = Players[playerID]
if (player:IsAlive() and (not player:IsMinorCiv()) and (not player:IsBarbarian())) then
for city in player:Cities() do
local garrison = city:GetGarrisonedUnit()
if (garrison and garrison:IsHasPromotion(unitPromotionMicoDelegateID)) then
local numMicoScience = mathMin(Muscogee_GetNumTradeRoutesLeavingThisCity(playerID, city), 3)
city:SetNumRealBuilding(buildingMuscogeeScienceID, numMicoScience)
else
if city:IsHasBuilding(buildingMuscogeeScienceID) then
city:SetNumRealBuilding(buildingMuscogeeScienceID, 0)
end
end
end
end
end
function Muscogee_MicoScienceCityView()
local player = Players[playerID]
if (player:IsAlive() and (not player:IsMinorCiv()) and (not player:IsBarbarian())) then
for city in player:Cities() do
local garrison = city:GetGarrisonedUnit()
if (garrison and garrison:IsHasPromotion(unitPromotionMicoDelegateID)) then
local numMicoScience = mathMin(Muscogee_GetNumTradeRoutesLeavingThisCity(activePlayerID, city), 3)
city:SetNumRealBuilding(buildingMuscogeeScienceID, numMicoScience)
else
if city:IsHasBuilding(buildingMuscogeeScienceID) then
city:SetNumRealBuilding(buildingMuscogeeScienceID, 0)
end
end
end
end
if IsMuscogeeCivActive then
GameEvents.PlayerDoTurn.Add(Muscogee_MicoScience)
if IsMuscogeeActivePlayer then
Events.SerialEventEnterCityScreen.Add(Muscogee_MicoScienceCityView)
end
end