For the Colonial Canada mod, I'm trying to place a building in each of Canada's friends' capitals, and a building for each in Canada's capital. So far, it's not working.
Does anyone have any insight into why?
There aren't any issues in the Lua logs.
Does anyone have any insight into why?
Code:
CapitalCity = nil
function IsCanadaMyAlly(tPlayer)
local pPlayer = Players[tPlayer]
local isCanadaMyAlly = false
for i, eachPlayer in pairs(Players) do
if eachPlayer:GetCivilizationType() == GameInfoTypes.CIVILIZATION_COLONIALCANADA then
if pPlayer:IsFriends(eachPlayer:GetID()) then
print(eachPlayer:GetName() .. " is friends with " .. pPlayer:GetName())
isCanadaMyAlly = true
break end
end
end
if isCanadaMyAlly == false then
return false
elseif isCanadaMyAlly == true then
return true
end
end
function CanadianBrotherhoodOfNations(cPlayer)
local pPlayer = Players[cPlayer]
if pPlayer:IsEverAlive() == true and pPlayer:IsMinorCiv() == false then
if (pPlayer:GetCivilizationType() ~= GameInfoTypes.CIVILIZATION_COLONIALCANADA) and (pPlayer:IsBarbarian() == false) then
if pPlayer:GetNumCities() > 0 then
CapitalCity = pPlayer:GetCapitalCity()
print(IsCanadaMyAlly(cPlayer))
if IsCanadaMyAlly(cPlayer) then
if CapitalCity:GetNumBuilding(GameInfoTypes.BUILDING_CANADABROTHERHOODOFNATIONS) > 0 then
print(pPlayer:GetName() .. " is already an ally of Canada!")
elseif (CapitalCity:GetNumBuilding(GameInfoTypes.BUILDING_CANADABROTHERHOODOFNATIONS) == 0 or CapitalCity:GetNumBuilding(BUILDING_CANADABROTHERHOODOFNATIONS) == nil) then
CapitalCity:SetNumRealBuilding(GameInfoTypes.BUILDING_CANADABROTHERHOODOFNATIONS, 1)
print(pPlayer:GetName() .. " became an ally of Canada!")
end
else
if CapitalCity:GetNumBuilding(GameInfoTypes.BUILDING_CANADABROTHERHOODOFNATIONS) > 0 then
print(pPlayer:GetName() .. " is no longer an ally of Canada")
CapitalCity:SetNumRealBuilding(GameInfoTypes.BUILDING_CANADABROTHERHOODOFNATIONS, 0)
end
end
end
elseif Players[cPlayer]:GetCivilizationType() == GameInfoTypes.CIVILIZATION_COLONIALCANADA then
print("Canada detected")
if Players[cPlayer]:GetCapitalCity() ~= nil then
local cCity = Players[cPlayer]:GetCapitalCity()
local canadianAllies = 0
for i, gPlayer in pairs(Players) do
if gPlayer:IsFriends(Players[cPlayer]:GetID()) then
canadianAllies = canadianAllies + 1
end
end
print("The number of Allies Canada has is " .. canadianAllies)
if canadianAllies > 0 then
cCity:SetNumRealBuilding(GameInfoTypes.BUILDING_CANADABROTHERHOODOFNATIONS, canadianAllies)
end
else
print("Canada has no Capital!")
end
end
end
end
GameEvents.PlayerDoTurn.Add(CanadianBrotherhoodOfNations)
There aren't any issues in the Lua logs.