j_mie6
Deity
is the free specialist bit still my code lingering in there. At least it's not 100% plat 

Nope, it is still not option 3.
Option 3 requires checks for plot ownership.
The specialist code only checks that city is built adjacent to it, but does not care if the plot belongs to who.
It is possible to make dummy invisible
is the free specialist bit still my code lingering in there. At least it's not 100% plat![]()
How can I make a specialist (that'd be easiest because your code already gives natural wonders a free specialist) totally invisible? So also no empty spaces in the city screen, that you have space between two free specialists because there is an ' invisible' third free specialist in between?
pHeadSelectedCity = CyInterface().getHeadSelectedCity()
if ( CyInterface().isCityScreenUp() ):
if (pHeadSelectedCity and CyInterface().getShowInterface() == InterfaceVisibility.INTERFACE_SHOW):
if ( pHeadSelectedCity.angryPopulation(0) < MAX_CITIZEN_BUTTONS ):
iCount = pHeadSelectedCity.angryPopulation(0)
else:
iCount = MAX_CITIZEN_BUTTONS
for i in range(iCount):
bHandled = True
szName = "AngryCitizen" + str(i)
screen.show( szName )
iFreeSpecialistCount = 0
for i in range(gc.getNumSpecialistInfos()):
iFreeSpecialistCount += pHeadSelectedCity.getFreeSpecialistCount(i)
iCount = 0
bHandled = False
if (iFreeSpecialistCount > MAX_CITIZEN_BUTTONS):
for i in range(gc.getNumSpecialistInfos()):
if (pHeadSelectedCity.getFreeSpecialistCount(i) > 0):
if (iCount < MAX_CITIZEN_BUTTONS):
szName = "FreeSpecialist" + str(iCount)
screen.setImageButton( szName, gc.getSpecialistInfo(i).getTexture(), (xResolution - 74 - (26 * iCount)), yResolution - 206, 24, 24, WidgetTypes.WIDGET_FREE_CITIZEN, i, 1 )
screen.show( szName )
bHandled = true
iCount += 1
else:
for i in range(gc.getNumSpecialistInfos()):
for j in range( pHeadSelectedCity.getFreeSpecialistCount(i) ):
if (iCount < MAX_CITIZEN_BUTTONS):
szName = "FreeSpecialist" + str(iCount)
screen.setImageButton( szName, gc.getSpecialistInfo(i).getTexture(), (xResolution - 74 - (26 * iCount)), yResolution - 206, 24, 24, WidgetTypes.WIDGET_FREE_CITIZEN, i, -1 )
screen.show( szName )
bHandled = true
iCount = iCount + 1
for i in range( gc.getNumSpecialistInfos() ):
bHandled = False
if (pHeadSelectedCity.getOwner() == gc.getGame().getActivePlayer() or gc.getGame().isDebugMode()):
if (pHeadSelectedCity.isCitizensAutomated()):
iSpecialistCount = max(pHeadSelectedCity.getSpecialistCount(i), pHeadSelectedCity.getForceSpecialistCount(i))
else:
iSpecialistCount = pHeadSelectedCity.getSpecialistCount(i)
if (pHeadSelectedCity.isSpecialistValid(i, 1) and (pHeadSelectedCity.isCitizensAutomated() or iSpecialistCount < (pHeadSelectedCity.getPopulation() + pHeadSelectedCity.totalFreeSpecialists()))):
szName = "IncreaseSpecialist" + str(i)
screen.show( szName )
szName = "CitizenDisabledButton" + str(i)
screen.show( szName )
if iSpecialistCount > 0:
szName = "CitizenDisabledButton" + str(i)
screen.hide( szName )
szName = "DecreaseSpecialist" + str(i)
screen.show( szName )
if (pHeadSelectedCity.getSpecialistCount(i) < MAX_CITIZEN_BUTTONS):
iCount = pHeadSelectedCity.getSpecialistCount(i)
else:
iCount = MAX_CITIZEN_BUTTONS
j = 0
for j in range( iCount ):
bHandled = True
szName = "CitizenButton" + str((i * 100) + j)
screen.addCheckBoxGFC( szName, gc.getSpecialistInfo(i).getTexture(), "", xResolution - 74 - (26 * j), (yResolution - 272 - (26 * i)), 24, 24, WidgetTypes.WIDGET_CITIZEN, i, j, ButtonStyles.BUTTON_STYLE_LABEL )
screen.show( szName )
szName = "CitizenButtonHighlight" + str((i * 100) + j)
screen.addDDSGFC( szName, ArtFileMgr.getInterfaceArtInfo("BUTTON_HILITE_SQUARE").getPath(), xResolution - 74 - (26 * j), (yResolution - 272 - (26 * i)), 24, 24, WidgetTypes.WIDGET_CITIZEN, i, j )
if ( pHeadSelectedCity.getForceSpecialistCount(i) > j ):
screen.show( szName )
else:
screen.hide( szName )
if ( not bHandled ):
szName = "CitizenDisabledButton" + str(i)
screen.show( szName )
Updates
Artwork by hrochland
New Aurora:
I decided to leave the desert mountain as Mount Sinai, because the colour doesn't quite fit the table mountain I guess.
if CyGame().getSorenRandNum(100, "Random Plot") < (CyMap().getWorldSize() +1) * 12:
Remove it and shift all lines below to the left.
Else simply replace with if 1 < 2:
## Chance of Spawning each Natural Wonder: (CyMap().getWorldSize() +1) * 12 ##
[COLOR="Lime"]if 1 < 2:[/COLOR] WonderPlot = []
for i in xrange(CyMap().numPlots()):