コード例 #1
0
def setAnimals(eAnimal,plots):
	pBarbPlayer = gc.getPlayer(gc.getBARBARIAN_PLAYER())
	eUnitClass = gc.getUnitInfo(eAnimal).getUnitClassType()
	iBarbUnits = pBarbPlayer.getUnitClassCount(eUnitClass)

	#  0 = WORLDSIZE_DUEL
	#  1 = WORLDSIZE_TINY
	#  2 = WORLDSIZE_SMALL
	#  3 = WORLDSIZE_STANDARD
	#  4 = WORLDSIZE_LARGE
	#  5 = WORLDSIZE_HUGE
	iMapSize = gc.getMap().getWorldSize()
	iAnimals = iMapSize + 1 - iBarbUnits

	# Ausnahmen
	if eAnimal == gc.getInfoTypeForString("UNIT_UR"):
		iAnimals = 2 - iBarbUnits # maximal 2
	if iAnimals <= 0:
		return

	# Tiere setzen
	i = 0
	while i < iAnimals:
		iRand = CvUtil.myRandom(len(plots), "spawnAnimalOnPlot")
		CvUtil.spawnUnit(eAnimal, plots[iRand], pBarbPlayer)
		#plots.remove(plots[iRand])
		i += 1
コード例 #2
0
def doStrandgut():
	iBarbPlayer = gc.getBARBARIAN_PLAYER()
	pBarbPlayer = gc.getPlayer(iBarbPlayer)
	iTreibgut = gc.getInfoTypeForString("UNIT_TREIBGUT")
	iStrandgut = gc.getInfoTypeForString("UNIT_STRANDGUT")
	iGoldkarren = gc.getInfoTypeForString("UNIT_GOLDKARREN")
	iDarkIce = gc.getInfoTypeForString("FEATURE_DARK_ICE")
	eCoast = gc.getInfoTypeForString("TERRAIN_COAST")

	lUnits = PyPlayer(iBarbPlayer).getUnitsOfType(iTreibgut)
	# CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 15, CyTranslator().getText("TXT_KEY_MESSAGE_TEST", ("Test",len(lUnits))), None, 2, None, ColorTypes(11), 0, 0, False, False)
	for loopUnit in lUnits:
		pPlot = loopUnit.plot()
		if pPlot.getTerrainType() == eCoast:
			lPlots = []
			iX = pPlot.getX()
			iY = pPlot.getY()
			# iRange = 1
			for iI in xrange(DirectionTypes.NUM_DIRECTION_TYPES):
				loopPlot = plotDirection(iX, iY, DirectionTypes(iI))
				if loopPlot and not loopPlot.isNone():
					if not loopPlot.isWater():
						if not loopPlot.isPeak() and not loopPlot.isUnit() and loopPlot.getFeatureType() != iDarkIce:
							lPlots.append(loopPlot)
			if lPlots:
				pPlot = lPlots[CvUtil.myRandom(len(lPlots), "strandgut")]
				# Create Strandgut
				CvUtil.spawnUnit(iStrandgut, pPlot, pBarbPlayer)
				iPlotOwner = pPlot.getOwner()
				if iPlotOwner != -1 and gc.getPlayer(iPlotOwner).isHuman():
					CyInterface().addMessage(iPlotOwner, True, 15, CyTranslator().getText("TXT_KEY_TREIB2STRANDGUT", ()), None, 2, "Art/Interface/Buttons/Units/button_unit_strandgut.dds", ColorTypes(11), pPlot.getX(), pPlot.getY(), True, True)
				# Disband Treibgut
				# loopUnit.doCommand(CommandTypes.COMMAND_DELETE, -1, -1)
				loopUnit.kill(True, -1)  # RAMK_CTD
		elif pPlot.isCity():
			# Create Goldkarren
			CvUtil.spawnUnit(iGoldkarren, pPlot, pBarbPlayer)
			# Disband Treibgut
			# CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 15, CyTranslator().getText("disbandTreibgutCity", ()), None, 2, None, ColorTypes(11), pPlot.getX(), pPlot.getY(), False, False)
			# loopUnit.doCommand(CommandTypes.COMMAND_DELETE, -1, -1)
			loopUnit.kill(True, -1)  # RAMK_CTD
コード例 #3
0
def setUnitIntoCave(pPlot):
	lUnits = []
	if pPlot.getFeatureType() == gc.getInfoTypeForString("FEATURE_FOREST"):
		lUnits.append(gc.getInfoTypeForString("UNIT_BEAR"))
		lUnits.append(gc.getInfoTypeForString("UNIT_WOLF"))
	elif pPlot.getFeatureType() == gc.getInfoTypeForString("FEATURE_DICHTERWALD"):
		lUnits.append(gc.getInfoTypeForString("UNIT_BEAR"))
		lUnits.append(gc.getInfoTypeForString("UNIT_WOLF"))
		lUnits.append(gc.getInfoTypeForString("UNIT_UR"))
	elif pPlot.getFeatureType() == gc.getInfoTypeForString("FEATURE_JUNGLE"):
		lUnits.append(gc.getInfoTypeForString("UNIT_PANTHER"))
		lUnits.append(gc.getInfoTypeForString("UNIT_LEOPARD"))
		lUnits.append(gc.getInfoTypeForString("UNIT_TIGER"))
	elif pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_DESERT"):
		lUnits.append(gc.getInfoTypeForString("UNIT_LION"))
		lUnits.append(gc.getInfoTypeForString("UNIT_HYENA"))
	elif pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_TUNDRA"):
		lUnits.append(gc.getInfoTypeForString("UNIT_WOLF"))

	if lUnits:
		iRand = CvUtil.myRandom(len(lUnits), "setUnitIntoCave")
		CvUtil.spawnUnit(lUnits[iRand], pPlot, gc.getPlayer(gc.getBARBARIAN_PLAYER()))
