from CvPythonExtensions import *
import CvUtil
import CvScreensInterface
import CvDebugTools
import CvWBPopups
import PyHelpers
import Popup as PyPopup
import CvCameraControls
import CvTopCivs
import sys
import CvWorldBuilderScreen
import CvAdvisorUtils
import CvTechChooser
gc = CyGlobalContext()
localText = CyTranslator()
PyPlayer = PyHelpers.PyPlayer
PyInfo = PyHelpers.PyInfo
# globals
# ##################################################
class CvEventManager:
def __init__(self):
# ######################
# ### RichMod Worker Forest Fix ###
# ######################
self.pPlot_remembered = [-1,""]
# ###############
# ### RichMod ends ###
# ###############
def onBeginPlayerTurn(self, argsList):
'Called at the beginning of a players turn'
iGameTurn, iPlayer = argsList
# ########################
# ### RichMod Worker Forest Fix ###
# is checking all tiles whether some of them had the forest planted in last turn and then removes improvement
# ########################
if (self.pPlot_remembered[0] != -1):
self.pPlot_remembered[0] += 1
if (self.pPlot_remembered[0] > 3):
self.pPlot_remembered[1].setImprovementType(-1)
self.pPlot_remembered = [-1,""]
# ##############
# ### RichMod ends ###
# ##############
def onImprovementBuilt(self, argsList):
'Improvement Built'
iImprovement, iX, iY = argsList
# ##############################################################
# ### RichMod : when improvement finished then remove improvement(delayed) and create a feature ###
# ##############################################################
pPlot = CyMap().plot(iX,iY)
if(iImprovement==gc.getInfoTypeForString('IMPROVEMENT_NEW_FOREST')):
pPlot.setFeatureType(4, 0)
CyInterface().addMessage(CyGame().getActivePlayer(),True,25,'A new forest has been planted!','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/TerrainFeatures/Forest.dds',ColorTypes(8),iX,iY,True,True)
self.pPlot_remembered = [1,pPlot]
if(iImprovement==gc.getInfoTypeForString('IMPROVEMENT_NEW_FORESTW')):
pPlot.setFeatureType(4, 1)
CyInterface().addMessage(CyGame().getActivePlayer(),True,25,'A new forest has been planted!','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/TerrainFeatures/Forest.dds',ColorTypes(8),iX,iY,True,True)
self.pPlot_remembered = [1,pPlot]
# ################
# ### RichMod ends ###
# ################
def onBuildingBuilt(self, argsList):
'Building Completed'
pCity, iBuildingType = argsList
game = gc.getGame()
# #############################
# ## RichMod - The School of Confucius Start ###
# #############################
if ( iBuildingType == gc.getInfoTypeForString("BUILDING_PALACE_CHINA") ):
pPlayer = gc.getPlayer(pCity.plot().getOwner())
iPID = pPlayer.getID()
iTID = pPlayer.getTeam()
iX = pCity.getX()
iY = pCity.getY()
b_school = gc.getInfoTypeForString("BUILDING_PALACE_CHINA")
u_prophet = gc.getInfoTypeForString( 'UNIT_PROPHET' )
u_artist = gc.getInfoTypeForString( 'UNIT_ARTIST' )
u_scientist = gc.getInfoTypeForString( 'UNIT_SCIENTIST' )
u_merchant = gc.getInfoTypeForString( 'UNIT_MERCHANT' )
u_engineer = gc.getInfoTypeForString( 'UNIT_ENGINEER' )
u_general = gc.getInfoTypeForString( 'UNIT_GREAT_GENERAL' )
u_spy = gc.getInfoTypeForString( 'UNIT_GREAT_SPY' )
self.iGreatPeopleNumberOne = self.getRandomNumber( 6 )
self.iGreatPeopleNumberTwo = self.getRandomNumber( 6 )
for i in range(1):
if self.iGreatPeopleNumberOne == 0:
pNewUnit = pPlayer.initUnit( u_prophet, iX, iY, UnitAITypes.UNITAI_PROPHET, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_PROPHET", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberOne == 1:
pNewUnit = pPlayer.initUnit( u_artist, iX, iY, UnitAITypes.UNITAI_ARTIST, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_ARTIST", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberOne == 2:
pNewUnit = pPlayer.initUnit( u_scientist, iX, iY, UnitAITypes.UNITAI_SCIENTIST, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_SCIENTIST", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberOne == 3:
pNewUnit = pPlayer.initUnit( u_merchant, iX, iY, UnitAITypes.UNITAI_MERCHANT, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_MERCHANT", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberOne == 4:
pNewUnit = pPlayer.initUnit( u_engineer, iX, iY, UnitAITypes.UNITAI_ENGINEER, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_ENGINEER", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberOne == 5:
pNewUnit = pPlayer.initUnit( u_general, iX, iY, UnitAITypes.UNITAI_GENERAL, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_GENERAL", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberOne == 6:
pNewUnit = pPlayer.initUnit( u_spy, iX, iY, UnitAITypes.UNITAI_MERCHANT, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_SPY", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
for i in range(1):
if self.iGreatPeopleNumberTwo == 0:
pNewUnit = pPlayer.initUnit( u_prophet, iX, iY, UnitAITypes.UNITAI_PROPHET, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_PROPHET", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberTwo == 1:
pNewUnit = pPlayer.initUnit( u_artist, iX, iY, UnitAITypes.UNITAI_ARTIST, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_ARTIST", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberTwo == 2:
pNewUnit = pPlayer.initUnit( u_scientist, iX, iY, UnitAITypes.UNITAI_SCIENTIST, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_SCIENTIST", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberTwo == 3:
pNewUnit = pPlayer.initUnit( u_merchant, iX, iY, UnitAITypes.UNITAI_MERCHANT, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_MERCHANT", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberTwo == 4:
pNewUnit = pPlayer.initUnit( u_engineer, iX, iY, UnitAITypes.UNITAI_ENGINEER, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_ENGINEER", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberTwo == 5:
pNewUnit = pPlayer.initUnit( u_general, iX, iY, UnitAITypes.UNITAI_GENERAL, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_GENERAL", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
if self.iGreatPeopleNumberTwo == 6:
pNewUnit = pPlayer.initUnit( u_spy, iX, iY, UnitAITypes.UNITAI_MERCHANT, DirectionTypes.NO_DIRECTION )
szTitle = localText.getText( "TXT_KEY_SCHOOL_SPY", ( ) )
CyInterface().addImmediateMessage( szTitle , None)
# ############################
# ## RichMod - The School of Confucius End ###
# ############################
# ################### TRIGGERED EVENTS ##################
# #####################
# RichMod: The School of Confucius Start ###
# #####################
def getRandomNumber(self, int):
return CyGame().getSorenRandNum(int, "Gods")
# #####################
# RichMod: The School of Confucius End ###
# #####################