New Rise and Fall mechanics beta phase

Leoreth

Blue Period
Moderator
Joined
Aug 23, 2009
Messages
37,053
Location
東京藝術大学
Hey everyone,

I have finally completed my changes and reimplementation of the Rise and Fall mechanics. They will not be merged into the develop branch just yet, but are available for testing now on the riseandfall branch (use git fetch and git checkout riseandfall to switch to it).

Many rules have been changed during the reimplementation. Here's a (hopefully complete) list of changes:
  • It is checked five turns before the civ spawns whether it can actually spawn (instead of on the same turn), this allows to cancel other preparations for its spawn.
  • From five turns before its spawn until 20 turns after its spawn, a recently born civilization as well as every tile in its birth area is considered "birth protected", which grants it various special rules and advantages (some of which only apply within its birth area). They are listed in detail further down. Tiles in the birth area of a birth protected civ are labeled as "Rise of [civ name]" in the tile tooltip.
  • Five turn before a civ spawns, all minor and barbarian units are pushed out of its birth area to the closest tile on the edge of it.
  • In addition to their birth area, some expansionist civilizatios have a defined "expansion area" that is in effect for the first 30 turns after their spawn. A collection of special rules and advantages apply in its expansion area, which are listed further down.
  • Five turns before a new civilization spawns, the player receives a notification message if they control a city in their birth area (which would flip in the event of their spawn) or are in the general vicinity of their birth area.
  • Tiles that are revealed at the start are dynamically determined. The birth area of a civilization is always revealed, but territory controlled by neighbouring civilizations is also revealed. In addition, tiles revealed by the majority of civilizations that share your tech group are also revealed. Later in the game, and extra "vision range" around these tiles will be revealed as well. This should result in a more naturalistic and realistic revealed map at the start of the game, especially for late spawns. It does a reasonably good job in my experience, but feedback on this in particular is welcome.
  • Every civilization flips a city present on its starting location at spawn (instead of only some specific civilizations like before). Other cities in the 3x3 area around your starting locations are destroyed (and leave behind ruins), to ensure that the capital can be founded. The only exception are holy cities, which are flipped as capitals even if they are not on the starting tile. If a city destroyed in this way has any wonders, they are restored to the capital when it is founded.
  • Starting and additional units for each civilization are defined by role instead of defining the exact unit types. Unit roles are things like defenders, attack infantry, siege units, etc. A civilization automatically gets the best unit for a role that it can build with its starting techs. This is to ensure that civs always get appropriate units when its starting techs are changed. I am mentioning this mainly because it may have caused some unintended changes to someone's starting units. I tested this pretty extensively but if anything is off, let me know.
  • When a civilization flips an area, all units within it are evacuated to the nearest city of their owner. That means no units are flipped on spawn, and evacuating units manually in anticipation of a flip is no longer necessary.
  • When a city is flipped, it receives two free defenders and free buildings according to the new owner's current era (as if it had just been founded, or improved by the "rebuild" ability).
  • When the player flips their starting cities, they receive a notification listing the cities that have been flipped (instead of just "cities in the area have joined our empire").
  • Some civilizations receive "advanced start points" and enter into advanced start mode after flipping their cities. They can spend their points to build some additional infrastructure in the form of routes, improvements, and city buildings within their birth area. Unspent points are converted into starting gold. This helps to accelerate the start and skip the first couple of game turns where you are forced to improve the terrain surrounding your cities. Here testing is also helpful.
  • There is no way to refuse a flip: the starting flip now always happens. However, you are given the opportunity to declare war on the spawned civilization after it has flipped one of your cities. Since declaring war on recently spawned civilizations is (still) impossible, this is the only way for an early war against a recently spawned civilization.
  • Unit defections and the mechanic that immediately restores defeated units of a recently spawned AI civ (seemingly immortal unit effect) have been removed.
  • The mechanic that made some civs sometimes randomly spawn at war with their neighbours has been removed. It has been partionally replaces with the expansion area mechanic (see below). Note that the AI may still declare war in response to a city flip, like the player is given the opportunity to do.
  • Some civilizations are designated as "independence civs", mostly post-colonial civs, but also Byzantium. This means that in addition to their birth area, they also flip all cities of players in their flip area that are closer to their capital than to their owner's capital. They also start with the prevalent religion in their flipped cities as their state religion.
  • You can select Iran and Colombia from the start of the 600 AD scenario and Iran, Mexico and Colombia from the start of the 1700 AD scenario.
