platyping
Sleeping Dragon
Nope, only for those with default cargo
def onBuildingBuilt(self, argsList):
'Building Completed'
pCity, iBuildingType = argsList
game = gc.getGame()
## Palm Islands Start OSTROVY ##
if iBuildingType == gc.getInfoTypeForString("BUILDING_OSTROVY"):
MarineResource = [gc.getInfoTypeForString("BONUS_FISH"), gc.getInfoTypeForString("BONUS_CLAM"), gc.getInfoTypeForString("BONUS_CRAB")]
PalmResort = [gc.getInfoTypeForString("BUILDING_PALM_JUMEIRAH"), gc.getInfoTypeForString("BUILDING_PALM_JEBEL_ALI"), gc.getInfoTypeForString("BUILDING_PALM_DEIRA")]
IslandName = ["Palm Jumeirah", "Palm Jebel Ali", "Palm Deira"]
iPlayer = pCity.getOwner()
pPlayer = gc.getPlayer(iPlayer)
iTeam = pPlayer.getTeam()
pTeam = gc.getTeam(iTeam)
pLeader = gc.getPlayer(pTeam.getLeaderID())
PalmPlayer = []
for iPlayerX in range(gc.getMAX_CIV_PLAYERS()):
pPlayerX = gc.getPlayer(iPlayerX)
if pPlayerX.isAlive() and pPlayerX.getTeam() == iTeam:
PalmPlayer.append(pPlayerX)
while len(PalmPlayer) < 3:
PalmPlayer.append(pLeader)
for PalmIndex in range(3):
## Select available plots ##
Islands = []
for i in range(CyMap().numPlots()):
pPlot = CyMap().plotByIndex(i)
if pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_OCEAN"):
b_island = true
for x in range(pPlot.getX() - 2, pPlot.getX() + 3):
for y in range(pPlot.getY() - 2, pPlot.getY() + 3):
pPlot2 = CyMap().plot(x, y)
if pPlot2.getOwner() != -1:
b_island = false
break
if pPlot2.isNone() or not pPlot2.isWater():
b_island = false
break
if b_island == false:
break
if b_island == true:
Islands.append(pPlot)
if len(Islands) > 0:
pIsland = Islands[CyGame().getSorenRandNum(len(Islands), "New Island")]
## Shift Naval Units Away ##
for iUnit in range(pIsland.getNumUnits()):
pUnit = pIsland.getUnit(iUnit)
iUnitOwner = pUnit.getOwner()
pUnitOwner = gc.getPlayer(iUnitOwner)
(loopCity, iter) = pUnitOwner.firstCity(false)
while(loopCity):
if loopCity.isCoastal(10):
pNewUnit = pUnitOwner.initUnit(pUnit.getUnitType(), loopCity.getX(), loopCity.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION)
pNewUnit.convert(pUnit)
## For Springfield Armory ## pNewUnit.setBaseCombatStr(pUnit.baseCombatStr()) ## For Springfield Armory ##
pNewUnit.finishMoves()
break
(loopCity, iter) = pUnitOwner.nextCity(iter, false)
## Create Island ##
pIsland.setTerrainType(gc.getInfoTypeForString("TERRAIN_PLAINS"), true, true)
iX = pIsland.getX()
iY = pIsland.getY()
pPlayerX = PalmPlayer[PalmIndex]
pPlayerX.initCity(iX, iY)
PalmCity = pIsland.getPlotCity()
PalmCity.setName(IslandName[PalmIndex], true)
## Adds Resort ##
PalmCity.setNumRealBuilding(PalmResort[PalmIndex], 1)
for x in range(iX - 2, iX + 3):
for y in range(iY - 2, iY + 3):
pPlot = CyMap().plot(x, y)
if (abs(x - iX) != 2 or abs(y - iY) != 2) and pPlot.isWater():
pPlot.setFeatureType(-1, -1)
if pPlot.getBonusType(-1) == -1:
randBonus = CyGame().getSorenRandNum(30, "Freebie")
if randBonus < 3:
pPlot.setBonusType(MarineResource[randBonus])
## Adds Defender ##
pNewUnit = pPlayerX.initUnit(PalmCity.getConscriptUnit(), iX, iY, UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION )
PalmCity.addProductionExperience(pNewUnit, true)
## Palm Islands End OSTROVY ##
# Project Help Start ##
gc = CyGlobalContext()
szSpecialText = ""
if self.iBuilding == gc.getInfoTypeForString("BUILDING_OSTROVY"): szSpecialText = CyTranslator().getText("TXT_KEY_PROJECT_PALM_ISLANDS_HELP",())
elif self.iProject == gc.getInfoTypeForString("PROJECT_THE_INTERNET"): szSpecialText = CyTranslator().getText("TXT_KEY_PROJECT_THE_INTERNET_HELP",())
szSpecialText += CyGameTextMgr().getBuildingHelp(self.iBuilding, True, None)[1:]
## Project Help End ##
def onEndPlayerTurn(self, argsList):
'Called at the end of a players turn'
iGameTurn, iPlayer = argsList
## Big Ben Start ##
pPlayer = gc.getPlayer(iPlayer)
if pPlayer.getBuildingClassCount(gc.getInfoTypeForString("BUILDINGCLASS_BIG_BEN")) == 1:
pPlayer.changeGold(CyGame().getGameTurn() / gc.getGameSpeedInfo(CyGame().getGameSpeedType()).getConstructPercent()/ 100)
## Big Ben End ##
if (gc.getGame().getElapsedGameTurns() == 1):
if (gc.getPlayer(iPlayer).isHuman()):
if (gc.getPlayer(iPlayer).canRevolution(0)):
popupInfo = CyPopupInfo()
popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_CHANGECIVIC)
popupInfo.addPopup(iPlayer)
CvAdvisorUtils.resetAdvisorNags()
CvAdvisorUtils.endTurnFeats(iPlayer)
def onUnitBuilt(self, argsList):
'Unit Completed'
city = argsList[0]
unit = argsList[1]
player = PyPlayer(city.getOwner())
## Brandenburg Start ##
pPlayer = gc.getPlayer(city.getOwner())
iGreatGeneral = city.getAddedFreeSpecialistCount(gc.getInfoTypeForString("SPECIALIST_GREAT_GENERAL"))
if pPlayer.getBuildingClassCount(gc.getInfoTypeForString("BUILDINGCLASS_BRANDENBURG_GATE")) == 1:
if unit.getUnitCombatType() != -1:
unit.changeExperience(iGreatGeneral,100,False,False,False)
## Brandenburg End ##
CvAdvisorUtils.unitBuiltFeats(city, unit)
if (not self.__LOG_UNITBUILD):
return
CvUtil.pyPrint('%s was finished by Player %d Civilization %s'
%(PyInfo.UnitInfo(unit.getUnitType()).getDescription(), player.getID(), player.getCivilizationName()))
def onUnitBuilt(self, argsList):
'Unit Completed'
city = argsList[0]
unit = argsList[1]
player = PyPlayer(city.getOwner())
## Changi Airport Start ##
if city.getNumActiveBuilding(gc.getInfoTypeForString("BUILDING_CHANGI_AIRPORT")):
if unit.getUnitCombatType() == gc.getInfoTypeForString("UNITCOMBAT_AIR"):
unit.setHasPromotion(gc.getInfoTypeForString("PROMOTION_MORALE"), true)
unit.setHasPromotion(gc.getInfoTypeForString("PROMOTION_BLITZ"), true)
## Changi Airport End ##
def onUnitBuilt(self, argsList):
'Unit Completed'
city = argsList[0]
unit = argsList[1]
player = PyPlayer(city.getOwner())
iPlayer = city.getOwner()
pPlayer = gc.getPlayer(iPlayer)
iTeam = pPlayer.getTeam()
pTeam = gc.getTeam(iTeam)
## Brandenburg Start ##
if pPlayer.getBuildingClassCount(gc.getInfoTypeForString("BUILDINGCLASS_BRANDENBURG_GATE")) == 1:
if unit.getUnitCombatType() != -1:
unit.changeExperience(city.getAddedFreeSpecialistCount(gc.getInfoTypeForString("SPECIALIST_GREAT_GENERAL")),100,False,False,False)
## Changi Airport Start ##
if city.getNumActiveBuilding(gc.getInfoTypeForString("BUILDING_CHANGI_AIRPORT")):
if unit.getUnitCombatType() == gc.getInfoTypeForString("UNITCOMBAT_AIR"):
unit.setHasPromotion(gc.getInfoTypeForString("PROMOTION_MORALE"), true)
unit.setHasPromotion(gc.getInfoTypeForString("PROMOTION_BLITZ"), true)
CvAdvisorUtils.unitBuiltFeats(city, unit)
if (not self.__LOG_UNITBUILD):
return
CvUtil.pyPrint('%s was finished by Player %d Civilization %s'
%(PyInfo.UnitInfo(unit.getUnitType()).getDescription(), player.getID(), player.getCivilizationName()))
def cannotCreate(self,argsList):
pCity = argsList[0]
eProject = argsList[1]
bContinue = argsList[2]
bTestVisible = argsList[3]
## Palm Islands Start ##
if eProject == gc.getInfoTypeForString("PROJECT_PALM_ISLANDS"):
pPlayer = gc.getPlayer(pCity.getOwner())
pTeam = gc.getTeam(pPlayer.getTeam())
if pTeam.getNumMembers() > 3:
return True
if CyMap().getLandPlots() * 100 /CyMap().numPlots() > 70:
return True
## Palm Islands End ##
return False
def cannotConstruct(self,argsList):
pCity = argsList[0]
eBuilding = argsList[1]
bContinue = argsList[2]
bTestVisible = argsList[3]
bIgnoreCost = argsList[4]
## Palm Islands Start ##
if eBuilding == gc.getInfoTypeForString("BUILDING_PALM_ISLANDS"):
if CyMap().getLandPlots() * 100 /CyMap().numPlots() > 70:
return True
## Palm Islands End ##
return False
Now the questions is, what happens when the heli is flying around and the transport got destroyed..
Then it is stuck there and cannot move lol
...that's awful for the performance and for the AI. I wouldn't do it.