UnOfficial Expansion: Rise and Fall of Empires, Alpha Release Soon

Love the civ choices, every single one of them!

Are you sure you want to keep it with 9 new civs?
Some of these would also make a wonderful addition:
Hittites, Mali, Sioux, Vietnam, Nubia, Khazaria, Mapuche
Especially the Hittites with an early iron bonus UA, and the Mali with an UA related to gold and enormous wealth.

I would actually like to add some more: Mughals, Khazars, Nubia, Mali, Kilwa, Sparta, Toscany, Hittites and Sioux could be another nine civilizations. But the main problem is Art: for the current nine civilizations, using adapted Art, the following is still missing:

Armenia: Unit Icon, Building Icon, Unit Flag, Unit Models
Israel: Building Icon
Khmer: Leaderhead, Leader Icon, Building Icon, Unit Icon, Unit Flag, Unit Models, DOM
Phoenica: Leader Icon, DOM, Map
Pueblo: Leaderhead, Leader Icon, Building Icon, Unit Icon, Unit Flag, Unit Models, DOM

... etc

Each civilization requires huge amounts of art, and it sometimes does not exist... Btw, Sumer is going to require WOTAW, an alternative download will be posted including Toscany instead of Sumer.

With all this talk of international trade routes and other newfangled concepts, will this mod be G&K compatible, or no?

I am sorry but I don't think I can mantain and create two distinct versions. Maybe in later stages of the Mod it would be possible, but not for the first releases

What about this, Barbarian encampments spawn units at rate "a" so after a number "b" of turns if the Barbarian encampment still exists it evolves into a Barbarian city that would spawn units at rate "a/2" or even faster

wrong thread? cool idea aniway :)
 
does not seem impossible... You can upgrade improvements... with lua into cities, maybe... and the Barbarian civ is coded not to build any buildings... not sure about the technology part, but...

Anyway, another option is to also use upgrading improvements and make it spawn specific units (based on era) in x turns (based on Game Speed, Difficulty Level, raging barbarians on/off)
 
I am great at failing to keep release date promises. School has started now, and my time for modding has decreased by about 90%. However, I would say 90% of the work is already done. I am not going to release it this weekend, but if the Colony System works well, then in 2-3 weeks it will be out with art (even in not HQ)
 
just to make sure I don't lose this file again

Spoiler :
Code:
-- Colonies.lua
-- Author: Genghis.Khan
-- Special Thanks: FramedArchitecture, whoward69, Hambil, Irkalla, Gedemon, Putmalk, Machiavelli, LastSword
-- Version: 3.0
------------------------------------------------------------------------------------------------------------

---------------------------------------------- Global Variables --------------------------------------------

g_RevoltedColonies = {}
g_ColoniesRevolted1 = {}
g_ColoniesRevolted2 = {}
g_ColoniesRevolted3 = {}
g_ColoniesRevolted4 = {}
g_ColoniesRevolted5 = {}
g_Colonies = {}
g_BarbarianID = 63

---------------------------------------------- End Global Variables ----------------------------------------


function FoundColony()
	for plotLoop = 0, Map.GetNumPlots() - 1, 1 do
		local improvementType = plot:GetImprovementType()
		if ( improvementType == GameInfoTypes["IMPROVEMENT_COLONY"] ) then
			local iColonyPlotX = pPlot:GetX()
			local iColonyPlotY = pPlot:GetY()
			local pColonyPlot = Plot:At(iColonyPlotX, iColonyPlotY)
			local pColonyOwner = pColonyPlot:GetOwner()
			if not g_Colonies[pColonyPlot] then
				table.insert(pColonyPlot, g_Colonies)
				pColonyOwner:InitCity(iColonyPlotX, iColonyPlotY);
				local pCity = City.At(iColonyPlotX, iColonyPlotY)
				pCity:SetPuppet()
				pCity:SetNumRealBuilding(GameInfoType["BUILDING_COLONY"], 1)
			end
		end
	end
end
GameEvents.PlayerDoTurn.Add( FoundColony )

