Could that be accomplished by adding the attributes to the ini file that BULL can read and apply on start up?Yes, copy them from your BTS installation folder (Assets\XML\Civilizations?). Look for CIV4PlayerColors.xml I think. Copy it to your CustomAssets folder in the same folder structure and edit that copy. Note that with so many players it's hard to give everyone a totally unique color scheme unless you pick your rivals for each game.
If I made BULL expose those attributes for write access, I wonder if it would work to set them as a game starts/loads. Has anyone tried this?
Could that be accomplished by adding the attributes to the ini file that BULL can read and apply on start up?
Honestly? This is not a drawback at all... they are just arbitrary colors that have nothing to do with the associated civs, and I believe randomizing them won't remove anything from the game.When the game starts, it gives player 0 (you normally) White, player 1 Red, player 2 Blue, etc.
This is suboptimal as it completely ignores each civilization's standard color.
Honestly? This is not a drawback at all... they are just arbitrary colors that have nothing to do with the associated civs, and I believe randomizing them won't remove anything from the game.
Would it be easy to do a color patch this way?
Neither option will be easy, but the first one is considerably easier from a user interface point of view. The first step is to do a quick test to see if it's even possible to change player colors on-the-fly.
How hard is it to add a new tab in the BUG panel?
Can the panel edit the global defines on the fly?
Global defines? Do you mean the entries in the GlobalDefines[Alt].xml file? With a bit of work you could make that happen, but it won't be easy. Setting an XML value is trivial; hooking that into BUG wouldn't be since I didn't design it that way. Can you not switch it to a normal BUG option?
<Define>
<DefineName>POWER_HEALTH_CHANGE</DefineName>
<iDefineIntVal>-2</iDefineIntVal>
</Define>
# MyMod.py
from CvGlobalExtensions import *
def onChangePowerHealth(option, value):
gc.setDefineInt("POWER_HEALTH_CHANGE", value)
<option id="PowerHealth" type="int" default="-2">
<change module="MyMod" function="onChangePowerHealth"/>
</option>
IDK, I don't know how bug options work, and if they can be set in the SDK.
On second thought, you could set up a BUG option to change an XML Global Define quite easily.
For example, let's make the
- Create an option to mirror the XML define.
- Write a simple function to push the option value into the XML.
- Set the option's <change> element to call that function.
from power into an option (don't try this on-the-fly as it will bork your current game). Here's the <Define>:
Here's the function:Code:<Define> <DefineName>POWER_HEALTH_CHANGE</DefineName> <iDefineIntVal>-2</iDefineIntVal> </Define>
And the configuration XML:Code:# MyMod.py from CvGlobalExtensions import * def onChangePowerHealth(option, value): gc.setDefineInt("POWER_HEALTH_CHANGE", value)
You might also want to create an init function for that module that pulls the current XML value and pushes it into the BUG option. This way it will pick up whatever value is in the XML as the "real" value. It's unlikely the player will modify the INI whereas they might modify GlobalDefines.xml.Code:<option id="PowerHealth" type="int" default="-2"> <change module="MyMod" function="onChangePowerHealth"/> </option>
In fact, you may just want to make it an unsaved option (outside of the <options> element) so that it only stores the value in the XML and memory--never in an INI file. That's the best route. If I get some free time I'll investigate making this built-in by adding an XML-based option type, but don't look for that any time soon.
Yay!EmperorFool said:That's already in the next release of BULL
Tabs on the spaceship screen to see other civs space progress.
In the hover info for the scoreboard, having a civs "war with" and "defensive pact with" would be handy.
maybe replace the word "DEAD" with a little skull.
Instead of the war and peace icons you could turn a civs score red if they were at war with you, and green if they had a peace treaty with you.
Tabs on the spaceship screen to see other civs space progress. The existing display has the civ it dubs to be the "leader", but last night i was watching cathy's ship/tech progress to figure out when to launch (she had every part build except the stasis chamber as she didn't have genetics), and ramesses ninja'd us by launching early with only one engine. Since it's all there in the event log, i should've seen it coming, but when it's more than a 2 horse race it would be nice to have it more readily available.
Someone was working on such a screen but (IIRC) it never got finished. I'll see if I can dig it out.That would be nice, yes.
I recommend putting in some negative values between some of the columns to move them closer together. Here's my scoreboard Display Order value:
F2W-4M-2S-1V-5C5?EP-4T1UN-2B-2R-2A-2H-2Q*LO