def onBeginPlayerTurn(self, argsList):
'Called at the beginning of a players turn'
iGameTurn, iPlayer = argsList
## Topkapi Palace Start ##
pPlayer = gc.getPlayer(iPlayer)
iTeam = pPlayer.getTeam()
pTeam = gc.getTeam(iTeam)
b_Topkapi = gc.getInfoTypeForString("BUILDING_TOPKAPI_PALACE")
obsoleteTech = gc.getBuildingInfo(b_Topkapi).getObsoleteTech()
if ( gc.getTeam(pPlayer.getTeam()).isHasTech(obsoleteTech) == false or obsoleteTech == -1 ):
for iCity in range(pPlayer.getNumCities()):
ppCity = pPlayer.getCity(iCity)
if ppCity.getNumActiveBuilding(b_Topkapi) == true:
for iPlayer in range(gc.getMAX_PLAYERS()):
ppPlayer = gc.getPlayer(iPlayer)
if ( (ppPlayer.isAlive()==true) and (ppPlayer.isBarbarian()==false) ):
if ( gc.getTeam(ppPlayer.getTeam()).isVassal(iTeam) == true ):
iGold = ppPlayer.getGold( )
if ppPlayer.getGold( ) >= 5000:
ppPlayer.changeGold( 50 )
if ppPlayer.getGold( ) < 5000:
if ppPlayer.getGold( ) >= 100:
ppPlayer.changeGold( iGold//50 )
else:
ppPlayer.changeGold( 2 )
ppPlayer.changeCombatExperience( +1 )
## Topkapi Palace End ##
## Crusade Start ##
pPlayer = gc.getPlayer(iPlayer)
b_Crusade = gc.getInfoTypeForString("BUILDING_CRUSADE")
obsoleteTech = gc.getBuildingInfo(b_Crusade).getObsoleteTech()
if ( gc.getTeam(pPlayer.getTeam()).isHasTech(obsoleteTech) == false or obsoleteTech == -1 ):
for iCity in range(pPlayer.getNumCities()):
ppCity = pPlayer.getCity(iCity)
if ppCity.getNumActiveBuilding(b_Crusade) == true:
iX = ppCity.getX()
iY = ppCity.getY()
u_crusader = gc.getInfoTypeForString( 'UNIT_CRUSADER' )
estiEnd = CyGame().getEstimateEndTurn()
if ( estiEnd >= 1000 ):
if ( iGameTurn % 12 ) == 0:
for i in range(1):
pNewUnit = pPlayer.initUnit( u_crusader, iX, iY, UnitAITypes.UNITAI_ATTACK_CITY, DirectionTypes.NO_DIRECTION )
elif ( estiEnd >= 700 ):
if ( iGameTurn % 8 ) == 0:
for i in range(1):
pNewUnit = pPlayer.initUnit( u_crusader, iX, iY, UnitAITypes.UNITAI_ATTACK_CITY, DirectionTypes.NO_DIRECTION )
elif ( estiEnd >= 500 ):
if ( iGameTurn % 6 ) == 0:
for i in range(1):
pNewUnit = pPlayer.initUnit( u_crusader, iX, iY, UnitAITypes.UNITAI_ATTACK_CITY, DirectionTypes.NO_DIRECTION )
elif ( estiEnd >= 300 ):
if ( iGameTurn % 4 ) == 0:
for i in range(1):
pNewUnit = pPlayer.initUnit( u_crusader, iX, iY, UnitAITypes.UNITAI_ATTACK_CITY, DirectionTypes.NO_DIRECTION )
else:
if ( iGameTurn % 4 ) == 0:
for i in range(1):
pNewUnit = pPlayer.initUnit( u_crusader, iX, iY, UnitAITypes.UNITAI_ATTACK_CITY, DirectionTypes.NO_DIRECTION )
basechance = 12
estiEnd = CyGame().getEstimateEndTurn()
if ( estiEnd >= 1000 ):
basechance = basechance
elif ( estiEnd >= 700 ):
basechance = 6
elif ( estiEnd >= 500 ):
basechance = 4
elif ( estiEnd >= 300 ):
basechance = 2
else:
basechance = 1
chance = CyGame().getSorenRandNum(basechance, "free state religion spread chance")
if ( chance == 0 ):
lppCityUber5 = []
for iiCity in range(pPlayer.getNumCities()):
ppCity = pPlayer.getCity(iiCity)
if ( not ppCity.isHasReligion(pPlayer.getStateReligion()) ):
lppCityUber5.append(ppCity)
if ( len(lppCityUber5) != 0 ):
chance = CyGame().getSorenRandNum(len(lppCityUber5), "which city")
ppCity = lppCityUber5[chance]
ppCity.setHasReligion(pPlayer.getStateReligion(), true, true, true)
## Crusade End ##
## e-Bank Start ##
pPlayer = gc.getPlayer(iPlayer)
b_eBank = gc.getInfoTypeForString("BUILDING_E_BANK")
obsoleteTech = gc.getBuildingInfo(b_eBank).getObsoleteTech()
if ( gc.getTeam(pPlayer.getTeam()).isHasTech(obsoleteTech) == false or obsoleteTech == -1 ):
for iCity in range(pPlayer.getNumCities()):
ppCity = pPlayer.getCity(iCity)
if ppCity.getNumActiveBuilding(b_eBank) == true:
pPID = pPlayer.getID()
iGold = pPlayer.getGold( )
pPlayer.changeGold( iGold//50 )
## e-Bank End ##
def onEndPlayerTurn(self, argsList):
'Called at the end of a players turn'
iGameTurn, iPlayer = argsList