arrakis terraforming victory?

I still don't want to convert coast to land, but even doing that would be just a few more terrain types related to coast or ocean.

I wouldn't want that either. Hopefully, we can create terrain that looks like the current desert waste/deep desert but with grass on it that blends in. Or perhaps we can change the terrain to grassland, etc on the land tiles, and just use the grass improvement stuff on the coast/ocean tiles.
 
It is small, but seems implementable. What do you think?

I like the idea, but agree with Deliverator that you need to either:
a) change things at the terrain level
b) add the grass improvements to *ocean* (ie desert) tiles.

Either of which will increase the water income of cities.

There is no benefit to the human player from getting grass spawning within cultural borders outside the fat cross, and so no reason why a human strategist should bother constructing buildings that drain their water income. The changes must improve fat-cross tiles.

I like Spice Economy and Way of Liet.

Oh, forgot:
c) Change things at the Feature level. Remember that if you're getting rid of tubers, there are no features; forest/flood plains, etc.
So this could change the tile yield without changing terrain type or knocking over existing improvements.
 
OK, I have most of this working. Oddly, the part which I cannot figure out is the part I thought would be simplest.

a. Added vanilla terrains for plains and grass. They do not blend right so there is something I have missed, but they work. Each mapscript will need to be changed to prevent these terrains from appearing on the initial map.

b. Added building for reservoir. It has a -2 water penalty and provides +1 happiness to cities on the same continent. It provides fresh water in all adjacent plots and no spice will appear there.

c. Added building for reservoir of liet. It has a -2 water penalty and provides +1 happiness to all cities. 2 reservoirs are required before any reservoirs of liet can be built. It provides fresh water in all adjacent plots and no spice will appear there. Using python, when a reservoir of liet is built the reservoir is destroyed, so it is like a building upgrade. (There may be a cleaner way to do this, but I could not find one.)

c. Added terraforming victory condition when 5 reservoirs of liet are built. I doubt any other mod in history has used this, but you can have a victory condition based purely on a number of buildings built. I think I am the first, because there is a typo *bug* in vanilla which prevents the victory screen from displaying when this type of victory condition is used.

d. Fixed the bug in vanilla, and also in RevDCM, which prevents the victory screen from displaying.

e. Each turn in python, compute the Terraforming Counter: 5 per reservoir plus 20 per reservoir of liet. (I simply display this with a transient message for now.) Each plot which is adjacent to a reservoir, or within 2 plots of a reservoir of liet, has a chance of a terrain upgrade. The percent is related to the TC and this will need to be tuned. An arid or desert plains plot upgrades to a vanilla plains plot (1 water, 1 hammer). A vanilla plains plot upgrades to a vanilla grass plot (2 water, no hammers).

So basically, build 5 reservoirs, your territory gets a little greener, build 5 reservoirs of liet, your territory gets green faster, and then you win. You can see the result in the attached screenshot.

The missing part is civics. I cannot find any way to limit buildings to civics, or limit techs to civics. So I have not added any civic yet. What I want is to prevent the reservoir of liet from being built, unless you have a civic. Any suggestions on how to do this?

I need to figure out why the blends don't work, and I need to playtest to set the speed at which nearby plots turn green. Also the vanilla plains texture is too close to our existing brown textures and it would be nice if the grass was even greener. And I need a better way to display the Terraform Counter in the user interface.
 
Sounds like a good start. Can we rename Reservoir to Catchbasin please?

Also, we can create a UB for the Fremen called Deathstills. This would give some positive amount of water (+2, +3 ?) to represent the reclaiming of water from the bodies of the dead. Not only would they have a preference for the Way of Liet, but they'd have a slight advantage towards the Terraforming Victory too.
 
The missing part is civics. I cannot find any way to limit buildings to civics, or limit techs to civics. So I have not added any civic yet. What I want is to prevent the reservoir of liet from being built, unless you have a civic.

