Natural Wonders

The corresponding "Wonder of nature" building for this is apparently missing from the mod. I checked the Sevopedia after discovering that I couldn't build it in a city settled next to it.

The Auyantepui associated building is now available. It is not quite correct yet but close. I would like to add something with Animation for "Up!" perhaps an auto build that gives you a trade good "Hit Animated Movie" when you have both an animation studio in the city and the Auyantepui building in your nation.

The first one I suggest Global Culture.
I also suggest that all finding it get a little Global Culture but that the one finding it first gets a big bonus.
When finding these late in the game the little Global Culture gained will make no difference, but the early explorers and discoverers it could mean gaining the next Leadership Trait a bunch faster.
Is that not after all what they give, incorporating stories and myths about the Natural Wonders into the nations culture, or at least could be if one wants to look at it that way.

Cheers

Great idea. I was thinking of just building the building in the capital when a wonder is discovered but that wont work for the first turn when you don't have a capital.

First to discover a Natural Wonder gets a building built in their capital giving +2 global:culture:.

Subsequent discoveries give a building in the capital giving +1:culture: to the city only.

If you don't have a capital you get a unit that can build the building in the capital. It would have a huge movement or re-base mission.

Not sure if the buildings should be captured or not as it could mean duplicates in nations that conquer other nations.​

This would have to be done in Python. This sort of thing would require no AI.
 
No Grand Canyon?

Too bad right? After some of my journeys last year I'd LOVE to see this, Zion and Bryce Canyon included too. Stunning sights indeed. Maybe we can get some art for them 'ventually.
 
I was not happy with my solution above which is why work stopped. In particular
  1. How to handle the turns before the first city is built. If you discover a Natural Wonder how do we show that. When we go with Nomadic Start this becomes a bigger issue.

  2. What happens when you nation either looses or moves its capital. Should all these deeds of exploration be lost by your nation? In my view they were your deeds so they should stay that way and migrate to your new capital somehow.

    However if your nation is conquered these deeds should go to the nation or nations that conquered you.
This means that these deeds are Nation based not city based. How can we set it up to be recorded that way? The only currently available way would be through properties. There would be one property for each Natural Wonder and each would have three values only.
  • 0 = have not discovered the wonder
  • 1 = first to discover
  • 2 = discovered but was not the first
The buildings that then give the bonuses would be automatically built based on the Palace (= capital city) and the value of the property.

The buildings are still needed but there is no need for a set of units and their AI.

This does not cover what happens when a nation is conquered ie eliminated from the game. Python code would be needed there to move the properties to the victors. Probably it should go like this:-
  1. All the nations at war with the fallen nation get shown where all the Natural Wonders are and get a "found second" value.
  2. If the fallen nation has and firsts
    ???? what then ???
 
This means that these deeds are Nation based not city based. How can we set it up to be recorded that way? The only currently available way would be through properties. There would be one property for each Natural Wonder and each would have three values only.
Can't we add in a data storage per civilization (A civilization is a game object just as a city is a game oobject) that records achievements in some manner.
Combine this with autobuilds that require a "civilization achievement" and a "city building" like the palace.

@Thunderbrd Possible? I could write the python for any screen we would need to display an overview af the civilizations achievements.
 
I'm thinking it's doable without extra C++ coding already by hijacking the event system as an achievement tracker and using a little python to say when and where the 'events' were fired or 'missions' were fulfilled. This then also, I believe, carries some player level potential manipulations. Of course I don't think buildings are currently able to take an event prereq but maybe...
 
Can't we add in a data storage per civilization (A civilization is a game object just as a city is a game oobject) that records achievements in some manner.
Combine this with autobuilds that require a "civilization achievement" and a "city building" like the palace.

@Thunderbrd Possible? I could write the python for any screen we would need to display an overview af the civilizations achievements.
Yes, that is exactly what the Player/Nation level properties are for.

Such a screen would be lovely. We could bring back the Civ II or III palace or throne room.
I'm thinking it's doable without extra C++ coding already by hijacking the event system as an achievement tracker and using a little python to say when and where the 'events' were fired or 'missions' were fulfilled. This then also, I believe, carries some player level potential manipulations. Of course I don't think buildings are currently able to take an event prereq but maybe...
Why write more code when there is already something in place that does what is required?


The property only gets changed a couple of times throughout the game. It is not something the AI even needs to know about.
 
