Natural Wonders Mod Comp

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 :p
 
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

Ah okay, but that's still okay :)

This just means only one city gets the culture bonus no matter if it's under cultural pressure, and I think that's totally okay actually. A natural wonder gives culture/tourism to the region, right :)

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?
 
is the free specialist bit still my code lingering in there. At least it's not 100% plat :p

Changed since Feb :mischief:
Nothing is hard coded, takes in all specialists regardless of default ones or new ones.

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?

Pedia wise, just add a bGraphical tag, which means you have to add it into the schemma file. Refer to improvements or features for instance.
As for the city screen, most likely should be in the CvMainInterface file, which... I am lazy to explore.
I think the bVisible tag will set it such that it will not be in the top section anyway, but probably appear below in the free spec section.

You can play around with this section:
Spoiler :
Code:
		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.
 
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.

You improved the Aurora just the way I had hoped it'd have been improved :)
And when I have time I'll try to work on the dummy specialist - if I'm done with that, shall I post it here or do you think your modcomp doesn't need this?

Oh and if anyone could make a Mt. Everest, I'd be very happy!
- In return, I'll be working on an improved Sugarloaf Mountain. It is too equally-green in my opinion, I will try to give it more flavour.
 
Aurora done by hrochland not me lol.
Up to you, someone else may need the dummy specialist.

I wouldn't include into this modcomp though, because there are at least 3 extra files I can think of. CvMainInterface, SpecialistInfos.xml, PediaSpecialist.
I rather keep it simple, where the focus is simply the natural wonders.
 


Found this in my old project while sorting out Terapack.
 
And now we have Mount Fuji.
It looks good both on hills or flatland :D
 

Attachments

  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    42.6 KB · Views: 267
  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    116.1 KB · Views: 243
hmmmm one thought. don't you think mount Fuji should be a little bigger than a hill :lol:
 
Thats why I thought it looked better when placed on the hill lol
Blends pretty well when on the hill itself :D
 
I finally managed to create a decent Mount Everest, based on the Krakatoa natural wonder delivered with this mod. Although I do ask you for some help: I think my model only looks good when surrounded by four peaks (that is, one north, one south, one west, one east). That way you don't see the ugly edges and creates more of a Himalaya-like environment. I really do think the wonder looks decent this way (and otherwise it does not I think).
I remember you managed to make Barrier Reef spawn in two plots, so I wondered if you could write extra code that does exactly this for the Mount Everest?
If you can't/don't want to write this code I can give the model anyway of course, just ask:)

Oh and I'm still gonna try to make Sugarloaf Mountain a bit more exciting. It's pretty solid green while parts of the mountain are also more rocky in real life.
 
As usual, you are asking the wrong person lol.
Look for hrochland when you need help with artwork :D
He is the one who modified your aurora :D
 
Oh but there is no art to be modified:)

I'm asking a Python thing; I'm asking if you can set it so, that the Mount Everest wonder spawns surrounded by 4 peaks (as in: the peaks you always have on a Civ4-map), one north, one south, one west, one east.

So again, I am speaking of the Terrain/Feature Peak, no art at all :)
 
The GBR was made in such a way that it will only spawn in 2 tile coast.
To achieve what you want for ME, it will probably be done in another way.
Instead of finding a tile surrounded by 4 peaks, have to do the oppositie way, simply pick a tile and modify surrounding tiles and turn them to peaks.
Because it is almost impossible to find a tile surrounded by 4 peaks naturally.

However, I bothered to do that for GBR because... it is well, "Great" and that was the way it was in CiV.
Consider it as an exception case. Although it is possible to do similar for Everest, better to have less exception cases.


P.S.
Anyway, you are supposed to be happy to see natural wonders.
I will be happy to see GBR because both tiles grant extra yield.
I won't be that happy to see Everest because that 4 useless peaks offset the bonus from Everest.
 
I agree with your post. Therefore I have worked somewhat longer and I found a result that's okay too - provided that it's spawned on a hill.

So, 1 new Natural Wonder + reworked Sugarloaf Mountain (if you prefer the old version that's fine too of course;)) in the attachment here :) I also included some XML so that you don't have to figure out the right scale for the Everest.
 

Attachments

  • Everest + Sugarloaf Mountain.7z
    146.9 KB · Views: 156
Updates

1) Added Mount Everest


2) Resized most Natural Wonders. See if you are still unhappy about Fuji's size :D

3) Revised most NW XML tags, in particular Movement and Impassable.
Doesn't make sense to walk over Fuji when you cannot do so to normal peaks.
Some NWs provide extra stuff like Defense, while others like Lake Baikal provide Freshwater

4) Removed XML yields and used my random python yield codes for old project.
Reason:
XML yields do not appear for Impassable tiles. (You cannot work on Mt Fuji)
Python yields however, make these Impassable tiles workable.
Random Yield = 1 to 6 each.
Worst Scenario 1 of each, Best Scenario 6 of each.
 
quick question: how do I make the EventManager spawn every Natural Wonder no matter what? that the spawn-chance is 100% for every wonder?
 
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:
 
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:

Ok thanks!
I didn't get it to work yet though, I think I'm not doing the 'else simply replace with if 1 < 2:' right - in which line do I have to do that?

Not getting any python (exception) errors though, so it can't be horribly wrong what I've done.
 
Top Bottom