Indeed, tiles surrounded on 4 sides by one factions culture are given to that faction (possibly with 1 turn delay).
[No Players] Where the Lurkers Take Their Holidays
|
(October 9th, 2024, 21:11)Mjmd Wrote: I see people really liked the most important thing I did early when Oracled Masonry in this thread. My takeaway from this game is that Oracling Masonry is an undefeated strategy
Suffer Game Sicko
Dodo Tier Player (October 11th, 2024, 03:50)T-hawk Wrote: I looked at that code for the weird culture behavior once many years ago, but didn't try very hard to make sense of it. (It's DLL code not Python.) I think I remember one bit is that it can depend on adjacent tiles, which is why one tile can behave differently on different turns. I also remember some cases where you get culture control of a tile that's not actually in your city radius if you surround it on 3/4 or 4/4 sides, and part of the weird behavior is in trying to undo that when you lose one of those adjacent tiles. (Though I'm not 100% sure I'm remembering Civ 4 over Civ 3 here.) lmao, why does it not surprise me that what i strongly suspect to be the relevant function apparently looks like this: civ4 culture bug - a poem: *ahem* "if for for if if if / if for if if if" at a glance it looks like this function loops through all the plots within culture range of the captured city, and, if there is no other city with the same owner that is putting culture on the tile, and if there is at least one city owned by another player that would put culture on the tile (so this is Tarkeel's theory), then it forces the tile to revert to neutral after the conquest. but if that's so, probably either one of those checks isn't working or something else is going on, since that's not the behavior we observe. i'm also not sure i understand what the intended behavior was - did they want EVERY tile owned by the conquered city's owner to stay under their control that turn unless a city owned by a third party is in range? that seems overly punitive to the attacker to me and almost as bad as the current behavior... anyways, i don't really see where the bug is (yet?) and suspect it is buried in some subroutine, or is like, emergent from some data structure not being populated as correctly as this function assumes (there is one that purports to contain the list of all cities owned by each player in cultural range of the plot that seems especially suspect). but i wonder if we couldn't hackily fix this just by removing the bit about cities owned by a third party and always setting bForceUnowned to true...? you would think that would force neutrality for the turn on all tiles in range of the conquered city but not in range of another city owned by that player, which is the behavior that i, at least, was expecting.... this wouldn't cover the case that T-hawk mentioned about tiles that aren't "in range" of a city but are surrounded on all sides by tiles that are, but that should be pretty rare and, more importantly, predictable from known gamestate information i'll try that when i have the time but.... first i gotta figure out how to "compile a DLL".... i would be interested to hear what folks think the "correct" behavior should be - it seems like there is more than one possible answer and we might have a design question on our hands if there isn't a consensus
@ljubljana: cf. https://forums.civfanatics.com/threads/t...ll.608137/
While were at it we could also nuke-proof GPs and National Wonders.
Nukeproof is a xml change for buildings and units
<bNukeImmune>0</bNukeImmune> to <bNukeImmune>1</bNukeImmune>
Very handy post civac, thanks! Also, seeing this in 2016 gave me a chuckle:
Quote:I also realised that with Civ4 further aging, it is becoming harder and harder to recreate its development environment, which is getting progressively out of date and obscure.
You can get most of that stuff elsewhere but I did not manage to get the WindowsSDK installed prior to someone on Henrik's Discord Server giving me that link.
(October 11th, 2024, 17:10)ljubljana Wrote: anyways, i don't really see where the bug is (yet?) and suspect it is buried in some subroutine, or is like, emergent from some data structure not being populated as correctly as this function assumes (there is one that purports to contain the list of all cities owned by each player in cultural range of the plot that seems especially suspect). but i wonder if we couldn't hackily fix this just by removing the bit about cities owned by a third party and always setting bForceUnowned to true...? you would think that would force neutrality for the turn on all tiles in range of the conquered city but not in range of another city owned by that player, which is the behavior that i, at least, was expecting.... this wouldn't cover the case that T-hawk mentioned about tiles that aren't "in range" of a city but are surrounded on all sides by tiles that are, but that should be pretty rare and, more importantly, predictable from known gamestate information It's *very* easy to introduce an even worse bug here: Every tile owned by that city is turned neutral, even those tiles currently controlled by other cities with the same owner. Ie, you get *huge* culture craters on conquest. (October 12th, 2024, 12:39)civac2 Wrote: @ljubljana: cf. https://forums.civfanatics.com/threads/t...ll.608137/ I don't see any need to nukeproof National Wonders. In contrast to World Wonders they can be rebuilt. GPs - yes, nukeproof them. (October 10th, 2024, 17:17)ljubljana Wrote: the fact that the same tile behaved differently on two consecutive turns On T187 the two tiles in question were surrounded by greenline's tiles on all sides, and on T188 the tiles above were neutral. From the code if a tile is not within the radius of another city of the same player while being within the radius of a city of another player, it will be forced to be unowned but you need to check for how long (and how exactly that's implemented). This is what led to the difference between the two turns. |