def onBeginPlayerTurn(self, argsList):
'Called at the beginning of a players turn'
iGameTurn, iPlayer = argsList
# Make a list of valid AI players
PlayerList = []
for i in range(gc.getMAX_CIV_PLAYERS()):
if (gc.getPlayer(i).isAlive()):
loopPlayer = PyPlayer(gc.getPlayer(i).getID())
if (loopPlayer.isNone() or not loopPlayer.isAlive() or gc.getPlayer(i).isHuman()):
continue
else:
PlayerList.append(loopPlayer.getID())
# Make a list of valid AI Teams
TeamList = []
for i in range(gc.getMAX_CIV_PLAYERS()):
if (gc.getPlayer(i).isAlive()):
loopPlayer = PyPlayer(gc.getPlayer(i).getID())
if (loopPlayer.isNone() or not loopPlayer.isAlive()):
continue
else:
if not gc.getPlayer(i).getTeam() in TeamList:
PlayerList.append(gc.getPlayer(i).getTeam())
# First make sure this player is an AI:
if not gc.getPlayer(iPlayer).isHuman():
# This set makes the AIs demand each other to stop trading.
# Pick two teams to demand that trading ceases.
iTarget1 = PlayerList[CyRandom().get(len(PlayerList), "Get a random number.")]
iTarget2 = TeamList[CyRandom().get(len(TeamList), "Get a random number.")]
# Check for trading.
if gc.getPlayer(iTarget1).canStopTradingWithTeam(gc.getTeam(iTarget2).getID()):
# Determine Yes or No response
Response = CyRandom().get(2, "Get a random number.")
# If the target accepts, stop trading. This may or may not trigger reputation as normal.
if Reponse == 1:
gc.getPlayer(iTarget1).stopTradingWithTeam(gc.getTeam(iTarget2).getID())
# If the target refuses, change attitudes appropriately
if Reponse == 0:
gc.getPlayer(iPlayer).AI_changeAttitudeExtra(iTarget1, -1)
# This part tries to make AIs convert each other.
iTarget1 = PlayerList[CyRandom().get(len(PlayerList), "Get a random number.")]
if not gc.getTeam(gc.getPlayer(iPlayer).getTeam()).isAtWar(gc.getPlayer(iTarget1).getTeam()) and gc.getPlayer(iTarget1).canConvert(gc.getPlayer(iPlayer).getStateReligion()):
Response = CyRandom().get(2, "Get a random number.")
if Response == 1:
gc.getPlayer(iTarget1).convert(gc.getPlayer(iPlayer).getStateReligion())
gc.getPlayer(iPlayer).AI_changeAttitudeExtra(iTarget1, 1)
if Response == 0:
gc.getPlayer(iPlayer).AI_changeAttitudeExtra(iTarget1, -1)