Taurus

Taurus 1.02

f1rpo

plastics
Joined
May 22, 2014
Messages
1,694
Location
Germany
(The download button should be on the upper right.)

I've named the mod "Taurus", a synonym of "bull," because it's essentially an update of the BULL mod – but one that the original BUG-BULL team has no responsibility for and that isn't bound to follow all the same conventions.

Contents
Taurus includes the BUG 4.5 and BULL 1.3 additions already familiar to BAT players – mainly stack promotions and city plot status coloring, i.e. the colored circles around a selected city. Smaller resource bubbles are the novel killer feature (well, perhaps to some). Figuring out how to do that has been my tipping point for starting this little project. No other changes really stand out, but I'll list a few anyway:
• Highlight full city radius around selected settler
• Disable "Autosaving..." message and flashing "ENTER to end turn", "ESC to exit city screen"
• Right-click the city center to exit the city screen without moving the camera
• Message upon meeting a civ – which can replace the "peace in our time" diplo popup
• Fix loud promotion, war sounds
• DLL compiled with whole-program optimization, which should speed up AI turns by some 10 to 30%. (But I haven't measured the effect.)
The updated BUG help file lists some 20 items under "Taurus additions", screenshots on the "Overview" tab show the new options, the full change history is on GitHub.

All optional (well, almost all) and no gameplay changes – essentially: BULL 1.3 updates the Unofficial Patch, which includes some bugfixes that will affect AI behavior, but the impact should be tiny (same as in BAT).

Save-compatibility
So, yet another BUG mod that players may have to install to be able to load each other's savegames? Not an issue, hopefully, as Taurus can load and write BtS, BUG, BULL and BAT savegames (not BUFFY - those are encrypted). So there is also no need to install Taurus in CustomAssets (nor has this been tested). Having another mod in CustomAssets should not be a problem either – Taurus will load only artwork (e.g. Blue Marble) from there. Note that INI files with settings are portable between BUG-based mods, so you could copy them from an existing installation into Taurus\UserSettings to avoid having to reconfigure everything. The options introduced by Taurus should not be affected by this, i.e. should retain their default values. Full installation instructions are on the "Overview" tab (and in the help file).

The catch
With new features can come new (major) bugs. Most of the additions have been in use in other mods for years, but I may well have broken something when integrating them with BULL, and testing has been very limited. Moreover, the resource bubble and save-compatibility changes are still experimental – they modify the EXE at runtime, which might not work on every OS and with every edition of BtS, though feedback thus far has been encouraging. Moreover, compared with BAT, Taurus lacks diversified graphics and diplo texts, extra movies and illustrations, HUD civics and wonder capture messages. And, unlike BUG, Taurus has no native support for MacOS.

Future plans
A lot more could be adopted from AdvCiv/ K-Mod, though returns will be diminishing. I hope that Taurus also lowers the barrier for other modders to make their UI tweaks available to players who don't play gameplay-altering mods. I can grant access to the Git repository or merge pull requests.

Please report any bugs in Taurus additions. While I certainly don't mind reading requests for new features, I feel that, so long as I'm the only contributor, I should discourage that a bit because, unless it's something that'll require minimal effort, I'm unlikely to act upon it. I realize that there's a lot that could still be improved.
 
Last edited:
Using 1.01; happened when my warrior went on the capitol. Keeps popping up the following turn; I switched from PLE plot lists to BUG for now.
 

Attachments

  • AutoSave_BC-1280.CivBeyondSwordSave
    309.5 KB · Views: 10
  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    224.2 KB · Views: 87
  • AutoSave_BC-1290.CivBeyondSwordSave
    304.8 KB · Views: 11
Last edited:
Thanks, I think I've found the problem (Git commit). As far as I understand, hovering over a unit button causes the exception. I meant to post an update sometime soon anyway (despite not having made substantial changes since the initial release), so, when I do that, the bugfix will be included. For the moment, short of disabling PLE, one could also set HidePythonExceptions = 1 in CivilizationIV.ini to avoid the popups. I guess most players who aren't modders have them disabled anyway.
 
This is with the changed file; upgrade the warrior after it wins combat eot.
 

Attachments

  • AutoSave_BC-2050.CivBeyondSwordSave
    202.1 KB · Views: 12
  • Civ4ScreenShot0000.JPG
    Civ4ScreenShot0000.JPG
    225.8 KB · Views: 77
Will you add an option to disable the increased notification radius for forest and jungle growth?
 
Oops, another bugfix that made matters worse, same place that the previous one came from. Fixed.
Will you add an option to disable the increased notification radius for forest and jungle growth?
I suppose you wouldn't ask if it weren't (mildly) annoying. Unless it makes a difference to you that the BtS behavior was probably unintended – a comment says "tell the owner of this city," i.e. the nearest one, then the message is sent to the owner of the Jungle or Forest tile, which, apparently, has no effect when there is no owner. Could add a checkbox "Growth of Unowned Forest/Jungle" at the bottom of the Alerts tab, enabled by default.
 
I installed that file and my game started to generate a pile of python errors on launch. I deleted the mod folder and redownloaded it and now it seems to be working ok.
 
Peculiar. Some problem with how you downloaded or placed that file on the first attempt, would be my best guess. (Assuming that you've managed to adopt the bugfix on the second attempt.) I doubt that those two lines I changed are responsible. Oh, well.
 
I noticed some inherited problems:
from BUG:
1.TXT_KEY_BUG_HINT_13 has an erroneous "an"
2. In the sevopedia civilization page, Barbarian and Minor Nation show up; whereas neither does in Bts. Same with Barbarian on the leader page. I think Minor Nation clearly should be removed. I don't know whether barbarian should or not. I like the civilopedia text being visible somewhere, but it's definitely not a civilization in the sense of the others.
From Bts:
3. Ramesses II and Ragnar on the civ selection page should be flipped to preserve alphabetical order.
Request:
Is it possible to revive putting [default] as a leader name changing to match whichever leader is selected once the game starts? I remember this working in an earlier version of civ 4.
 
I noticed some inherited problems: [...]
Thanks. I don't know if I want to polish things to that extent – or if and when I'll upload another update. Well, I've removed the "an", and I've copied a few lines of code from AdvCiv to exclude the Minor Civ. Yet to be pushed to GitHub. Fixing the order of the leaders would also be easy enough – the order corresponds to the order of Civ4LeaderHeadInfos.xml –, but Taurus doesn't include a copy of that file yet, and I don't want to add it just for this purpose. (The fewer files, the easier the mod remains to merge with other mods.) I will correct the order in AdvCiv fwiw.
Is it possible to revive putting [default] as a leader name changing to match whichever leader is selected once the game starts? I remember this working in an earlier version of civ 4.
The game will show the leader name from XML when the custom name string is empty or when the "Anonymous" multiplayer option is enabled: CvPlayer::getName
Clearing the name during game setup doesn't work because, apparently, the form (implemented in the EXE) will keep the previous string if one of the strings is deleted. What gets shown as "[default]" (e.g. civ description) is treated internally as an empty string, I think. I could let the player enter "[default]" as you've propsed and implement special treatment for that string in the DLL, but that may not be desirable for multiplayer games (not sure). Probably cleaner, less obscure to add a BUG option that corresponds to the existing multiplayer option. There are already a bunch of BUG options in that vein on the Scores tab. And then the conditional I've linked to above would only have to check the BUG option in addition. Maybe I'll implement that; would also be nice to have for AdvCiv. Though a Python call each time that a player name is accessed might be a little wasteful wrt. performance, may want to cache the status of the BUG option in the DLL ... gets a little laborious.
 
Hello, f1rpo! I really like this mod, combining the newest versions of BUG and BULL and adding some additional features as well. I especially like the ability to load vanilla BtS savegames.

But I have some confusion about how and when the interface settings are saved between sessions and when they are not. Perhaps you could help me understand how this works?

The first time I tested Taurus, I might have started a new game first with "play now", I'm not sure. Then I tried loading a few of my old vanilla BtS savegames and probably adjusted the interface settings and the changes I made persisted between loading different savegames. Eventually I quit the game without saving anything and probably assumed the interface settings would be saved automatically.

The next day I loaded one of those old BtS savegames again and the interface settings had been reset to default values. So I thought maybe I have to readjust the settings every time I want to play the game, or I need to save the game every time I adjust the settings if I want to keep the changes. So I tried to adjust the settings again and this time I saved the game, quit to desktop and experimented with loading different savegames and the settings were actually saved this time and persisted between different savegames.

Then I tried to adjust the settings again, but this time without saving the game before quitting to see if the settings were saved this time and to my surprise they were!

So if I understand correctly, the game needs to be saved after adjusting the interface settings for the first time so that they won't reset to default values, but after that they are saved automatically without needing to save the game? Or how exactly does this work?
 
I don't think this issue has to do with imported savegames. If I just install a fresh copy of the mod, launch a new game or load a savegame so that INI (config) files with the default settings get created in Mods\Taurus\UserSettings (this doesn't happen earlier because the whole BUG/BULL options framework is still unavailable on the opening menu screens) and then change a setting, I can see in the respective INI file that the change isn't written to disk. After exiting and reloading the mod, with the INI files already in place, the problem no longer occurs. Seems that the program logic doesn't work correctly when attempting to update a config file on disk that has just been created. I'll need to take another stab at this in the next few days; this really ought to be fixed. I can also reproduce the problem with the latest version of BULL; odd that I've never seen it reported by BULL players. Anyway, thanks for making me aware, glad to hear that the import feature is useful to you.
Edit: Managed to fix it, I think (Git commit). Now just a matter of when to upload another update.
 
Last edited:
In your Github commit title, you wrote that you removed Barbarians instead of Minor Civ.
Peculiar. Some problem with how you downloaded or placed that file on the first attempt, would be my best guess. (Assuming that you've managed to adopt the bugfix on the second attempt.) I doubt that those two lines I changed are responsible. Oh, well.
I had this happen again. Apparently; right click, save as breaks them. Individual python files have to be opened on github, then clicked raw download.
Thanks. I don't know if I want to polish things to that extent – or if and when I'll upload another update. Well, I've removed the "an", and I've copied a few lines of code from AdvCiv to exclude the Minor Civ. Yet to be pushed to GitHub. Fixing the order of the leaders would also be easy enough – the order corresponds to the order of Civ4LeaderHeadInfos.xml –, but Taurus doesn't include a copy of that file yet, and I don't want to add it just for this purpose. (The fewer files, the easier the mod remains to merge with other mods.) I will correct the order in AdvCiv fwiw.
You could put it in the Optional folder. Speaking of that, at least for numbered updates, will you compile a dll with all the optional components included, as well as an increased player cap? Otherwise someone would have to compile their own, given that the mod has a different one from the other bull over 18 civ dlls.
I don't think this issue has to do with imported savegames. If I just install a fresh copy of the mod, launch a new game or load a savegame so that INI (config) files with the default settings get created in Mods\Taurus\UserSettings (this doesn't happen earlier because the whole BUG/BULL options framework is still unavailable on the opening menu screens) and then change a setting, I can see in the respective INI file that the change isn't written to disk. After exiting and reloading the mod, with the INI files already in place, the problem no longer occurs. Seems that the program logic doesn't work correctly when attempting to update a config file on disk that has just been created. I'll need to take another stab at this in the next few days; this really ought to be fixed. I can also reproduce the problem with the latest version of BULL; odd that I've never seen it reported by BULL players. Anyway, thanks for making me aware, glad to hear that the import feature is useful to you.
This is present in More Naval AI derived mods too.
 
Last edited:
In your Github commit title, you wrote that you removed Barbarians instead of Minor Civ.
Oh. Can't really correct Git commit messages. (If it has to be done, then my best bet is to revert and re-commit.) But something to bear in mind for the release notes. And the code does what it should, I think.
I had this happen again. Apparently; right click, save as breaks them. Individual python files have to be opened on github, then clicked raw download.
Yes, that explains it. A GitHub link such as
https://github.com/f1rpo/Taurus/blo...3625c4dad6176a/Assets/Python/BUG/configobj.py
does not, despite the file extension, lead (directly) to the Python script but to ... some JSON data, it looks like:
Code:
{"payload":{"allShortcutsEnabled":true,"fileTree":{"Assets/Python/BUG":{ ...

You could put it in the Optional folder. Speaking of that, at least for numbered updates, will you compile a dll with all the optional components included, as well as an increased player cap? Otherwise someone would have to compile their own, given that the mod has a different one from the other bull over 18 civ dlls.
The options, no, I see those as aimed at modders as they break the "unaltered game rules" promise. Put differently, I don't think there's much of an audience. Would also be one more step that needs to be remembered and manually carried out by me for each release (unless I come up with a script for automation), and compiling a fully optimized DLL takes 10-15 minutes on my outdated machine. Oh, and players might then expect me to also run a test with that alternative DLL. I have similar reservations about a higher civ limit except that it's no more of a rule change than the map scripts that are bundled with BUG/ Taurus. If a particular civ limit were widely used ... but all I find in the download database is a 50-civ version for BAT. It would be good to at least reject 50-civ BAT savegames with the "different mod needs to be loaded" dialog (rather than crashing), but that's challenging to implement. And compiling DLLs for various combinations of compile-time settings is of course the way madness lies. :)
This is present in More Naval AI derived mods too.
Thanks for the confirmation. Should be a really widely encountered problem given how widely used BUG is on its own - and in larger mods.
 
The options, no, I see those as aimed at modders as they break the "unaltered game rules" promise. Put differently, I don't think there's much of an audience. Would also be one more step that needs to be remembered and manually carried out by me for each release (unless I come up with a script for automation), and compiling a fully optimized DLL takes 10-15 minutes on my outdated machine. Oh, and players might then expect me to also run a test with that alternative DLL. I have similar reservations about a higher civ limit except that it's no more of a rule change than the map scripts that are bundled with BUG/ Taurus. If a particular civ limit were widely used ... but all I find in the download database is a 50-civ version for BAT. It would be good to at least reject 50-civ BAT savegames with the "different mod needs to be loaded" dialog (rather than crashing), but that's challenging to implement. And compiling DLLs for various combinations of compile-time settings is of course the way madness lies. :)
I don't see why the sentry movement option is a change to game rules. Isn't it just a timesaver to make clicking a multi-turn move not as cripplingly bad as it normally is (feed the scout to the bear)? It's the same type of option as automatically stopping workers about to chop a forest. And I remember all of them being included in Buffy.

There's a bug with the UI on actual effects when building an aquedect with a city that has -1 health. The hover tip says actual +2 health, -1 food.
 
I should've taken another look at those options first. I was remembering Global Warming and Fractional Trade Routes, which do change the rules, but, actually, the former is gated by a game option and the latter isn't even mentioned by the Readme file in the Optional folder. Well, an extra game option would be a bit of a nuisance because that'll affect the savegame format. Then there's Governor Builds Workers, that seems harmless enough, and Sentry Actions; those clutter up the UI. Should really be options on the BUG screen, putting them there isn't a big technical challenge, I think. Perhaps also the Governor Builds Workers options; no need to spread the mod out onto the player options screen. Anyway, agree that Taurus should do something with those options. If I find the time.
I don't see why the sentry movement option is a change to game rules. Isn't it just a timesaver to make clicking a multi-turn move not as cripplingly bad as it normally is (feed the scout to the bear)?
I had never even been aware of that particular extra action: "The unit moves until an enemy unit of the same type enters its visibility range." I should also want to add that to the AdvCiv mod – though I'd just make that the default behavior for all moves: units stop when revealing a previously unrevealed enemy. (In a perfect world, the move as ordered would remain queued rather than being discarded entirely.)
There's a bug with the UI on actual effects when building an aquedect with a city that has -1 health. The hover tip says actual +2 health, -1 food.
I think it's an "eaten bread" icon, i.e. -1 food lost.
 

Attachments

  • actual-effect-tooltip.jpg
    actual-effect-tooltip.jpg
    9.6 KB · Views: 22
TXT_KEY_TAURUS_HINT_1 I don't use a touchscreen.😋

I think it's an "eaten bread" icon, i.e. -1 food lost.
Something seems off with the way it's indicated. Showing it as a double negative seems worse than as a positive, and showing the -2 to food drain to unhealth in addition seems misleading, because together wouldn't they indicate two double negative twos, being +4?
 
Last edited:
I see what you mean with that emoticon.
I guess the tooltip is trying to be very technical: The increase in health casuses a decrease in lost food which also decreases the food deficit. The "eaten food" icon is normally used for food consumed by the population, so it may not even be technically correct to use that icon for food lost due to bad health. So maybe it's better in the attached screenshots. Baray looks a little weird, but seems clear enough. (I've given it to the Celts just for being able to test it with my existing savegame.)
Edit: Oops, didn't come very close to implementing that correctly. It should all go on one line. So that does look awkward for the Baray (2nd attachment), and merging the text generation code for health with the code for yields would get messy. Maybe better to keep using the negative eaten food and only get rid of that when there'll be an equal change to the food deficit. (It can also happen that an Aqueduct will prevent 2 food from being lost while the food deficit is only 1 and will therefore only decrease by 1.) Or leave it as in BULL. 🥴
 

Attachments

  • health-tooltip.jpg
    health-tooltip.jpg
    73.9 KB · Views: 19
  • baray-tooltip.jpg
    baray-tooltip.jpg
    15 KB · Views: 43
Last edited:
Maybe better to keep using the negative eaten food and only get rid of that when there'll be an equal change to the food deficit.
I think this is the best looking of those.
 
Top Bottom