Birth Protection:
  • As noted above, the area affected by these rules is labeled as "Rise of [civilization name]" in the tile tooltip
  • Pays no unit upkeep
  • It is impossible to capture their last/only city. The city can be attacked as normal, but once it is empty you cannot enter and capture it with your units.
  • Other players cannot spread culture into their birth area
  • Other players cannot found cities in their birth area
  • Conquering cities does not require occupation, and does not destroy buildings or kill population
  • Barbarians cannot enter (but they can remain in cities that they control)
  • Units heal faster and can heal after moving
  • Other players only receive half the terrain defense modifier
  • Units require only one turn to fully fortify
  • Units receive an additional +50% retreat chance
  • Defenders automatically retreat (abort combat) if their initial health was greater than 50%, and their health is reduced to below half their initial
  • Collateral damage is limited to 10% for each attack by a collateral damage unit
  • Siege units deal twice the bombard damage
  • Cities receive only half the bombard damage
  • When war is declared on a birth protected civilization, additional defenders spawn in its cities
  • When war is declared on a birth protected civilization, they receive an additional stack of units in their capital (this is the original "refused flip" spawn)
  • When war is declared on a birth protected civilization, and they are significantly weaker than the attacker, they will receive further units in their capital to balance against the attacker
  • When war is declared on a birth protected civilization, all enemy units are moved out of its territory and birth area to their closest city (to prevent sneak attacks)
Expansion area effects:
  • Tiles affected by these rules are labeled as "[civilization adjective] Expansion" in the tile tooltip
  • Conquering cities does not require occupation, and does not destroy buildings or kill population
  • Units can heal after moving
  • Units receive an additional +50% retreat chance
  • Siege units deal twice the bombard damage
  • AI civilizations will declare war on players controlling cities in their expansion area (replaces the random war on spawn mechanic)
  • When a player declares war on an enemy that controls cities in their expansion area, a free army spawns in the closest city in the expansion area
  • When a city in the expansion area is conquered, the duration of the expansion area effect is extended by up to ten turns
I plan to document the majority of these rule changes in the civilopedia soon, but as of now it is not in yet. Compiling this post was already enough effort :)

Please participate by trying this branch if you have git, and help me find potential issues. I tried to point out aspects where I have design and balance concerns. That also applies to those extra birth and expansion area rules, which are a collection of ideas I had, but not all of them necessarily need to stay in. If you find issues or bugs, you can either report them here, or as usual in the bug reports thread (please mention that it is from the riseandfall branch in that case). As always, including a save to reproduce helps a lot.

While this goes on, I will devote some attention to the develop branch and fix the bugs that have been reported while I was working on this. Then I can create a release, and merge the rise and fall changes after that.
 
Last edited:
  • You can select Iran and Colombia from the start of the 600 AD scenario and Iran, Mexico and Colombia from the start of the 1700 AD scenario.
I mentioned this before, but forgot to add it to the list yesterday.
 
I mentioned this before, but forgot to add it to the list yesterday.
Minor thing about this:

The Colombians are misplaced in the civ list at start up. They start near the top of the list with all the early spawning civs but should be towards the bottom where their real spawn year is. Same with the Iranians. See below.

Spoiler :
upload_2021-11-26_22-25-14.png


I'll start playing on this branch and report any other issues or weirdness. :)
 
This cannot be fixed right now. Colombia is using the Maya slot, so they appear at the Maya position.

My planned next step is to move away from scenario files, that will allow changing this.
 
This cannot be fixed right now. Colombia is using the Maya slot, so they appear at the Maya position.

My planned next step is to move away from scenario files, that will allow changing this.
I thought that might have something to do with it, thanks for explaining
 