If you guys manage to get back the Throne Room or the Palace from the earlier games that would be Amazing, It was one of the things I really miss in Civ 4
 
What, like a boolean property for each natural wonder and myth in the game, plus all the new stuff we might introduce with a national achievement mechanic, that's a lot of properties to add....
I feel the property system is poorly suited for this task and would hog more resources than a dedicated lightweight system would.
 
What, like a boolean property for each natural wonder
It is not actually a boolean as it has 3 states not 2!
These are a boolean but I would do them as one Property using a vector, array or if need be a hash number to save space.
in the game, plus all the new stuff we might introduce with a national achievement mechanic, that's a lot of properties to add....
I feel the property system is poorly suited for this task and would hog more resources than a dedicated lightweight system would.
We don't know if it is a hog. It is less heavy than the Flammability property which is almost nothing. We have nothing yet to base your guess on. Further it does not require a new mechanic to be built so I could put it in place over the weekend.
 
Why write more code when there is already something in place that does what is required?
I was actually proposing what I suspect would be a less coding necessary method but ok. Either way.
We don't know if it is a hog. It is less heavy than the Flammability property which is almost nothing. We have nothing yet to base your guess on. Further it does not require a new mechanic to be built so I could put it in place over the weekend.
OK, if you know how it could be done I can support that. Flammability is a fixed property as opposed to a dynamic one so is a good example. A fixed property would be quite a bit memory lighter than a dynamic one. The only thing about this is... are you looking to establish a property for each and every achievement/discovery? It's not well suited for that but I can't say it would cost a ton of processing/memory - though some coding would eventually benefit from checks to ensure we're only looking at dynamic properties for certain things or it would quickly create a slowdown given that the AI loops through property types quite often.
 
I was actually proposing what I suspect would be a less coding necessary method but ok. Either way.
The problem that I am trying to solve is the one where you discover the Natural Wonder before you have a capital city or to a much lesser extent when you have lost your capital. A nation can be without a capital for a number of turns during which the player may leave the game for all sorts of reasons eg thunder storm takes out the power.

This means that what ever solution we come up with needs to get into the save somehow. This can be done in Python using Script Data, or since we have BUG advanced script data. This is not straight forward and every time (about 3 times) I have tried it I end up breaking saves or worse. The solutions open to us are
  1. a building: this works if you have cities but not if you don';t

  2. a promotion: if it is on the settler unit(s) it will work for human players but not for non-human players because the information about the unit founding the city is lost before the Python is called to process the unit information.

    It may be possible to give the promotion to all units in the nation and check at the time the first city is built moving the promotion off the unit(s) and into a building. However this wont work if there are no other units besides the settler making the city.

  3. a special unit: may work if nothing can kill or capture it and if it can't move or reveal the map. When the first city is built a search is made for all units and each of this type is converted to a building. Not sure people will accept will accept a unit they can't do anything with but I can't see it working for the AI players if the unit is otherwise. We also don't have a way to make a unit that is invisible and invulnerable to everything.
OK, if you know how it could be done I can support that. Flammability is a fixed property as opposed to a dynamic one so is a good example. A fixed property would be quite a bit memory lighter than a dynamic one. The only thing about this is... are you looking to establish a property for each and every achievement/discovery? It's not well suited for that but I can't say it would cost a ton of processing/memory - though some coding would eventually benefit from checks to ensure we're only looking at dynamic properties for certain things or it would quickly create a slowdown given that the AI loops through property types quite often.

I am only looking at Natural Wonders at the moment. Currently we have 21 Natural Wonders. It will be a good test of the robustness of the Property system.

However we have used buildings to do almost everything and maybe there are better ways for some like maybe the Achievement wonders we currently have.
 
I still think you're overlooking that 'events fired' and 'Missions Achieved' are also something that is tracked by the player level data.
I don't think I have access to those from XML or Python but then my links to the Python documentation were on my other machine not this one.
 
I don't think I have access to those from XML or Python but then my links to the Python documentation were on my other machine not this one.
That's possible. There's a lot of event python and I'm not sure how it all works but it seems pretty agile and able to do quite a lot of varied things.
 
Currently using events looks like it will be very time consuming later in the game. Using the mission accomplished is looking much better even if I have no idea what it is simply because there will be fewer of them.
 
Back
Top Bottom