GameEvents.SetAlly (Civ5 API)
This page is a part of the Lua and UI Reference (Civ5).
This function is a member of GameEvents. This is a static method, invoke it with a dot. |
Triggered when the ally of a City-State changes (whether it changes from none or from another player).
Usage
void GameEvents.SetAlly(PlayerID cSPlayer, PlayerID oldAlly, PlayerID newAlly)
Event Type
- Unknown
Parameters
cSPlayer: The City-State player in question oldAlly: The former ally of the City-State; presumably nil or similar if the CS did not have an ally newAlly: The new ally of the City-State
Source code samples
Too many occurences. Only 50 out of 2 are listed.
TurnsRemaining.lua - DLC_04 DLC
DLC/DLC_04/Scenarios/1066Scenario/TurnsRemaining.lua
0135
|
GameEvents.SetAlly.Add(function(iCSPlayer, iOldAlly, iNewAlly) |
0137
|
print ("SetAlly called, params: " .. tostring(iCSPlayer) .. ", " .. tostring(iOldAlly) .. ", " .. tostring(iNewAlly)); |
0139
|
if (iNewAlly == -1) then |
0140
|
local pPlayer = Players[iOldAlly]; |
0141
|
for unit in pPlayer:Units() |
0142
|
do |
0143
|
if (unit:IsCombatUnit() and unit:GetOriginalOwner() == iCSPlayer) then |
0144
|
ChangeOwner(unit, iCSPlayer, -1); |
0145
|
end |
0146
|
end |
0147
|
else |
0148
|
local pPlayer = Players[iCSPlayer]; |
0149
|
for unit in pPlayer:Units() |
0150
|
do |
0151
|
if (unit:IsCombatUnit()) then |
0152
|
ChangeOwner(unit, iNewAlly, iCSPlayer); |
0153
|
end |
0154
|
end |
0155
|
end |
0157
|
if (iNewAlly == -1) then |
0158
|
if (iOldAlly == Game.GetActivePlayer()) then |
0160
|
local strPlayerKey = Players[iCSPlayer]:GetCivilizationShortDescriptionKey(); |
0162
|
-- Put up dialog box |
0163
|
local popupInfo = { |
0164
|
Data1 = 500, |
0165
|
Type = ButtonPopupTypes.BUTTONPOPUP_TEXT, |
0166
|
Text = Locale.ConvertTextKey("TXT_KEY_1066_SCENARIO_ALLY_LOST", strPlayerKey); |
0167
|
} |
0169
|
UI.AddPopup(popupInfo); |
0170
|
end |
0171
|
else |
0172
|
if (iNewAlly == Game.GetActivePlayer()) then |
0174
|
local strPlayerKey = Players[iCSPlayer]:GetCivilizationShortDescriptionKey(); |
0176
|
-- Put up dialog box |
0177
|
local popupInfo = { |
0178
|
Data1 = 500, |
0179
|
Type = ButtonPopupTypes.BUTTONPOPUP_TEXT, |
0180
|
Text = Locale.ConvertTextKey("TXT_KEY_1066_SCENARIO_ALLY_GAINED", strPlayerKey); |
0181
|
} |
0183
|
UI.AddPopup(popupInfo); |
0184
|
end |
0185
|
end |
0187
|
end); |
TurnsRemaining.lua (G&K)
DLC/Expansion/Scenarios/MedievalScenario/TurnsRemaining.lua
0331
|
GameEvents.SetAlly.Add(function(iMinor, iOldAlly, iNewAlly) |
0333
|
local iMeccaPlayer = GetPersistentProperty("MeccaPlayer"); |
0334
|
local iVaticanPlayer = GetPersistentProperty("VaticanPlayer"); |
0335
|
local iProtestantPlayer = GetPersistentProperty("ProtestantHolyCityPlayer") |
0337
|
if (iNewAlly == -1) then |
0338
|
if (iMinor == iMeccaPlayer) then |
0339
|
Game.SetFounder(GameInfoTypes["RELIGION_ISLAM"], iMeccaPlayer); |
0340
|
elseif (iMinor == iVaticanPlayer) then |
0341
|
Game.SetFounder(GameInfoTypes["RELIGION_CHRISTIANITY"], iVaticanPlayer); |
0342
|
end |
0344
|
else |
0345
|
local civType = Players[iNewAlly]:GetCivilizationType(); |
0347
|
if (iMinor == iMeccaPlayer) then |
0348
|
if (civType == GameInfo.Civilizations["CIVILIZATION_SONGHAI"].ID or |
0349
|
civType == GameInfo.Civilizations["CIVILIZATION_OTTOMAN"].ID or |
0350
|
civType == GameInfo.Civilizations["CIVILIZATION_ARABIA"].ID) then |
0351
|
Game.SetFounder(GameInfoTypes["RELIGION_ISLAM"], iNewAlly); |
0352
|
else |
0353
|
Game.SetFounder(GameInfoTypes["RELIGION_ISLAM"], iMeccaPlayer); |
0354
|
end |
0356
|
elseif (iMinor == iVaticanPlayer) then |
0357
|
if (MyCurrentReligion(iNewAlly) == 2 and |
0358
|
(civType == GameInfo.Civilizations["CIVILIZATION_FRANCE"].ID or |
0359
|
civType == GameInfo.Civilizations["CIVILIZATION_CELTS"].ID or |
0360
|
civType == GameInfo.Civilizations["CIVILIZATION_ENGLAND"].ID or |
0361
|
civType == GameInfo.Civilizations["CIVILIZATION_SPAIN"].ID or |
0362
|
civType == GameInfo.Civilizations["CIVILIZATION_NETHERLANDS"].ID or |
0363
|
civType == GameInfo.Civilizations["CIVILIZATION_AUSTRIA"].ID or |
0364
|
civType == GameInfo.Civilizations["CIVILIZATION_SWEDEN"].ID)) then |
0365
|
Game.SetFounder(GameInfoTypes["RELIGION_CHRISTIANITY"], iNewAlly); |
0366
|
else |
0367
|
Game.SetFounder(GameInfoTypes["RELIGION_CHRISTIANITY"], iVaticanPlayer); |
0368
|
end |
0370
|
elseif (iMinor == GetPersistentProperty("ProtestantHolyCityPlayer")) then |
0371
|
if (MyCurrentReligion(iNewAlly) == 13 and |
0372
|
(civType == GameInfo.Civilizations["CIVILIZATION_FRANCE"].ID or |
0373
|
civType == GameInfo.Civilizations["CIVILIZATION_CELTS"].ID or |
0374
|
civType == GameInfo.Civilizations["CIVILIZATION_ENGLAND"].ID or |
0375
|
civType == GameInfo.Civilizations["CIVILIZATION_SPAIN"].ID or |
0376
|
civType == GameInfo.Civilizations["CIVILIZATION_NETHERLANDS"].ID or |
0377
|
civType == GameInfo.Civilizations["CIVILIZATION_AUSTRIA"].ID or |
0378
|
civType == GameInfo.Civilizations["CIVILIZATION_SWEDEN"].ID)) then |
0379
|
Game.SetFounder(GameInfoTypes["RELIGION_PROTESTANTISM"], iNewAlly); |
0380
|
else |
0381
|
Game.SetFounder(GameInfoTypes["RELIGION_PROTESTANTISM"], iProtestantPlayer); |
0382
|
end |
0384
|
end |
0385
|
end |
0387
|
end); |
The initial version of this page was created by the Civ5 API Bot, see the Civ5 API Reference FAQ. Some of the texts come from the 2kgames' wiki and most of code samples are copyrighted to Firaxis.
Functions' signatures were either copied from the 2kgames' wiki, or infered from the Lua source files and the binaries. Errors are possible.
Contributors may find help in the Contributors guide to the Civ5 API.