function GetEraModifiersForRevolt(iPlayer)
	local pPlayerTeam = iPlayer:GetTeam()
	local pTeamTechs = pPlayerTeam:GetTeamTechs()
	if ( pPlayerTeam:GetCurrentEra() == GameInfoTypes["ERA_COLONIAL"] ) then
		local iEraHappinessModifier = 0
		return iEraHappinessModifier
	elseif ( pPlayerTeam:GetCurrentEra() == GameInfoTypes["ERA_INDUSTRIAL"] ) then
		local iEraHappinessModifier = 5
		return iEraHappinessModifier
	elseif ( pPlayerTeam:GetCurrentEra() == GameInfoTypes["ERA_MODERN"] ) then
		local iEraHappinessModifier = 10
		return iEraHappinessModifier
	elseif ( pPlayerTeam:GetCurrentEra() == GameInfoTypes["ERA_POSTMODERN"] ) then
		local iEraHappinessModifier = 15
		return iEraHappinessModifier
	elseif ( pPlayerTeam:GetCurrentEra() == GameInfoTypes["ERA_FUTURE"] ) then
		local iEraHappinessModifier = 20
		return iEraHappinessModifier
	end
end
	
function PlayerGetNumColonies(iPlayer)
	local pPlayer = iPlayer
	local buildingID = GameInfoTypes["BUILDING_COLONY"]
	local iNumColonies = 0
	for pCity in pPlayer:Cities() do
		if pCity:IsHasBuilding(buildingID) then
			iNumColonies = iNumColonies + 1
		end
	end
end

function GetOwnerLocalUnitsPower(city)
	for i = 0, city:GetNumCityPlots() -1 do
		if city:GetCityIndexPlot(i) ~= nil then
			local iPlot = city:GetCityIndexPlot(i);
			local iCityOwner = city:GetOwner()
			if Map.PlotDistance(iPlot:GetX(), iPlot:GetY(), city:GetX(), city:GetY()) < 3 then
				local iUnitPower = iPlot:GetUnitPower(iCityOwner)
				return iUnitPower
			end
		end
	end
end

