Cat-du-fromage
Warlord
- Joined
- Nov 17, 2018
- Messages
- 183
Hi!
i recently found a post about those beautiful gameevents^^ (Cityconnections and CityConnected) BUT Impossible to make them works..
I'm using the vox populi DLL.
LINK ok the post: https://forums.civfanatics.com/threads/river-connections.522983/
EDIT: i Know the code is not yet quite optimised^^' i tweaked it so much it became a mess
i recently found a post about those beautiful gameevents^^ (Cityconnections and CityConnected) BUT Impossible to make them works..
I'm using the vox populi DLL.
LINK ok the post: https://forums.civfanatics.com/threads/river-connections.522983/
Code:
--=====================================================
--UAConnectionCities
--=====================================================
function UAConnectionT(PlayerID,iCityX, iCityY, iToCityX, iToCityY, bDirect)
local BuildingDummyForConnected = GameInfoTypes.BUILDING_DF_CONNECTED
local player = Players[PlayerID]
if player:GetCivilizationType() == civilizationID then
for city in player:Cities() do
print("true ok2")
if Player:IsCapitalConnectedToCity(city) and player:IsEverAlive() and not city:IsCapital() and ((not bDirect) or bDirect) then
local pCity = Map.GetPlot(iCityX, iCityY):GetPlotCity()
local pToCity = Map.GetPlot(iToCityX, iToCityY):GetPlotCity()
city:SetNumRealBuilding(GameInfoTypes.BUILDING_DF_CONNECTED,1)
print("true ok3")
end
return true
end
end
return false
end
--GameEvents.CityConnections.Add(UAConnectionT)
GameEvents.CityConnected.Add(UAConnectionT)
--GameEvents.PlayerDoTurn.Add(UAConnection)
Code:
--=============================================================================================
--KH_Viribus Unitis
--=============================================================================================
function ViribusUnitisT(PlayerID,iCityX, iCityY, iToCityX, iToCityY,bDirect)
local player = Players[PlayerID]
local baseCombatStrength
local NBDummy = player:CountNumBuildings(GameInfoTypes.BUILDING_DF_CONNECTED)
local NbConnect = NbCityConnected()
if player:GetCivilizationType() == civilizationID and (not bDirect) then
for unit in player:Units() do
if unit:IsHasPromotion(GameInfoTypes.PROMOTION_VIRIBUS_UNITIS) and unit:GetUnitCombatType() == GameInfoTypes.UNITCOMBAT_MELEE or unit:GetUnitCombatType() == GameInfoTypes.UNITCOMBAT_GUN then
local sUnit = unit:GetBaseCombatStrength()
local unitType = unit:GetUnitType();
local force = GameInfo.Units[unit:GetUnitType()].Combat;
unit:SetBaseCombatStrength(force + (1*(NbCityConnected())))
print("trueVU ok1")
return true
elseif unit:IsHasPromotion(GameInfoTypes.PROMOTION_VIRIBUS_UNITIS) and unit:GetUnitCombatType() == GameInfoTypes.UNITCOMBAT_SIEGE then
local rUnitType = unit:GetUnitType();
local rForce = GameInfo.Units[unit:GetUnitType()].RangedCombat;
unit:SetBaseRangedCombatStrength(rForce + (1*(NbCityConnected())))
print("trueVU ok2")
return true
end
end
end
return false
end
GameEvents.CityConnections.Add(ViribusUnitisT)
GameEvents.CityConnected.Add(ViribusUnitisT)
--GameEvents.PlayerDoTurn.Add(ViribusUnitis)
EDIT: i Know the code is not yet quite optimised^^' i tweaked it so much it became a mess
Last edited: