Advanced Civ

Along these lines, there's another thing that I was thinking about, but that maybe would be a little harder to implement. I wish that there was a way to put a marker down somehow and make it so that Workers never improve that tile ever.
That sounds like a good idea. More elegant than adding smarter automation options ...
An option for automated workers to leave forts and towns and villages.
... and might take less effort to implement.
I was thinking maybe re-using the Alt-S sign mode, except making it Alt-P (for protect) or something. Then a little sign with PRESERVED or something like that would be shown (or maybe a Cancel symbol) there [...].
Alt-P actually seems to be available – kind of difficult to find a key combination that isn't already used for some build or other unit command. As a marker, perhaps a colored overlay would work (akin to the city dot markers from BUG). Such overlays can have any color (any alpha value? I hope) and can be styled in a bunch of different ways:
Spoiler :
Code:
   PLOT_STYLE_BOX_FILL,
   PLOT_STYLE_BOX_OUTLINE,
   PLOT_STYLE_RIVER_SOUTH,
   PLOT_STYLE_RIVER_EAST,
   PLOT_STYLE_SIDE_ARROWS,
   PLOT_STYLE_CIRCLE,
   PLOT_STYLE_TARGET,
   PLOT_STYLE_DOT_TARGET,
   PLOT_STYLE_WAVES,
   PLOT_STYLE_DOTS,
   PLOT_STYLE_CIRCLES,
I find the "signs" pretty ugly. (Though, for a proof-of-concept, one could simply treat tiles with a 'P' sign placed via Alt+S as preserved and thus avoid having to do any work on the UI.) To my knowledge it's unfortunately not possible to place a simple sprite on the main map.
 
Oh, I didn't expect your first response to this a full implementation already. It seems you have gleaned my intentions already with the remark about portability, although I would only ever merge AdvCiv as a whole, so that is not a concern.
K-Mod has added code that lets fast units pillage first when a group is ordered to pillage. That template has made it much easier to implement item 3. The order I've implemented for bombardment prefers high bombard rates, tries to avoid overshooting and, as a tiebreaker, prefers bombarding with cheap/ inexperienced units. Here's the source code:
GitHub.com/f1rpo/...//CvSelectionGroupAI.cpp#L614 (getting called fwiw from CvSelectionGroup::startMission)
I'm not taking into account hitpoints because, if the player is able to conquer the city right away, he or she may prefer to move damaged siege units into the city so that they can heal asap. Ideally, I guess, the game should use AI code to check whether the city is likely to be taken. Let's perhaps see if that problem comes up in a game; always easier to fine-tune based on a savegame.
Did you deliberately not factor in combat odds into that decision, or would that have been too complicated because it is context dependent on the bombarded city and would require too many unit-to-unit comparisons?

I think prioritising high bombard rates is good, and using cheap or inexperienced units can be a useful heuristic, but I am worried about the not too uncommon edge case where you have a mixed stack of siege units from different tech levels, like Cannons and Trebuchets (upgrading old units is not always the best choice). In that situation, I would prefer Trebuchets be used to bombard because it's likely that they won't have great chances at attacking anyway; using Cannons to bombard would waste their better combat odds and leave me with Trebuchet moves that may or may not add anything to the resolution. But in this situation, Cannons both have the better base bombardment, and are likely to be less experienced than old units, so they would end up preferred.

That is why I suggested bombard promotions earlier, because they are the best indication available which units the player prefers to be used to bombard (and whose promotions would otherwise be wasted), followed by reverse combat odds (or better put, survival odds) to preserve units that are best suited to actual combat if it is supposed to take place on the same turn.

Items 1 and 2 didn't require a lot of code to be added (Git commit), but are probably still not easily portable because they're embedded in K-Mod code. I've implemented split-upon-completion behavior for Build and Bombard missions (as requested) and also for Air Bomb, Pillage and Move. That is, a group of 2-move and 1-move units will split in two when it reaches its destination. That may sound potentially annoying, but BtS stops unit cycling in that case, which isn't any better I think – and it's nice to have consistent behavior for Build and Move missions. I haven't applied the same rules to the Route-To mission because that would cause workers to split up only once the whole route is completed; along the way, they'd stick together. As it is (i.e. as in BtS/ K-Mod), players would do well to split worker groups up before issuing Route-To commands or, for that matter, automating workers. Those are high-level commands, so this shouldn't be a big inconvenience. It might be nice to have the game automatically split up workers upon a Route-To command; perhaps still to be implemented.

The above applies only when no further missions are queued (Shift key). As far as I can tell, a worker (in BtS?/K-Mod/AdvCiv) will get started on the next mission in the queue even if the other workers aren't ready yet – so long as the next mission is in the same tile. Good enough I think.

I've expanded item 2 to apply to all attacks that kill the last enemy defender, not just city attacks. I agree with you and @crullerdonut that it's a change for the better; not just when using the Stack Attack option, but also when group-attacking one by one – it's easy to miss the point where there is just one defender left. I wonder if karadoc, for one, would disagree. He had gone through some pains to make sure that Gunships (which can't capture cities) aren't left behind when a stack captures a city. Maybe it just hadn't occurred to him that all units should be left behind instead. I'm tending (contrary to what the Git commit linked above says) not to add an option for this until someone complains. A multiplayer-safe BUG option would take a disproportionate effort to implement. (I'll probably make it singleplayer-only if an option is needed.)
As usual, your approach is a lot more comprehensive and covers a lot more situations than I could think of.

The only thing I am not sure about is Move. I agree that BtS stopping unit cycling and forcing you to manually skip turn on the entire stack is annoying. But seeing the stack split might be more so. I am obviously extrapolating from my behaviour, but when I have 2 movers and 1 movers selected in one stack, I intend to move them together as such (for example, for defensive / unit counter purposes). Although it might be useful in some situations where the opportunity to attack with the 2 movers might present itself.

Of course, skipping turn on the entire stack, or having the 2 movers split off and then getting to skip their turn is the equivalent amount of trouble, and is nicer for unit cycling. But then next turn, I have to group both stacks again if I want to move them together. It seems like this rule ultimately comes out as the game telling the player that units with different moves should not be in the same selection group. I think that's different than the other missions (pillage, attack, build) because there the split is enforced by circumstances (and their best-guess optimal handling), but here it's an inherent unit attribute that makes it come into effect every turn that units are moving. I am also worried about e.g. stacks of naval units, that tend to more naturally have different speeds. For example, Galleons escorted by Frigates, or just a stack of Frigates and SotL.


A different suggestion that came to mind while writing and is somewhat in this context: I think the Defend/Sleep mission should be available in the UI even when the unit is already set to Defend/Sleep. Currently, when you select a unit/stack on that mission (to inspect it for whatever reason) your only option to go back to unit cycling is to make it skip its turn, but that wakes the unit and you have to return it to defend/sleep the next turn. I am not sure if that affects fortification modifiers or not, but it's pretty annoying regardless.
 
A different suggestion that came to mind while writing and is somewhat in this context: I think the Defend/Sleep mission should be available in the UI even when the unit is already set to Defend/Sleep. Currently, when you select a unit/stack on that mission (to inspect it for whatever reason) your only option to go back to unit cycling is to make it skip its turn, but that wakes the unit and you have to return it to defend/sleep the next turn. I am not sure if that affects fortification modifiers or not, but it's pretty annoying regardless.

Actually there is another option, wake them up and set them to defend/sleep again. Pressing F two times in a row isn't really more effort than hitting space and then hitting F the next turn.

I would be surprised if the fortification modifiers cared about these commands at all, I think they are purely a matter of interface convenience. AFAIK a unit should gain a fortification bonus from standing on the same tile for a few turns in a row without taking any action (though I'm not sure if promoting counts), regardless if from the perspective of the human player that is accomplished by skipping the turn, setting it to fortify or setting it to sleep. Hell, I think I've even seen cases where a fully fortified unit attacked into a stack on the next tile and still retained its fortification bonus as it didn't actually end its turn on a different tile, though IIRC attacking without moving pauses the fortification counter for that turn so to speak (i.e. you don't get an extra 5% for that turn) if the unit in question isn't yet at maximum fortification.
 
[...] IIRC attacking without moving pauses the fortification counter for that turn so to speak (i.e. you don't get an extra 5% for that turn) if the unit in question isn't yet at maximum fortification.
Apparently that's indeed how it works. It's not exactly counterintuitive that a unit can sally forth and then return to its defensive position, but it does seem inconsistent with the fortification bonus being erased when a unit moves away for just one turn or even just moves back and forth within a single turn.
A different suggestion that came to mind while writing and is somewhat in this context: I think the Defend/Sleep mission should be available in the UI even when the unit is already set to Defend/Sleep. Currently, when you select a unit/stack on that mission (to inspect it for whatever reason) your only option to go back to unit cycling is to make it skip its turn, but that wakes the unit and you have to return it to defend/sleep the next turn. [...]
I press W in that situation. For reference, the unit cycling hotkeys:
Spoiler :
Code:
       <ControlInfo>
           <Type>CONTROL_CYCLEUNIT</Type>
           <Description>TXT_KEY_ACTION_CYCLE_UNITS</Description>
           <Help>TXT_KEY_ACTION_CYCLE_UNITS_HELP</Help>
           <HotKey>KB_RETURN</HotKey>
           ...
           <HotKeyAlt>KB_NUMPADENTER</HotKeyAlt>
           ...
       </ControlInfo>
       <ControlInfo>
           <Type>CONTROL_CYCLEUNIT_ALT</Type>
           <Description>TXT_KEY_ACTION_CYCLE_UNITS_ALT</Description>
           <Help>TXT_KEY_ACTION_CYCLE_UNITS_ALT_HELP</Help>
           <HotKey>KB_W</HotKey>
           ...
           <HotKeyAlt>KB_NUMPAD5</HotKeyAlt>
           ...
       </ControlInfo>
       <ControlInfo>
           <Type>CONTROL_CYCLEWORKER</Type>
           <Description>TXT_KEY_ACTION_CYCLE_WORKERS</Description>
           <Help>TXT_KEY_ACTION_CYCLE_WORKERS_HELP</Help>
           <HotKey>KB_SLASH</HotKey> [# on my German keyboard]
           ...
       </ControlInfo>
       <ControlInfo>
           <Type>CONTROL_LASTUNIT</Type>
           <Description>TXT_KEY_ACTION_LASTUNIT</Description>
           <Help>TXT_KEY_ACTION_LASTUNIT_HELP</Help>
           <HotKey>KB_BACKSLASH</HotKey> [^ on German keyboard, weirdly.]
       </ControlInfo>

CvGame::doControl(ControlTypes eControl)
{
   // ...
   switch (eControl)
   {
   // ...
   case CONTROL_CYCLEUNIT:
   case CONTROL_CYCLEUNIT_ALT:
       cycleSelectionGroups(/*bClear=*/true);
       break;
   case CONTROL_CYCLEWORKER:
       cycleSelectionGroups(true, true, /* bWorkers=*/true);
       break;
   case CONTROL_LASTUNIT:
   {
       CvUnit* pUnit = kUI.getLastSelectedUnit();
       if (pUnit != NULL)
       {
           kUI.selectUnit(pUnit, /*bClear=*/true);
           kUI.lookAtSelectionPlot();
       }
       else cycleSelectionGroups(true, /*bForward=*/false);
       kUI.setLastSelectedUnit(NULL);
       break;
   }
   // ...
}
It would be nice to have a "continue unit cycling" button somewhere on the HUD. Such a button could also (through its icon?) preview which group is up next. Or even more than one button, to give the player a choice. Hard to say where to place that though. Screenshot at 1024x768 attached, as a worst-case scenario in terms of available space.
 

Attachments

  • 1024x768.jpg
    1024x768.jpg
    139.8 KB · Views: 84
I would scrap the "skip turn" button for sleeping/fortified units. What is its utility? If I want to wake the unit there already is a dedicated button for it.
 
I would scrap the "skip turn" button for sleeping/fortified units. What is its utility? If I want to wake the unit there already is a dedicated button for it.
It wakes the unit up with a 1-turn delay. Could remove the button while keeping the Skip action available via the hotkey Space; that's easy to do. However, some players have weird habits (or rather: most players have some weird habits), such as using only the mouse, and do I really want to treat Sentry (wake up when threatened) differently from Skip (wake up next turn) ...

I was thinking of displaying a next-unit button at all times, i.e. so long as any unit needs orders and no city or advisor screen is up etc. Near the End Turn button would be the logical place to me because unit cycling is kind of part of the turn sequence. And the BUG city cycling arrows are also there. Two mockups attached. One showing both a next-nonworker button and a next-worker button, and one showing just a next-unit button. And a third mockup with yet another arrow icon. A single straight arrow doesn't convey the idea of cycling (i.e. getting back to the current unit in the end, if it hasn't received an order yet), but two arrows make it look like they're individual buttons. Maybe something like the Select icon in "Worms" in a non-cartoon style, but I think something this complex will either obscure the unit button too much or be impossible to discern, at least on higher resolutions. Another attachment: Mockup (of a simple arrow) at my normal (native) resolution.
 

Attachments

  • cycle-mockup.jpg
    cycle-mockup.jpg
    141.4 KB · Views: 78
  • cycle-mockup2.jpg
    cycle-mockup2.jpg
    140.5 KB · Views: 71
  • cycle-mockup3.jpg
    cycle-mockup3.jpg
    140.5 KB · Views: 67
  • cycle-mockup-1920x1120.jpg
    cycle-mockup-1920x1120.jpg
    419.2 KB · Views: 67
Oh, I didn't expect your first response to this a full implementation already.
A slippery slope lead me from analysis and effort estimation to implementation.
[...] I would prefer Trebuchets be used to bombard because it's likely that they won't have great chances at attacking anyway; using Cannons to bombard would waste their better combat odds and leave me with Trebuchet moves that may or may not add anything to the resolution. [...]
Currently, bombard rate (and best fit) pretty much take absolute priority, so Artillery will bombard before Cannon and Cannon before Catapult. (Trebuchet actually has a higher base bombard rate than Cannon in BtS/AdvCiv; 16 to 12. However, against Walls and Castle, AdvCiv adjusts bombard rates of units that are supposed to ignore building defense – meaning that Cannon will usually out-bombard Trebuchet against fortified cities.)

I agree that this isn't necessarily smart. Looking at the combat odds does seem like a good way to determine which units are only good for bombardment.
Did you deliberately not factor in combat odds into that decision, or would that have been too complicated because it is context dependent on the bombarded city and would require too many unit-to-unit comparisons?
Could always do the odds computation only for humans, but it should be fine for the AI too. I guess it could be that there is another enemy stack adjacent to the bombarding stack, so the active player might want to split attacks between that and the bombarded city. Collateral damage can be more important than odds; also, the odds will improve through bombardment. Well, none of these are really weighty concerns.
[...] That is why I suggested bombard promotions earlier, because they are the best indication available which units the player prefers to be used to bombard (and whose promotions would otherwise be wasted), followed by reverse combat odds (or better put, survival odds) to preserve units that are best suited to actual combat if it is supposed to take place on the same turn.
Bombard promotions are easy to take into account through CvUnit::getExtraBombardRate. I'll see if I can write something based mainly on that and odds and still simple enough to not require much testing and tweaking.

On the separation of unit groups:
[...] Of course, skipping turn on the entire stack, or having the 2 movers split off and then getting to skip their turn is the equivalent amount of trouble, and is nicer for unit cycling. But then next turn, I have to group both stacks again if I want to move them together. [...]
Yes, putting a large, diverse group back together can be a considerable effort. (At least when playing with K-Mod's "Simple Unit Selection" option, which AdvCiv enables by default. That option prevents Shift+click from merging whole groups.) Conversely, one can simply use the "Go To (All)" button [Alt+G] to split off all units with available moves.
It seems like this rule ultimately comes out as the game telling the player that units with different moves should not be in the same selection group. [...] I am also worried about e.g. stacks of naval units, that tend to more naturally have different speeds.
Good points that I hadn't considered.

A downside of restoring the BtS behavior for the Move-To mission is that the player won't be reminded about potentially wasted moves when a group finishes a multi-turn move. In that case, the cycling-halt mechanism doesn't apply because the group isn't selected when its move ends. For example, a player might want to use a fast ship for an immediate blockade when reaching a destination in enemy waters. Maybe this parameter
CvSelectionGroup::readyToSelect(bool bAny = false)
should be set to true in most call locations so that groups with any ready units get included in the unit (really: group) cycle; or maybe it's more work than it's worth.
 
Wow f1rpo, you really went to town with these quality-of-life improvements! At some point AdvCiv could be called "The Quality of Life and Balance" mod (and AI and UI). :)

I find the "signs" pretty ugly.
I agree and I only tolerate them because I'm otherwise so forgetful. In this case, I was thinking along the lines of a Resource Bubble, except with the Cancel Mission sign used instead. However, I think that your idea of highlighting the tile itself would be prettier, since Resource Bubbles themselves can be obnoxious. Maybe if the tile became red, along with hash-marks like from Bombard. I don't know how this new functionality could be communicated or advertised to the player, though, since not everyone reads through the forums. :think:

I thought of another potential solution when it comes to avoiding production of Oil/Coal for Global Warming purposes. Sometimes, it happens that one of your own cities has been founded upon Oil or Coal. So, the only real way to get rid of those Resources is to trade them away. If you have Vassal States, it's usually not too difficult to just give those away, but it's not guaranteed. My idea is this: once Ecology has been researched, to enable a new dummy "Civilization" on the F4 Foreign Advisor > Resources page which would function as a /dev/null. Just "trade" the resource to the dummy civilization, and it goes in the trash! When opening up this dummy civilization (with maybe the Recycling Center or Minor Civilization icon), it'd show Sid Meyer's leaderhead and he'd be called "Sid's Waste Disposal - CEO" and he would gladly accept any Resources you'd want to send into the void for 0 :gold: (but no other diplo activities). You could even add funny dialog! :) It's a silly idea I know, but still, it can be a silly game sometimes.

Bombard promotions are easy to take into account through CvUnit::getExtraBombardRate. I'll see if I can write something based mainly on that and odds and still simple enough to not require much testing and tweaking.
I hadn't thought of the situation, as Leoreth pointed out, where you have both Trebuchets and Cannons, some with Bombard promotions. All I can say is that when I have a unit with Bombard, I usually use them only for Bombarding; if I had a Bombard-promoted-Trebuchet among some Cannons, I'd probably intend to use that Trebuchet only for Bombarding, never attacking.

As for the movement and stack splitting... it's all very confusing to me, so I have no opinion on it! :crazyeye:

I was thinking of displaying a next-unit button at all times
I might be missing something, but doesn't the Enter key temporarily move to the next stack in the Unit Cycle?
But there probably should be an actual button for it, as you say. Some people use mouse-only, and when playing on video, it's better to use mouse-only so that your viewers can see what's happening.
I like your idea of having two buttons to the right of the action buttons, relatively close to the End Turn button. I took a look in the existing interface artwork files, and I didn't see anything which would obviously provide a better or more-intuitive interface, even among unused assets. The only alternative I can think of is putting a second End Turn button below the usual one, making it yellow, and having that have the functionality of skipping to the next stack.
 
@TheOtherOne: Thanks for the feedback.The AI is supposed to hold back when it comes to dogpile wars in the early game. Perhaps what you describe is rather that separate wars throughout the late Ancient + Classical era gradually wear you down. Well, if you run into a situation where AI civs gang up on you "early on" when you're already on the ropes, then I'd like to look at a savegame to check if the fair-play code needs to be adjusted.

Ideally, starting next to Shaka shouldn't be strictly harder than starting next to Ashoka, but I guess that goal can't really be accomplished within this mod. One potential advantage of Shaka as a neighbor is that he could attack a third party, allowing the human player to share in the loot. Maybe on the highest difficulty levels, when early wars of conquest aren't otherwise feasible for the human player – but a high difficulty level will also make it extra difficult to deter a Shaka-on-human attack, so ... :undecide:

Edit: Link to numUnitsUprising function added.

Depends on the situation. I've learned that I can't let my military fall behind that of my neighbours or they will take advantage. Sometimes it feels like a dog-pile (like starting next to Shaka and Stalin who both declare war on me on the same turn, or one the turn after the other) other times it is, as you say, a series of wars against 2/3 opponents who wear me down.

It certainly does feel like being ganged-up on but then I was in the middle with two others having their backs to the sea. And I do the same in return . . . I declared war on an AI neighbour 3 turns after a different Ai declared war on it hoping to nab its cities before the powerful aggressive AI could overun it.
Honestly I like this though, I want a bit of a challenge. Now I've learned not to let my military fall behind that of my neighbours (or at least, less than my neighbour's neighbour) it isn't as much of an issue.

I play on small maps with lowest water settings and 8 players on the noble difficulty. I also modify the game speed so I use epic game speed with marathon research rates. I'm also relatively new (started playing civ 4 shortly before my first post here) so have been learning mechanics.
 
Last edited:
Catching up with "recent" posts, but still haven't gotten to pending balance changes (for v0.99 or beyond).

[...] Sometimes it feels like a dog-pile (like starting next to Shaka and Stalin who both declare war on me on the same turn, or one the turn after the other) other times it is, as you say, a series of wars against 2/3 opponents who wear me down. [...]
Two AI leaders completing their war preparations at the same time is a bit of a blind spot as it pits the AI incentive against ganging up on humans in the early game against incentives for not canceling a war at the last minute. Well, so long as you're not feeling unduly brutalized ... Thanks for elaborating.

Wow f1rpo, you really went to town with these quality-of-life improvements! At some point AdvCiv could be called "The Quality of Life and Balance" mod (and AI and UI). :)
On this note, I've added a bunch of previously discussed BUG options over the winter; screenshot attached. Also attaching a screenshot (no longer a mock-up) of the unit cycling buttons, and tagging @Set for this because he recently brought that idea up independently here in the DoC subforum. Edit: Replaced the screenshot with a better one; was a bit confusing.
I like your idea of having two buttons to the right of the action buttons, relatively close to the End Turn button. I took a look in the existing interface artwork files, and I didn't see anything which would obviously provide a better or more-intuitive interface, even among unused assets.
Thanks for taking a look. I've also looked them up and down (but sometimes one misses the obvious). I've come to think that using just the same buttons as in the plot list is a decent solution, even if it doesn't convey the concept of cycling; looks familiar if nothing else.
I might be missing something, but doesn't the Enter key temporarily move to the next stack in the Unit Cycle?
Yes, it's the same as W except that W can't accidentally end the turn. (But then, Space can also end the turn, and this never seems to be a problem; I don't think anyone uses Num0 instead.)

Regarding the idea of an interface mode for protecting individual tiles from automated workers: Seems straightforward to implement, but still more effort than it's worth to me at the moment. It's a nice low-key solution for keeping Oil, Coal disconnected and for protecting Jungles for National Park, but I can't think of any other application. Contrary to what I had suggested earlier, it's not really an acceptable solution for players who want to guarantee that workers don't ever replace Towns.
I was thinking along the lines of a Resource Bubble, except with the Cancel Mission sign used instead.
The EXE can show at most one bubble per tile, so ... (Or at least I can't get the EXE to do it. I've tried to at one point when exploring whether a "Wonders" layer could be implemented.)
Maybe if the tile became red, along with hash-marks like from Bombard.
Yes, red and blue are the first colors I would try.
I don't know how this new functionality could be communicated or advertised to the player, though, since not everyone reads through the forums. :think:
I guess one could come up with some gratuitous option on the BUG menu. However, for a niche feature, a loading-screen hint and listing the shortcut in Sevopedia would seem sufficient.
My idea is this: once Ecology has been researched, to enable a new dummy "Civilization" on the F4 Foreign Advisor > Resources page which would function as a /dev/null. [...] It's a silly idea I know, but still, it can be a silly game sometimes.
I guess a silly idea can still be a serious suggestion. :hmm: This is not only obtrusive, but also not particularly easy to implement. I'd sooner make the resources listed on the city screen clickable, allowing players to toggle them on and off on a per-city basis.

@MarkM (who hasn't logged in for 6 weeks, but let's see ...): Thanks for your encouraging words.
First, one strange aspect of civ is the lack of ability to destroy ("pillage") roads within your cultural borders.
K-Mod (and thus AdvCiv) already allows this. It's just that, when there's a terrain improvement on top of the road, the improvement gets pillaged first. I'm changing this in the next version (0.99) of the mod so that roads gets pillaged before improvements on friendly tiles.
I can't think of any rational or game-play reason why it should be blocked, except that it prevents you from doubling the odds of forest/jungle spread. But I also see that you have written some "thinking out loud" thoughts in the manual (forget the term you use for the section) that the late game needs perhaps some player tools to combat global warming? This by itself isn't enough, but it's at least a step in the right direction?
[...] I did have a couple games where I tried building preserves and destroyed improvements to try to encourage the spread and that was a large dissapointment (IE - nothing happened). [...]
Yeah, reforestation really isn't a thing currently. As far as I can tell, the iFeatureGrowth value of 64 in XML is on a permyriad scale, so even four adjacent Forest Preserves (only orthogonal adjacency counts) add up only to 2.56%. That per-turn base chance gets taken times 1.25 and both Forest and Jungle get a chance to spread, so the best possible per-turn chance of getting anything to spread onto a given tile is 1-(1-0.032)*(1-0.032), ca. 6.3% – far too small to bother in the late game. For reference, here's the source code. Would be easy enough to increase the probability, but the worst impediment is imo that improved tiles can't receive a Forest. My idea is to allow Forest Preserve on tiles without vegetation and to let a Forest grow in that tile after a certain (non-randomized) number of turns. I'm not getting around to implementing that however.
[...] when incomplete objects in the build queue are within 5 turns of decay unless they are resumed, a warning message is shown after the object name in the build queue [...].
Probably not going to be in v0.99, but it's on a list of BULL features that I'd like to adopt.
... Or should production decay simply be disabled?
 

Attachments

  • BUG options AdvCiv0.99.jpg
    BUG options AdvCiv0.99.jpg
    446.1 KB · Views: 134
  • cycling-buttons-near-bigflag.jpg
    cycling-buttons-near-bigflag.jpg
    560.4 KB · Views: 120
Last edited:
Please find attached: a pre-release version of AdvCiv 0.99. No further additions planned for this version, I just need to test it more. (If someone needs a 48-civ DLL for this, please let me know. Edit: Here it is.)

Draft of release notes: [deleted, now that the actual release notes are available here]
 

Attachments

Last edited:
@rtt4a: I'm attaching it. I had included a link to a 48-civ DLL in the release notes for every update, but it looks like I never put that link on the "overview" tab of the download page. I've added it now under "installation" – but that's for the latest stable release (0.98c). [Edit: Whereas the attachment is for 0.99, to be clear.] I've been thinking about releasing only a single DLL allowing 31 civs (that's 32 players including the Barbarians – a computationally advantageous number), but that still slows down AI turns in games with 18 civs by 8% compared with the 18-civ DLL. I might be able to narrow that gap a bit more, but such a change would also break savegame compatibility, so I'll probably stick with 18/48.
 

Attachments

Last edited:
@crullerdonut: So, on the balance tweaks, I've gone ahead and implemented my best bet. About Culture victory, I've looked at the research rates, tech costs and culture modifiers again, and my impression is that AdvCiv hurts culture modifiers a bit more than it hurts the rate of late-game tech discoveries (which is decisive for Space victory). More importantly, AdvCiv makes it more difficult than BtS to avert late-game wars through diplomacy. I've considered adding +25% culture to Market, Theater or, after all, Colosseum, but just wasn't happy with the flavor and other ramifications. Same for the idea of having Mass Media add +2 culture to specialists (and either obsoleting Sistine Chapel at that point or taking the specialist ability away from Sistine Chapel). Decreasing the Legendary threshold is a lazy solution but should at least correct the imbalances created by the AdvCiv/ K-Mod changes to the culture system. For reference: your last post on this subject (from ... last summer, sheesh).

Regarding Divine Right being useless once the wonders are gone, I've come to think that an espionage ability wouldn't be out of place because Islam does have a prominent connection with espionage through the Order of Assassins (the tech name "Divine Right" is OK for espionage too). However, I still think that an espionage production process is pretty useless (when there is already Wealth), don't really want to give players more free espionage points (from specialists or a multiplier) that they may feel compelled to spend somehow, and +1 state religion happiness would seem to have several consequences that aren't necessarily bad, but ... consequential. Don't want to make waves fixing this particular balance problem that already existed in BtS (i.e. which players have come to accept). Again, for reference, your posts on this subject:
Spoiler :
[...] maybe it could give +1 :espionage: to specialists, or maybe +25% :espionage:. (Rationale in terms of flavor: Divine Right of Kings, which allows the building of Versailles, enhances the centralization of power as exemplified by the Sun King Louis XIV. This central court was attended by ambassadors/courtiers from across Europe; this centralization would allow for greater ease of spying on those ambassadors.)
[...] Maybe an alternative would be to have Divine Right permanently give +2 :) with State Religion? (so, +3 :) altogether) [If that's OP, then maybe just an additional +1 :) with State Religion instead (so +2 :) altogether)]. Seems like this would work very nicely, in terms of flavor. It'd give players an incentive to get Divine Right from trades from the AI, instead of the situation now where AIs are basically used-car salesmen trying to pawn off a junker. It would also fit very nicely in with the advent of Nationalism and Drafting (which, let's not forget, Divine Right is actually a lesser-used route to Nationalism)
On second thought, I like this idea better than the Espionage one. Maybe the ability to build :espionage: could still go to Constitution or somewhere, though.
This would make Free Religion slightly less attractive, since it effectively gives a slight increase in Happiness so long as multiple religions are present. However, Free Religion is still nice for its Low upkeep, and for Diplomatic reasons.
I'm starting to think that this idea of mine
I'd sooner make the resources listed on the city screen clickable, allowing players to toggle them on and off on a per-city basis.
might actually be worthwhile. It would solve several problems that you've raised:
Spoiler :
at least the Japanese can cut [Coal] off from most of their cities to avoid 2 bad health from Factory.
Has anyone actually pursued that strategy? I just don't understand how someone could selectively connect Coal only to the Ironworks city, but to no others.
Sometimes, it happens that one of your own cities has been founded upon Oil or Coal. So, the only real way to get rid of those Resources is to trade them away. If you have Vassal States, it's usually not too difficult to just give those away, but it's not guaranteed.
The shutting-down of Coal and Oil was one of the most impactful, due to the impact of :yuck: with Factories (and Industrial Parks). While I think that it's still a good compromise that the Ironworks be reduced by -50%, I think that Railroads should still be able to be built in this late stage of the game.
I wish that there was a way to put a marker down somehow and make it so that Workers never improve that tile ever. This would [...] allow the player to cut off access to Coal, Oil, etc. for Unhealthiness and Global Warming purposes, with the knowledge that some trade-route Worker isn't going to plop down a Fort
 
Is it possible to add to the UI a display showing which civics one is in? As a Spiritual player, I find this UI to be very useful, especially when in this mod you've made it so that enemy spies are prone to changing government type, I've found myself too often forgetting that I'm at Despotism due to enemy spy and I lose a lot of benefit because of so, and a simple UI display would help a lot.
 
Quick status update: I've run my suite of sanity tests with v0.99, so I'm currently just waiting for a few days to see if any egregious issues with the pre-release version are reported.
Is it possible to add to the UI a display showing which civics one is in? [...]
That doesn't exist yet anywhere, right? Attaching a mockup (upper left corner of the screen). I guess clicking on that widget would simply open the Civics Advisor. Hover text would show the civic abilities, ideally also the turns until a revolution becomes possible and maybe a list of the available alternative civics. Will be a bit tedious to write code that figures out where there is room. As the 2nd mockup shows, the HUD is quite crammed on low resolutions (which some players may still use in order to avoid scaling issues with e.g. resource bubbles).

I've been meaning to add an alert "5 turns have passed since the last revolution; it's again possible to change civics." Maybe that would be more helpful than your proposal and thus should be a higher priority? (Not that it wouldn't be nice to have both.)

While you're here, a couple of comments on your Deity game in S&T (I think I had better not post non-strategy content there): I've never even gotten feedback from anyone playing on Immortal, so the highest two difficulty levels are largely untested and Deity in particular exists mostly so that players can see what it "would be like." Hats off to you for giving it a try. I've recently gotten my feet wet on Immortal (short post) and made a couple of adjustments based on that experience in v0.99, namely fixed an issue with the AI being very callous about rushing the human player with Archers and reduced the human building construction penalty (and instead dialed up the AI discount) – which means that buildings, while still getting a little more expensive on the highest difficulty levels, become gradually cheaper in comparison to units. I'm still not sure what to do with the highest two levels. I'd like everyone to be able to find a challenge on Emperor – but I don't think the mod can quite get there without making more far-reaching gameplay changes; so Immortal arguably has to be a thing, and my impression is that it's currently too big a step up from Emperor. Deity ... well, since it exists, should be beatable somehow by using every dirty trick (that the mod isn't wise to). I've already gotten rid of the 2nd free AI settler, but I think, in addition, most of the modifiers should be reduced (quite?) a bit to give players that fighting chance.

Also, I've looked into your "AI is really stupid at suiciding stacks" observation because I had been getting the same impression on Immortal. There's a bug in the AI code (introduced by me in v0.98 or earlier) that I'll fix in v0.99 (the pre-release version doesn't include the bugfix). This actually seems like the most urgent thing that v0.99 will fix.

Regarding the Financial trait: If I hadn't changed it somehow, it would've gotten a sizable (and fairly nonsensical) buff from the PIG/K-Mod change to Serfom. (That said, I did want to nerf Financial in any case.)

Mali and Egypt being your civs of choice for Deity is a good reminder to maybe do a round of unique unit nerfs (War Chariot, Skirmisher, Immortal, Fast Worker) in v1.0.

Interesting about the Great Wall being an important enabler of early wars of conquests while keeping the multitudinous Deity Barbarians at bay (though I guess the fast expansion of AI civs already reins the Barbarians in) and religious techs making good trade bait. Both fine with me, I think.
Another thing is I got lucky with receiving the quest for building War Chariots. If I build 17 War Chariots, [...]
The random events really are a dumpster fire. I'll have to address this particular issue because I've made it worse by increasing the default player count on Huge maps from 11 to 16 (the target number of Chariots is that number plus 1). Let's use the BuildingClassPrereqModifier from the map size (which is what determines e.g. the number of Libraries for Oxford University); that'll mean 6 (Duel) to 10 (Huge) Chariots are needed, instead of 3 to 17 (or 3 to 12 in BtS). Actually, pretty much all quests scale with the default player count ... That's really dumb because, when the default player counts are increased, players actually end up with fewer cities.

edit: grammar
 

Attachments

  • civics widget mockup 1920x1200.jpg
    civics widget mockup 1920x1200.jpg
    505.8 KB · Views: 66
  • civics widget mockup 1024x768.jpg
    civics widget mockup 1024x768.jpg
    220.5 KB · Views: 64
Last edited:
Also, I've looked into your "AI is really stupid at suiciding stacks" observation because I had been getting the same impression on Immortal. There's a bug in the AI code (introduced by me in v0.98 or earlier) that I'll fix in v0.99 (the pre-release version doesn't include the bugfix). This actually seems like the most urgent thing that v0.99 will fix.
i just grabbed some fixes over to my 098 build, at least until ill start off 099 merge.

the civic buttons are a very cool addition.
makes me think about my muti civic screen :) hehe,
 
I'm sorry I should have added more information regarding my request. The original BUG mod is great and it includes the civic UI display. Another missing feature of BUG mod that I think is quite terrible is not revealing after how many turns it'll take for a queued production item will take until it will start to lose hammers. I've included screen shots of both of these missing crucial features:

https://postimg.cc/gallery/Lm6hgkV

I think I've spent a few hundred hours trying to beat Diety on Marathon, and I'm starting to think it might be impossible for me to beat it. It's simply incredibly difficult to do, I seem to always get out produced, and outteched. I'm not a particularly good player, though I can beat Better BAT AI on Diety without too much difficulty using same map modes.

I have been exploiting the AIs mistakes of suicide attacks. The AI did the same in Better BAT AI, but I would say to a much significantly less extent.

Your point regarding Financial being buffed is valid. However, it's sad that in the original, it was arguably the second most powerful trait, and now in AdvCIV, it's been nerfed to such a significant extent that Organised seems to produce more commerce than Financial does AND provides free hammers, and now Financial is such a weak trait that it went from top tier to weak-moderate tier. I want to play as Mansa Musa again, yes Skirmishers are very powerful especially against the suicidal AI attacks, however Financial is such a weak trait now that I can't see Mansa Musa, or any Financial character for that matter, being worth played anymore, except potentially the Incas with a Great Lighthouse strategy. I really don't like this change, it's too much.

The Great Wall is needed to offset the awfully high city maintenance costs. I seriously speculate to what extent domination victories are even viable anymore on huge maps at high difficulties.

I don't believe any of the unique units deserve a nerf, especially not Immortals. Persia has been nerfed enough already with making Financial a weak trait.
 
Last edited:
Back
Top Bottom