function CalculatePublicOrderForRevolt(city) 
	local pOnwer = city:GetOwner()
	local pTeam = pOwner:GetTeam()
	local pTeamTechs = pTeam:GetTeamTechs()
	local iOwnerLocalPower = GetOwnerLocalUnitsPower(city)
	if pTeamTechs:HasTech(GameInfoTypes["TECH_MOBILE_TACTICS"] then
		return iOwnerLocalUnitsPower / 90
	end
	elseif pTeamTechs:HasTech(GameInfoTypes["TECH_PLASTICS"] then
		return iOwnerLocalUnitsPower / 70
	end
	elseif pTeamTechs:HasTech(GameInfoTypes["TECH_REPLACEABLE_PARTS"] then
		return iOwnerLocalUnitsPower / 50
	end
	elseif pTeamTechs:HasTech(GameInfoTypes["TECH_RIFLING"] then
		return iOwnerLocalUnitsPower / 34
	end
	elseif pTeamTechs:HasTech(GameInfoTypes["TECH_FLINTLOCK"] then
		return iOwnerLocalUnitsPower / 30
	end
	elseif pTeamTechs:HasTech(GameInfoTypes["TECH_CHEMISTRY"] then
		return iOwnerLocalUnitsPower / 27
	end
	elseif pTeamTechs:HasTech(GameInfoTypes["TECH_GUNPOWDER"] then
		return iOwnerLocalUnitsPower / 24
	end
	end
end

function GetRevoltedUnitsPower(iPlayer) 
local pTeam = iPlayer:GetTeam()
local teamTechs = pTeam:GetTeamTechs()
	if Game.GetHandicapType() == 0 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 50	
		 end
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 34	
		 end
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 24	
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 16
		 
		elseif  teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 11
		 
	elseif Game.GetHandicapType() == 1 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 70	
		 end
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 50
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 34	 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 24
		 
		elseif  teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 16
	elseif Game.GetHandicapType() == 2 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 100
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 68
		
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 48
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 32
		 
		elseif  teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 22
		 end	
	elseif Game.GetHandicapType() == 3 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 140
		 end
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 100
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 68
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 48
		 
		elseif  teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 32
		 
	elseif Game.GetHandicapType() == 4 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 190
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 134
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 92
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 62
		 
		elseif  teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 43
		 
		end
	elseif Game.GetHandicapType() == 5 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 250
		 end
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 170
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 118
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 92
		 
		elseif  teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 64
		 
	elseif Game.GetHandicapType() == 6 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 340
		 
		end
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 240
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 168
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 116
		 	
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 88
		 
	elseif Game.GetHandicapType() == 7 then
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
			return 430
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
			return 330
		
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID )
			return 234	
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
			return 150
		 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
			return 106
		 end
end

function Shuffle(t) -- by Gedemon
  local n = #t
 
  while n >= 2 do
    -- n is now the last pertinent index
    local k = math.random(n) -- 1 <= k <= n
    -- Quick swap
    t[n], t[k] = t[k], t[n]
    n = n - 1
  end
 
  return t
end

function RebelUnitsToSpawnSettler(iPlayer)
	local pTeam = iPlayer:GetTeam()
	local teamTechs = pTeam:GetTeamTechs()
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
				return GameInfo.Units.UNIT_GREAT_WAR_INFANTRY.ID
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
				return GameInfo.Units.UNIT_RIFLEMAN.ID
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID ) then
				return GameInfo.Units.UNIT_MUSKETMAN.ID 
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
				return GameInfo.Units.UNIT_PIKEMAN.ID
		elseif    teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
				return GameInfo.Units.UNIT_SPEARMEN.ID
		else    
				return GameInfo.Units.UNIT_WARRIOR.ID
		end
end

function RebelUnitsToSpawnPrince(iPlayer)
	local pTeam = iPlayer:GetTeam()
	local teamTechs = pTeam:GetTeamTechs()
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
				return GameInfo.Units.UNIT_INFANTRY.ID
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
				return GameInfo.Units.UNIT_GREAT_WAR_INFANTRY.ID
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID ) then
				return GameInfo.Units.UNIT_RIFLEMAN.ID
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
				return GameInfo.Units.UNIT_MUSKETMAN.ID 
		elseif    teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
				return GameInfo.Units.UNIT_PIKEMAN.ID
		else    
				return GameInfo.Units.UNIT_SPEARMEN.ID
		end
end

function RebelUnitsToSpawnEmperor(iPlayer)
	local pTeam = iPlayer:GetTeam()
	local teamTechs = pTeam:GetTeamTechs()
		if teamTechs:HasTech( GameInfo.Techs.TECH_MOBILE_TACTICS ) then
				return GameInfo.Units.UNIT_MECHANIZED_INFANTRY.ID
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_PLASTIC.ID ) then
				return GameInfo.Units.UNIT_INFANTRY.ID
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_REPLACEABLE_PARTS.ID ) then
				return GameInfo.Units.UNIT_GREAT_WAR_INFANTRY.ID	
		elseif teamTechs:HasTech( GameInfo.Techs.TECH_RIFLING.ID ) then
				return GameInfo.Units.UNIT_RIFLEMAN.ID	
		elseif    teamTechs:HasTech( GameInfo.Techs.TECH_GUNPOWDER.ID ) then
				return GameInfo.Units.UNIT_MUSKETMAN.ID 	
		else    
				return GameInfo.Units.UNIT_PIKEMAN.ID
		end
end

function ColonyIsRevolted(city)
	for i = 0, city:GetNumCityPlots() -1 do
		if city:GetCityIndexPlot(i) ~= nil then
			local iPlot = city:GetCityIndexPlot(i);
			local iCityOwner = city:GetOwner()
			if Map.PlotDistance(iPlot:GetX(), iPlot:GetY(), city:GetX(), city:GetY()) < 2 then
				local iBarbUnitPower = iPlot:GetUnitPower(g_BarbarianID)
				if iBarbUnitPower > 0 then
					return 1
				end
				else 
					if g_RevoltedColonies[city] then
						table.remove(city, g_RevoltedColonies)
						table.insert(city, g_ColoniesRevolted1)
					end
				end
			end
		end
end

function GetNumColonyRevolts(city)
	if not g_ColoniesRevolted1[city] and not g_ColoniesRevolted2[city] and not g_ColoniesRevolted3[city] and not g_ColoniesRevolted4[city] and not g_ColoniesRevolted5[city] then
		return 0
	elseif g_ColoniesRevolted1[city] then
		return 1
	elseif g_ColoniesRevolted2[city] then
		return 2
	elseif g_ColoniesRevolted3[city] then
		return 3
	elseif g_ColoniesRevolted4[city] then
		return 4
	elseif g_ColoniesRevolted5[city] then
		return 5
	end
end

function SpawnRevoltedUnits(city)
	for i = 0, city:GetNumCityPlots() -1 do
		if city:GetCityIndexPlot(i) ~= nil then
			local iPlot = city:GetCityIndexPlot(i);
			local iOwner = city:GetOwner()
			if Map.PlotDistance(iPlot:GetX(), iPlot:GetY(), city:GetX(), city:GetY()) < 3 then
			local plotNumUnits = plot:GetNumUnits()
				if not (iPlot:IsWater()) and not (plotNumUnits > 3) and not iPlot:GetUnitPower(iOnwer) then
				local freePlots = {}
				table.insert(iPlot, freePlots)
				Shuffle(freePlots)
				for n, plot in pairs(freePlots) do
					if Game.GetHandicapType() == 0 then
						Player[g_BarbarianID]:InitUnit(freeUnitSettler, iPlot:GetX(), iPlot:GetY())	
					elseif Game.GetHandicapType() == 1 then
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY()) 
					elseif Game.GetHandicapType() == 2 then
						Player[g_BarbarianID]:InitUnit(freeUnitSettler, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitSettler, iPlot:GetX(), iPlot:GetY())
					elseif Game.GetHandicapType() == 3 then
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY())
					elseif Game.GetHandicapType() == 4 then
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitSettler, iPlot:GetX(), iPlot:GetY())
					elseif Game.GetHandicapType() == 5 then
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY())
					elseif Game.GetHandicapType() == 6 then
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())	
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY())
					elseif Game.GetHandicapType() == 7 then
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())	
						Player[g_BarbarianID]:InitUnit(freeUnitEmperor, iPlot:GetX(), iPlot:GetY())
						Player[g_BarbarianID]:InitUnit(freeUnitPrince, iPlot:GetX(), iPlot:GetY())
					end
				end
			end
		end
	end