I am pretty sure that the Total Realism mod (in Warlords) and I think the Rise of Mankind mod in BTS have buildings that require a civic. I think the Agora building requires the Republic civic, and the Slave Market requires the slavery civic.
 
Sounds like a good start. Can we rename Reservoir to Catchbasin please? Also, we can create a UB for the Fremen called Deathstills.

OK, but you renamed the food warehouse to catchbasin, so what should I name that?

Good idea to add a Deathstill UB. It will give the Fremen a pretty big city growth advantage if it is +3 water, but we can try +2.
 
OK, but you renamed the food warehouse to catchbasin, so what should I name that?

Let's call that one Reservoir. I can't think of anything better at the minute.
 
I need to figure out why the blends don't work, and I need to playtest to set the speed at which nearby plots turn green.

I have a strong hunch that this is to with the LayerOrder tag in TerrainArtInfo (Terrain Art Defines). I think you need to make sure no two terrain types have the same LayerOrder. Try playing with it.
 
I think you need to make sure no two terrain types have the same LayerOrder. Try playing with it.

That is probably it. The hard edges are occurring where vanilla grass, touches the arid terrain which is a recoloring of grass. So they are on the same layer. I will try this out.

Along with the other terrains you may be working on, two levels of green for terraforming would be awesome.
 
OK, the code is all working now. The way of preventing civs with the wrong civic is a little roundabout; I used the python callback cannotBuild to prevent it. There is no opportunity to pass a help string for this, it will have to go into the documentation.

It would be nice to get an sdk with HatedCivic in it, but that can be added later. I will now do some final QA and upload 1.3.3.

(EDIT: Hrm, I wrote a long post complaining about slow runtime but this was user error on my part. Never mind.)
 
Would it be possible to make the terraforming victory based on the % of tiles that have been changed to the greener terrain? Or is that check too expensive? I find the build 7 buildings solution slightly arbitrary...
 
It does not need sdk coding, checking the entire map for something can happen once per turn without a performance impact. However, I am not sure what should happen if several players are working towards this victory. Suppose player A has been working towards the victory and gets 2.9% of the terrain converted, then player B gets his first catchbasin built and pushes the number up to 3%.

I agree I am not terribly happy with the seven building solution either; but if we can agree on a better alternative which accounts for multiple players, we can certainly change it.
 
Perhaps make it the percentage of global terrain that is terraformed and within your borders. That way you have to control a certain proportion of the land and then terraform it.
 
Maybe it should be some kind of team victory. If multiple players each have 1% terraformed within their borders, that should count for something.

Do other folks feel that a count of terraformed squares by one player should be the condition?
 
I'm skeptical about having the number of terraformed squares should be the victory condition; I think a building victory is likely to work better. It will be very tough to get a condition that isn't too hard or too easy to fulfill, and that enemies will attempt to frustrate.
You'll have to play with spawn rates for terraforming and build times for the anchor grass improvement. Its pretty easy to spam lots of workers and have them build lots of stuff.

But if you do go this way, I'd suggest that you have all non-allied (including vassals, defensive pacts) factions declare war when a civ gets near the victory threshold.
You'd need to make it a proportion of total world tiles within the borders of the player.
You should scale it somehow for map size, and maybe number of players.

Also; will it depend on changed underlying terrain type (occurring based on the wonders you build in your cities?)
How will the the anchor grass mechanic interlink with the terrain type mechanic?

Shared victory doesn't really make sense in terms of civ very well, unless you have a permanent alliance.
 
Thanks for the feedback. I have thrown you off a little bit by changing from an anchor grass improvement, to a terrain type which appears automatically; this was suggested by Deliverator in post #39 in this thread. There is nothing to build, so no reason to spam workers. I am not completely happy with this but it was implementable. The problem (mentioned in the spacer guild mechanic thread) is that now there is nothing to pillage. The only way to slow down a terraforming victory is by capturing the cities with the improvements.

Good suggestion about having non-allies declare war when somebody comes near the victory threshold. The AI's in vanilla do not appear to pay too much attention to this; that is, I rarely see a declaration of war just because one player is close to winning.