コード例 #4
0
def doVikings():
    iBarbPlayer = gc.getBARBARIAN_PLAYER()
    pBarbPlayer = gc.getPlayer(iBarbPlayer)
    iUnitTypeShip = gc.getInfoTypeForString("UNIT_VIKING_1")
    iUnitTypeUnit = gc.getInfoTypeForString("UNIT_VIKING_2")
    iDarkIce = gc.getInfoTypeForString("FEATURE_DARK_ICE")

    iMapW = gc.getMap().getGridWidth()
    iMapH = gc.getMap().getGridHeight()
    bMeldung = False

    for _ in xrange(4):
        iRandX = CvUtil.myRandom(iMapW, "W")
        iRandY = iMapH - CvUtil.myRandom(5, "H")
        loopPlot = gc.getMap().plot(iRandX, iRandY)
        if loopPlot is not None and not loopPlot.isNone():
            if loopPlot.getFeatureType() == iDarkIce:
                continue
            if not loopPlot.isUnit() and loopPlot.isWater(
            ) and not loopPlot.isLake() and not loopPlot.isOwned():
                # Wikinger erstellen
                bMeldung = True
                CvUtil.spawnUnit(iUnitTypeShip, loopPlot, pBarbPlayer)
                for _ in xrange(4):
                    CvUtil.spawnUnit(iUnitTypeUnit, loopPlot, pBarbPlayer)

    if bMeldung:
        if gc.getGame().getGameTurnYear() == 400:
            for iPlayer in xrange(gc.getMAX_PLAYERS()):
                pPlayer = gc.getPlayer(iPlayer)
                if pPlayer.isAlive() and pPlayer.isHuman():
                    popupInfo = CyPopupInfo()
                    popupInfo.setButtonPopupType(
                        ButtonPopupTypes.BUTTONPOPUP_TEXT)
                    popupInfo.setText(CyTranslator().getText(
                        "TXT_KEY_MESSAGE_VIKINGS", ("", )))
                    popupInfo.addPopup(pPlayer.getID())
            CyAudioGame().Play2DSound("AS2D_THEIRDECLAREWAR")
コード例 #5
0
def doHuns():
    iHuns = 0
    iGameTurn = gc.getGame().getGameTurnYear()
    if iGameTurn == 250:
        iHuns = 20
    elif iGameTurn == 255:
        iHuns = 24
    elif iGameTurn == 260:
        iHuns = 28
    elif iGameTurn >= 270 and iGameTurn <= 400 and iGameTurn % 10 == 0:
        iHuns = 28  # Diesen Wert auch unten bei der Meldung angeben!

    if iHuns == 0:
        return

    CivHuns = gc.getInfoTypeForString("CIVILIZATION_HUNNEN")
    bHunsAlive = False

    iMaxPlayers = gc.getMAX_PLAYERS()
    for iPlayer in xrange(iMaxPlayers):
        pPlayer = gc.getPlayer(iPlayer)
        # Hunnen sollen nur auftauchen, wenn es nicht bereits Hunnen gibt
        if pPlayer.getCivilizationType() == CivHuns and pPlayer.isAlive():
            bHunsAlive = True
            break

    if not bHunsAlive:
        for iPlayer in xrange(iMaxPlayers):
            pPlayer = gc.getPlayer(iPlayer)

            # Message PopUps
            if iHuns < 28 and pPlayer.isAlive() and pPlayer.isHuman():
                popupInfo = CyPopupInfo()
                popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_TEXT)
                if iHuns == 20:
                    popupInfo.setText(CyTranslator().getText(
                        "TXT_KEY_MESSAGE_HUNNEN_1", ("", )))
                elif iHuns == 24:
                    CyAudioGame().Play2DSound("AS2D_THEIRDECLAREWAR")
                    popupInfo.setText(CyTranslator().getText(
                        "TXT_KEY_MESSAGE_HUNNEN_2", ("", )))
                else:
                    popupInfo.setText(CyTranslator().getText(
                        "TXT_KEY_MESSAGE_HUNNEN_3", ("", )))
                popupInfo.addPopup(pPlayer.getID())

        iMapW = gc.getMap().getGridWidth()
        iMapH = gc.getMap().getGridHeight()
        iDarkIce = gc.getInfoTypeForString("FEATURE_DARK_ICE")

        # 15 Versuche einen Plot zu finden
        bPlot = False
        for _ in xrange(15):
            # Diese Koordinaten entsprechen Nord-Osten
            iRandX = iMapW - 15 + CvUtil.myRandom(15, "W2")
            iRandY = iMapH - 15 + CvUtil.myRandom(15, "H2")
            loopPlot = gc.getMap().plot(iRandX, iRandY)
            if loopPlot is not None and not loopPlot.isNone():
                if loopPlot.getFeatureType(
                ) != iDarkIce and not loopPlot.isUnit(
                ) and not loopPlot.isWater() and not loopPlot.isOwned(
                ) and not loopPlot.isPeak():
                    bPlot = True
                    break

        if not bPlot:
            return

        # Hunnen versuchen zu erstellen  False: Ausgeschaltet!
        if iGameTurn >= 250 and gc.getGame().countCivPlayersAlive(
        ) < iMaxPlayers and False:
            # freie PlayerID herausfinden
            iHunsID = 0
            for i in xrange(iMaxPlayers):
                j = iMaxPlayers - i - 1
                pPlayer = gc.getPlayer(j)
                if not pPlayer.isAlive():
                    iHunsID = j
                    break

            if iHunsID == 0:
                return

            # Hunnen erstellen
            LeaderHuns = gc.getInfoTypeForString("LEADER_ATTILA")
            gc.getGame().addPlayer(iHunsID, LeaderHuns, CivHuns)
            pPlayer = gc.getPlayer(iHunsID)

            iUnitSettler = gc.getInfoTypeForString("UNIT_SETTLER")
            iUnitSpearman = gc.getInfoTypeForString("UNIT_SPEARMAN")
            iUnitWorker = gc.getInfoTypeForString("UNIT_WORKER")
            iUnitKeshik = gc.getInfoTypeForString("UNIT_MONGOL_KESHIK")
            iUnitArcher = gc.getInfoTypeForString("UNIT_REFLEX_ARCHER")
            iUnitHorse = gc.getInfoTypeForString("UNIT_HORSE")
            for _ in xrange(3):
                CvUtil.spawnUnit(iUnitSettler, loopPlot, pPlayer)
            for _ in xrange(4):
                CvUtil.spawnUnit(iUnitSpearman, loopPlot, pPlayer)
            for _ in xrange(6):
                CvUtil.spawnUnit(iUnitWorker, loopPlot, pPlayer)
            for _ in xrange(8):
                CvUtil.spawnUnit(iUnitKeshik, loopPlot, pPlayer)
            for _ in xrange(9):
                CvUtil.spawnUnit(iUnitArcher, loopPlot, pPlayer)
            for _ in xrange(9):
                CvUtil.spawnUnit(iUnitHorse, loopPlot, pPlayer)

            pPlayer.setCurrentEra(3)
            pPlayer.setGold(300)

            # increasing Anger to all other CIVs
            # and looking for best tech player
            pTeam = gc.getTeam(pPlayer.getTeam())
            iPlayerBestTechScore = -1
            iTechScore = 0
            for i in xrange(iMaxPlayers):
                pSecondPlayer = gc.getPlayer(i)
                # increases Anger for all AIs
                if pSecondPlayer.getID() != pPlayer.getID(
                ) and pSecondPlayer.isAlive():
                    # Haltung aendern
                    pPlayer.AI_changeAttitudeExtra(i, -5)
                    # Krieg erklaeren
                    pTeam.declareWar(pSecondPlayer.getTeam(), 0, 6)
                    # TechScore herausfinden
                    if iTechScore < pSecondPlayer.getTechScore():
                        iTechScore = pSecondPlayer.getTechScore()
                        iPlayerBestTechScore = i

            # Techs geben
            if iPlayerBestTechScore > -1:
                xTeam = gc.getTeam(
                    gc.getPlayer(iPlayerBestTechScore).getTeam())
                iTechNum = gc.getNumTechInfos()
                for iTech in xrange(iTechNum):
                    if gc.getTechInfo(iTech) is not None and xTeam.isHasTech(
                            iTech) and not pTeam.isHasTech(
                                iTech) and gc.getTechInfo(iTech).isTrade():
                        pTeam.setHasTech(iTech, 1, iHunsID, 0, 0)

        else:
            iUnitType = gc.getInfoTypeForString('UNIT_MONGOL_KESHIK')
            pBarbPlayer = gc.getPlayer(gc.getBARBARIAN_PLAYER())
            for _ in xrange(iHuns):
                CvUtil.spawnUnit(iUnitType, loopPlot, pBarbPlayer)
