from CvPythonExtensions import *
import CvEventManager
import CvUtil
import PyHelpers
import Popup as PyPopup
import pickle
import random
import CvTranslator
import sys
import CvAlertManager
# globals
gc = CyGlobalContext()
g = CyGame()
alert = CvAlertManager.CvAlertManager()
#the main class
class CvGustavusEventManager:
def __init__(self, eventManager):
# initialize base class
eventManager.addEventHandler("BeginGameTurn", self.onBeginGameTurn)
# When a turn begins :
def onBeginGameTurn(self, argsList):
iGameTurn, = argsList
#BE CAREFULL :
#The Map I used to test the Mod is not so big :
# X : from 0 to 103
#Y : from 0 to 63
#
# I tested with create Germany at turn 1 and France + Spain at turn 4 => IT WORKS!
###############################################################
#
# ENTER YOUR INFOS HERE
#
###############################################################
#TURN 1 : Germany
if(iGameTurn == 1):
#Germany have to start
iNewPlayer = 7 # Player ID (= player's position in list) in your Map
self.CreateNewCivGermany(iNewPlayer, 87, 40) # 87 (X) and 40 (Y) are coordonates of the plot where the unit will be created
#TURN 4 : France
elif(iGameTurn == 4):
#France have to start
iNewPlayer = 8 # Player ID (= player's position in list) in your Map
self.CreateNewCivFrance(iNewPlayer, 90, 17) # 90 (X) and 17 (Y) are coordonates of the plot where the unit will be created
#TURN 8 : Spain
elif(iGameTurn == 5):
#Spain have to start too
iNewPlayer = 9 # Player ID (= player's position in list) in your Map
self.CreateNewCivSpain(iNewPlayer, 86, 19)
#TURN 9 : Birth of Christ
elif(iGameTurn == 6):
#Tech Christianity to be Granted
iNewPlayer = 1
self.CreateNewFaith(iNewPlayer, 80, 45)
iTechHappy28 = CvUtil.findInfoTypeNum(gc.getTechInfo,gc.getNumTechInfos(),'TECH_THEOLOGY')
pPlayer = gc.getPlayer(1)
pTeam = gc.getTeam(pPlayer.getTeam())
pTeam.setHasTech(iTechHappy28, true, 19, false, false)
#TURN 10 : MAKING A CIV RISE WHEN ANOTHER HAS FALLEN
elif(iGameTurn == 8):
#INFO
iNewPlayer = 12
iPlayer = 3
iPlayer2 = 4
iPlayer3 = 5
iPlayer4 = 6
self.CreateNewCivWhenAnotherisGoneMulti(iNewPlayer,iPlayer,iPlayer2,iPlayer3,iPlayer4, 86, 40)
#TURN 20 : MAKING A CIV RISE WHEN ANOTHER HAS FALLEN
elif(iGameTurn == 20):
#INFO
iNewPlayer = 11
iPlayer = 2
self.CreateNewCivWhenAnotherisGone(iNewPlayer,iPlayer, 49, 45)
#TURN 25 : in reverse
elif(iGameTurn == 25):
#INFO
iNewPlayer = 2
iPlayer = 11
self.CreateNewCivWhenAnotherisGone(iNewPlayer,iPlayer, 49, 45)
#INSERT THE OTHER TURNS/CIVS HERE...
#elif(iGameTurn == ??):
#Germany have to start
#iNewPlayer = ??
#self.CreateNewCiv(iNewPlayer, ??, ??)
###############################################################
#
# END YOUR INFOS HERE
#
###############################################################
# My function that creates the new unit :
def CreateNewCivGermany(self, iNewPlayer, iX, iY):
pNewPlayer = gc.getPlayer(iNewPlayer)
if(not pNewPlayer.isAlive()):
#Create new Player
pNewPlayer.setPlayable(True)
g.addPlayer(iNewPlayer, pNewPlayer.getTeam(), pNewPlayer.getPersonalityType(), pNewPlayer.getCivilizationType())
#Create a settler
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_FOUNDER"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SPEARMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
#Add a message on screen
CyInterface().addMessage(g.getActivePlayer(),true,15,"Year %s: A new Civilization (%s) has been created !" %(g.getGameTurnYear(), pNewPlayer.getCivilizationDescription(pNewPlayer.getCivilizationType())),'',0,'',ColorTypes(11), 1, 1, True,True)
return
def CreateNewCivFrance(self, iNewPlayer, iX, iY):
pNewPlayer = gc.getPlayer(iNewPlayer)
if(not pNewPlayer.isAlive()):
#Create new Player
pNewPlayer.setPlayable(True)
g.addPlayer(iNewPlayer, pNewPlayer.getTeam(), pNewPlayer.getPersonalityType(), pNewPlayer.getCivilizationType())
#Create a settler
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_FOUNDER"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SPEARMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_SWORDSMAN"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
#Add a message on screen
CyInterface().addMessage(g.getActivePlayer(),true,15,"Year %s: A new Civilization (%s) has been created !" %(g.getGameTurnYear(), pNewPlayer.getCivilizationDescription(pNewPlayer.getCivilizationType())),'',0,'',ColorTypes(11), 1, 1, True,True)
return
def CreateNewCivSpain(self, iNewPlayer, iX, iY):
pNewPlayer = gc.getPlayer(iNewPlayer)
if(not pNewPlayer.isAlive()):
#Create new Player
pNewPlayer.setPlayable(True)
g.addPlayer(iNewPlayer, pNewPlayer.getTeam(), pNewPlayer.getPersonalityType(), pNewPlayer.getCivilizationType())
#Create a settler
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_FOUNDER"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_INFANTRY"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_INFANTRY"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_INFANTRY"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_INFANTRY"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
#Add a message on screen
CyInterface().addMessage(g.getActivePlayer(),true,15,"Year %s: A new Civilization (%s) has been created !" %(g.getGameTurnYear(), pNewPlayer.getCivilizationDescription(pNewPlayer.getCivilizationType())),'',0,'',ColorTypes(11), 1, 1, True,True)
return
def CreateNewCivWhenAnotherisGone(self, iNewPlayer,iPlayer, iX, iY):
pNewPlayer = gc.getPlayer(iNewPlayer)
ploopPlayer = gc.getPlayer(iPlayer)
if not ploopPlayer.isHuman() and not pNewPlayer.isAlive():
#Create new Player
pNewPlayer.setPlayable(True)
g.addPlayer(iNewPlayer, pNewPlayer.getTeam(), pNewPlayer.getPersonalityType(), pNewPlayer.getCivilizationType())
#Create a settler
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_INFANTRY"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_RAIDERTANK"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
#Add a message on screen
CyInterface().addMessage(g.getActivePlayer(),true,15,"Year %s: A new Civilization (%s) has been created !" %(g.getGameTurnYear(), pNewPlayer.getCivilizationDescription(pNewPlayer.getCivilizationType())),'',0,'',ColorTypes(11), 1, 1, True,True)
return
def CreateNewCivWhenAnotherisGoneMulti(self, iNewPlayer,iPlayer,iPlayer2,iPlayer3,iPlayer4, iX, iY):
pCity = CyMap().plot(87,40).getPlotCity()
pNewPlayer = gc.getPlayer(iNewPlayer)
ploopPlayer = gc.getPlayer(iPlayer)
ploopPlayer2 = gc.getPlayer(iPlayer2)
ploopPlayer3 = gc.getPlayer(iPlayer3)
ploopPlayer4 = gc.getPlayer(iPlayer4)
if not ploopPlayer.isHuman() and not ploopPlayer2.isHuman() and not ploopPlayer3.isHuman() and not ploopPlayer4.isHuman() and not pNewPlayer.isAlive():
#Create new Player
pNewPlayer.setPlayable(True)
g.addPlayer(iNewPlayer, pNewPlayer.getTeam(), pNewPlayer.getPersonalityType(), pNewPlayer.getCivilizationType())
#Create a settler
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_INFANTRY"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
pNewPlayer.acquireCity(pCity,true,false)
pCity.changeCulture(iNewPlayer, 300, True)
#Add a message on screen
CyInterface().addMessage(g.getActivePlayer(),true,15,"Year %s: A new Civilization (%s) has been created !" %(g.getGameTurnYear(), pNewPlayer.getCivilizationDescription(pNewPlayer.getCivilizationType())),'',0,'',ColorTypes(11), 1, 1, True,True)
return
def CreateNewFaith(self, iNewPlayer, iX, iY):
pNewPlayer = gc.getPlayer(iNewPlayer)
if(pNewPlayer.isAlive()):
#Rome is Alive
#Create a unit
pNewPlayer.initUnit(gc.getInfoTypeForString("UNIT_WORKER"), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
#Add a message on screen
CyInterface().addMessage(g.getActivePlayer(),true,15,"Year %s: The Catholic Church (%s) has been born !" %(g.getGameTurnYear(), pNewPlayer.getCivilizationDescription(pNewPlayer.getCivilizationType())),'',0,'',ColorTypes(11), 1, 1, True,True)
return