Comparing [b]Tile Conquest[/b] with [b]Hex Conquer and Release[/b] on Civfanatics, both systems handle tile conquest, city capture, and tile reassignment during peace treaties. However, they differ significantly in features and implementation approaches.

[h1]Features[/h1]
[b]Tile Conquest[/b] introduces several gameplay rules and restrictions:
1. [b]Tiles are not captured if the nearest city is being razed[/b]: This ensures strategic preservation of tiles during razing scenarios.  
2. [b]City-States do not conquer tiles[/b] (though this can be re-enabled in settings).  
3. [b]Water tiles can be conquered[/b], but only by non-embarked land combat units, ensuring that conquered water tiles are always adjacent to land.  
4. [b]Captured city tiles are not redistributed if the city is a capital[/b], simplifying gameplay and preventing strategic complications around capital capture.  
5. [b]Handles unique custom improvements that act as forts or citadels[/b], such as those introduced in Sapiens. These are prioritized for conquest and tile management.  
6. [b]Encircled plots are not captured[/b], and there is [b]no reassignment of plots on raze[/b], focusing instead on adjacency-based conquest.  

[h1]Implementation[/h1]
[h2]Capturing Tiles[/h2]
In [b]Hex and Conquer[/b], tile conquest is managed via two separate functions: [b]PlayerHexConquer[/b] for adjacency-based conquest and [b]CitiesReconquerPlots[/b] for city tile reconquest. Conquered tiles are tracked in [b]newConqueredPots[/b], with their ownership duration reset. Optional configurations like [b]bConquerAdjacentPlots[/b] allow for adjacency-based conquest but add complexity to the process.

[b]Tile Conquest[/b] simplifies the process by integrating all tile conquest logic directly into the [b]TileConquest[/b] function. It prioritizes citadels and unique custom improvements (e.g., fort replacements in Sapiens) before checking other tiles and leverages utility functions like [b]GetAdjacentTiles[/b] to ensure clean, modular code. This approach eliminates redundant loops and intermediate arrays, streamlining tile management.

[b]Differences[/b]: Tile Conquest focuses on modularity and efficiency, consolidating redundant logic and prioritizing special cases like citadel conquest and custom fort replacements. Debugging is improved with consistent use of [b]DebugPrint[/b].

[h2]City Capture[/h2]
In [b]Hex and Conquer[/b], the [b]CityMod[/b] function handles tile redistribution after a city capture, assigning plots to the nearest cities of the original owner. However, cities that are razing are excluded, and unused tiles are reassigned through additional functions like [b]AquireUnusedPlotsFromFriendlyCitites[/b].

[b]Tile Conquest[/b] consolidates these processes into the [b]HandleCityCapture[/b] function, which combines logic for redistributing and reassigning tiles. It includes robust checks for null tiles, city razing, and the presence of custom improvements like unique forts.

[b]Differences[/b]: Tile Conquest offers a streamlined approach, eliminating redundancy and improving error handling for complex scenarios like city razing. Its explicit handling of unique custom improvements adds further precision.

[h2]Peace Treaty[/h2]
In [b]Hex and Conquer[/b], [b]ReturnPlotsTeamToTeam[/b] iterates through all map tiles to reassign ownership after a peace treaty. Tile proximity and ownership history are used to determine plot reassignment.

[b]Tile Conquest[/b] uses the [b]HandlePeaceTreaty[/b] function, which employs utility functions like [b]ForEachTile[/b] to ensure modular and efficient tile reassignment. The logic includes checks for adjacency, ownership duration, and exclusions for special tiles like citadels and unique forts.

[b]Differences[/b]: Tile Conquest is more efficient, using modular utilities to reduce unnecessary nested loops. It also ensures precise handling of edge cases like citadels and custom fort replacements, making the logic more robust.
