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.








) in the attachment here
I also included some XML so that you don't have to figure out the right scale for the Everest.

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()):