コード例 #6
0
def doSeevoelker():
    iBarbPlayer = gc.getBARBARIAN_PLAYER()
    pBarbPlayer = gc.getPlayer(iBarbPlayer)

    iUnitTypeShip = gc.getInfoTypeForString("UNIT_SEEVOLK")  # Cargo: 3
    iUnitTypeWarrior1 = gc.getInfoTypeForString("UNIT_SEEVOLK_1")
    iUnitTypeWarrior2 = gc.getInfoTypeForString("UNIT_SEEVOLK_2")
    iUnitTypeWarrior3 = gc.getInfoTypeForString("UNIT_SEEVOLK_3")

    # Handicap: 0 (Settler) - 8 (Deity)
    # Worldsize: 0 (Duell) - 5 (Huge)
    iRange = 1 + gc.getMap().getWorldSize() + gc.getGame().getHandicapType()
    #iRange = max(iRange,8)

    iPlots = gc.getMap().numPlots()
    iLandPlots = gc.getMap().getLandPlots()
    # Wenn es mehr Land als Wasser gibt
    if iLandPlots > iPlots / 2: iRange /= 2

    for _ in xrange(iRange):
        # Wird geaendert zu einem Mittelmeerstreifen: x: 5 bis (X-5), y: 5 bis letztes Drittel von Y
        iMapX = gc.getMap().getGridWidth() - 5
        iMapY = int(gc.getMap().getGridHeight() / 3 * 2)
        iRandX = 5 + CvUtil.myRandom(iMapX, "X")
        iRandY = 5 + CvUtil.myRandom(iMapY, "Y")

        loopPlot = gc.getMap().plot(iRandX, iRandY)
        # Plot soll ein Ozean sein
        terr_ocean = gc.getInfoTypeForString("TERRAIN_OCEAN")
        feat_ice = gc.getInfoTypeForString("FEATURE_ICE")
        iDarkIce = gc.getInfoTypeForString("FEATURE_DARK_ICE")

        if loopPlot is not None and not loopPlot.isNone():
            if loopPlot.getFeatureType() == iDarkIce:
                continue
            if not loopPlot.isUnit() and not loopPlot.isOwned(
            ) and loopPlot.getFeatureType(
            ) != feat_ice and loopPlot.getTerrainType() == terr_ocean:
                # Schiffe erstellen
                iAnz = 1
                if bRageBarbs and gc.getGame().getGameTurnYear() > -1000:
                    iAnz = 2
                #elif gc.getGame().getGameTurnYear() > -1200:
                #  iAnz = 2

                for _ in xrange(iAnz):
                    CvUtil.spawnUnit(iUnitTypeShip, loopPlot, pBarbPlayer)
                    CvUtil.spawnUnit(iUnitTypeWarrior1, loopPlot, pBarbPlayer)
                    CvUtil.spawnUnit(iUnitTypeWarrior2, loopPlot, pBarbPlayer)
                    CvUtil.spawnUnit(iUnitTypeWarrior3, loopPlot, pBarbPlayer)

    # Meldung PopUp
    if gc.getGame().getGameTurnYear() > -1400 and gc.getGame().getGameTurnYear(
    ) < -1380:
        for iPlayer in xrange(gc.getMAX_PLAYERS()):
            pPlayer = gc.getPlayer(iPlayer)
            if pPlayer.isAlive() and pPlayer.isHuman():
                popupInfo = CyPopupInfo()
                popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_TEXT)
                popupInfo.setText(CyTranslator().getText(
                    "TXT_KEY_MESSAGE_SEAPEOPLES", ("", )))
                popupInfo.addPopup(pPlayer.getID())
        CyAudioGame().Play2DSound("AS2D_THEIRDECLAREWAR")
