Sid Meier's Civilization V

Sid Meier's Civilization V

=Tile Conquest=
 This topic has been pinned, so it's probably important
Gaia  [developer] 23 Nov, 2024 @ 2:51pm
How does this differ from Hex Conquer and Release?
Comparing Tile Conquest with Hex Conquer and Release (CivFanatics), both systems address tile conquest, city capture, and post-war tile reassignment. However, their features and implementations differ substantially.

Features
Tile Conquest introduces refined gameplay rules:

Tiles are not captured if the nearest city is being razed – preserving tile integrity during razing.

City-States do not capture tiles (optional toggle available).

Water tiles can be conquered – but only by non-embarked land units, maintaining coastal coherence.

Capital city tiles are not redistributed – simplifying strategic outcomes.

Supports custom improvements acting as forts or citadels – these are prioritized during conquest.

Encircled plots are excluded, and no redistribution occurs during razing – conquest remains adjacency-based.

Implementation

Tile Capture
Hex Conquer uses separate functions:

PlayerHexConquer for adjacency capture

CitiesReconquerPlots for city plot recovery
Tiles are tracked in newConqueredPlots, with configs like bConquerAdjacentPlots adding flexibility but complexity.

Tile Conquest unifies logic under TileConquest:

Prioritizes forts/citadels and custom improvements

Uses GetAdjacentTiles for modular tile evaluation

Removes redundant loops and arrays for better performance

Key Difference: Tile Conquest emphasizes modularity and clarity, with improved debugging via DebugPrint.

City Capture
Hex Conquer uses CityMod to assign plots to original owners’ cities. Razing cities are skipped, and unused tiles handled via AquireUnusedPlotsFromFriendlyCities.

Tile Conquest combines this into HandleCityCapture, with unified logic for redistribution and improved handling of razing, null plots, and special improvements.

Key Difference: Tile Conquest simplifies logic and improves robustness, especially for edge cases involving razing and custom tiles.

Peace Treaties
Hex Conquer uses ReturnPlotsTeamToTeam to iterate over the entire map, using history and proximity for reassignment.

Tile Conquest uses HandlePeaceTreaty with ForEachTile for modular reassignment. Checks include adjacency, ownership duration, and exclusions for forts/citadels.

Key Difference: Tile Conquest improves performance and edge-case precision using utility functions and minimal nesting.
Last edited by Gaia; 25 Jun @ 5:05am