In Fury Road, there is a victory condition similar to religious victory, based on percentage of population converted to your religion. Many players will intentionally convert to another player's religion for the diplomacy bonus, which can cause a loss of the game. So I added popups when one player reaches 25% and 50% of this condition; at least players could no longer claim they were surprised by a loss. The Fury Road AI's will also cancel any open borders at the 50% threshold, so that your missionaries can no longer travel freely; but that is the only specific handling for non-allies getting close to victory.

In DW, we may get somewhere once the "hated civic" is in place, but again that is kind of indirect. Does anybody know if vanilla victory conditions actually trigger any change in AI behavior?
 
I'd like an enemy to be able to slow down a terraforming victory. Suppose that instead of the improved terrain type appearing automatically, it will only appear when the plot contains either a food/town improvement, or a new anchor grass improvement; and if you pillage the improvement, the upgraded terrain disappears. Then you would have to build a few workers and put them to work building anchor grass. Since the catchbasin only improves terrain adjacent to cities, and the reservoir only improves terrain in your BFC, at least we would not require workers to go build improvements outside the BFC.

The AI will not recognize any linkage between the anchor grass improvement and the victory condition. But maybe, if anchor grass gives +1 food and is buildable anywhere, the workers will build it if they have nothing better to do. The advantage of making this pillage-able seems worth an experiment.

This can relate to the spacer guild paradrop raider mechanic. I can write AI for the raider which will deepstrike the raider to any location where there are pillage-able terraform improvements. Then hopefully it will just do its thing and pillage.
 
The problem (mentioned in the spacer guild mechanic thread) is that now there is nothing to pillage.

Worse than that; there is no active player involvement in achieving victory. If all you have to do is sit there while your terrain terraforms, then its not a very satisfying victory.

I'd like an enemy to be able to slow down a terraforming victory. Suppose that instead of the improved terrain type appearing automatically, it will only appear when the plot contains either a food/town improvement, or a new anchor grass improvement; and if you pillage the improvement, the upgraded terrain disappears. Then you would have to build a few workers and put them to work building anchor grass. Since the catchbasin only improves terrain adjacent to cities, and the reservoir only improves terrain in your BFC, at least we would not require workers to go build improvements outside the BFC.

This sounds promising in fixing the issue, but these improvements only happen in the BFC, then terraforming only happens in the BFC, which is a problem for a victory condition that requires terrain to be transformed. +1 food from anchor grass also sounds pretty low relative to +4 commerce from towns or +2-3 hammers from solar farm or turbines.
Are you making the anchor grass buildable on desert tiles? I think this is needed.

I definitely like the idea of pillaging terraforming. Can you code checks into happening after a pillage, so you don't have to have constantly check every tile? More efficient.
So, have anchor grass buildable on ocean/desert tiles and land tiles (2 improvements if necessary).
Then, have a chance of any tile within the borders of a player who has the Pro-Water civic have a chance of changing into a terraformed tile (grassland, plains, whatever), if it has anchor grass on it, or a town on it, or a complex/drip farm/dew collector/windtrap. This chance is increased if the tile is near a reservoir or various other conditions. (Eg: still have a number of spaceship-part style projects; the more you build of these, the greater is the terraforming chance).
Then check, onPillage, the underlying tile type; if its a grassland, turn it back into the unterraformed grassland substitute, if its a plains, turn it into unterraformed plains, etc.
The terraformed versions give +1 water over their base versions.

This way, there is somethnig you can do to increase your terraforming rate; build anchor grass and build the spaceship projects and build reservoirs. And there is somethnig you can do to stop it; pillage enemy terraformed tiles.

Something to consider about pillaging; I highly suggest thinking about something like the Raiders promotion from Fall Further; units with the pillage promotion automatically pillage (without spending a movement point) any tile they move into of any civ they are at war with. (Check it OnMove).

Then, give this raider promotion to some drop troops.
 
Back
Top Bottom