コード例 #7
0
def createCampUnit(iPlayer, iGameTurn):
    pPlayer = gc.getPlayer(iPlayer)
    if not pPlayer.isAlive(): return

    iTeam = pPlayer.getTeam()
    pTeam = gc.getTeam(iTeam)
    #eCiv = gc.getCivilizationInfo(pPlayer.getCivilizationType())

    if pPlayer.getUnitClassCount(
            gc.getInfoTypeForString("UNITCLASS_SPECIAL1")) > 0:
        # Terrain
        #eTundra = gc.getInfoTypeForString("TERRAIN_TUNDRA")
        #eGras = gc.getInfoTypeForString("TERRAIN_GRASS")
        #eEbene = gc.getInfoTypeForString("TERRAIN_PLAINS")
        eDesert = gc.getInfoTypeForString("TERRAIN_DESERT")
        # Feature
        #eDichterWald = gc.getInfoTypeForString("FEATURE_DICHTERWALD")

        eCamp = gc.getInfoTypeForString("UNIT_CAMP")

        lCamps = PyPlayer(pPlayer.getID()).getUnitsOfType(eCamp)
        for pUnit in lCamps:
            if pUnit is not None and not pUnit.isNone():
                #pUnit.NotifyEntity(MissionTypes.MISSION_FOUND)
                if pUnit.getFortifyTurns() == 0: return

                bCreateUnit = False
                iFortified = CvUtil.getScriptData(pUnit, ["f"], -1)

                if iFortified == -1:
                    CvUtil.addScriptData(pUnit, "f", iGameTurn)
                elif (iGameTurn - iFortified) % 5 == 0:
                    bCreateUnit = True

                if bCreateUnit:
                    pPlot = pUnit.plot()
                    lUnits = []

                    # Not on hills (for HI)
                    if pPlayer.isHuman() and pPlot.isHills():
                        CyInterface().addMessage(
                            iPlayer, True, 10,
                            CyTranslator().getText("TXT_KEY_HELP_NOCAMPUNIT",
                                                   ("", )), None, 2,
                            "Art/Interface/Buttons/General/button_alert_new.dds",
                            ColorTypes(11), pPlot.getX(), pPlot.getY(), True,
                            True)
                        return

                    # Desert
                    if pPlot.getTerrainType() == eDesert:
                        if pPlayer.canTrain(
                                gc.getInfoTypeForString(
                                    "UNIT_ARABIA_CAMELARCHER"), 0, 0):
                            lUnits.append(
                                gc.getInfoTypeForString(
                                    "UNIT_ARABIA_CAMELARCHER"))
                        if pPlayer.canTrain(
                                gc.getInfoTypeForString(
                                    "UNIT_CAMEL_CATAPHRACT"), 0, 0):
                            lUnits.append(
                                gc.getInfoTypeForString(
                                    "UNIT_CAMEL_CATAPHRACT"))

                    # Open terrain (primary Mounted only)
                    if not lUnits and pPlot.getFeatureType() == -1:
                        if pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_MONGOL_KESHIK"),
                                0, 0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_MONGOL_KESHIK"))
                        if pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_CATAPHRACT"), 0,
                                0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_CATAPHRACT"))
                        if pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_HORSE_ARCHER"),
                                0, 0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_HORSE_ARCHER"))

                        if not lUnits and pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_HORSEMAN"), 0,
                                0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_HORSEMAN"))

                    # On forests or if no mounted units available/constructable
                    if not lUnits:

                        if pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_REFLEX_ARCHER"),
                                0, 0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_REFLEX_ARCHER"))
                        else:
                            lUnits.append(
                                gc.getInfoTypeForString(
                                    "UNIT_COMPOSITE_ARCHER"))

                        if pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_SKIRMISHER"), 0,
                                0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_SKIRMISHER"))

                        if pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_AXEMAN2"), 0, 0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_AXEMAN2"))

                        if pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_SWORDSMAN"), 0,
                                0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_SWORDSMAN"))
                        elif pPlayer.canTrain(
                                gc.getInfoTypeForString("UNIT_SCHILDTRAEGER"),
                                0, 0):
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_SCHILDTRAEGER"))
                        else:
                            lUnits.append(
                                gc.getInfoTypeForString("UNIT_KURZSCHWERT"))

                        # standard unit
                        lUnits.append(gc.getInfoTypeForString("UNIT_SPEARMAN"))

                        iUnit = -1
                        if lUnits:
                            iUnit = lUnits[CvUtil.myRandom(
                                len(lUnits), "createCampUnit")]

                        # AI: Einheit autom, verkaufen (Soeldnerposten), falls Geldprobleme
                        if not pPlayer.isHuman() and (
                                pPlayer.AI_isFinancialTrouble()
                                or pTeam.getAtWarCount(True) == 0):
                            pPlayer.changeGold(25)
                        elif iUnit != -1:
                            # Einheit erstellen
                            CvUtil.spawnUnit(iUnit, pPlot, pPlayer)
