from CvPythonExtensions import *
import CvEventInterface
import CvUtil
import BugUtil
import PyHelpers
gc = CyGlobalContext()
localText = CyTranslator()
PyPlayer = PyHelpers.PyPlayer
PyInfo = PyHelpers.PyInfo
###################################################
class WorldFair:
def __init__(self, eventManager):
eventManager.addEventHandler("GameStart", self.onGameStart)
eventManager.addEventHandler("BeginGameTurn", self.onBeginGameTurn)
def onGameStart(self, argsList):
'Called at the start of the game'
self.oldcity = [-1,-1]
if (gc.getGame().getGameTurnYear() <> gc.getDefineINT("START_YEAR")):
for iPlayer in range (gc.getMAX_PLAYERS()):
player = gc.getPlayer(iPlayer)
if player.isAlive():
numbuildings = player.countNumBuildings(gc.getInfoTypeForString("BUILDING_WORLDSFAIR"))
if numbuildings>0:
for iCity in range(player.getNumCities()):
pCity = player.getCity(iCity)
if pCity.getNumBuilding(gc.getInfoTypeForString("BUILDING_WORLDSFAIR"))>0:
self.oldcity = [iPlayer,iCity]
def onBeginGameTurn(self, argsList):
'Called at the beginning of the end of each turn'
iGameTurn = argsList[0]
if (CyGame().getTurnYear(iGameTurn)>=1851) and ( iGameTurn % 3 ==0 ):
counter = 0
while True:
counter = counter+1
if counter>=100:break
dice = gc.getGame().getMapRand()
iPlayer = dice.get(gc.getMAX_PLAYERS (), "Players")
pPlayer = gc.getPlayer(iPlayer)
if pPlayer.isNone():continue
if pPlayer.isAlive():
iCity = dice.get(pPlayer.getNumCities () , "Cities" )
pCity = pPlayer.getCity(iCity)
if pCity.isNone():continue
if pCity.getPopulation ()<=10:continue
pCity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_WORLDSFAIR"),1)
CyInterface().addMessage(iPlayer,false,20,CyTranslator().getText("TXT_KEY_CIRCUS_MOVED",(pCity.getName (),pCity.getName ())),'',0,'Art/Interface/Buttons/General/happy_person.dds',ColorTypes(gc.getInfoTypeForString("COLOR_GREEN")), pCity.getX(), pCity.getY(), True,True)
if self.oldcity <>[-1,-1]:
otherplayer = gc.getPlayer(self.oldcity[0])
othercity = otherplayer.getCity(self.oldcity[1])
othercity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_WORLDSFAIR"),0)
CyInterface().addMessage(self.oldcity[0],false,20,CyTranslator().getText("TXT_KEY_CIRCUS_LOST",(othercity.getName (),othercity.getName ())),'',0,'Art/Interface/Buttons/General/warning_popup.dds',ColorTypes(gc.getInfoTypeForString("COLOR_RED")), othercity.getX(), othercity.getY(), True,True)
self.oldcity = [iPlayer,iCity]
break