end 
end
				
function RevoltColony(iPlayer) 
	for plotLoop = 0, Map.GetNumPlots() - 1, 1 do
		local improvementType = plot:GetImprovementType()
			if ( improvementType == GameInfoTypes["IMPROVEMENT_COLONY"] ) then
				local iColonyPlotX = pPlot:GetX()
				local iColonyPlotY = pPlot:GetY()
				local pColonyPlot = PlotAt:(iColonyPlotX, iColonyPlotY)
				local iImprovementOwner = pColonyPlot:GetOwner()
				local iEraModifier = GetEraModifiersForRevolt(iImprovementOwner) -- Colonial: 5; Industrial: 10; Modern: 15; Atomic: 20;
				local pColonyCity = City:At(iColonyPlotX, iColonyPlotY)
				local iHandicapRevoltModifier = (3 * Game:GetHandicapType())   -- Deity = 21; Prince = 12
				local iNumColonies = PlayerGetNumColonies(iImprovementOwner)
				local iNumColoniesModifier = (iNumColonies + 3) * iNumColonies) -- 4*1 = 4; 5*2= 10; 6*3= 18; 7*4= 28
				local iColonyHappinessModifier = pColonyCity:GetLocalHappiness()
				print(" .. iColonyHappinessModifier .. ")
				local iPublicOrderPoints = CalculatePublicOrderForRevolt(pColonyCity)
				print("PublicOrder is" ..iPublicOrderPoints.. "for the city of" ..iCityName .. "!")
				local iCityName = pColonyCity:GetName()
				local iOurUnitsPower = GetRevoltedUnitsPower(iImprovementOwner)
				local iOurUnitsPowerConverted = (iOurUnitsPower * 1.75) 
				local iNumRevoltsModifier = GetNumColonyRevolts(pColonyCity) * 25 --2nd revolt required + 25 points
				local iRevoltCounter = ((iHandicapRevoltModifier + iEraModifier + iNumColoniesModifier + iColonyHappinessModifier - iPublicOrderPoints - iNumRevoltsModifier) 
				if (math.random(0, 55) + iRevoltCounter) == 100 and not iOwnerLocalUnitsPower > iOurUnitsPowerConverted
					if not g_RevoltedColonies[pColonyCity] then
						SpawnRevoltedUnits(pColonyCity)
						iImprovementOwner:AddNotification(NotificationTypes.NOTIFICATION_WONDER_COMPLETED_ACTIVE_PLAYER, .. iCityName .. ' has revolted! Rebel units will spawn near the revolted Colony and attemp to reclaim those lands! ') 
						table.insert(pColonyCity, g_RevoltedColonies)
						if not g_ColoniesRevolted1[pColonyCity] and not g_ColoniesRevolted2[pColonyCity] and not g_ColoniesRevolted3[pColonyCity] and not g_ColoniesRevolted4[pColonyCity] and not g_ColoniesRevolted5[pColonyCity] then
							table.insert(pColonyCity, g_ColoniesRevolted1)
						elseif g_ColoniesRevolted1[pColonyCity] then
							table.remove(pColonyCity, g_ColoniesRevolted1)
							table.insert(pColonyCity, g_ColoniesRevolted2)
						elseif g_ColoniesRevolted2[pColonyCity] then
							table.remove(pColonyCity, g_ColoniesRevolted2)
							table.insert(pColonyCity, g_ColoniesRevolted3)
						elseif g_ColoniesRevolted3[pColonyCity] then
							table.remove(pColonyCity, g_ColoniesRevolted3)
							table.insert(pColonyCity, g_ColoniesRevolted4)
						elseif g_ColoniesRevolted4[pColonyCity] then
							table.remove(pColonyCity, g_ColoniesRevolted4)
							table.insert(pColonyCity, g_ColoniesRevolted5)
						end
					end
				end
			end
		end
	end
GameEvents.PlayerDoTurn.Add( RevoltColony );
 
hello Genghis, I know you are working hard on this and all. But, do you have any beta downloads to share to test it out? Or will you just release it as a whole when it is done
 
I will run a series of tests in the colonies system tomorrow. I just have to compile the .dll and run a test game. If it runs OK, then I'll post an Alpha version of the Colonies system. Abou the rest, well, some work to be done on Units, Buildings, PrereqTechs in the Tech Tree, Civilizations and Wonders... Taxes only in Beta, probably. I hope I can release Colonies and have Armenia as a separate download.
 
[Alpha] Colonies Test:

[DLL] NOT WORKING (Reason: Probably not being loaded correctly.)
[Lua] NOT WORKING (Reason: Probably not being loaded correctly.)
[XML] WORKING (Being Loaded Correctly, loads with no errors.)


Will try to change some stuff and try again
 
Wonders

Isthar Gate - requires History. +2 :c5culture: per every Defensive Building in your Empire. +1 :c5faith: per Great Work of Art in your Empire. Contains a Great Work of Art Slot. Provides free Walls in the city in which it is built.

Hollywood - requires Movie Camera. +1 :c5gold: Gold per Great Work in your Empire. +1 Tourism per each Great Work in this City. Contains slots for 2 Great Works of Music.

Empire State Building - requires Eletricity. + 50% :c5citizen: faster Growth Rate in this City. Provides a free Scryscraper in the City in which it is built. (1)

Sagrada Familia - requires Telecommunications. +2 :c5faith:, +1 :c5culture:, +1 :c5happy: and +1 Tourism per each Religious Building in your Empire. Contains Slots for 1 Great Work of Art.

Tower of Belém - requires Cartography. 3 free Caravels appear near this city. Naval Units in this city have +1 :c5moves: Sight.

Westminster Abbey - requires Music. +2 :c5faith: per Great Work of Music and +1 and Culture Tourism per Monastery in your Empire. Contains 1 Great Work of Music Slot. Provides a free Monastery in this City.

Shwedagon Paya - requires Aesthetics. +2 :c5faith: and +2 :c5culture: per each source of Gold, Gems and Silver worked by this City. +3 :c5faith: per each Aesthetics Policy adopted. Artists in this City generate one extra :c5faith: faith.

St. Peter's Basilica - requires Architecture. +10% :c5faith: in this city per each Piety Policy adopted.

Pantheon - requires Engineering. +2 :c5faith:, +2 :c5culture: and +1 :c5happy: per each Foreign Religion in your Empire. Provides a free Shrine in every City. (2)


Notes:

(1) Negative Health Effects
(2) Foreign Religion is a Religion that differs from the Empire-wide adopted Religion
 
Cities
Spoiler :
Cities have less defensive strength and gain slightly less new strength with new
Cities now only loss 10 per cent of the population when captured
Captured Cities now only lose 30 per cent of their styrength
Cities now heal more slowly

Happiness Mechanincs
Spoiler :
Reduced growth penalty when unhappy.
Reduced production penalty when very unhappy

Gold
Spoiler :
Updgrading units is now fifty per cent cheaper

Units
Spoiler :
Units are fifty per cent cheaper
Settler has now 3 moves
Atomic Bomb and Nuclear Missile Rnage increased (2)

Research Agreements
Spoiler :
Research Agreements have now effect in 15 turns

Puppets
Spoiler :
Puppets now generate more culture and science

Policies
Spoiler :
First Policy cost reduced to 20. Therefore every policy is now slightly cheaper

Starting Locations
Spoiler :
Players will now only start in locations with six or more land tiles
Starting locations will now include more production tiles

Resources
Spoiler :
Strategic Resources are now likely to spread in quantityy of 6

3UPT

AI Changes

Spoiler :
AI is less likely to hate warmongers
AI is more likely to rushbuy units and buildings
AI now is more likely to defend their land with more units
AI should now have more units in their capital city
AI now has less chance to form permanent wars
AI now values much more the policies you chose (Autocracy, Freedom and Order)
AI now values less gold per turn
AI is now more likely to build cities on resource tiles
AI now values hills more
AI is now more likely to accept Peace Deals
AI is now much more likely to accept Cooperation in War


Specialists
Spoiler :
Specialists have extra yield

City States
Spoiler :
Enchanced Influence Gained by Trade Missions (50)

Promotions
Spoiler :
Instant Heal now grants you more health

Barbarians
Spoiler :
Increased Max XP Gained from Barbarians (30)

Culture
Spoiler :
Faster Culture Growth
New Cities now increase less cost of acquiring future policies

Diplomatic VC
Spoiler :
Owning the UN grants you now 2 extra votes

Religion
Spoiler :
Great Prophets spam since you acquire 150 faith and have greater chance of spamming once you get 150 faith
Pantheons now only increase costs by 3 faith

Score Calculation
Spoiler :
Technologies Score Value Increased (6)
 
Belém Tower

Adds the Belém Tower as a Wonder in Sid Meier's Civilization V. Compatible with [civ5] Vannila, [GandK] Gods and Kings and Brave New World.

The Belém Tower (or Tower of St. Vincent) was built from lioz limestone and is composed of a bastion and the 10 foot four storey tower. The iconic Tower was commissioned by King John II to be part of a defense system at the entrance of the Tagus river and a ceremonial gateway to Lisbon. Additionally, the Belém Tower is one of the most iconic buildings of the Portuguese Discoveries.

Ingame the Belém Tower requires Astronomy and upon completing it 3 free Caravels appear near this city. Naval Units in the City in which the Belém Tower is built have +1 :c5moves: Sight.

Please report any bugs or suggestions at the Development Thread

Download
 
Belém Tower

Adds the Belém Tower as a Wonder in Sid Meier's Civilization V. Compatible with [civ5] Vannila, [GandK] Gods and Kings and Brave New World.

The Belém Tower (or Tower of St. Vincent) was built from lioz limestone and is composed of a bastion and the 10 foot four storey tower. The iconic Tower was commissioned by King John II to be part of a defense system at the entrance of the Tagus river and a ceremonial gateway to Lisbon. Additionally, the Belém Tower is one of the most iconic buildings of the Portuguese Discoveries.

Ingame the Belém Tower requires Astronomy and upon completing it 3 free Caravels appear near this city. Naval Units in the City in which the Belém Tower is built have +1 :c5moves: Sight.

Please report any bugs or suggestions at the Development Thread

Download

It could give some great admirals (1 or 2) instead of the caravels, and/or develop the defense of the city.

I was looking for this for a long time, I will try this modcomp right now
 
Belém Tower

Update to version 2

Changes:
Spoiler :
Removed the 1 :c5moves: Sight Bonus to Naval Units
Added a 50% Homeland :c5strength: Defense Bonus for Naval Units
Upon completing the Belém Tower 2 Caravels and 1 Great Admiral are now spawned instead of 3 Caravels


BugFixes:
Spoiler :
Fixed the Wonder Completion Screen Quote Bug


 
Top Bottom