コード例 #8
0
def doOlympicGames():
	# wurde das Projekt erstellt?
	if gc.getGame().getProjectCreatedCount(gc.getInfoTypeForString("PROJECT_OLYMPIC_GAMES")) == 0:
		return

	# alle 4 Runden
	if gc.getGame().getCalendar() == gc.getInfoTypeForString("CALENDAR_MONTHS"):
		iTurns = 48
	elif gc.getGame().getCalendar() == gc.getInfoTypeForString("CALENDAR_SEASONS"):
		iTurns = 16
	else:
		iTurns = 4

	if gc.getGame().getElapsedGameTurns() % iTurns == 1:

		# Inits
		lCities4Olympiade = []
		lHumans = []
		lPlayers = []

		iTechSchaukampf = gc.getInfoTypeForString("TECH_GLADIATOR")
		iTechImperialismus = gc.getInfoTypeForString("TECH_NATIONALISM")
		iTechPapsttum = gc.getInfoTypeForString("TECH_PAPSTTUM")
		iReligionGreek = gc.getInfoTypeForString("RELIGION_GREEK")
		iReligionRome = gc.getInfoTypeForString("RELIGION_ROME")

		iBuildingStadion = gc.getInfoTypeForString("BUILDING_STADION")
		iBuildingClassStadion = gc.getInfoTypeForString("BUILDINGCLASS_STADION")
		iBuildingOlympionike = gc.getInfoTypeForString("BUILDING_OLYMPIONIKE")
		iBuildingClassGymnasion = gc.getInfoTypeForString("BUILDINGCLASS_SPECIAL3")

		# Los gehts
		iNumPlayers = gc.getMAX_PLAYERS()
		for iPlayer in xrange (iNumPlayers):
			pPlayer = gc.getPlayer(iPlayer)
			if pPlayer and not pPlayer.isNone() and pPlayer.isAlive(): # and not pPlayer.isBarbarian():

				# Hat der Spieler noch nicht Schaukampf erforscht, isser nicht dabei
				if not gc.getTeam(pPlayer.getTeam()).isHasTech(iTechSchaukampf):
					continue

				# Hat der Spieler bereits das Papsttum erforscht, is der Spass vorbei
				if gc.getTeam(pPlayer.getTeam()).isHasTech(iTechPapsttum):
					continue

				# Hat der Spieler Imperialismus erforscht?
				bAllowRomanGods = False
				if gc.getTeam(pPlayer.getTeam()).isHasTech(iTechImperialismus):
					bAllowRomanGods = True

				# Init des Spezialgebäudes Gymnasion, Gymnasium
				iBuildingGymnasion = gc.getCivilizationInfo(pPlayer.getCivilizationType()).getCivilizationBuildings(iBuildingClassGymnasion)

				# Cities
				iNumCities = pPlayer.getNumCities()
				for iCity in xrange (iNumCities):
					pCity = pPlayer.getCity(iCity)
					if pCity and not pCity.isNone():

						# Aktuellen Olympioniken rausschmeissen
						pCity.setNumRealBuilding(iBuildingOlympionike,0)

						# Hat die Stadt die richtige Religion?
						if pCity.isHasReligion(iReligionGreek) or bAllowRomanGods and pCity.isHasReligion(iReligionRome):

							# Liste für Spielermeldungen
							if pPlayer.isHuman() and iPlayer not in lHumans:
								lHumans.append(iPlayer)

							# Liste verschiedener CIVs
							if iPlayer not in lPlayers:
								lPlayers.append(iPlayer)

							# Stadt an den Spielen zulassen
							lCities4Olympiade.append(pCity)
							# Verbesserte Chancen:
							if pCity.isHasBuilding(iBuildingStadion):
								lCities4Olympiade.append(pCity)
							if pCity.isHasBuilding(iBuildingGymnasion):
								lCities4Olympiade.append(pCity)

		# Choose new Olympic Winner City
		# erst ab 2 CIVs
		if len(lPlayers) <= 1:
			return

		iRand = CvUtil.myRandom(len(lCities4Olympiade), "CityOfOlympiadWinner")
		pCity = lCities4Olympiade[iRand]

		# Olympionike in die Stadt stellen
		pCity.setNumRealBuilding(iBuildingOlympionike,1)

		# Stadion verbessern +1 Kultur
		if pCity.isHasBuilding(iBuildingStadion):
			iCulture = pCity.getBuildingCommerceChange(iBuildingClassStadion, CommerceTypes.COMMERCE_CULTURE) + 1
			pCity.setBuildingCommerceChange(iBuildingClassStadion, CommerceTypes.COMMERCE_CULTURE, iCulture)

		# Goldkarren erzeugen
		CvUtil.spawnUnit(gc.getInfoTypeForString("UNIT_GOLDKARREN"), pCity.plot(), gc.getPlayer(pCity.getOwner()))
		CvUtil.spawnUnit(gc.getInfoTypeForString("UNIT_GOLDKARREN"), pCity.plot(), gc.getPlayer(pCity.getOwner()))
		# einen weiteren bei Seasons
		if iTurns >= 16:
			CvUtil.spawnUnit(gc.getInfoTypeForString("UNIT_GOLDKARREN"), pCity.plot(), gc.getPlayer(pCity.getOwner()))
			# zwei weitere bei Months (insg. 5)
			if iTurns > 16:
				CvUtil.spawnUnit(gc.getInfoTypeForString("UNIT_GOLDKARREN"), pCity.plot(), gc.getPlayer(pCity.getOwner()))
				CvUtil.spawnUnit(gc.getInfoTypeForString("UNIT_GOLDKARREN"), pCity.plot(), gc.getPlayer(pCity.getOwner()))

		# Chance eines beladenen Fuhrwerks
		if CvUtil.myRandom(4, "Olympia_ChanceOfBonus") == 1:
			pNewUnit = CvUtil.spawnUnit(gc.getInfoTypeForString("UNIT_SUPPLY_FOOD"), pCity.plot(), gc.getPlayer(pCity.getOwner()))
			lBonuses = [
				gc.getInfoTypeForString("BONUS_OLIVES"),
				gc.getInfoTypeForString("BONUS_OLIVES"),
				gc.getInfoTypeForString("BONUS_OLIVES"),
				gc.getInfoTypeForString("BONUS_OLIVES"),
				gc.getInfoTypeForString("BONUS_OLIVES"),
				gc.getInfoTypeForString("BONUS_GRAPES"),
				gc.getInfoTypeForString("BONUS_GRAPES"),
				gc.getInfoTypeForString("BONUS_GRAPES"),
				gc.getInfoTypeForString("BONUS_ROGGEN"),
				gc.getInfoTypeForString("BONUS_HAFER"),
				gc.getInfoTypeForString("BONUS_GERSTE"),
				gc.getInfoTypeForString("BONUS_WHEAT"),
				gc.getInfoTypeForString("BONUS_HIRSE"),
				gc.getInfoTypeForString("BONUS_HORSE")
			]
			eBonus = CvUtil.myRandom(len(lBonuses), "Olympia_BonusType")
			eBonus = lBonuses[eBonus]
			CvUtil.addScriptData(pNewUnit, "b", eBonus)


		# Meldung an alle beteiligten Spieler
		for iPlayer in lHumans:
			xSound = None
			iColor = 14 # graublau
			bShow = False
			# Extra PopUp wenn HI der Gewinner ist
			if iPlayer == pCity.getOwner():
				xSound = "AS2D_WELOVEKING"
				iColor = 10 # cyan
				bShow = True
				popupInfo = CyPopupInfo()
				popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_TEXT)
				sText = CyTranslator().getText("TXT_KEY_INFO_OLYMPIC_GAMES_WINNER", (pCity.getName(),gc.getPlayer(pCity.getOwner()).getCivilizationShortDescription(0)))
				popupInfo.setText(sText)
				popupInfo.addPopup(iPlayer)
			# Ingame Text
			CyInterface().addMessage(iPlayer, True, 15, CyTranslator().getText("TXT_KEY_INFO_OLYMPIC_GAMES_WINNER", (pCity.getName(),gc.getPlayer(pCity.getOwner()).getCivilizationShortDescription(0))), xSound, 2, "Art/Interface/Buttons/Buildings/button_building_olympionike.dds", ColorTypes(iColor), pCity.plot().getX(), pCity.plot().getY(), bShow, bShow)