Two more changes I forgot to mention:
  • If you decide to switch to a new civilization, it takes place before its first turn. So no AI moves to undo/correct or waste from a civ switch.
  • The limitation to switch only once per game has been removed.
 
So how many UHVs are possible in one game now, I wonder.
 
Every civilization flips a city present on its starting location at spawn (instead of only some specific civilizations like before). Other cities in the 3x3 area around your starting locations are destroyed (and leave behind ruins), to ensure that the capital can be founded. The only exception are holy cities, which are flipped as capitals even if they are not on the starting tile. If a city destroyed in this way has any wonders, they are restored to the capital when it is founded.

What about other unique-ish city features like settled Great People and Great People Buildings?
 
Uh, is it possible to merge 4 cities from corners of 3x3 area? And what will happen if all of them (or at least two) are holy cities?
 
Uh, is it possible to merge 4 cities from corners of 3x3 area? And what will happen if all of them (or at least two) are holy cities?
Don't give youtien any ideas!
 
All surrounding cities will get destroyed, all of their wonders will be preserved. If there are multiple holy cities they will all survive and flip. The first one to flip will be your capital with no particular preference.
 
Running a 600 AD Ottoman spawn on this branch (Marathon, forgot if Regent or Monarch), and I got this stack trace thrice, around the start of the autoplay:

Code:
Traceback (most recent call last):
  File "BugEventManager", line 382, in _handleDefaultEvent
  File "Events", line 15, in handler_func
  File "Rise", line 130, in checkBirths
  File "Rise", line 554, in check
  File "Rise", line 751, in birth
  File "Rise", line 396, in updateArea
  File "Rise", line 399, in excludeForeignCapitals
AttributeError: 'NoneType' object has no attribute 'cities'

EDIT: I think it has something to do with the Arabian spawn, as I don't see Mecca founded and the Islamic holy city.
 
Probably the last question before I start testing myself - what about moving wonders that require some geographical characteristics, like being coastal?
A coastal city can be easily merged into Paris or Berlin, for example.
 
Canceled the above Ottoman run and ran an Iranian one instead (600 AD, Monarch, Marathon). I don't see here yet the dynamic territory reveal here, at least those of the neighboring civs. Is that one supposed to be gradual?

Spoiler :
Screenshot 2021-11-29 010015.png
 
Started as Byzantium from 600AD, after 2 turns got bunch of errors, the next turn again, then Arabs have spawned, but without Mecca, with the capital in Alexandria. I have got no option to take control over them. Maybe the problem is that they had fewer than 5 turns to properly initialize the spawn.
 
Probably the last question before I start testing myself - what about moving wonders that require some geographical characteristics, like being coastal?
A coastal city can be easily merged into Paris or Berlin, for example.
Yeah, they would also get restored into the non-coastal city with the current code. I may need to check for these kinds of requirements.

The intent of this mechanic is to recreate and generalise the special rule that has previously existed for the Thai and Wat Preah Pisnulok specifically, because there they are guaranteed to spawn next to an existing city (that would always be deleted even with the old rules) and would be punished for that in case the Khmer built any previous wonders. I don't think this scenario is very likely outside of player intervention otherwise, but of course it's still important to make it make sense.

Canceled the above Ottoman run and ran an Iranian one instead (600 AD, Monarch, Marathon). I don't see here yet the dynamic territory reveal here, at least those of the neighboring civs. Is that one supposed to be gradual?

Nope, I will need to look up why it isn't happening here. It's possible that Iran is missing from the neighbours and tech group lists that make this possible.

Started as Byzantium from 600AD, after 2 turns got bunch of errors, the next turn again, then Arabs have spawned, but without Mecca, with the capital in Alexandria. I have got no option to take control over them. Maybe the problem is that they had fewer than 5 turns to properly initialize the spawn.
Do you have Python exceptions enabled? Maybe it's the same error as reported further above. I am planning to investigate that one regardless.
 
Last edited:
No, you have to do it in the game settings file. The bug reports thread explains how.
 
Top Bottom