コード例 #9
0
def doPlotFeatures():

	iGameTurn = gc.getGame().getElapsedGameTurns()
	if iGameTurn < 5: return

	# Inits
	iBarbPlayer = gc.getBARBARIAN_PLAYER()
	pBarbPlayer = gc.getPlayer(iBarbPlayer)

	# Flotsam
	terrOzean = gc.getInfoTypeForString("TERRAIN_OCEAN")
	bFlot = gc.getTeam(pBarbPlayer.getTeam()).isHasTech(gc.getInfoTypeForString("TECH_RUDERER2"))

	# Barbaren improvements
	impBarbFort = gc.getInfoTypeForString("IMPROVEMENT_BARBARENFORT")
	impCave = gc.getInfoTypeForString("IMPROVEMENT_CAVE")
	impGoody = gc.getInfoTypeForString("IMPROVEMENT_GOODY_HUT")
	iBarbForts = 0
	iCaves = 0
	iGoodyHuts = 0

	# Animals
	bonus_lion = gc.getInfoTypeForString("BONUS_LION")
	bonus_horse = gc.getInfoTypeForString("BONUS_HORSE")
	bonus_camel = gc.getInfoTypeForString("BONUS_CAMEL")
	bonus_ivory = gc.getInfoTypeForString("BONUS_IVORY")
	bonus_dogs = gc.getInfoTypeForString("BONUS_HUNDE")
	bonus_deer = gc.getInfoTypeForString("BONUS_DEER")
	bonus_pig = gc.getInfoTypeForString("BONUS_PIG")
	# features
	iDarkIce = gc.getInfoTypeForString("FEATURE_DARK_ICE")
	iFeatBurned = gc.getInfoTypeForString("FEATURE_FOREST_BURNT")
	iFeatSeuche = gc.getInfoTypeForString("FEATURE_SEUCHE")
	iTerrDesert = gc.getInfoTypeForString("TERRAIN_DESERT")
	iTerrPlains = gc.getInfoTypeForString("TERRAIN_PLAINS")
	iTerrTundra = gc.getInfoTypeForString("TERRAIN_TUNDRA")
	iFeatForest = gc.getInfoTypeForString("FEATURE_FOREST")
	iFeatDenseForest = gc.getInfoTypeForString("FEATURE_DICHTERWALD")
	iFeatJungle = gc.getInfoTypeForString("FEATURE_JUNGLE")

	# Heuschrecken/Grasshopper
	iFeatGrasshopper = gc.getInfoTypeForString("FEATURE_GRASSHOPPER")
	# Desert Storm
	iFeatDesertstorm = gc.getInfoTypeForString("FEATURE_FALLOUT")
	lDesertStorm = []

	# Plots
	Ocean = []
	Desert = []
	Forest = []
	DenseForest = []
	Tundra = []
	Plains = []
	Jungle = []
	Hills = []
	#GoodyPlots = []

	# map
	iMapW = gc.getMap().getGridWidth()
	iMapH = gc.getMap().getGridHeight()

	for x in xrange(iMapW):
		for y in xrange(iMapH):
			loopPlot = gc.getMap().plot(x, y)
			if loopPlot and not loopPlot.isNone():

				iPlotFeature = loopPlot.getFeatureType()
				iPlotTerrain = loopPlot.getTerrainType()
				iPlotImprovement = loopPlot.getImprovementType()

				if iPlotFeature == iDarkIce:
					continue

				if iPlotFeature == iFeatGrasshopper:
					doMoveGrasshoppers(loopPlot)
					continue
				if iPlotFeature == iFeatDesertstorm:
					lDesertStorm.append(loopPlot)
					continue

				if loopPlot.getFeatureType() == iFeatBurned:
					if CvUtil.myRandom(50, "burntForest2Forest") == 1:
						loopPlot.setFeatureType(iFeatForest, 0)
					continue

				# isWater
				if loopPlot.isWater():

					# Treibgut nur alle 10 Runden erstellen (wenn aktiv)
					if bFlotsam and gc.getGame().getGameTurn() % 10 == 0:
						if bFlot and bGoodyHuts:
							if loopPlot.getOwner() == -1:
								if iPlotTerrain == terrOzean:
									if loopPlot.getNumUnits() > 0:
										Ocean.append(loopPlot)

				# isLand
				elif not loopPlot.isPeak():
					iPlotOwner = loopPlot.getOwner()
					# nur ausserhalb von Cities
					if not loopPlot.isCity():

						# Forts oder Handelsposten
						if iPlotImprovement in L.LImprFortShort:
							# Init
							iOwner = -1
							iOwner = int(CvUtil.getScriptData(loopPlot, ["p", "t"], loopPlot.getOwner()))
							# Handelsposten entfernen, wenn der Plot in einem fremden Kulturkreis liegt
							if iPlotImprovement == gc.getInfoTypeForString("IMPROVEMENT_HANDELSPOSTEN"):
								if iOwner != iPlotOwner and iPlotOwner != -1:
									loopPlot.setImprovementType(-1)
									if gc.getPlayer(iOwner).isHuman():
										szText = CyTranslator().getText("TXT_KEY_INFO_CLOSED_TRADEPOST", ("",))
										CyInterface().addMessage(iOwner, True, 15, szText, "AS2D_UNIT_BUILD_UNIT", 2, "Art/Interface/Buttons/General/button_alert_new.dds", ColorTypes(7), loopPlot.getX(), loopPlot.getY(), True, True)

								# Kultur setzen
								if iPlotOwner == -1:
									loopPlot.setCulture(iOwner, 1, True)
									loopPlot.setOwner(iOwner)
							# Kultur bei Forts
							#else:
							#  doCheckFortCulture(loopPlot)

							continue

						# Check nur alle x Runden (Tier-Spawn)
						if iGameTurn % 2 == 0:

							# Lion - 3% Appearance
							if loopPlot.getBonusType(-1) == bonus_lion and iPlotImprovement == -1:
								if loopPlot.getNumUnits() == 0:
									if CvUtil.myRandom(33, "lion") == 1:
										iUnitType = gc.getInfoTypeForString("UNIT_LION")
										pBarbPlayer.initUnit(iUnitType, x, y, UnitAITypes.UNITAI_ATTACK, DirectionTypes.DIRECTION_SOUTH)
										# ***TEST***
										#CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 10, "Barb. Atlasloewe erschaffen", None, 2, None, ColorTypes(10), 0, 0, False, False)
										continue
							# Wolf - 3% Appearance
							elif loopPlot.getBonusType(iPlotOwner) == bonus_dogs and iPlotImprovement == -1:
								if loopPlot.getNumUnits() == 0:
									if CvUtil.myRandom(33, "wolf") == 1:
										iUnitType = gc.getInfoTypeForString("UNIT_WOLF")
										pBarbPlayer.initUnit(iUnitType, x, y, UnitAITypes.UNITAI_ATTACK, DirectionTypes.DIRECTION_SOUTH)
										continue
							# Deer - 3% Appearance
							elif loopPlot.getBonusType(-1) == bonus_deer and iPlotImprovement == -1:
								if loopPlot.getNumUnits() == 0:
									iRand = CvUtil.myRandom(33, "deer or bear")
									if iRand == 1:
										iUnitType = gc.getInfoTypeForString("UNIT_DEER")
										pBarbPlayer.initUnit(iUnitType, x, y, UnitAITypes.UNITAI_ATTACK, DirectionTypes.DIRECTION_SOUTH)
										continue
									elif iRand == 2:
										iUnitType = gc.getInfoTypeForString("UNIT_BEAR")
										pBarbPlayer.initUnit(iUnitType, x, y, UnitAITypes.UNITAI_ATTACK, DirectionTypes.DIRECTION_SOUTH)
										continue
							# Boar/Schwarzwild - 3% Appearance
							elif loopPlot.getBonusType(iPlotOwner) == bonus_pig and iPlotImprovement == -1:
								if loopPlot.getNumUnits() == 0:
									if CvUtil.myRandom(33, "boar") == 1:
										iUnitType = gc.getInfoTypeForString("UNIT_BOAR")
										pBarbPlayer.initUnit(iUnitType, x, y, UnitAITypes.UNITAI_ATTACK, DirectionTypes.DIRECTION_SOUTH)
										continue
							# Horse - 2% Appearance
							elif loopPlot.getBonusType(iPlotOwner) == bonus_horse:
								iUnitType = gc.getInfoTypeForString("UNIT_HORSE")
								#iUnitTypeDom = gc.getInfoTypeForString("UNIT_HORSE")
								iTechDom = gc.getInfoTypeForString("TECH_PFERDEZUCHT")
								sTextDom = "TXT_KEY_INFO_DOM_HORSE"
								if loopPlot.getNumUnits() == 0:
									if CvUtil.myRandom(50, "horse") == 1:
										# Check Owner
										iNewUnitOwner = iBarbPlayer
										if iPlotOwner != -1 and iPlotOwner != iBarbPlayer:
											if gc.getTeam(gc.getPlayer(iPlotOwner).getTeam()).isHasTech(iTechDom):
												iNewUnitOwner = iPlotOwner
												#iUnitType = iUnitTypeDom
											elif gc.getPlayer(iPlotOwner).isHuman():
												CyInterface().addMessage(iPlotOwner, True, 10, CyTranslator().getText(sTextDom, ("",)), None, 2, gc.getBonusInfo(bonus_horse).getButton(), ColorTypes(13), x, y, True, True)
										# Add Unit
										gc.getPlayer(iNewUnitOwner).initUnit(iUnitType, x, y, UnitAITypes.UNITAI_EXPLORE, DirectionTypes.DIRECTION_SOUTH)
										continue
							# Camel - 2% Appearance
							elif loopPlot.getBonusType(iPlotOwner) == bonus_camel:
								iUnitType = gc.getInfoTypeForString("UNIT_CAMEL")
								#iUnitTypeDom = gc.getInfoTypeForString("UNIT_CAMEL")
								iTechDom = gc.getInfoTypeForString("TECH_KAMELZUCHT")
								sTextDom = "TXT_KEY_INFO_DOM_CAMEL"
								if loopPlot.getNumUnits() == 0:
									if CvUtil.myRandom(50, "camel") == 1:
										# Check Owner
										iNewUnitOwner = iBarbPlayer
										if iPlotOwner != -1:
											if gc.getTeam(gc.getPlayer(iPlotOwner).getTeam()).isHasTech(iTechDom):
												iNewUnitOwner = iPlotOwner
												#iUnitType = iUnitTypeDom
											elif gc.getPlayer(iPlotOwner).isHuman():
												CyInterface().addMessage(iPlotOwner, True, 10, CyTranslator().getText(sTextDom, ("",)), None, 2, gc.getBonusInfo(bonus_camel).getButton(), ColorTypes(13), x, y, True, True)
										# Add Unit
										gc.getPlayer(iNewUnitOwner).initUnit(iUnitType, x, y, UnitAITypes.UNITAI_EXPLORE, DirectionTypes.DIRECTION_SOUTH)
										continue
							# Elefant - 2% Appearance (ab Eisenzeit)
							elif loopPlot.getBonusType(iPlotOwner) == bonus_ivory and pBarbPlayer.getCurrentEra() >= 2:
								iUnitType = gc.getInfoTypeForString("UNIT_ELEFANT")
								if loopPlot.getNumUnits() == 0:
									if CvUtil.myRandom(50, "ele") == 1:
										# Check Owner
										iNewUnitOwner = iBarbPlayer
										if iPlotOwner != -1:
											if gc.getTeam(gc.getPlayer(iPlotOwner).getTeam()).isHasTech(gc.getInfoTypeForString("TECH_ELEFANTENZUCHT")):
												iNewUnitOwner = iPlotOwner
											elif gc.getPlayer(iPlotOwner).isHuman():
												CyInterface().addMessage(iPlotOwner, True, 10, CyTranslator().getText("TXT_KEY_INFO_DOM_ELEFANT", ("",)), None, 2, gc.getBonusInfo(bonus_ivory).getButton(), ColorTypes(13), x, y, True, True)
										# Add Unit
										gc.getPlayer(iNewUnitOwner).initUnit(iUnitType, x, y, UnitAITypes.UNITAI_EXPLORE, DirectionTypes.DIRECTION_SOUTH)
										continue

						# Barbarenforts/festungen (erzeugt barbarische Einheiten alle x Runden)
						if iPlotImprovement == impBarbFort:
							iBarbForts += 1
							#if iPlotOwner == -1 or iPlotOwner == iBarbPlayer:
							if loopPlot.getNumUnits() == 0:
								# Verteidiger setzen
								PAE_Barbaren.setFortDefence(loopPlot)
							elif loopPlot.getNumUnits() > 4:
								iNum = loopPlot.getNumUnits() - 4
								for k in xrange(iNum):
									loopPlot.getUnit(k).kill(True, -1)
							elif pBarbPlayer.getCurrentEra() > 0:
								if bRageBarbs:
									iTurns = 5
								else:
									iTurns = 10
								if gc.getGame().getGameTurn() % iTurns == 0:
									iAnzUnits = PAE_Barbaren.countNearbyUnits(loopPlot, 2, iBarbPlayer)
									if iAnzUnits < 6:
										# Einheiten) setzen
										PAE_Barbaren.createBarbUnit(loopPlot)
							continue
						# Baerenhoehle
						elif iPlotImprovement == impCave:
							iCaves += 1
							#if loopPlot.getNumUnits() <= 1:
							if CvUtil.myRandom(15, "cave bear") == 1:
								if not PAE_Barbaren.checkNearbyUnits(loopPlot,3): # (Plot, Radius)
									setUnitIntoCave(loopPlot)
								continue
						# Goody huts
						elif iPlotImprovement == impGoody:
							iGoodyHuts += 1

						# Keine Seuche in Deserts
						if iPlotTerrain == iTerrDesert and iPlotFeature == iFeatSeuche:
							loopPlot.setFeatureType(-1,0)

						# leere Plots zwischenspeichern
						if iGameTurn > 150 and iGameTurn % 10 == 0:
							if iPlotOwner == -1:
								if loopPlot.getNumUnits() == 0 and not loopPlot.isActiveVisible(0):

									# Empty Plots for Animals and Barbs
									if iPlotTerrain == iTerrDesert:
										Desert.append(loopPlot)
									elif iPlotTerrain == iTerrTundra:
										Tundra.append(loopPlot)
									elif iPlotFeature == iFeatDenseForest:
										DenseForest.append(loopPlot)
									elif iPlotFeature == iFeatJungle:
										Jungle.append(loopPlot)
									elif iPlotFeature == iFeatForest:
										Forest.append(loopPlot)
									elif iPlotTerrain == iTerrPlains:
										Plains.append(loopPlot)
									if loopPlot.isHills():
										Hills.append(loopPlot)
				# end if - not isCity

	# Plots verarbeiten --------------------------------

	# Flotsam (if activated)
	if bFlotsam and bFlot and bGoodyHuts:
		if Ocean:
			if CvUtil.myRandom(33, "setFlotsam") == 1:
				iUnit = gc.getInfoTypeForString("UNIT_TREIBGUT")
				iNum = gc.getMap().getWorldSize() + 1
				for i in xrange(iNum):
					CvUtil.spawnUnit(iUnit, Ocean[CvUtil.myRandom(len(Ocean), "spawnFlotsam")], pBarbPlayer)

	# Tiere setzen --------------------
	if Desert:
		if CvUtil.myRandom(33, "setAnimals4Desert") == 1:
			setAnimals(gc.getInfoTypeForString("UNIT_CAMEL"),Desert)
			setAnimals(gc.getInfoTypeForString("UNIT_LION"),Desert)
			setAnimals(gc.getInfoTypeForString("UNIT_HYENA"),Desert)
	elif DenseForest:
		if CvUtil.myRandom(33, "setAnimals4DenseForest") == 1:
			setAnimals(gc.getInfoTypeForString("UNIT_WOLF"),DenseForest)
			setAnimals(gc.getInfoTypeForString("UNIT_UR"),DenseForest)
			setAnimals(gc.getInfoTypeForString("UNIT_BEAR"),DenseForest)
	elif Tundra:
		if CvUtil.myRandom(33, "setAnimals4Tundra") == 1:
			setAnimals(gc.getInfoTypeForString("UNIT_WOLF"),Tundra)
			setAnimals(gc.getInfoTypeForString("UNIT_BEAR"),Tundra)
	elif Jungle:
		if CvUtil.myRandom(33, "setAnimals4Jungle") == 1:
			setAnimals(gc.getInfoTypeForString("UNIT_PANTHER"),Jungle)
			setAnimals(gc.getInfoTypeForString("UNIT_TIGER"),Jungle)
			setAnimals(gc.getInfoTypeForString("UNIT_LEOPARD"),Jungle)
			setAnimals(gc.getInfoTypeForString("UNIT_ELEFANT"),Jungle)
	elif Forest:
		if CvUtil.myRandom(33, "setAnimals4Forest") == 1:
			setAnimals(gc.getInfoTypeForString("UNIT_WOLF"),Forest)
			setAnimals(gc.getInfoTypeForString("UNIT_BEAR"),Forest)
			setAnimals(gc.getInfoTypeForString("UNIT_BOAR"),Forest)
			setAnimals(gc.getInfoTypeForString("UNIT_DEER"),Forest)
	elif Plains:
		if CvUtil.myRandom(33, "setAnimals4Plains") == 1:
			setAnimals(gc.getInfoTypeForString("UNIT_HYENA"),Plains)
			setAnimals(gc.getInfoTypeForString("UNIT_LEOPARD"),Plains)
			#setAnimals(gc.getInfoTypeForString("UNIT_HORSE"),Plains)

	# Goody huts setzen
	if bGoodyHuts:
		nPlots = Jungle + Forest + Plains
		if nPlots:
			if CvUtil.myRandom(33, "setGoodyHuts") == 1:
				setGoodies(impGoody,iGoodyHuts,nPlots)

	# Barbaren Forts setzen
	if bBarbForts:
		nPlots = Hills
		if nPlots:
			if CvUtil.myRandom(33, "setBarbForts") == 1:
				setGoodies(impBarbFort,iBarbForts,nPlots)

	# Caves setzen
	nPlots = Jungle + Forest + DenseForest + Desert + Tundra
	if nPlots:
		if CvUtil.myRandom(33, "setCaves") == 1:
			setGoodies(impCave,iCaves,nPlots)

	# move Desertstorm / Sandsturm bewegen
	if lDesertStorm:
		doMoveDesertStorm(lDesertStorm)

	# Olympiade / Olympic Games / Panhellenic Games
	doOlympicGames()