View Full Version : BTS Unaltered Gameplay Project
alerum68 Aug 02, 2007, 09:11 PM The BUG Project
(http://sourceforge.net/project/platformdownload.php?group_id=202755)
BTS Unaltered Gameplay, or BUG, is a modification code for Civilization IV: BTS. CIV is a very easy game to modify, but not all modifications are compatible with each other. In an effort to combines these many different Mods from the Civ community, into one concise program, the BUG project was born.
BUG combines mods that do not change the basic game play of CIV, while adding flavor and ease of use. Some aspects that we feel are within this criteria are Advisor Screens, City View Screen, the Main View Screen, the Civopedia, as well as the way units may look but not the way they play. Also, any addition or changes made, will not provide any information that cannot be figured out within the game itself.
We feel this MOD is safe for use in any Succession Games, even if the Succession Game being played is running off another Mod. If you find any changes within the code that modify games play, please post a message to us here, or on the Project Development link listed below, and we will make it of the utmost important to fix the problem.
If you would like to have your Mod added, please visit the Project Development page on SourceForge.
Current version: 0.15
Current Flavor version: 0.05
Download Here (http://sourceforge.net/project/platformdownload.php?group_id=202755)
Project Development Page: http://sourceforge.net/projects/civ4bug/
MODs added:
•Option Switching Core by ruff_hi and EmperorFool.
•Main Screen Interface
*Not Just Another Game Clock TheLopez
*Remove Dead Civs from Score by TheLopez
*Power rating in Score by EmperorFool
*Attitude Icons by Porges
•Pop-up Game Messages
*Civ4lerts by Dr. Elmer Jiggle
*Reminders by Eotinb
*Autologger by Eotinb
*Extended Colors by SimCutie
•Advisor Screens
*Better Espionage Screen by Almightix
*Sevopedia by Sevo
*Great Person Tech Preferences by ruff_hi
*Custom Domestic Advisor
•City Screen
*Specialist Stacker by TheLopez
*Raw Commerce by Sevo
*Raw Production by EmperorFool
•Flavor Modifications:
*Ethnically Diverse Units & Cities
*Better Ship Scale
*Better Diplomacy Text
Current Todo List:
Python to Add
1a) Cammango's 30 pages of menus for CDA
2) Enhanced Military Advisor *Or devise our own improved Military Advisor*
3) ShowInfo MOD
4) (Renaming Mod)Real Military Ranking
5) Snippets from Plot List Enhancment
6) Unit Renaming by TheLopez
i.Roman Numeral Naming by sen2000
ii.City Naming by Porges
iii.Random Names by TheLopez
iv.City Naming and Numbering Porges
v.Borg Naming by ruff_hi
XML to add:
1) Civ Based Great Person MOD - Removed until updated to Python.
2) Hints & Tips
Ideas for improvements:
1) Combat Experience Counter
2) Hall of Fame win / lose
3) Adding Notes to Units
4) Alert when a AI goes "we have enough on our hands"
5) Making tabs inside Options screen CDA text file placed in Custom Assets Directory.
6) Page up/down, extra info in Glance Page
7) Develop FAQ
8) Give Options for how many Civs are displayed in score.
9) Updating Alerts to include SG events of interest.
10) Add Mac fix
11) Add Rival EP in Espionage Screen
12) After Build Calculator
13) After Revolution Calculator
Devlopers:
Alerum68 (http://forums.civfanatics.com/member.php?u=40475)
Cammagno (http://forums.civfanatics.com/member.php?u=74513)
EmperorFool (http://forums.civfanatics.com/member.php?u=111657)
Ket (http://forums.civfanatics.com/member.php?u=96357)
NikNaks93 (http://forums.civfanatics.com/member.php?u=96170)
ruff_hi (http://forums.civfanatics.com/member.php?u=64034)
alerum68 Aug 02, 2007, 09:21 PM I think the most important thing we need to start with is making a core MOD that will allow us add on to it. I have been out of the loop for so long that I'm not sure if this has been done yet, but if everyone built off my MOD then it's a very loose group of MODs that fit together about as well as a round hole and an oval peg... need to pound it really hard.
As Ket said, I think having optional features is not just nice, but it will be essential. As long as we do that, I don't see why we can't add EVERY MOD that doesn't change gameplay, even ones that may do opposite things. This was my original dream for my MOD, but didn't have the coding Skills. With EF in the mix, we should be able to do this no problem. I like the INI Parser, but from what I remember it was Somewhat buggy. Has that been smoothed out?
Alright, so it's time to start searching for forums for ALL the MODs that will fit into the following criteria: Changes cannot be made that will make game play vary from BTS Vanilla. Other then that, all is fair game.
Now the Core... EF, could you code this yourself to fit our needs, or do you think there is a way to use somethnig already out?
If anyone wishes to contact me, my username on AIM is a-l-e-r-u-m-6-8 without the dashes.
ruff_hi Aug 02, 2007, 09:33 PM I've had YES from Ket, Alerum and EmperorFool.
I PM'd thunderfall and asked for a folder under the Civ4 - Project & Mod Development (http://forums.civfanatics.com/forumdisplay.php?f=215) folder, no answer yet. We should probably move this thread there but also have a bunch of other threads to discuss various options.
I build my v2 from scratch with the aim of making things optional (as much as possible). I think that the first thing we should do is list all the mods that we could add. There are some that Warlords has superceded (unit wrap on the main interface being one) that we probably don't need.
The ini file is probably the best place to start ... I would suggest Gaurav's mod to my mod that allowed for the mod to be placed anywhere. We should lift the core system from there.
ruff_hi Aug 02, 2007, 09:35 PM Do we need a name for this mod? How about ... BtS Unaltered Gameplay Mod. That way we can call it the BUG mod! One question: what do we do about DLL changes that people want to add (better AI, Unit Stats, etc).
alerum68 Aug 02, 2007, 09:43 PM I like BUG.;) I don't want this mod to have any elements that will change stats, or better AI, or anything like that. It has to stay 100% unaltered gameplay. Even a +1 increase on a stat will ruin the aim here.
Another thing... what version will we work off of BTS? I think it should be the original version for at least 3-4 months. By then a patch should be out that will stick around for a while, instead of patches every few weeks.
ruff_hi Aug 02, 2007, 10:01 PM I don't want this mod to have any elements that will change stats, or better AI, or anything like that. It has to stay 100% unaltered gameplay. Even a +1 increase on a stat will ruin the aim here.Totally agree. However, some bright spark will ask about this and that and we should be able to test / comment on compatibility.
alerum68 Aug 02, 2007, 10:04 PM http://forums.civfanatics.com/showthread.php?t=234499&highlight=Beyond+the+Sword
humm... this is a script that updates VinCiv4 mods to BTS.
alerum68 Aug 02, 2007, 11:02 PM A list to get us started....
http://forums.civfanatics.com/showthread.php?t=157141 - Python utility Library. Another good option to start work from. I think it's more basic then the Great Options MOD, and will not have as many options not used as with the first.
+http://forums.civfanatics.com/showthread.php?t=144623 - Autolog and Reminders
+http://forums.civfanatics.com/showthread.php?t=157088 - Civ4 Alerts
http://forums.civfanatics.com/showthread.php?t=167023 - Dead Civ Scoreboard
http://forums.civfanatics.com/showthread.php?t=158137 - Not Just Another Game Clock
+http://forums.civfanatics.com/downloads.php?do=file&id=523 - Customizable Domestic Advisor
+http://forums.civfanatics.com/showthread.php?p=3499585#post3499585 - Cammango's 30 pages of menus for CDA. May not use all of them, but is a great core to take from regardless.
-http://forums.civfanatics.com/showthread.php?t=169549 - Enhanced Military Advisor
http://forums.civfanatics.com/showthread.php?t=169549 - Sevopedia * This will be a big project since I think we're going to have to update alot of information to make up for the BTS changes, but is a must have.
http://forums.civfanatics.com/showthread.php?t=234523 - (BTS Already) Better Espionage Screen
http://forums.civfanatics.com/showthread.php?t=158002 - Raw Commerce City Display (If this give info that can't be figured out by searching around and doing alot of adding, we shouldn't add it.)
http://forums.civfanatics.com/showthread.php?t=202050 - Great Person MOD
http://forums.civfanatics.com/showthread.php?t=164589 - ShowInfo MOD
http://forums.civfanatics.com/showthread.php?t=204073 - unit Formations
http://forums.civfanatics.com/showthread.php?t=181857 - Diplomacy Text
http://forums.civfanatics.com/showthread.php?t=149572&page=11 - Plot List Enhancement
http://forums.civfanatics.com/showthread.php?t=144612 - Reminder MOD
The next three should be made as a combined MOD that lets you pick the option you want:
http://forums.civfanatics.com/showthread.php?t=161132 - Random Unit Names
http://forums.civfanatics.com/showthread.php?p=3878311#post3878311 - Rename Units after City
http://forums.civfanatics.com/showthread.php?t=168074 - Roman Numerals
http://forums.civfanatics.com/showthread.php?t=184037 - Not a MOD yet, but a good suggestion on renaming units using Unit Rankings. Maybe we can expand on this one to have Ranks for different civs. If someone could code it, I would be fine with searching around and finding proper ranks to use.
http://forums.civfanatics.com/showthread.php?t=158636 - Tech Window Enhancement.
http://forums.civfanatics.com/showthread.php?t=147308 - SimCuties extended colors.
http://forums.civfanatics.com/showthread.php?p=3848052#post3848052 - Turns to Complete Culture and GP.
http://forums.civfanatics.com/showthread.php?t=161368 - Better Ship Scale
http://forums.civfanatics.com/showthread.php?t=167352 - Attitude Icons (How could I forget this one?? I think I was the one who requested it in the first place!)
I didn't include the UN one because it would confuse SGers.
Also I think we should include a link to the Blue Marble texture as well.
I'm going to be trying to test these MODs over the next few days. I'll put an + before each one I test and is working and - for each one that isn't working. It's been so long since I've done python coding I hope I can remember what to do.:p Keep adding MODs that should be added. EF, would you mind taking a look at our options for the core, and maybe give us some feedback on what you feel would be the best option to give the user flexibility? I would really like to be able to choose from the option screen to turn off all options without having to restart the program, but is probably a pipe dream.
Any others that should be added that I'm missing?
EmperorFool Aug 02, 2007, 11:44 PM Good list to start from. I've basically been pulling links to all those from your guys' existing modpacks. :)
Raw Commerce only does the addition of known information for you, so it's kosher.
BtS includes the Exotic Foreign Advisor already, but it needs the fixes I made for scenarios where you have a known set of civs to play (when you take any but the first civ).
BtS has formations, unless I don't understand what the mod does. When you select more than one unit, they spread out into formations in BtS. Is this what the mod does?
BtS also includes the turn number. NJAGC adds more (total turns and percentage), so ya probably just include it as well.
BtS uses smaller specialist icons, but I suppose it's still possible to have too many to fit.
BtS also includes the turns to complete culture expansion and great person birth.
I thought Great Options Mod was just The Lopez's modpack of all his modcomps. I'll check it out again; maybe I missed something.
Ruff, in your code you use RuffMod to access options (on/off switches for various features). I assume this is something you built, and we'll definitely want to use it.
I'd like to add these:
Attitude Icons (http://forums.civfanatics.com/showthread.php?t=167352) - Adds a face next to each AI civ in the scoreboard showing their attitude towards the player.
Dawn of Man (http://forums.civfanatics.com/showthread.php?t=180638) - Enhanced popup when you start a game.
(removed TechWindow and PLE as Alerum added them above)
And yes, Sevopedia is a must-have but will require a bit of work.
alerum68 Aug 02, 2007, 11:52 PM I added the suggestion you gave for MODs to add, and had already added a few that I missed on my first edit of the post.
Formations - I didn't realize that the formations were as expanded as this MOD could make it. I was thinking of maybe giving this options on how many units it'll display as well.
Specialist Stacker - You're right, they were smaller. Just added it because it was so useful in past versions and didn't think about it.
Great Options - Was just giving suggestion on different way to give the options from the menu... I didn't realize it was Ruff who came up with the one he uses in his MOD.
EmperorFool Aug 02, 2007, 11:56 PM I would really like to be able to choose from the option screen to turn off all options without having to restart the program, but is probably a pipe dream.
I feel this is important as well, especially with so many modcomps packaged together. I'll start poking around Ruff's options code and see what I can grok. TheLopez's Great Options mod was never updated to Warlords from what I just read in that linked thread.
alerum68 Aug 02, 2007, 11:58 PM What about that python script that's supposed to help update Civ4 Mods to BTS? I didn't look at the script to much, but it seems like it would update everything you'd need.
EmperorFool Aug 02, 2007, 11:59 PM Formations ... Specialist Stacker
We may still want to include those. I haven't used either, so I don't know if BtS's solutions are as good. When you check if they work, see if you think they are worth it still.
Great Options ... I didn't realize it was Ruff who came up with the one he uses in his MOD.
I assume it was him from the code I read. I just see that he access a class called "RuffMod" so it's an assumption on my part, and you know how much they're worth. ;)
EmperorFool Aug 03, 2007, 12:03 AM What about that python script that's supposed to help update Civ4 Mods to BTS? I didn't look at the script to much, but it seems like it would update everything you'd need.
Naw, it only updates XML files with new attributes that BtS added, but it won't touch any of the Python code.
alerum68 Aug 03, 2007, 01:17 AM Found another I think we should add:
http://forums.civfanatics.com/showthread.php?t=234268 - Ethnic Art Styles
Ket Aug 03, 2007, 01:27 AM WOW! You Guys Type a lot...
Ok, Im not sure how many of you remember Unaltered With Flavor...
But one of the key parts of the mod was the enhanced formations. I think its a good place to go for this.
Ethnic Art Styles works VERY well and have it released in my other mod already.
Great person's mod is also another good choice as a starting base.
My strength b.t.w. is architecture orginization and merging.
alerum68 Aug 03, 2007, 01:41 AM hehehe... got alot of time while my girl is on vacation.:p
The last time I was using the Great Person MOD I was getting a ton of conflicts, and I think I read somewhere that it was resolved, but not sure if we should make this our core. Anyway, going to be starting testing tonight. Once we get a list of what is working and what isn't, you and myself can start merging working MODs together while EF and ruff see if they can find some ways to fix the broken code of the others.
alerum68 Aug 03, 2007, 02:20 AM hum... it looks like the Dawn of Man MOD is already included in BTS.
EmperorFool Aug 03, 2007, 02:29 AM WOW! You Guys Type a lot...
One of the few high school classes that has paid off over and over again. 90 wpm ftw! :scan:
Ok, Im not sure how many of you remember Unaltered With Flavor...
This name sounds just like the idea I was thinking when I came here to post. It dovetails off Alerum's post immediately above.
How about a core mod that is just interface niceties and a "flava" mod that adds art/quotes/names/etc? This clearly adds more work on our part, but I suspect it's not that much more. I would hope that they would not share any files in common, so they could be installed one right over the other.
My main reason for this is that -- again just my assumption -- you can't easily make XML and art-type changes dynamic (i.e. disable via INI and certainly not in-game). Most of the code-based mods can be toggled in-game except perhaps Sevopedia and the various screens.
I'm sure you guys are more familiar with that aspect since I have zero knowledge of it. Well, I suppose you could know just as little as me. :p
alerum68 Aug 03, 2007, 03:17 AM The Enhanced Military Adviser comes up just fine, but no units are display. The Menu is 100% operational.
EmperorFool Aug 03, 2007, 05:18 AM I've begun by porting some infrastructure from Ruff's mod:
Dr. Elmer Jiggle's CustomEventManager
configobject (INI files)
RuffModControl (wrapper for configobject)
RuffModOptions
Civ4lerts
MoreCiv4lerts (from HOF I think)
Reminders
Raw Commerce
Attitude Icons
Limited testing shows that they work. The last two I had added earlier and aren't hooked up to the INI options yet.
I'll look over Great Options Mod to see how TheLopez handles configuration. Ruff's works, and it seems pretty straight-forward, so maybe there's no need.
ruff_hi Aug 03, 2007, 07:42 AM Some comments on the above ...
the mod control thing is a direct lift from the HOF people. Suggest we use something similar but call it BUGModControl (etc)
I have enhanced logger a lot and reminder (some) so I suggest we lift the code from my mod for these two
scoreboard: I added the ability to see leader name and / or country name - check my mod for code
military advisors - there are at least two out there but I hated them ... they are slow and show LESS than the standard advisor (cannot see AI units)
great person mod has already been added to warlords (that is, the small mod to the XML that adds the type of GP to the message)
showinfo and alerts are two ways of doing almost the same thing - one is user initiated (show info) and one is automatic (alerts)
proper score graph has already been included in all versions of the game
disable intro movies is now an option in civ4.ini file (assuming this is designed to stop the first 3 or 4 movies at the start of the game
plot list enhancements - this code is AWFUL and some of these features are already in warlords (stacked units). I added the unit features 'promotion' and 'action' as stand alone items in my mod. Note: this mod re-writes some significant sections of code, not least the 'unit selection' part
my mod has most of the unit renaming features alerum mentioned. I also added 'borg names'
Here are some others that we might want to look at from jrayUGH Unaltered Gameplay Hodgepodge (http://forums.civfanatics.com/showthread.php?t=204958)
combat experience counter
hall of fame win / loss
A friend of mine asked for the ability to add notes to units, cities or tiles (similar to excel notes). I think this is doable with an input box but don't know about the length of the string that you can add.
I have also been thinking about a mod that shows the techs that a GP will lightbulb as well as the techs the GP will lightbulb if we tech the current techs we know. I will try and post a fake screenshot to illustrate what I mean.
ruff_hi Aug 03, 2007, 07:50 AM It sounds like we are jumping in here without much discussion of version control or similar. There are some files that multiple people will be working on so we need some way of knowing this and controlling it.
Also, if we really want to be able to turn these things off and on, then we need to work out the config code first and build that into each change that we make.
alerum68 Aug 03, 2007, 09:38 AM Some comments on the above ...
[QUOTE] military advisors - there are at least two out there but I hated them ... they are slow and show LESS than the standard advisor (cannot see AI units)
I hate the default military advisor as much as you hate the MODs. I think we should include them in the pack, or at least see if we can improve on it. That is the worst adviser in the game, IMO.
great person mod has already been added to warlords (that is, the small mod to the XML that adds the type of GP to the message)
This one should include the artwork with the Great Person pop-up message.
showinfo and alerts are two ways of doing almost the same thing - one is user initiated (show info) and one is automatic (alerts)
This should be one of those then are either/or options then.
proper score graph has already been included in all versions of the game
Removed.
disable intro movies is now an option in civ4.ini file (assuming this is designed to stop the first 3 or 4 movies at the start of the game
Removed.
plot list enhancements - this code is AWFUL and some of these features are already in warlords (stacked units). I added the unit features 'promotion' and 'action' as stand alone items in my mod. Note: this mod re-writes some significant sections of code, not least the 'unit selection' part.
There are alot more options in this little bit then just the promo and action buttons. Is there a way to clean up the code a bit? This is a very useful MOD.
my mod has most of the unit renaming features alerum mentioned. I also added 'borg names'
I didn't include the Borg one just for the fact that I'm a Star Wars fan.:p I really like the ranking system and want to get this one added to the ones we have already... including the Borg one.... may Darth Maul take you!
A friend of mine asked for the ability to add notes to units, cities or tiles (similar to excel notes). I think this is doable with an input box but don't know about the length of the string that you can add.
Fo Shure!
I have also been thinking about a mod that shows the techs that a GP will lightbulb as well as the techs the GP will lightbulb if we tech the current techs we know. I will try and post a fake screenshot to illustrate what I mean.
I think I understand what you mean, and think this would be a great addition.
It sounds like we are jumping in here without much discussion of version control or similar. There are some files that multiple people will be working on so we need some way of knowing this and controlling it.
Yes, I saw the need for this last night too. Was trying to convince a friend of mine if he'd be willing to keep track of this, but not got a reply back from him saying yes or no.
Also, if we really want to be able to turn these things off and on, then we need to work out the config code first and build that into each change that we make.
Is what I mean by the "core" needing to be done first. This isn't going to be my strong point, so I'm leaving this to you and EF....
EmperorFool Aug 03, 2007, 09:43 AM Yes, we will definitely want to use version control (sourceforge? or is someone running a cvs/subversion repo?). I jumped in and started trying stuff out simply to build some momentum (plus I wanted those things in BtS for my regular play :)), but we can add structure at any time.
Regarding PLE, I had figured you used an earlier version of it in your mod, thus the difference from the screenshots for it. Your explanation makes much more sense. Did you feel the buttons for selecting various units in the stack was not useful? I haven't tried the full PLE yet ... maybe I will just to see, but I'd like to adopt as little messy code as possible. :crazyeye:
I'm starting to think about how to provide a unified config setup. The way that Civ itself is coded makes what I'd normally do more difficult. I see in one case (CvMainInterface) you have a bunch of globals that the options screen sets, and in all other cases the classes themselves grab the options out of RuffMod. I'll probably go the latter route unless there's a technical reason not to.
When you say you've added to civ4lerts and reminders, are they all in your published version, or are these private additions? I took the ones from your latest mod as my base.
I did see the civ name / leader name options and will merge those in when I add DeadCivScoreboard.
EmperorFool Aug 03, 2007, 09:53 AM I hate the default military advisor as much as you hate the MODs.
Honestly, 9 out of 10 times that I hit F5 . . . it's to see how many experience points I am from my next GG.
The notes on units/cities should be pretty easy, but how would you display it? There needs to be some sort of visual indicator so you can find the notes later.
I posted the start of an idea for displaying which GPs pop which techs based on your current known techs to the thread about GP tech preferences. It wasn't much, but a couple other people also posted their ideas and minimods for putting the info on the tech graph.
BtS now tells you which type of GP will pop a tech when you hover over it. However, there's no way to see the preferences between techs for a single GP. This would be very handy, though. Good luck coming up with something meaningful -- you'd be an instant hero to many people!
EmperorFool Aug 03, 2007, 09:57 AM Quick note to say that when I am modifying existing Python files, I'm putting code changes between comments (as usual with other modpacks). I started using this format, what do you think:
# BUG submod <<
blah blah
# BUG submod >>
Where "submod" names the modcomp (Raw Commerce, Dead Civ Scoreboard, etc) or subsystem (Options). Is this too terse?
ruff_hi Aug 03, 2007, 10:17 AM Yes, we will definitely want to use version control (sourceforge? or is someone running a cvs/subversion repo?). I jumped in and started trying stuff out simply to build some momentum (plus I wanted those things in BtS for my regular play :)), but we can add structure at any time.I've used sourcesave a little (less than 10 times) so I am familiar with this but not very experienced. Is there a free web based version?
Regarding PLE, I had figured you used an earlier version of it in your mod, thus the difference from the screenshots for it. Your explanation makes much more sense. Did you feel the buttons for selecting various units in the stack was not useful? I haven't tried the full PLE yet ... maybe I will just to see, but I'd like to adopt as little messy code as possible. :crazyeye: I think we should look at the features of this mod and select what we want to add then code those in.
I'm starting to think about how to provide a unified config setup. The way that Civ itself is coded makes what I'd normally do more difficult. I see in one case (CvMainInterface) you have a bunch of globals that the options screen sets, and in all other cases the classes themselves grab the options out of RuffMod. I'll probably go the latter route unless there's a technical reason not to.Ruffmod usually went back to the ini file (this was prob slow) but some features (scoreboard) used globals. Prefer globals but need to remember to set them after exiting the Alt-J option screen.
When you say you've added to civ4lerts and reminders, are they all in your published version, or are these private additions? I took the ones from your latest mod as my base.Not civ4lerts, but did make significant changes to the logger.
Honestly, 9 out of 10 times that I hit F5 . . . it's to see how many experience points I am from my next GG.Check my post above - this is a small mod that adds that info to the main screen.
The notes on units/cities should be pretty easy, but how would you display it? There needs to be some sort of visual indicator so you can find the notes later.No idea - need to test this a little.
Quick note to say that when I am modifying existing Python files, I'm putting code changes between comments (as usual with other modpacks). I started using this format, what do you think:
# BUG submod <<
blah blah
# BUG submod >>
Where "submod" names the modcomp (Raw Commerce, Dead Civ Scoreboard, etc) or subsystem (Options). Is this too terse?Good. How will you handle ... ie where will you put the comments.
if BUG mod option is true then
modified code
else
original code
endif
Also, if the additions span more than one location, should include (1 of 2, etc).
alerum68 Aug 03, 2007, 10:20 AM I like the "BUG submod" idea, maybe add start and end to it. EF, would you mind uploading what you've done so far, so I can get an idea on what I we're going to be working with? At least until we get Subversion set up?
ruff_hi Aug 03, 2007, 10:31 AM I've lifted the following from 12monkey's thread about plot list enhancements (http://forums.civfanatics.com/showthread.php?t=149572). This should help us get a feel for what this mod does.
============
Features :
============
The features are devided into the following chapters :
1.) Enhanced unit buttons in the plot list
2.) Mouse over info pane of the unit buttons in the plot list
3.) Unit/group selection in the plot list
4.) Plot list display modes
5.) Plot list unit filters
6.) Plot list grouping modes
7.) Plot list uprade View
8.) Plot list promotion View
9.) Move highlighter
10.) Configuration
Here are the details to those chapters:
1.) Enhanced unit buttons in the plot list
Each unit button provides you now with some additional information. This makes it easier to determine what status a single unit has, without selecting it first. Following information is implemented :
a.) Health Indicator :
the colored spot in the upper left corner is displayed in a darker color, as soon as the unit is wounded. This feature can be switched off in the ini-file.
b.) Health Bar :
At the top of each unit button, a vertical stacked bar is displayed. This stacked bar indicates the remaining health points of the unit in percent. The colors of that bar can be configured in the ini-file, as well as the display itself. The default colors are green and red.
c.) Move Bar :
At the top of each unit button, below the health bar, another vertical stacked bar is displayed. This indicates the remaining movement points of the unit in percent. The colors of that bar can be configured in the ini-file, as well as the display itself. The default colors are blue and yellow.
d.) Mission Indicator :
in the lower right corner, the units actual mission is disaplyed. The following mission types are indicated :
FORT (blue) -> unit is fortified
PAT (light blue) -> unit is at air patrol
GOTO (light green) -> unit has a goto command.
EXP (dark green) -> unit is at exploring mission
HEAL (light red) -> unit is in healing mode
SEN (yellow) -> unit is in sentry mode
SKIP (light gray) -> unit is skipped in current turn
AUT-B (orange) -> worker is automized
AUT-C (orange) -> worker is automized for a city
AUT-N (orange) -> worker is automized for building a trade network
The display of this mission indicator can be switched off by ini file.
e.) Promotion Indicator :
A unit which can be promoted, is displayed with a light blue frame in the plot list. This indicator can be switched on/off in the ini file.
f.) Upgrade Indicator :
A unit which can be upgraded to any other unit, will get a small orange up-arrow in the lower left corner of its unit button. The arrow is displayed regardless if you have the money for the upgrade or not. This indicator can be switched on/off in the ini file.
2.) Mouse over info pane of the unit buttons in the plot list
When you move the mouse over any unit button in the plot list, an info pane is displayed on the left side of the screen. This Info pane has been been modified in the following places :
a.) Remaining movement points :
The remaining movement points of the unit are displayed as a floating value with 1 decimal
b.) Strength + Turns-To-Heal
The current unit strenght is displayed as a floating value with 1 decimal. In case the unit is wounded a third value is displayed in brackets. This number indicates the number of rounds the units need to heal completly under the current circumstances. This circumstances takes consideration of city building (like hospital), the unit's promotion (Medic, or any other promotion with self heal abailites) the promotions of units on the same or adjacent tiles, the territory the unit is on.
c.) Specialties
The special abilites a unit gains due to a promotion are displayed in a different color than the specials it gains due to its unit type. The color can be modified in the ini file, the default color is light gray.
d.) Experiance
The unit's experience points are displayed in the following format : <curr-exp>/<needed-exp>. Where <curr-exp> is the units current experience points and <needed-exp> is the units needed experience points to get the next higher level. Both values are only displayed if the unit has an experience value > 0.
e.) Level
The unit's level is displayed in the following format. : <curr-lev>/<possible-lev>. Where <curr-lev> is the unit's actual level and <possible-lev> is the level the unit could have due to its expereience points. In other words : the first value shows the number of promotions the unit already has, the second value shows the number of promotion the unit could have. Both values are displayed, as soon as one of the values is > 0.
Because this info pane has to be reprogrammed completely new, the layout differs slighly from the built-in one. There may also be soe differences in the infromation I haven't documented herer. If so, please contact me.
3.) Unit/group selection in the plot list
The selection in the plot list has also been improved by eliminating some bugs of the Civ4 standard verion :
a.) Civ4 bug : when selecting a unit on the very right the plot list is rebuild so that the selected unit is at position 10 in the plot list -> fixed
b.) Civ4 bug : under some special circumstances the scroll arrows did disappear -> fixed
c.) Civ4 bug : when selecting a unit with Alt-key pressed, all units should be selected. Because it is not possible to put units with different domain type into one group, always the first domain in the plot list is selected. -> fixed. All units with the same domain type as the selected unit will be put together into a group.
The rest of the selection method is pretty much the same as before :
- Shift : to add single units or their groups to the selected group
- Ctrl : to select all units of the same type
- Alt : to select all units of the same domain type.
Remark:
The main problem of the complete mod was to modify the unit selection in the plot list. The existing API function CyInterface.selectUnit() and CyInterface.selectGroup() are quite a mess. You have no chance to create a selection group without the function CyInterface.selectGroup(). The problem with that is, that this function doesn't have a any parameter for a unit. It directly checks the existing units on the plot and takes it decisions, so that you don't have any influence to it. Because I want that the selection groups doesn't select any unit which is not disaplyed due to one of the display filter, I had to make several crazy program climbs (you can watch them in the selectGroup() function in the PLEMainInterface.py). Main method to avoid those things is to temporarily move away (with CyUnit.setXY()) those units I don't want to be added to the group, create the group witht CyInterface.selectGroup() and then move back those "parked" units.
Due to that changes it might be possible, that there are some error in I havn't catched so far. Also, the behavior of the complete selection functionality could be slightly different to that you know. If you found any problems, just inform me, please.
4.) Plot list display modes
To improve the display of a large ampunt of units on one plot, I added some disaply modes :
a.) Standard mode :
The units are displayed in one vertical line with scroll buttons on the right side. As already mentioned in chapter 3., the bothering bugs with the display have been eliminated.
b.) Multiline mode :
All units are disaplyed in several lines, so that there is no scrolling needed. The display starts in the lower left corner. Using this view, no scroll buttons are needed, except you have so much units on one plot, that the screen height is not enough to display them in multi line view. In this case, vertical scroll buttons (up and down arrow) are disaplyed.
c.) Vertical stacks :
Dependant on the grouping mode (see chapter 6.) some units are disaplyed in vertical stacks. You can scroll left an right with the scroll buttons. In the unit type grouping mode, units of the same type are displayed in a vertical stack, in the selection group grouping mode selection groups are displayed in a vertical stack.
d.) Horizontal stacks :
Pretty much the same as the vertical stacks with the only difference, that the stacks are horizontal oriented. You may now ask what that is for. Two reasons. First: because of the different screen ratios this option may be better than the vertical stacks (you have smaller stacks, but more lines). Second : it was fun to do it ;)
5.) Plot list unit filters
There are several unit filters added. You find them next to the display mode buttons. The following filters have been implemented (the button in brackets) :
a.) Wounded untis (red cross)
b.) Healthy units (green cross)
c.) Domain filter air units (plane)
d.) Domain filter sea units (ship)
e.) Domain filter land units (car)
f.) Domestic units (house)
g.) combat units (tank)
h.) player units (green flag)
i.) foreign units (red flag)
An active filter is displayed with a red frame. By default all filters are inactive (-> no frame). Also all filters are EXCLUSIVE filters. That means, if you press a filter button the belonging units are NOT displayed.
6.) Plot list grouping modes
There are two groping modes implemented. The grouping modes have influence in the order the units are disaplyed. If a stack display mode (vertical or horizontal) is selected it also have influene, to what is displayed in a stack :
a.) Unit type grouping (the button with the 3 squares which are behind each other) default grouping mode) :
In simple words : the units are sorted as in Civ4 Standard. When the display mode is a stack mode, then units of the same type are put into one stack.
In more complex words :
The grouping is done by unit type. That means that the untis are sorted by the following order :
- Player. Order : player units, then all other players in the order of their player id.
- Domain. Order : sea, air, land
- Combat strength. Descending order(-> means strongest first)
- Unit type. Order by unit type id, descending
- Unit level. Order descending.
- Unit experience. Order descending.
- Unit ID. Order ascending. This is just added to get a reproducable sorting in case anything else isn't unique.
ATTENTION :
There is one exception for the sorting : cargo'ed units. As soon as a unit is cargo of another unit, the cargo unit is always displayed BEHIND its transporting unit. Within the cargo units, the sorting is as mentioned above. This is as in Civ4 standard, but has some effects to the stacked views modes : cargo units are displayed together with their tranport unit in the same stack, where the cargo units are on top off their transport unit.
b.) Selection group grouping (the button with the square and the triangle in brackets) :
In simple words : the units which are in the same selection group are displayed together. Also the selection groups are displayed right most wihtin their domain. When the display mode is a stack mode, then units within the same selection group are put into one stack.
In more complex words :
The above grouping is slightly changed :
- Player. Order : player units first, then all other players in the order of their player id.
- Domain. Order by sea, air, land
- Selection group : Ascending order by their internal group id.
- Combat strength. Descending order (-> means strongest first)
- Unit type. Order by unit type id, descending
- Unit level. Order descending.
- Unit experience. Order descending.
- Unit ID. Order ascending. This is just added to get a reproducable sorting in case anything else isn't unique.
Again, cargo units are displayed together with their transport units. This view is ideal to create complex selection groups.
Tip : try the "Group" grouping and create selection group by selecting single units holding the shift key down. Looks funny ;)
7.) Plot list uprade view
The upgrade view (button with the up-arrow) can be used, to get a clear overview about the units which can be upgraded. It also provides a simple method to upgrade a bunch of units without selecting each unit first.
When you press the button only units which can be upgraded are displayed in one line. If you also have a stack view active (important!!!), above each unit its possible upgrades are dispalyed. The upgrade buttons are disable (displayed, but you can't push them) you don't have enough money to perform the upgrade.
By pressing one of those upgrade buttons, the belonging unit is upgraded to that type. Usually that results in that the unit disappears from the view, because in ost cases only one upgrade is possible. If you press the ctrl-key when pressing an upgrade button all units on that plot are upgraded, when pressing the alt-key all player units are upgraded. If you run out of money during those multi upgrades, it simply stops doing it (as it is now in Civ4).
By moving the mouse over an upgrade button, a special info pane is displayed on the left side of the screen. It provides you with the unit type related info of the upgrade and with three values in brackets, seperated by a slash. The three values have the following meaning:
- costs to upgrade one unit
- costs to upgrade all units on the plot (hold down ctrl-key)
- costs to upgrade all play units (hold down alt-key)
If one of the values exceeds your current budget, it is displayed in red, otherwise in green. The colors can be modified in the ini-file. Of course, those multi-upgrades only upgrades the units of the same unit type. eg. all bombers or all german tanks.
8.) Plot list promotion view
This view (button with the "star" on it) is very similar to the upgrade view. It displayes only units which can be promoted. If a stack view is active, above each unit its possible promotions are displayed. By pressing such a promotion button, the promotion is performed and the display is refreshed. This could result in that the unit disappears from list because there are no more promotions possible, or that new promotions are displayed if the experience points of the units does allow that.
You can use the "level" in the unit info pane to check how much promotions are possible. (see chapter 2.)
9.) Move highlighter
When you hold down the alt-key, hover the mouse over a plot list button, the plots the unit can reach with its remaining movement points are highlighted. For that I implemented my Move Highlighter mod. Remark : the standard version of the move highlighter which highlights the move area when you select a unit is NOT implemented. THis can be done seperatly. Refer to the related thread for that, please.
10.) Configuration
The PLE come now with a INI-file. Several above mentioned features can be switched on/off in this ini file. Also some colors can be adjusted and some key parameters of mouse over info can be changed. Just have a look in the file, everything is documented.
Summary
1.) Enhanced unit buttons in the plot list - I lifted promotions and actions and added these to my mod
2.) Mouse over info pane of the unit buttons in the plot list - is this an improvement?
3.) Unit/group selection in the plot list - already in warlords to some extent
4.) Plot list display modes - never used any of the filters - are they any good?
5.) Plot list unit filters
6.) Plot list grouping modes
7.) Plot list uprade View
8.) Plot list promotion View
9.) Move highlighter - there is a move highlight mod 12m mentions - we should maybe look at that (thread (http://forums.civfanatics.com/showthread.php?t=162649) - looks good). It sounds interesting - highlight a unit and the tiles it can reach are highlighted.
10.) Configuration - yes, got it.
alerum68 Aug 03, 2007, 10:44 AM What I'll do is take a look at the latest version that came out, and see how it compares to BTS. I'll then go over what I think we should add, and you guys can go from there. Since it's configurable I'd like to add all options, and let the player choose if they want to use it or not, but if it'll make things too messy, we can always pick and choose.
Impaler[WrG] Aug 03, 2007, 11:21 AM I think you guys could consider making this mod under the WoC umbrella, It aims to make a flexible mod package that can be switched between different states easily. These states would be as varied as any current mod and a common pool of modular goodies would be shared by all with each team able to cherry pick the bits it likes along with 'core' assets of its own. The Dll will be based on CCCP with all effects latent until explicitly activated. It would be quite easy to create an unaltered game play mod out off this and you guys could bring your own extensive skills in Python UI moding and in game option controls to the project, a win win situation.
ruff_hi Aug 03, 2007, 11:56 AM ;5770434']I think you guys could consider making this mod under the WoC umbrella, It aims to make a flexible mod package that can be switched between different states easily.Sorry for being a bit slow, but what is WoC?
Impaler[WrG] Aug 03, 2007, 01:17 PM World of Civilization its a new project lead by by TAFireHawk, mrgenie and myself, I added a reference in my sig, theirs also our new site which will use the issue and bug tracker that Visa mod has.
http://www.worldofcivilization.com/ The site
http://worldofciv4.proboards57.com/index.cgi Forum
EmperorFool Aug 03, 2007, 06:02 PM Here (http://forums.civfanatics.com/uploads/111657/CustomAssets.zip) is what I have so far, and keep in mind the core will be redone. This is just to test out that some of the mods work fine in BtS. Also, some options aren't hooked up to the options screen.
Just unzip the file (ignore the file comment if you see it) and place into your My Games\BtS directory. You should rename your existing CustomAssets directory. The INI file should live in the same directory, sibling to CustomAssets.
ALT-K brings up the options screen. I was thinking of making that Alt-O to match civ's style of ctrl/alt relatedness.
EmperorFool Aug 03, 2007, 06:10 PM Impaler, I read over the site and it looks like a great ambitious project! The main thing that stuck out to me is that WoC is about gameplay mods (not that it has to be) -- modding the XML and SDK.
Our project is specifically about keeping the core gameplay the same -- modding only the interface via Python and art (in a separate mod?). There would be no real need to attach options to saved games, and I'd really prefer the options screen to be in the game rather than outside it (a necessity for WoC).
All that doesn't mean we couldn't do as you propose, of course.
The main sticking point is that the way the Python code is written by Firaxis makes modularity pretty much impossible. The code for Dead Civs Scoreboard and Attitude Icons modify the block of code in MainInterface. Sure, they don't touch the same lines, but they are but 2 of probably 10 or so other mods that touch CvMainInterface.py. I don't see a realistic way to make them each modular.
Instead, our idea is to add all of them in, and make them individually enabled in the options screen. Having said that, I guess that's pretty much what WoC is doing. You'd download one installer with all the content for ViSa and WWI SF&B (just examples) and then select which are used when you run the game.
Yeah, I guess that is pretty much the same end-goal. The tricky part is that with Python everyone's touching the same files whereas with WoC everyone creates their own XML files that remain separate. Am I understanding correctly?
EmperorFool Aug 03, 2007, 06:56 PM I'll replace "<<" and ">>" with "start" and "end". However, while having "1/2" would be truly excellent, this is prone to error when making updates and might cause further bugs because you thought you had every change. Using a common tag at the start makes doing search really easy.
I'm going with
# BUG - mod - start
# BUG - mod - end
and always putting the comment at the far left column. When it needs to optionally replace existing code, I'll do it how Ruff showed.
EmperorFool Aug 03, 2007, 07:07 PM This idea (http://forums.civfanatics.com/showthread.php?t=235647) was just suggested, so I added it. It may make the scoreboard too cluttered.
ruff_hi Aug 03, 2007, 07:10 PM ALT-K brings up the options screen. I was thinking of making that Alt-O to match civ's style of ctrl/alt relatedness.Alt-O is taken "ALT+O = Change perspective". What was wrong with Alt-J :rolleyes:
ruff_hi Aug 03, 2007, 07:14 PM This idea (http://forums.civfanatics.com/showthread.php?t=235647) was just suggested, so I added it. It may make the scoreboard too cluttered.Is that info available on some other screen? If not, then it is additional info.
I would also like to include an alert when a AI goes "we have enough on our hands already" - this is an indication that the AI is going to war. You gather that info when you ring up the AI and ask it for something - one of the red messages is "we have enough on our hands already". Can you pick that info up with python?
EmperorFool Aug 03, 2007, 08:10 PM Alt-O is taken "ALT+O = Change perspective". What was wrong with Alt-J :rolleyes:
O as in Options, and in civ ctrl and alt with the same letter/action are usually related. That's my only reason, but since Alt-O is taken (wow that looks bizarre!), I withdraw my statement.
Is that info available on some other screen? If not, then it is additional info.
Yes, on the graph (demographics) screen, you can see the power of civs with whom you have enough espionage points. While you can't see the actual number, it's a graph and so you can get close. We could normalize it, meaning show % of your score, but that's basically the same thing.
Better I think would be to show the ranking -- #1 #2 #3, etc. -- rather than the power number. That assumes the AI's only take rank into consideration.
I would also like to include an alert when a AI goes "we have enough on our hands already" - this is an indication that the AI is going to war.
Yes! I thought of this the other day and forgot about it. Thanks. It would make a great alert. The information is probably semi-available. You should certainly be able to check if they'll trade "go to war...", but I don't know what kind of answer the API gives you -- probably just "no".
BOOL canTradeItem(PlayerType eWhoTo, TradeData item, BOOL bTestDenial)
However, maybe you can get the reason as a string some other way. I don't see it, though. You could at least have an alert to tell you when one AI will agree to a war with another, or revokes the ability. That's not exactly what you wanted, but it's still something.
EmperorFool Aug 03, 2007, 08:21 PM I spoke too soon. It looks like the reason is available on CyPlayer:
DenialType getTradeDenial(PlayerType eWhoTo, TradeData item)
DenialType has value DENIAL_TOO_MUCH which sounds promising.
To do this, you'd have to check each AI against some other AI on each onBeginGameTurn. So far, whenever I see an AI that has too much on its hands, it says the same thing for a war against every other AI, so you shouldn't have to check them all.
ruff_hi Aug 03, 2007, 08:38 PM Great - that sounds like something we should add to civlerts. Maybe with a special pop-up box option. Normally civlerts puts the alerts into the info pane but that gets boring having to scroll thru them. We might want to add the option to have the alerts come up as dialog boxes. In this way, alerts could be 1 of 3 states (OFF, Info, Dialog).
EmperorFool Aug 04, 2007, 08:55 PM I looked over ConfigObj and your use of it in RuffModControl. It doesn't go back to the file after reading it once, so it should be very fast setting/retrieving options. Given that, I'm inclined to start with that as a base.
What I've done so far is create a wrapper class (Facade in Design Patterns terms) around RuffModControl, just as RuffModControl wraps ConfigObj. Each facade will group access to related options. Here's the one for the scoreboard options.
class BugScoreOptions(BugOptions):
def isHideDeadCivs(self):
return self.config.get_boolean('Dead Civ Scoreboard Mod', 'Hide Dead Civilizations', False)
def isShowDeadTag(self):
return self.config.get_boolean('Dead Civ Scoreboard Mod', 'Show Dead Tag', False)
def isGreyOutDeadCivs(self):
return self.config.get_boolean('Dead Civ Scoreboard Mod', 'Grey Out Dead Civilizations', False)
def isShowPower(self):
return self.config.get_boolean('Scoreboard', 'Power', False)
def isShowAttitude(self):
return self.config.get_boolean('Attitude', 'Enabled', False)
def getShowNameEnum(self):
"""0 = Leader, 1 = Civ, 2 = Both"""
return self.config.get_int('Dead Civ Scoreboard Mod', 'Show Name', 1)
def isShowLeaderName(self):
return self.getShowNameEnum() != 1
def isShowCivName(self):
return self.getShowNameEnum() != 0
def isShowBothNames(self):
return self.getShowNameEnum() == 2
Then to use it, CvMainInterface does things like
import BugScoreOptions
BugScore = BugScoreOptions.BugScoreOptions()
...
if (BugScore.isShowAttitude()):
...
If later we decide to replace how we store options, the facades won't change and thus CvMainInterface won't have to be changed.
Did any of you have some other idea in mind? If not, we could start adding together the mods we want using this scheme.
The next task for me is to make the options screen itself more easily extensible, but Ruff's done a good job with it, and I don't want to duplicate effort that works. My main idea is to break out the different tabs into separate classes (and thus modules) so they're easier to edit by multiple people.
EmperorFool Aug 04, 2007, 09:08 PM Oh yeah, I added a feature to Raw Commerce so you can toggle between it and Raw Production on the city screen. The only sticky point is the production multiplier.
The only Commerce multiplier in the epic game is 50% for Capital under Bureaucracy. If you are running that civic, your capiltal always gets that modifier.
Production is different. Specifically, some units and buildings receive modifiers depending on your leader traits and civics. What this means is that the total modifier for any given city depends on what you're building.
What I have so far ignores those extra modifiers, since I'm trying to show "Raw Production," meaning what you'll get no matter what you build. This means that the total may differ from that shown in the production bar. Will this be too confusing?
25 [-------102/120--------]
Plots: 13
Specialists: 2
Buildings: 2
Total: 17 + 4 = 22 ( != 25 b/c +25% for building under religion not included)
In the case above, you're building a building, running OR, and have the state religion in that city. The city also has a forge. Thus, you get a +25% for the forge and a +25% for OR. The "Total" line excludes the OR bonus b/c it depends on what you build. I can include it, but that makes the values difficult to compare between cities.
Here (http://forums.civfanatics.com/uploads/111657/CustomAssets.zip) is the latest version of it so you can try it out yourself. See if you can figure out how to switch views. I'm hoping it's obvious. I may need to reverse the button.
EmperorFool Aug 04, 2007, 10:45 PM Any thoughts on releasing split-out versions of the various mods we port to BtS? For example, YAGCM will require a lot of work as much of it is included in BtS already. Do we release a BtS version of YAGCM separate from BUG?
I'm inclined to say no simply because of the extra work involved. If someone wants to extract it from our code, they're welcome to do that. As long as we mark the sections with comments consistently, it shouldn't be too hard.
ruff_hi Aug 04, 2007, 11:15 PM I looked over ConfigObj and your use of it in RuffModControl. It doesn't go back to the file after reading it once, so it should be very fast setting/retrieving options. Given that, I'm inclined to start with that as a base.
If it doesn't re-read the ini file, how do any of the alt-j (option screen) changes that get written to the ini file get back to the game?
What I've done so far is create a wrapper class (Facade in Design Patterns terms) around RuffModControl, just as RuffModControl wraps ConfigObj. Each facade will group access to related options. Here's the one for the scoreboard options.
That is simply beautiful! Very elegant. I guess you get paid the big bucks for these types of ideas. Me - I'm just a hack.
Oh yeah, I added a feature to Raw Commerce so you can toggle between it and Raw Production on the city screen.I sometimes wonder why I want to know raw commerce as it depends upon the tiles currently being worked. Ditto with raw production. What I would like to know is how to look at a group of 21 tiles and think GP Farm, Production powerhouse or commerce. If we can add a raw production column to the F1 screen, I will be happy (help me decide where to put the production multipliers).
Any thoughts on releasing split-out versions of the various mods we port to BtS? For example, YAGCM will require a lot of work as much of it is included in BtS already. Do we release a BtS version of YAGCM separate from BUG?I say NO - lets minimize the work we have to do and let the smuck that wants this stand alone feature do their own laundry.
alerum68 Aug 04, 2007, 11:23 PM Haven't had a change to look at what you upload today yet, but will look at it now.
As for releasing the different mods on their own, I think that would be biting off more then we can chew for now. I'm sure someone will use BUGS and want to change something about an individual mod, and will put it out anyway. With the naming scheme we decided on, it should be fairly easy for people to pull out the mods they want.
Let me take a look at what you put together so far. We really need to figure out some sort of task system guys, so we're not all adding the same things.
And what have we decided on the PLE additions? There are a few that I find are critical. Anyway, going to take a look at what EF has put together so far.
ruff_hi Aug 04, 2007, 11:31 PM Let me take a look at what you put together so far. We really need to figure out some sort of task system guys, so we're not all adding the same things.Well - that is easy for me. I am currently doing NUTTIN because I don't have BtS. Ok, I am doing something - throwing in ideas.
And what have we decided on the PLE additions? There are a few that I find are critical. Anyway, going to take a look at what EF has put together so far.I like the 'highlight unit with promotions available' and 'unit actions'. I would also like to be able to highlight units that are injured (easy to see when really injured, harder to see if only slightly injured), but apart from that, I can live without the other PLE items.
On the other hand, highlight movement range might be nice.
alerum68 Aug 04, 2007, 11:38 PM Just took a look at it... Beautiful! I think we have it.:)
The only thing I think we should do is expand the menu options. Instead of just having one MOD to pick, can we have multiple ones? An example would be using CivAlerts or ShowInfo, instead of having both. Or being able to choose your advisor. You seem to like the Special Domestic Advisor, while I like the Custom Domestic Advisor. This way we won't have to pick and choose which mods are added, but can add them all and let the player choose.
Any news on getting the subforum?
EmperorFool Aug 04, 2007, 11:47 PM If it doesn't re-read the ini file, how do any of the alt-j (option screen) changes that get written to the ini file get back to the game?
ConfigObj holds all of the INI file's values in a dictionary in memory. When you change an option, that dictionary is changed. When you close the options screen, the dictionary is written to the INI file. This is very efficient.
That is simply beautiful! Very elegant. I guess you get paid the big bucks for these types of ideas. Me - I'm just a hack.
:blush: Thanks! Hack or not, you essentially did the same thing by wrapping ConfigObj with RuffModControl. Give yourself some credit, too!
I sometimes wonder why I want to know raw commerce as it depends upon the tiles currently being worked.
It helps me to see the breakdown to decide whether or not a harbor is useful yet, for example. Or how much I'll lose by switching out of Bureauracracy.
Ditto with raw production.
For production, I'm always wanting to know what the base production is (ignoring chops and overflow) to determine whether or not it's worth it to build a forge/factory yet.
What I would like to know is how to look at a group of 21 tiles and think GP Farm, Production powerhouse or commerce. If we can add a raw production column to the F1 screen, I will be happy (help me decide where to put the production multipliers).
These civ-wide decisions are best done in the DomAdv as you say. SpecDomAdv had a base production column you can turn on, and we'll definitely want to include it. HoF mod is released for BtS, and they punted on SpecDomAdv for now, likely because it's going to take the most work to port to BtS.
I'm definitely in agreement about not releasing separate updated mods. Since I'm new to the mod community, I wanted your guys' take on it to make sure we don't step on toes. I'm very glad to hear it's cool to leave it to others. :)
ruff_hi Aug 04, 2007, 11:47 PM The only thing I think we should do is expand the menu options. Instead of just having one MOD to pick, can we have multiple ones? An example would be using CivAlerts or ShowInfo, instead of having both. Or being able to choose your advisor. You seem to like the Special Domestic Advisor, while I like the Custom Domestic Advisor. This way we won't have to pick and choose which mods are added, but can add them all and let the player choose.Agreed.
Any news on getting the subforum?No. Have sent follow up PMs to moderators and told to give thunderfall a week-ish to respond. I will look a bit more at the other sub-forums and make some suggestions on the threads we start / sticky.
ruff_hi Aug 04, 2007, 11:49 PM ConfigObj holds all of the INI file's values in a dictionary in memory. When you change an option, that dictionary is changed. When you close the options screen, the dictionary is written to the INI file. This is very efficient.Sure - no prob with that. However, when maininterface wants an ruffmodoption after exiting the option screen, does it know that the ini file has changed? I thought that you implied that it kept all of that stuff in memory.
:blush: Thanks! Hack or not, you essentially did the same thing by wrapping ConfigObj with RuffModControl. Give yourself some credit, too!Hey - I stole it from the HOF guys and wasn't 100% sure what it was actually doing. It worked so that was good enough for me.
EmperorFool Aug 04, 2007, 11:51 PM The only thing I think we should do is expand the menu options.
Agreed. Keep in mind that I lifted the option screen straight from Ruff's mod and haven't changed anything in it yet. I just wanted to verify that I could still change the options and see the results. Some of course require refreshing the screen (open a city screen, close it to see any scoreboard changes). I think I can find a simple workaround for that so the user sees the changes immediately.
Any news on getting the subforum?
News to me, so I hope you weren't asking me. ;) That would be very handy!
EmperorFool Aug 04, 2007, 11:57 PM However, when maininterface wants an ruffmodoption after exiting the option screen, does it know that the ini file has changed?
The new options are in memory. The problem is that the screen doesn't know to redraw itself. I can add a workaround as I did for the Commerce/Production toggle button. Basically, if any MainInterface options change, the screen will be forced to redraw when the options screen closes. Hackish, but maybe I can make it less so. :)
Since the MainInterface is the only screen that can be open when the options screen is brought up (because it's always open), only this screen needs to be told to redraw.
Hey - I stole it from the HOF guys and wasn't 100% sure what it was actually doing.
Fair enough. You did a great job packaging all that stuff together. I'm curious, what is your previous programming experience? I can't imagine jumping in to Python in this context without my background. It's hard enough trying to figure out what the Firaxis code is doing, let alone code written by many different people of varying skillsets.
EmperorFool Aug 05, 2007, 08:51 AM I have ported Not Just Another Game Clock. This makes the list of complete (minus cleanup of options) ports:
NJAGC
Dead Civs on Scoreboard
Attitude Icons
Power Score
Better Espionage Screen List
Raw Commerce
Civ4lerts and More Civ4lerts
Reminders
Next up: AutoLogger?
EmperorFool Aug 05, 2007, 10:38 AM I'd also like to fix the Foreign Advisor's Glance page, add page up/down buttons to its Tech and Resource pages, and add the little additions on the Info page that I had put into Ruff's mod (shows and * when you have same religion and/or favorite civic of other civs).
The bug happens whenever you play a map with setup civs and pick any but the first civ. It draws the rows and columns incorrectly, making it impossible to see the attitude of the first civ and the attitudes of the other civs toward the first civ. This isn't really mod territory, but since it's a bug in a mod they incorporated, I figure what the heck. As long as I'm adding a minimod to it (page up/down, extra info), might as well fix a bug!
alerum68 Aug 05, 2007, 11:22 AM I hate to sound like an idiot here, but would it be to much work to give me an overview of how to add mod options to the BUG Options menu? Remember, I'm not a coder really. If you can give me some before and after snippets I can probably figure it out though.
OR, I could add the MODs and let you guys put the options in... but I'd rather be able to do it myself.
And we really need some kind of file repository guys... CVS or Source Forge? edit - Alright, so I registered on Source Forge, just because I know that better. I'm setting up the project, and want to just set the Unix name as civ4bug. (bug is taken) Is that cool with you guys? Also, I'm going to put it under GNU... is everyone okay with that?
EmperorFool Aug 05, 2007, 11:52 AM civ4bug is fine with me. Thanks for taking care of that. Here (http://forums.civfanatics.com/uploads/111657/CustomAssets_0.4.zip) is the latest so far.
I have yet to make the changes I'd like to the options screen itself, so if you're okay with changing options through the INI file for now, I can describe here how to use BugOptions.
Each logical group of options go into a single BugOptionsFoo file, similar to grouping items into [sections] in an INI file. So far I have
BugNJAGCOptions
BugCityScreenOptions
BugScoreOptions
Take one of those files and make a copy. Rename as you like (BugFooOptions.py) and make sure to change the "class BugFooOptions" line.
Remove all the existing functions from the class and add the ones you want. My convention is that boolean options start with "is" and others start with "get".
Then to use the options, import the module into your mod file and create an options object.
# MyMod.py
import BugFooOptions
BugFoo = BugFooOptions.BugFooOptions()
... later in your code ...
if (BugFoo.isSomeOptionEnabled()):
...
I've been dropping the Options for the name of the object to keep it different from the module name and to shorten the code where you use it.
Finally, add the values to the INI file. If you're unfamiliar with INI files, ask and I'll describe them. Google should be able to give you the score as well as they're pretty standard.
alerum68 Aug 05, 2007, 09:01 PM http://forums.civfanatics.com/showthread.php?t=199344 - A new Great Person MOD. Names the GP based on Civ specific name conventions. That way Mohammed (pbuh) won't be born as an Inca.;)
ruff_hi Aug 05, 2007, 09:41 PM BTW - we could use Ctrl-Alt-O to open our option screen. Just used the bAlt, bShift and bCtrl keyboard variables.
Ket Aug 06, 2007, 08:28 AM I'm Falling WAY behind on things here...
I merged in a few interface changes to neverminds mash up and impalers originals.
The thread is located here: http://forums.civfanatics.com/showthread.php?t=235834
Use WinRar... Its not a zip just a renamed rar
alerum68 Aug 06, 2007, 10:00 AM When you merge it in Ket, you used the 0.4 version? And I'm feeling guilty here... haven't yet merge anything in. isa, I'll try to get some in today. Been trying to fix an error in the CustomDomAdvisor that doesn't allow it to work properly in the main screen. Once that is done, I can really start to merge things in.
Guys, besides dropping a few additions that they already added with BTS, is the list we have on the front page good with everyone? If so, I think we should break the MODS apart between us, then to make sure we don't double on work let that person be the only person merging/coding until they upload. Sourceforge is going to take almost a month to approve the project, so until then I can't see a way to make sure we're not stepping on toes.
EF, you've done the most so far... would you mind making a list of the MODs you've added so far? No need to put up urls.
As for the Alt-O option... that would be perfect! And is there a way to code a button for just OUR options?
ruff_hi Aug 06, 2007, 10:34 AM I heard back from Thunderfall and he said ...
Let me know how it goes... Once you have a team formed, and have done some initial development/planning on the forums, we certain could consider making a forum for the project.
I PM'ed him back with a link to this thread.
I've also looked at the other projects there and would suggest that we have (at least) the following threads stickied ...
Welcome
Screenshots
FAQ
Known Bugs
Members
Included Mods
Suggest a Mod
Latest Version
Feedback
Care to suggest any others?
ruff_hi Aug 06, 2007, 10:37 AM As for the Alt-O option... that would be perfect! And is there a way to code a button for just OUR options?Alt-O is taken but Ctrl-Alt-O isn't. There are also some Ctrl-Shift options that are taken but only if you have the cheat code in your ini file.
@Alerum - we could put a button somewhere on the screen for our options but the screen is fairly buttoned up as it is. HOF added their options to the Option tab from the menu but I preferred a stand along screen.
ruff_hi Aug 06, 2007, 10:47 AM civ4bug is fine with me. Thanks for taking care of that. Here (http://forums.civfanatics.com/uploads/111657/CustomAssets_0.4.zip) is the latest so far.Emp - I think you should take a look at what Gaurav did with my mod so that it can work as a customasset mod, under the mod directory under my games or under the mod directory under prog files. See his uploaded version of my mod (http://forums.civfanatics.com/downloads.php?do=file&id=4155) that also includes Sevopedia updated to version 2.2a. In particular, look at his changes of RuffModControl and CvPath.
EmperorFool Aug 06, 2007, 11:21 AM Alerum, see post 56 (http://forums.civfanatics.com/showpost.php?p=5777942&postcount=56) for the list of what I've included so far. A month for SF to approve the project? Since when did you need to apply to SF? I thought you could just create a new project and get started. That's a bit distressing as we really need a repo. Does anyone know any other free repos online?
Ctrl-Alt-O sounds good to me. Heh, we'll have our own three-fingered salute. :cool: And that list of forum topics sounds good. The only thing is that none jumps out at me for "Installation". There's latest version and FAQ, so maybe that covers it.
Ruff, I've downloaded Gaurav's version and will take a look at those files. I'm just ZIPping my CustomAssets directory for now, but I thought we can't put stuff into a mod because that would break sharing saved games with people who weren't using the mod? I'm thinking SGs here.
I haven't added anything since 0.4 as I've been working on the GP TechPref code. Blame Ruff for inspiring me with another fun coding challenge. ;)
ruff_hi Aug 06, 2007, 11:31 AM Ctrl-Alt-O sounds good to me. Heh, we'll have our own three-fingered salute. :cool: And that list of forum topics sounds good. The only thing is that none jumps out at me for "Installation". There's latest version and FAQ, so maybe that covers it.
Ruff, I've downloaded Gaurav's version and will take a look at those files. I'm just ZIPping my CustomAssets directory for now, but I thought we can't put stuff into a mod because that would break sharing saved games with people who weren't using the mod? I'm thinking SGs here.I thought of installation but then thought that would be covered in FAQ and latest version. Maybe FAQ will also cover some of the other topics (eg suggest a mod). On the other hand, installation is a biggie. I still get questions about that with my mod.
I would like code that could be used as a mod. My mod is only viable under customassets and it doesn't work for some people's set up. Not saying that we should all put it under a mod ... just having the option is nice.
Also, there is nothing wrong with forcing those lazy SG people to play the game with a mod, especially if it is our mod!
alerum68 Aug 06, 2007, 02:33 PM SGers were the ones who inspired the UAGP mods in the first place. It's very important to me that this MOD won't affect SG play at all, including requiring people who are in the same SG to use our mod. No, this needs to be 100% acceptable for both HoF games, as well as SG games.
Maybe when we get done with this version, we can see about branching off to an Altered Gameplay mod.
alerum68 Aug 06, 2007, 04:25 PM Question... how do I use the above method to code the options to add XML?
EmperorFool Aug 06, 2007, 04:47 PM As far as I know, there is no way to use Python to control which XML gets loaded. That's the main reason I suggested having a "flavor" mod that has all the artwork, GP names, etc.
This is where the project Impaler mentioned comes in. They intend to build an external config application. I'm guessing it will move the XML files into place for the mods you've chosen.
ruff_hi Aug 06, 2007, 06:07 PM SGers were the ones who inspired the UAGP mods in the first place. It's very important to me that this MOD won't affect SG play at all, including requiring people who are in the same SG to use our mod. No, this needs to be 100% acceptable for both HoF games, as well as SG games.Don't get me wrong - I am not suggesting that we produce a game that affects SG play. However, what I am saying is that we need to code the mod so that it can sit under customassets as well as under either of the mod directories. At least one person couldn't use my mod because they had a non-standard my docs location. I think that the code I mentioned above overcomes that issue.
Question... how do I use the above method to code the options to add XML?
As far as I know, there is no way to use Python to control which XML gets loaded. That's the main reason I suggested having a "flavor" mod that has all the artwork, GP names, etc.
This is where the project Impaler mentioned comes in. They intend to build an external config application. I'm guessing it will move the XML files into place for the mods you've chosen.
For XML, I think that we should have the standard python install files and separate install files for any XML additions. You install the standard python files and then install the XML files that you want to add. If there are python additions in the XML files they will get added to the python directories (or over-write selected files).
alerum68 Aug 06, 2007, 06:36 PM was searching on Google and found this about Python and XML.
http://pyxml.sourceforge.net/topics/
Haven't looked through it yet, but there maybe something we can use in this for switching XML inside of python.
EmperorFool Aug 06, 2007, 11:51 PM The problem has nothing to do with Python but rather how the game loads. When you start up the game, it reads in all of the XML files into internal structures. Only then does it load the Python and build the main interface.
The only way I can see to intervene would be at the DLL level, and even then I don't know that we can override which files to load. Probably so, since that's what Impaler's modular XML loading system did, and IIRC it was a DLL mod.
alerum68 Aug 07, 2007, 12:26 AM Didn't want to hear that.:p A good majority of the MODs I was hoping to add are XML rather then Python. Flavorful version and Functional version it's going to be I guess.
Going to take a look and divide the MODs into which is which.
Edit: Updated the front page. Going to try and get the Custom Domestic Advisor put in tonight.
EmperorFool Aug 07, 2007, 02:33 AM You can add the GP Tech Prefs (http://forums.civfanatics.com/showthread.php?t=226287) mod to the list of completed Python inclusions. Ruff is working on an expanded screen as a second tab to F6 as well.
Okay, I'll put that down for now (I'm so easily distracted!) and get back to the options screen. Oooh look, blinky lights! *scampers off*
alerum68 Aug 07, 2007, 03:00 AM Found another one I want to toss in.
http://forums.civfanatics.com/showthread.php?t=222334
Also, I'm adding some options to the Misc screen instead of giving them their own menu... Will do it with the above mod, as well as the CustomDomesticAdvisor.
alerum68 Aug 07, 2007, 07:26 PM I can't figure out why the Custom Domestic Advisor won't draw properly. I've merged it in just fine, but troubleshooting this is beyond me. I've tried looking for differences in the code between the new domestic, and the custom, and still can't get it to work. It draws the domestic advisor box, and I updated it to resize based on the current window size, but still can't figure it out.
EmperorFool Aug 07, 2007, 07:44 PM If you post up or PM me what you have, I'll take a look at it when I get back tonight (4 hours or so). Debugging is a PITA. I've found the console helpful sometimes, but less so with screens.
Thornburgh Aug 08, 2007, 12:12 AM Well, the Warlords version required a modified cvgamecore.dll. Could that be incompatible? Vanilla didn't require this. I hope you can fix it -- I really like that one.
I can't figure out why the Custom Domestic Advisor won't draw properly. I've merged it in just fine, but troubleshooting this is beyond me. I've tried looking for differences in the code between the new domestic, and the custom, and still can't get it to work. It draws the domestic advisor box, and I updated it to resize based on the current window size, but still can't figure it out.
ruff_hi Aug 08, 2007, 05:16 AM I can't figure out why the Custom Domestic Advisor won't draw properly. I've merged it in just fine, but troubleshooting this is beyond me. I've tried looking for differences in the code between the new domestic, and the custom, and still can't get it to work. It draws the domestic advisor box, and I updated it to resize based on the current window size, but still can't figure it out.Do you guys use the logger? Turn it on via the ini file and check the files in the log directory.
alerum68 Aug 09, 2007, 09:23 AM Alright, this is just driving me insane. I don't want the DLL on there, and it doesn't matter because the Warlords version doesn't work.... EF, you asked me to upload what I done? hehehehe... trust me, you don't want to see the mess I made of this file.:p I'll upload a clean version for you guys to look at, but you'd laugh at what I have. Think we could just try to update the Vanilla version of CDA to BTS instead of messing with the one with the DLL?
As for SoureForge... I misread something. It takes 3-4 weeks to pick up an abandoned project. We should be approved by the end of the week, isa.
EmperorFool Aug 09, 2007, 10:20 AM It sounds like it would be much easier to go from the Vanilla version. Do you have any idea from reading the code why the DLL changes were needed for Warlords? Does it include the C++ files that were changed, or just the DLL?
It sounds like we should just wait on SourceForge then. CVSDude only allows two accounts for free, and the other one is $7 per month after a week.
Ket Aug 09, 2007, 10:20 AM Ok I have a .04 with diplomacy text, EDU/Artstyles and some of impaler's compiled changes (like the buttons to move cities) as well as the last cut of the tec h screen changes... What should I do with this file?
EmperorFool Aug 09, 2007, 11:42 AM Right now I'm overhauling the options screen, and this will at least take today and maybe tomorrow. I'm gone for the weekend, so I hope to get this completed before I leave.
In the meantime, feel free to post it, but until we have SF.net set up, I'd recommend that we avoid doing merges -- especially within the same files.
ruff_hi Aug 09, 2007, 11:53 AM impaler's compiled changes (like the buttons to move cities)Are we making changes to the DLL? No problem if we are, just as long as they don't change the 'rules'. Also, what buttons? Do you have link?
Ket Aug 09, 2007, 12:00 PM No changes to the dll at all. That goes beyond the scope of the mod I assume.
http://forums.civfanatics.com/showthread.php?t=235834 would be the thread that the changes where in, both neverminds interface changes which is a compilation of stuff. And Impalers which is also a compilation.
EF are the options functional at .04?
FeedBack Aug 09, 2007, 12:32 PM Customer's comment: ;)
Are you guys already accepting orders? :mischief:
I'd really like to use the autologger again... And Ruff's is the best one out there... Could you please move it to the top of the "to merge" list? :please:
If you guys need some beta testers, I think I can provide you some FeedBack!
EmperorFool Aug 09, 2007, 01:19 PM Ket: 0.4 uses Ruff's RuffModScreen to set the options, and the mods I've merged into 0.4 use their own classes to read those options. In that sense, they are hooked up.
What I'm doing now is to replace RuffModScreen with a new screen that will make adding options and their screens. If you haven't added any options, hold off until I finish this. If you have, porting to what I'm doing should be fairly straightforward.
Feedback: Ruff's AutoLogger is at the top of my list of mods, but I have to finish what I'm currently doing first. If someone wants to take it on, feel free. And I'm sure we'll gladly welcome beta-testers. :goodjob:
Ket Aug 09, 2007, 02:51 PM Ok, no problem holding for 0.4 the reason i asked is i tested 0.4 and did not get any results from clicking around the rufmodscreen... Although i tested rather quickly....
EmperorFool Aug 09, 2007, 03:36 PM IIRC, I hooked up Raw Commerce, Scoreboard, and NJAGC options. In some cases you need to force the screen to redraw, e.g. open and close any city screen to get scoreboard/clock to redraw.
It looks like my rework of the options screen is working nicely. I have the above options all ported to the new code and am doing civ4lerts next. If all goes well, I'll post 0.5 so you guys can see how it works.
EmperorFool Aug 09, 2007, 08:40 PM The Options code seems to be behaving, so here is version 0.5 (http://forums.civfanatics.com/uploads/111657/CustomAssets_0.5.zip). The new options screen is accessed via Ctrl-Alt-O.
The options code consists of a few new modules and classes.
BugOptions Module
This is the main module for accessing options. It contains four important classes:
Option and OptionList Classes
This new class holds the metadata for a single option: name, INI section and key, title, tooltip, and default. OptionList adds values and format string for float dropdowns to Option. All the classes tie everything together internally using "name" while the INI file uses section/key.
BugOptions Class
This new class holds all of the Options metadata objects, provides access to the values, and reads/writes the INI file. You shouldn't use this class directly.
OptionsFacade Class
This was the old BugOptions class and fulfills the same role as before: a facade to be used as a base class for creating your own option sets.
An example is BugScoreOptions. Each subclass's module should now provide a getOptions() top-level function (at the bottom of the file). To use one, it's similar to before:
# top of module
import BugScoreOptions
BugScore = BugScoreOptions.getOptions()
...
# throughout module as necessary
if (BugScore.isShowDeadCivs()):
...
BugInitOptions
This is a new module that simply imports all the specific option group modules (see above) in one place to set them up properly. If you create a group of options, add it to this module.
Building the Options Screen
This next group of modules is responsible for building the BUG options screen (Ctrl-Alt-O) and saving the settings.
BugOptionsScreen Class
This class puts together the frame of the options screen: a TabControl consisting of any number of Tabs for grouping options. When you add a Tab, add it to this module.
Tabs don't have to relate one-for-one to option groups. The idea is for option groups to provide mod-specific granular access to options. Groups with few options will probably be put onto a single Tab (like Misc or General).
BugOptionsTab Class
This is the base class for all of the Tabs that make up the screen. It provides functions for building the Tab visually: adding boxes, separators, labels, checkboxes, dropdowns, and edit boxes. Screen layout is a PITA in most all windowing toolkits, and BtS's is no exception. I tried to provide some basic building blocks that will allow the most common layouts to be created easily. See the example Tabs, but be forewarned that they probably won't be enough.
When you want to create a new Tab, you'll extend this class (see BugScoreOptionsTab as an example).
CvOptionsScreenCallbackInterface Module
The callbacks for handling events in the options screen are at the end of this file. Unfortunately, I cannot figure out how to get BtS to allow me to use a separate file for this. :( You shouldn't need to use this module directly.
Examples
Working Options with Tabs:
NJAGC
Scores
Alerts - Civ4lerts, reminders
ruff_hi Aug 09, 2007, 09:03 PM The callbacks for handling events in the options screen are at the end of this file. Unfortunately, I cannot figure out how to get BtS to allow me to use a separate file for this.I couldn't do it either. I had everything looking right but it simply would not call any other file.
Ket Aug 09, 2007, 09:24 PM Ok to start getting a version control and readme system in place.
Is there anything else in .05 that is functional
From Options
NJAGC
Scores
Alerts - Civ4lerts, reminders Python Added:
* NJAGC
* Dead Civs on Scoreboard
* Attitude Icons
* Power Score
* Better Espionage Screen List
* Raw Commerce
* Civ4lerts and More Civ4lerts
* Reminders
* GP Tech Prefs
Is there anything else in there that is not listed or is not actually in.
EmperorFool Aug 09, 2007, 09:37 PM Readme, excellent idea! :goodjob:
That list looks complete.
alerum68 Aug 09, 2007, 11:08 PM Front Page updated. Tell me what you guys want included in the ReadMe file, and I'll have one by tomorrow, isa.
And.... I have some good news for you gentlemen.
The Bug Project SourceForge home page. (https://sourceforge.net/projects/civ4bug)
If you already have a SF user name, let me know and I'll add you.
:)
Ket Aug 10, 2007, 03:11 AM .05 has an issue.....
It seems like what you click and un-click in the settings menu is not saved.
It also means that the game does not dynamically change the settings.
Steps To Reproduce
1) Open Options Screen (CTRL+ALT+O)
2) Click "NJAGC"
3) Click Exit
Observe No Change
4) Re-enter Options Screen
Observe tick mark is reverted back to what it was originally.
5) Force Screen Redraw By Going Into City
Assumptions:
I am running the game out of a mod directory with no other python changes. This is in my My Documents My Games Beyond The Sword Mods Folder.
ruff_hi Aug 10, 2007, 05:07 AM I am running the game out of a mod directory with no other python changes. This is in my My Documents My Games Beyond The Sword Mods Folder.This could be the problem. Move it to customassets and test again.
Ket Aug 10, 2007, 05:24 AM Hmmm, Ok but I allways believe you should let the user back out there changes to go completely to default a modified custom assets is not a great way of doing that. Plus when we start to add other things for flavor we really want this in a mod.
ruff_hi Aug 10, 2007, 05:34 AM Hmmm, Ok but I allways believe you should let the user back out there changes to go completely to default a modified custom assets is not a great way of doing that. Plus when we start to add other things for flavor we really want this in a mod.Agreed. There are some code changes that EF knows about that should allow this mod to sit anywhere.
Ket Aug 10, 2007, 06:12 AM Not being much of a python addict, I assume its something to do with building the path to the ini file and mod directory from Elmer's old code for this.
activeModName = None
try:
import CvModName
activeModName = CvModName.modName
except:
pass
userDir = _getUserDir()
userAssetsDir = os.path.join(userDir, "CustomAssets")
userModsDir = os.path.join(userDir, "Mods")
userActiveModDir = None
userActiveModAssetsDir = None
installDir = _getInstallDir()
installAssetsDir = os.path.join(installDir, "Assets")
installModsDir = os.path.join(installDir, "Mods")
installActiveModDir = None
installActiveModAssetsDir = None
assetsPath = [userAssetsDir, installAssetsDir]
if (activeModName != None):
userActiveModDir = os.path.join(userModsDir, activeModName)
userActiveModAssetsDir = os.path.join(userActiveModDir, "Assets")
installActiveModDir = os.path.join(installModsDir, activeModName)
installActiveModAssetsDir = os.path.join(installActiveModDir, "Assets")
assetsPath.insert(0, userActiveModAssetsDir)
assetsPath.insert(1, installActiveModAssetsDir)
pythonPath = []
for dir in [os.path.join(d, "Python") for d in assetsPath]:
for root, subdirs, files in os.walk(dir):
if (len(files) > 0):
pythonPath.append(root)
def _test():
print "activeModName = " + str(activeModName)
print "userDir = " + userDir
print "userAssetsDir = " + userAssetsDir
print "userModsDir = " + userModsDir
print "userActiveModDir = " + str(userActiveModDir)
print "userActiveModAssetsDir = " + str(userActiveModAssetsDir)
print "installDir = " + installDir
print "installAssetsDir = " + installAssetsDir
print "installModsDir = " + installModsDir
print "installActiveModDir = " + str(installActiveModDir)
print "installActiveModAssetsDir = " + str(installActiveModAssetsDir)
print "assetsPath = "
for dir in assetsPath:
print " " + dir
print "pythonPath = "
for dir in pythonPath:
print " " + dir
if __name__ == "__main__":
_test()
and the cvmodname workaround...
I tried to hardcode my way into the mod directory but that did not work at all. I get the screen to pop but exit does not seem to work LOL, ill wait for EF to take a look into it.
In totally unrelated good news, it seems that lunar mongoose and crew in the sevopedia thread have made major progress.
I also have regiments "modualized" if we want to use the extended formations.
ruff_hi Aug 10, 2007, 07:39 AM This issue has been solved by someone else. We just need to lift the code.
Ket Aug 10, 2007, 08:56 AM Are you referring to jeckels code in the elmer thread?
ruff_hi Aug 10, 2007, 09:11 AM no. Look at this mod (http://forums.civfanatics.com/downloads.php?do=file&id=4155) that was uploaded by Gaurav. He modified the way that the mod locates the ini file so that it (the mod) can be placed in either of the mod directories or the customassets directory.
EmperorFool Aug 10, 2007, 09:36 AM I've taken that code and put it into BUG and am testing it now. Unfortunately I need to step out for a few hours, but I'll finish it up when I return. Actually, I'll upload it now so you guys can see if it works for you. My saved game starts up fine, and options are set. Try it in different (mod) locations, please.
Here ya go: Version 0.6 (http://forums.civfanatics.com/uploads/111657/CustomAssets_0.6.zip)
Note that there's a file, CvModName.py, in DrEJlib folder that you'll need to edit so it matches the name of the mod as you set it up.
#CvModName.py
modName = "BUG Mod 0.5"
Ket Aug 10, 2007, 09:57 AM .06 Placed in My Documents My Games Beyond The Swords Mods
With the CVModName Changed does not work.
Or I'm too alseep to be testing but I think its a matter of it not working. :)
Ket Aug 10, 2007, 10:01 AM Ok yea theres an issue with the directory walking.
Its leaving a null file named BUG Mod.INI
in C:\Documents and Settings\Seth\My Documents\My Games\Beyond the Sword
So its looking at the wrong directory still.
Yea I validated this by dropping in a non null version of BUG Mod.Ini to the my documents my games beyond the sword directory and it works (partially I have a list of ticks that seem to do nothing but till I get a working version no reason to open up other bugs right... I'll regress it when we get this issue fixed cause chances are i'm walking into development area's that have not been hooked up)
ruff_hi Aug 10, 2007, 10:13 AM Its leaving a null file named BUG Mod.INI
in C:\Documents and Settings\Seth\My Documents\My Games\Beyond the Sword
So its looking at the wrong directory still.Where do you think it should be looking?
EmperorFool Aug 10, 2007, 10:31 AM If you install it as a mod in your My Games folder, it should probably look inside the mod folder for the INI file. What about when you install it as a mod under the main install folder? The CvPath module seems like it should allow us to do any combos. I don't know if you can tell the difference between main install and user folder when it's a mod (or even when custom assets).
In that sense, perhaps looking where it is makes the most sense. Given that the INI is named for the mod, there won't be any conflicts with other mods.
Ket Aug 10, 2007, 11:01 AM Ok, the .ini folder should be in the mod directory. Anywhere else is just asking for errors when the user installs it. Plus if this mod is picked up by other mods (which it already is, for example i'm using it in the composite) it will make the matter much much worse.
The thing is, this was working for warlords, it would do a directory walk looking for the file, and use the last one it see's while there could be a conflict if they had the mod installed in multiple places for the most part that did not happen.
Theres been so many changes done to the ini file routines that its tough for me to determine where the error is. In the Civ Alerts Thread they supposidly have this working I'm not sure what we are doing to break it. But in the ruffmodcontrol.py file it seems like it does another walk, although that may tie in from the DEJ stuff....
Ill pour through the code and see what I Can do...
EmperorFool Aug 10, 2007, 11:07 AM Shoot, I missed a file when I did the merge. I gotta jet, but hopefully replacing RuffModControl.py with the following should fix the issue and make it walk the tree. Sorry about that.
## RuffModControl.py - used to control access to RuffMod ini file.
## modified from HOF MOD V1.61.001
## Hall of Fame Mod Context
## Used to access Mod Ini file
import os
import os.path
from types import *
from configobj import ConfigObj
import CvUtil
import CvPath
from CvPythonExtensions import *
def get_AutoLog_Path():
try:
AutoLogPath = RuffModConfigFile['AUTOLOG']['AutoLogPath']
except:
AutoLogPath = CvPath.userDir + '\AutoLog'
if (AutoLogPath == 'Default'):
AutoLogPath = CvPath.userDir + '\AutoLog'
if not os.path.isdir(AutoLogPath):
os.makedirs(AutoLogPath)
return AutoLogPath
def read_ConfigFile():
return ConfigObj(FileName)
def write_ConfigFile():
RuffModConfigFile.write()
return
FileName = CvPath.get_INI_File("RuffMod_2w.ini")
RuffModConfigFile = read_ConfigFile()
##----------------------------------------------------------------
class RuffModConfig:
def __init__(self):
pass
## Private Functions
def __get_keyvalue(self, section, key, default):
try: keyvalue = RuffModConfigFile[section][key]
except: keyvalue = default
return keyvalue
def __set_keyvalue(self, section, key, keyvalue):
RuffModConfigFile[section][key] = keyvalue
return
def __get_boolkeyvalue(self, section, key, default):
try: keyvalue = RuffModConfigFile[section].as_bool(key)
except: keyvalue = default
return keyvalue
## Get Functions
def get_int(self, section, key, default):
keyvalue = self.__get_keyvalue(section, key, default)
try: keyvalue = int(keyvalue)
except: keyvalue = default
return keyvalue
def get_str(self, section, key, default):
keyvalue = self.__get_keyvalue(section, key, default)
if not isinstance(keyvalue, StringTypes) : keyvalue = default
return keyvalue
def get_boolean(self, section, key, default):
keyvalue = self.__get_boolkeyvalue(section, key, default)
if keyvalue == False :
return False
elif keyvalue == True :
return True
else :
return default
def get_float(self, section, key, default):
keyvalue = self.__get_keyvalue(section, key, default)
try: keyvalue = float(keyvalue)
except: keyvalue = default
return keyvalue
## Set Functions
def set_int(self, section, key, keyvalue):
self.__set_keyvalue(section, key, keyvalue)
return
def set_str(self, section, key, keyvalue):
self.__set_keyvalue(section, key, keyvalue)
return
def set_boolean(self, section, key, keyvalue):
self.__set_keyvalue(section, key, keyvalue)
return
def set_float(self, section, key, keyvalue):
self.__set_keyvalue(section, key, keyvalue)
return
alerum68 Aug 10, 2007, 11:48 AM Alright, I should have SourceForge up and running with Subversion as the method I'm picking for version posting. I'll set it up with v 0.6, with the above code added. I'm changing version numbers on there slightly to allow for more beta version before release. 0.5 is now 0.05 and 0.6 will be 0.06. I'm sure we're not going to have 99 beta version, but I think this is probably going to go beyond 9 before a full release is made.
Some of the things that Sourceforge offers that we can use for free: Home Page, Forum, Newsletter, task list, and documentation. Since XML isn't being added yet, and my python skills are laughable, I'll work on this the next couple of days, and isa, I'll have it up and running.
https://sourceforge.net/docs/B01/en/#cvs_client - These are the programs you'll need. They'll allow you to retrieve the code, and easily write to the code on the repository. This will make sure we're not writing over each others code.
As soon as I get 0.06 upload with the most current code changes, then PLEASE start using it for code changes... I know it'll be a bit of a PITA at first, but once you get the hang of it, it'll become second nature.
Ket Aug 10, 2007, 11:53 AM I highly recommend using tortoise which allows full CVS control under windows native with right click check out and submits...
http://tortoisesvn.tigris.org/
Ket Aug 10, 2007, 12:28 PM Initial Testing Shows no Interface with the above added into
Yes I changed the FileName = CvPath.get_INI_File("RuffMod_2w.ini") line to match the ini file name of the mod.
load_module CvModName
Traceback (most recent call last):
File "<string>", line 1, in ?
File "<string>", line 52, in load_module
File "CvEventInterface", line 13, in ?
File "<string>", line 52, in load_module
File "CvCustomEventManager", line 24, in ?
File "<string>", line 52, in load_module
File "CvEventManager", line 12, in ?
File "<string>", line 52, in load_module
File "CvScreensInterface", line 3, in ?
File "<string>", line 52, in load_module
File "CvMainInterface", line 16, in ?
File "<string>", line 52, in load_module
File "BugNJAGCOptions", line 5, in ?
File "<string>", line 52, in load_module
File "BugOptions", line 5, in ?
File "<string>", line 52, in load_module
File "RuffModControl", line 11, in ?
File "<string>", line 52, in load_module
File "CvPath", line 116, in ?
File "CvPath", line 98, in _getUserDir
File "CvPath", line 106, in _getInstallDir
File "CvPath", line 86, in __getRegValue
WindowsError: [Errno 2] The system cannot find the file specified
load_module CvAppInterface
I thought I had found the error, chances are this needs to be changed as well though...
In CV Path
The function GetInstallDir is looking for warlords and should be
def _getInstallDir():
civ4Dir = __getRegValue(_winreg.HKEY_LOCAL_MACHINE,
r"Software\Firaxis Games\Sid Meier's Civilization 4",
"INSTALLDIR")
civ4Dir = os.path.join(civ4Dir,"Beyond the Sword")
return civ4Dir
Just for craps and giggles I put this in my [INSTALL DIRECTORY] Beyond The Sword Mods Folder and tried to load it there...and it does not work either.
Ok further investigation the registry location that jeckel posted the fix for may be incorrect its actually Sid Meier's Civilization 4 - Beyond the Sword
def _getInstallDir():
civ4Dir = __getRegValue(_winreg.HKEY_LOCAL_MACHINE,
r"Software\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword",
"INSTALLDIR")
civ4Dir = os.path.join(civ4Dir,"Beyond the Sword")
return civ4Dir
Testing now....
Dammit to hell...
That gets me past load without errors now it blows up sky high when i go into the options and try to do anything.
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 93, in set_boolean
File "RuffModControl", line 48, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'RawCommerce'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 93, in set_boolean
File "RuffModControl", line 48, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'NJAGCM'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 93, in set_boolean
File "RuffModControl", line 48, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'NJAGCM'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 503, in handleBugExitButtonInput
File "BugOptions", line 77, in write
File "RuffModControl", line 29, in write_ConfigFile
File "configobj", line 1968, in write
IOError: [Errno 2] No such file or directory: ''
ERR: Python function handleBugExitButtonInput failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 503, in handleBugExitButtonInput
File "BugOptions", line 77, in write
File "RuffModControl", line 29, in write_ConfigFile
File "configobj", line 1968, in write
IOError: [Errno 2] No such file or directory: ''
ERR: Python function handleBugExitButtonInput failed, module CvOptionsScreenCallbackInterface
Alright back to square one as my assumption on the registry key being in error was incorrect...YAY! :)
Wait no...my civ 4 key is civ 4 gold..... so calling registry keys will not work 100%.... as some pay have civ 4 gold and some may have the older civ 4...
EmperorFool Aug 10, 2007, 02:22 PM I'm back and can start looking at this. From the above posting, Ket, I think I understand that I need to sacrifice a goat, and everything should work. ;) Let me see if I can align the stars . . .
Ket Aug 10, 2007, 03:05 PM Ok I tested without the space problem and it blows up in game when i click on or hit exit... it cant find the file to write.....
EmperorFool Aug 10, 2007, 03:49 PM As I posted in the civ4lerts thread, I found the problem. Please see if the fix works for you.
Ket Aug 11, 2007, 02:08 AM Ok since we're done flooding the civ4alerts thread :)
I'll regress the options screen and post results on that, I think Sevopedia is ready for prime time thanks to lunar mongoose's work, and also nevermind and impaler[wrg] posted a series of interface enhancements working under bts that we may want to see if we can use.
http://forums.civfanatics.com/showthread.php?t=235834
Ket Aug 11, 2007, 02:14 AM Ok Just on a quick click test we have python errors with clicking
"Stack Specialist"
"Great Person Research"
"Show Power Rankings"
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 94, in set_boolean
File "RuffModControl", line 49, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'Scoreboard'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 94, in set_boolean
File "RuffModControl", line 49, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'Scoreboard'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 94, in set_boolean
File "RuffModControl", line 49, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'City Screen'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 94, in set_boolean
File "RuffModControl", line 49, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'Tech'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
Traceback (most recent call last):
File "CvOptionsScreenCallbackInterface", line 509, in handleBugCheckboxClicked
File "BugOptions", line 60, in setBoolean
File "RuffModControl", line 94, in set_boolean
File "RuffModControl", line 49, in __set_keyvalue
File "configobj", line 337, in __getitem__
KeyError: 'Tech'
ERR: Python function handleBugCheckboxClicked failed, module CvOptionsScreenCallbackInterface
EmperorFool Aug 11, 2007, 02:18 AM I've rebuilt the INI file, adding all missing sections and values. However, I have changed some of them and the options in the Python code, so you'll need both. Give me 10 minutes and I'll post what I have.
Ket Aug 11, 2007, 02:19 AM Sure... :)
EmperorFool Aug 11, 2007, 02:26 AM Here is version 0.07 (http://forums.civfanatics.com/uploads/111657/CustomAssets_0.07.zip) (to match Alerum's numbering scheme). Note that it specifies "BUG Mod.ini" in RuffModControl.py and "BUG Mod" in CvModName.py.
BTW, Specialist Stacker isn't included yet, but the option should no longer give errors. In fact, all options should set/save/load appropriately. As well, the scoreboard and clock options should take effect immediately.
Ket Aug 11, 2007, 02:33 AM It still uses the hardcode of the ini file or does it genertate it from the CvModName file?
Ket Aug 11, 2007, 02:50 AM Ignore the question I got the answer, I sugest in version .08 or .07x we switch to the CvModName and non hardcoded ini file.
Ok merged good.... Nice and clean, everything looks ok except for raw commerce producing a python error....
Ket Aug 11, 2007, 02:54 AM Ok gameplay python bug, should i post these?
This is in alerts...
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
EmperorFool Aug 11, 2007, 02:59 AM Yup just caught that myself. I forgot to change the Python. Okay, it's fixed, and I added SpecialistStacker value in INI and use modName for the INI file name if it's available (minimal testing on this one).
And ... Changing Raw Commerce now updates the city screen correctly (even while it's open). Ooooh aaahhh. :)
Enjoy version 0.08 (http://forums.civfanatics.com/uploads/111657/CustomAssets_0.08.zip).
Ket Aug 11, 2007, 03:01 AM Awesome...
Its 3am over here im gonna merge this and then prob hit the sack that way ill stay out of your hair, i figure by the time i wake up you will be at 0.12 :)
Or at least have 6 new options.... :)
Did you check out that nevermind thread?
EmperorFool Aug 11, 2007, 03:03 AM Yes, the bug reports are very helpful. I've fixed that on my end. I must have mistyped "Unhealth" a gazillion times while making the options. yyyy Okay, my y key works. :p
If you want to just fix it on your end now, there are two places in BugAlertOptions. Search for "UnhealthAlert" and add in a "y" in both places.
EmperorFool Aug 11, 2007, 03:06 AM LOL, I'm only an hour behind you, but ya I'll probably work a bit longer (night owl). I've read through that thread, and it's just a matter of prioritizing on my end which things to merge first. :)
Sevopedia is big. Others use autologger a lot, so that's up there. But the interface goodies are more fun to do. Now that I have the options screen working, hopefully it won't be so difficult for others to merge in what they want once we have version control up and running.
G'night, and thanks again for your testing efforts.
Ket Aug 11, 2007, 03:13 AM Ill leave you with this one...
Some alerts are coming through others are erroring out...
so some testing on this is prob a good thing...
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
Traceback (most recent call last):
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "Civ4lerts", line 159, in onCityDoTurn
File "Civ4lerts", line 189, in onCityPendingGrowth
AttributeError: 'BugAlertsOptions' object has no attribute 'isShowCityPendingUnhealthyAlert'
ERR: Python function onEvent failed, module CvEventInterface
EmperorFool Aug 11, 2007, 03:28 AM Yes, those are all the same error and have been fixed locally (see my previous previous post).
EmperorFool Aug 11, 2007, 05:41 AM So I merged in Sevopedia, and in doing so I switched over to Modular XML Loading. Sevopedia has some art and text, and Civ4lerts had some text as well. It's certainly not mandatory for the BUG project, but we'll definitely want to use it for the flavor mod.
The only problem is that I discovered that MXMLL won't work from CustomAssets -- it requires a real mod folder. :(
Soooo, before I go any further with MXMLL, can we commit to requiring a mod folder, or should I back out the changes? I'm mainly thinking of SGers that will disagree on the mod to be used for their shared games.
In any case, I will be gone for the weekend and return Monday. I will try to check in before I head out in the morning if anyone has any issues with the latest build.
Here is the mod version: BUG Mod 0.09 (http://forums.civfanatics.com/uploads/111657/BUG_Mod_0.09.zip).
ruff_hi Aug 11, 2007, 07:40 AM no idea what MXMLL is. Will google it.
Re text - a bunch of the logger text is hard coded - we should move it to XML to support multiple languages (are we really going to do this - seems way too hard). Same with alerts, mod option screen, etc, etc.
Also, I think we should extend the alerts to also write them to a separate log file. I was playing a always peace domination victory game and really wanted to know how many tiles I had at the end of each turn - makes a nice graph - it was a bit difficult to extract but if the alerts code had produced a log file, it would have been a piece of pie (easy).
Cammagno Aug 11, 2007, 01:12 PM Re text - a bunch of the logger text is hard coded - we should move it to XML to support multiple languages (are we really going to do this - seems way too hard). Same with alerts, mod option screen, etc, etc.
Hi to everybody ;)
Good suggestion, text moved to XML means a cleaner MOD and an easy localization work.
As I've already told to Alerum in pm, I'm available for the Italian version. For some of the mod you are merging my translations already exist (I'll check if they need to be updated), and I've no problem to do the new ones for mods released in the last months).
Ket Aug 11, 2007, 01:29 PM MXMLL is the modular XML loading system
I'll run through .09 tonight....
I may have a cut of the composite out this weekend based on .09 if its stable enough.
EmperorFool Aug 11, 2007, 01:31 PM Re text - a bunch of the logger text is hard coded - we should move it to XML to support multiple languages (are we really going to do this - seems way too hard). Same with alerts, mod option screen, etc, etc.
MXMLL is "Modular XML Loading". It should probably just be MXL or ModXML, but that's what someone else used in their guide.
Civ4lerts messages were already in their own GameText XML file. My intention was to put the option descriptions and tooltips into XML -- I just didn't get around to it yet. We can always move them with the English versions and do the translations whenever we can get help (thanks for the offer Cammagno!).
Also, I think we should extend the alerts to also write them to a separate log file. I was playing a always peace domination victory game and really wanted to know how many tiles I had at the end of each turn - makes a nice graph.
Hmm, that sounds like a new mod. Rather than just logging the civ4lerts, perhaps something geared specifically toward logging value data like pop %, land %, money, units, XPs, etc. The only reason I'm thinking separate from civ4lerts is that you probably don't want to log the pending growth and happy/sad messages. Maybe you do?
ruff_hi Aug 11, 2007, 01:58 PM Hmm, that sounds like a new mod. Rather than just logging the civ4lerts, perhaps something geared specifically toward logging value data like pop %, land %, money, units, XPs, etc. The only reason I'm thinking separate from civ4lerts is that you probably don't want to log the pending growth and happy/sad messages. Maybe you do?If I want a history of stuff, I usually dump the log to excel and sort / filter out the stuff I don't want. I would be happy with a check box that says something like 'dump alerts to file' and have the file name hardcoded (say 'name of game'-Alerts.txt)
EmperorFool Aug 11, 2007, 02:23 PM Soooo, before I go any further with MXMLL, can we commit to requiring a mod folder, or should I back out the changes?
I just want to make sure we address this ASAP.
ruff_hi Aug 11, 2007, 03:40 PM Soooo, before I go any further with MXMLL, can we commit to requiring a mod folder, or should I back out the changes? I'm mainly thinking of SGers that will disagree on the mod to be used for their shared games.My thinking is NO, we cannot force a mod on the SGs because some SGs are played with a mod (ie an SG of Fall from Heaven). However, it might be worth posting a question in the SG story telling thread.
Sam_Yeager Aug 11, 2007, 04:06 PM I don't want to make life more difficult for you. However perhaps you should bear in mind that Mac users will, probably, get BTS at some point. That being the case it may be helpful to take account of this now rather than later. AIUI one of the main problems was the CvPath module. I know AlanH came up with a change that coped with both Windows & Mac systems. If you post in the Mac forum I'm sure he will be happy to help you on this part.
If this has already been covered somewhere in this thread then I apologise.
EDIT: Here's a post (http://forums.civfanatics.com/showpost.php?p=4480476&postcount=109) with AlanH's modified CvPath.py file.
alerum68 Aug 11, 2007, 04:36 PM I don't want this to be only able to ran as a MOD either. Not only goes it limit SG options, (like Ruff said, playing SG MODs), as well as requiring the whole team to be using the mod. What if someone has gotten BUG and modified it to their own taste, and can't use it?
Also, using 0.09 and Alerts still is having a problem. Is it because I used it as CustomAssets intead of in it's own mod folder? It's showing me the txt strings, but not the actual values.
Possible changes to make to the mod as well: In the EP screen, show both your EP, as well as your Rival with a & ratio shown as well.
Is there a way to select all the units on the contient, as well as all units on the contient, which aren't forted in a city?
An In city view calculator, that will show you the effects of building something.
Just some ideas I was having.
EmperorFool Aug 11, 2007, 06:50 PM We're agreed on no-mandatory mod, then. With any luck, someone will have a workaround to allow modules to work from CustomAssets. Alerum, this is exactly why you saw text strings from Civ4lerts. If there is no workaround by the time I return Monday, I'll back out the changes I made. It won't take long, so if a workaround appears later, I can redo it easily.
Keep this in mind when thinking about the flavor mod, though. Using the modular XML system is significantly easier when combining many different XML- and art-based mods.
Thanks, Sam_Yeager. I'll test out that CvPath solution when I get back. Contrary to making life more difficult, you've handed us the solution! :goodjob:
EmperorFool Aug 11, 2007, 07:02 PM In the EP screen, show both your EP, as well as your Rival with a & ratio shown as well.
Do you mean show the rival's Espionage Point total against you? The ratio is already shown in the form of a %. Maybe if you could mock up an example (show current and your suggested version) I'd understand better. I agree that this screen could be more informative, though.
Is there a way to select all the units on the contient, as well as all units on the contient, which aren't forted in a city?
As far as I know, you can't select units from different plots.
An In city view calculator, that will show you the effects of building something.
Do you mean showing something like the following?
Library: +3:science:
Market: +2:gold:
Forge: +5:hammers:
If so, F1 (vote yes). Can you think of a way to present this cleanly?
Taking that further, one mod I was trying to work on before but didn't get too far was a way to answer the question of "If I adopt civic X, what will change?" Basically, something to help you decide when to switch from Bureaucracy to Free Speech. All I did was to make a hotkey which tells you how many Towns you have. I extended it to show how many of each type of improvement you had. The basic idea was to help you know how many extra hammers you'll gain by researching Railroad, Replaceable Parts (lumber mills), or Printing Press (villages and towns).
I think it would be nice to have some sort of screen that summarized all of this nicely. The trick is, the game makes adjustments when you switch civics (e.g. reassigning citizens and specialists), so it's not as easy as I initially thought. Any ideas on how to do it? Could we switch the player, calculate the differences, then switch back? I don't know if there would be side-effects.
Ket Aug 11, 2007, 11:03 PM Well the good news of not going modular is it can still be used in a modular setting. Since unless another flag is set, custom assets are loaded with a module. Currently my composite mod, runs both module and non module mods.
Now as far as modules loading from custom assets, Impaler[WrG] is the mxml guru and could assist on those concerns.
Sorry I have not been around today to bang on the drums so to speak, but I've had a nasty case of bronchitis thats bordering on walking pneumonia so ive been taking it easy for the last week. Today was mostly sleeping.
Since .09 is a dead release, I'll wait for .10 to bang on crap which i guess is due out monday.
Remember I'm cross developing this into my normal composite mod as well as building a flavor mod for it.
I suggest we keep a release path in mind, I see elements of feature creap happening already. Since EF has become our defacto main python scriptor! (YAY GO EF!!!!) he should prob have the path outlayed so at least we make sure the main functionality will get added in, and then we change on top of it..,,,,
Reguarding that MAC fix posted... wow we could have used that yesterday!!!! :)
EmperorFool Aug 12, 2007, 12:44 AM No worries, I'm just throwing out ideas for future stuff since I'm not home to be able to code. :) I'm still on track to keep porting the existing stuff from Ruff's mod, most notably the AutoLogger for SGers.
What should be next after that? Can you guys do a little prioritizing on what to do next? (Like how I dodged that? ;))
Re: the CvPath fix for Macs, it wouldn't have helped us yesterday since we're not running on Macs. Actually, I'm still unclear what was up with your regkey. Why were you getting the double BtS dirs, and will people running Civ 4 Gold be okay with what we have? My brain still hurts from the :wallbash: session. :lol:
alerum68 Aug 12, 2007, 11:10 AM Do you mean show the rival's Espionage Point total against you? The ratio is already shown in the form of a %. Maybe if you could mock up an example (show current and your suggested version) I'd understand better. I agree that this screen could be more informative, though.
In the EP screen itself, at least with the Better EP screen, it shows your total EP towards a rival, but doesn't show how much they have against you. They show a %, but I believe it's the cost of doing espionage against your rival, not the ratio between you two.
Do you mean showing something like the following?
Library: +3:science:
Market: +2:gold:
Forge: +5:hammers:
If so, F1 (vote yes). Can you think of a way to present this cleanly?
Actually I was thinking of connecting it to the Commerce screen. Add a second column... one column will show Current, pre-production stats, and the second will show what it will be, working current citizens, with the new building. I'd like to have health and happiness included, but not sure where to put 2 columns for that.
I think it would be nice to have some sort of screen that summarized all of this nicely. The trick is, the game makes adjustments when you switch civics (e.g. reassigning citizens and specialists), so it's not as easy as I initially thought. Any ideas on how to do it? Could we switch the player, calculate the differences, then switch back? I don't know if there would be side-effects.
Wow, that would be nice but you'd have to have your own summary screen that would show all cities with citizens, then a total on the bottom. Something like the layout of the EP, with long bars for each cities, that shows the info you want. This would be a huge task though!
As for modding priority I'd like to get the CustomDomesticAdvisor in after autologger. I'd also like to know if we can change it so it doesn't put the config file in the CIV main directory, but in the CustomAssets directory.. this should make it easier to include cammanago's 30 page of screens.
On a side note... umm... EF you've been doing a kick a$$ job of coding, but have you been keeping change logs at all on the versions? The reason why I'm asking is because I'm debating if I should put old versions with change logs on SourceForge.
EmperorFool Aug 12, 2007, 12:10 PM I admit, I'm so used to putting in commit messages at work, that I never picked up the habit of maintaining a changelog as I code. So while I have each of the ZIPs I've uploaded, I don't have any sort of list of changes outside of my head. :( In my view, a changelog is only necessary when you're changing from X to Y. As the initial commit will start from scratch, that there have been multiple versions so far can be ignored.
We do need a feature list file, readme, etc. though. Would you mind creating those?
As for moving the INI file, it's certainly possible. The only advantage to not moving it is that we can use the standard CvPath module that other people are using. In any case, I don't understand how it relates to Cammango's extra CDA screens. Can you clarify please?
In the EP screen itself, at least with the Better EP screen, it shows your total EP towards a rival, but doesn't show how much they have against you. They show a %, but I believe it's the cost of doing espionage against your rival, not the ratio between you two.
I thought the % was essentially the ratio (+100% if they have done the counter-espionage mission against you recently). Although I agree the actual number of points would still be handy.
Actually I was thinking of connecting it to the Commerce screen. Add a second column... one column will show Current, pre-production stats, and the second will show what it will be, working current citizens, with the new building. I'd like to have health and happiness included, but not sure where to put 2 columns for that.
Well, no buildings (except the Palace) affect commerce directly -- only gold, science and culture. But some buildings obviously affect production, and that could be helpful. In fact, this would be a great SDK mod where mousing over a building would show you the actual changes it will make to that city. If you can mock it up, I can at least investigate if it's doable in Python.
Wow, that would be nice but you'd have to have your own summary screen that would show all cities with citizens, then a total on the bottom.
My idea is a little less ambitious than that. That would be huge! I just wanted an overall effect. For example, switching from Mercantilism to Free Trade, you lose the free specialist and gain a trade route. I'd like to see something like
-5:hammers: (-2 Engineers, -1 Priest)
+2:gold: (-1 Merchant, +21:commerce:)
+10:science: (-3 Scientists, +21:commerce:)
-3:culture: (-1 Artist)
Granted, dealing with Mercantilism is probably the most difficult civic since the game adjusts so much when you switch in/out of it. It more than most other civics would really benefit from seeing the differences in each city.
Switching from Bureaucracy to Free Speech (+2:commerce: per Town) could be calculated simply by examining the capital and counting all worked Towns. And unlike production, you don't care which cities produce your science and gold -- just the totals for your empire.
However, with a general mechanism of switching civics temporarily and being able to run an empire-wide diff would enable a nice summary screen. You're right, that'd be a lot of work. Probably fun though. :D
alerum68 Aug 12, 2007, 12:28 PM I'd be more then happy to make the readme and feature list. Just give me a basic idea of what you want include in the readme, and i'll make one up. Should I make it HTML to allow for linking, or txt?
With the Custom Domestic Adivsor it makes a .txt document that goes into the main Civ4 directory. This .txt file is what it calls to make the different screens. The only problem is that if we want to include different list to include, like cammangos, we'd have to make an installer to put the file into the main civ4 directory. Also, it's only set up now to have 1 .txt file, and it'd be nice if it would allow for different names in the config file. This would make it much easier to choose which config to use from the Options screen as well. When we get this one in, and working I plan on making several different configs for this.
EmperorFool Aug 12, 2007, 12:57 PM I'd say for now before the first solid release, a simple text file that lists which mods have been included so far along with basic install docs should be sufficient. Probably list the people involved in the project and the link to this thread. I can't think of anything else atm.
When we release, we should have our own subforum here I believe, and then we can write up full install docs and everything else in BB code. The reason for the initial text file is so that each of us can modify it as they commit changes. It's not so much a changelog as a "done list."
I'll look into the CDA more thoroughly. I think I get what you're saying about the different config files. I just assumed that to use Commango's configs you had to merge his file into the base CDA one (or replace it entirely).
Speaking of CDA, were you able to integrate a working version? I think you had said you were going to try the Vanilla version.
alerum68 Aug 12, 2007, 02:01 PM Will do a quick bmp later today of what I'm talking about, and see if you can do it. CDA is a no go for me... I got the same results from Warlords as I got from the vanilla version, so I'd suggest building from that. I don't think you need the gamecore.dll file to do what we want.
I'm hoping I'll have the will power to stop playing BTS long enough tonight to get the readme for you guys, with whats added and todo list and install instructions.
Ket Aug 12, 2007, 02:24 PM Alerum68, I can do the readme if you wish.
EF: Lets not move the ini file, maybe i'm jaded for all the time we spent to get it to work right... but I think that we want it there, I think if CDA is a problem we can get CDA to read the right file.
Both: My vote for priorities is to get a feature rich version that matches our goals of the mod and then build in from there. That summery screen may be a bit out of focus for the first major cut of it, and I think we want to get some other things in first.
CDA and a logger make the next big things I can see....
If i do a flavor add on I guess we dont want it modular either eh?....
Crap... I've got all my flavor stuff being done modular, I guess I can pull that... then again if they run this in Custom Assets and then load the flavor mod on top of it, I can do it modular....
EmperorFool Aug 12, 2007, 02:32 PM All these idea discussions to me are for future consideration. It's just fun talking about them. They shouldn't hold back an initial release of BUG. Sure, some small things may get included as we go, like my adding Raw Production to Raw Commerce, but those will be few and only when quick. Summary screen? Hardly quick!
Agreed about moving the INI file. I don't see a problem with our INI and CDA's playing nice together. If they do, I can fix CDA.
I looked at CDA, and the C++ SDK changes are very minor and can probably be excluded. The strange thing is, it appears to make it so clicking on the city's icon opens the city screen ... but doesn't the normal DA do that already? I'll have to check the original C++ source when I get home.
As I think I said above, I recommend sticking with modular XML loading for the flavor stuff. If you're adding a bunch of civs and units, you're probably not playing FfH or any of the other mods that do the same. If so, people can do their own merges. And yes, the modular flavor mod should run just fine on top of BUG as either a mod or in CustomAssets.
Ket Aug 12, 2007, 02:49 PM Wait I think I remember this...
There was a bug in the f1 screen that was eventually fixed that had to do with zooming to a city... This may have been a work around for that...
I dont think we can compile our own DLL...doesnt that break the whole ensure no gameplay altering things are changed... If not and we want to do some .DLL work... I think looking at the unofficial bug fix solver/dale/kael and others did which is on apaylon.... I can have a .dll of those set up for .10 release if you wish....
Don't mind my feature creep . .. .. .. .. .ing, I'm saying it more for my own sake...
LOL!!! :)
http://apolyton.net/forums/showthread.php?threadid=168750
Alternatively I can include this in the flavor mod...
Here's a minor update to the BtS AI, and some minorish fixes.
Changes:
* Fixing a possible infinite loop problem with unit movement.
* Poison Water and Foment Unhappiness missions now have the same effect, duration and cost on all game speeds, to mirror the official patch.
* AI now more likely to promote siege units with Accuracy to better handle the changes to bombardment in BtS
* AI understanding of what is an "early Wonder" now correct for non-Normal game speeds.
* AI civs that are close to reaching a Domination victory recognize that and are more likely to declare war, in particular with Aggressive AI.
* "Dead unitgroup walking" crash fix as per Dale
* No-conscript colony crash fix as per Gyathaar
* Another colony crash fix as per myself
* Fixed the bug allowing Forts in foreign territory, which would result in Forts overrunning useful rival improvements.
* AIs close to domination population will have a high priority for health buildings in cities that are unhealthy.
* AIs close to domination population will put a high priority on researching Genetics and will like other health techs better.
* The AI will be less reluctant to raze cities that have its state religion if it doesn't have the shrine for that religion.
* Corporation maintenance is now exempt from inflation, so the costs don't blow up so much.
* Added possible workaround for a crash bug.
* Fixed an infinite loop problem with city attackers (thanks Gyathaar)
* Blockade code rewritten so that blockading is now much faster, as per Gyathaar
* Fixed Quick-speed crash (whoops)
* Auto-explore change per Bhruic.
* Auto-explorers will heal when wounded.
* Advanced start population selling fixed per Gyathaar
* Fixed the AP-conversion hammer bug
* AI will use espionage to destroy non-resource terrain improvements - such as Towns.
* AI may destroy improvements through espionage just because it hates you, with no war plan
* Increased likelihood of the AI stealing techs - hopefully it will do so now
August 12 changes per Blake:
* Fixed AI airstrike bug
* AI now only capitulates to the team which has done them a majority of the damage.
* On non-aggressive AI, the AI's are more aggressive early in the game.
* AI trains more units early in the game.
* AI SHOULD do a better job of bribing other AI's (this may or may not work)
* The cost to Bribe AI's into war now uses a new algorithm, it better reflects the impact of the bribe (ie a large AI charges a lot more to be ordered around). Generally bribing will be more expensive, especially cases where it used to be excessively cheap.
* AI's tell you to sod off if you try to bribe them onto a victim with an intact nuclear arsenal.
* AI brags about it's nukes more.
* Always Peace now suppresses AI militarism (with some barb awareness).
* AI spends less on Espionage.
* AI trains spies with lower priority.
* AI better aware of Free Market / Environmentalism corporation impact.
* Exploring units should now heal.
* Possibly fixed exploring "YoYo" issue.
* Fixed a puppet strings exploit related to naval invasions.
* Fixed some issues which hampered or stalled AI early game expansion.
* Tweaks to Governor, particularly "Emphasize Food"
* Fixed an undefended cities issu
alerum68 Aug 12, 2007, 03:41 PM It wasn't the INI file I wanted to move guys, but a file that CD makes called something like CustDomAdvOptions.txt or something like that, that lets you store the screens in a file that can be passed around. The only problem is that when CDA came out no one could figure out a way to have it work properly in the CustomAssets folder.
If that's what the DLL does then I know what it is for. In Warlords there was a bug with the little icon that zooms to city,(It wasn't in the original CIV release) and anytime you got more then 1 page worth of cities, around 20, it would cause crashes. I remember actually limiting my cities to prevent this and still use CDA.
And I'll do the readme Ket... felt like I've done nothing so far.;)
EmperorFool Aug 12, 2007, 06:50 PM Cool, maybe we won't need the C++ changes after all if BtS doesn't have that bug. And I understand what you mean now about the INI vs. txt file; that should be doable using CvPath I bet. I've got my fingers crossed that I can get CDA to work in BtS without too much trouble. For one thing, the Python code looks very well organized -- that's a great start. Some of the Firaxis code is, um, not. :crazyeye:
alerum68 Aug 12, 2007, 07:27 PM I think you won't have a problem... It was me being overwhelmed by all the errors I was getting that I didn't know where to start how what to fix where.
Here are the list of Mods I have already, and a suggestion for a way to organize the Options Screen. Is it possible to have Tabs within each option screen, somewhat like Winrar has?
• Option Switching Core by EmperorFool.
• Main Screen Interface
Not Just Another Game Clock by
Remove Dead Civs from Score by
Power rating in Score by
Attitude Icons by
• Pop-up Game Messages
Civ4lerts by
Reminders by
• Advisor Screens
Better Espionage Screen by
Sevopedia by
Great Person Tech Preferences by
• City Screen
Specialist Stacker by
Raw Commerce by
Haven't put the credits in all of them yet, as that will take some time to research. I want to put the original Modder, as well as anyone who has carried on the torch of the project, but I'm not sure I'll be able to get it all. I know the original coders of most of the mods listed, but not everyone who worked on it after they left, but not sure of etiquette in this case.
Anyway, can anyone name the Mods I'm missing, and input on giving credits. Also, I'm listing our names in alphabetical order, so don't think I'm putting my name on top for any other reason.:p
alerum68 Aug 12, 2007, 09:01 PM here's a rough draft in the readme. Set it for version 0.10, which I'm assuming will be the next working version. Will work on the todo list now, before the thread gets to hard to sort through.
Let me know if I'm missing anything.
Also, after adding autolog, and CDA, I think we've got a fairly decent basic version 1.0 which we should be able to release after a little testing for stability.
Ket, you seem like you know SourceForge and and WinSCP. Could you help me figure out how come I can't connect to SV server even though I got my keys set up? I don't want to dig up CuteFTP again.
alerum68 Aug 12, 2007, 10:38 PM And here is the Todo List.
Want to update the Front Page. What is the last stable release we have? 0.06 or 0.08?
EmperorFool Aug 13, 2007, 03:17 PM I've backed out the MXMLL changes. I think I'm going to tackle CDA first.
Here is BUG Mod 0.10.zip (http://forums.civfanatics.com/uploads/111657/BUG_Mod_0.10.zip)
QcFrogMan Aug 13, 2007, 05:04 PM Being a big fan of the jray-UGH mod that I had on Warlords, essentially because I've always wanted some gameplay enhancements without changing a thing to the AI that wasn't meant to be by the gamemaker, I've been following along in this thread. Impressive stuff but I'll be honest, I don't understand a word of all the programming stuff. Here's a stupid question for you though: with this "copying to CustomAssets" thing, does it mean I could install it, as per instructions in alerum68's readme file and it would work with any game without having to start a new one?
Reason I ask is that it's always nice to be able to see all your game in only one Hall of Fame, since this mod doesn't touch the AI...
Anyway, two thumbs up for the effort and I'll for sure download and install this thing the minute you release it.
QFM
alerum68 Aug 13, 2007, 05:07 PM Front page updated with latest version and text from Readme and todo list.
Any more news on the subforum? Or do we just wait til 1.0 is released?
@QCFrogMan - Correct, you can use this with any standard game, even if it's already in play if you copy it to the CustomAssets directory. This will not change any of the gameplay for you, and allow you to load any save game that wasn't started with a standard MOD. Besides the interface changes, you won't notice a thing different about games you've started in the past.
EmperorFool Aug 13, 2007, 05:22 PM Alerum beat me to it, so I'll just add that it won't work if you check "Lock Modified Assets" when you start a custom game. Same if you are using a mod that has that option set in its INI file. Most likely you won't know what I'm talking about*, which means it won't affect you. :)
* Only because it's a very oddly-named option that most players simply ignore.
EmperorFool Aug 13, 2007, 05:24 PM Custom Domestic Advisor is integrated and working. I've added the "espionage" and "espionage defense modifier" columns for BtS. There are other columns I'd like to add for completeness ("turns until border expansion", "turns until GP birth"), but they aren't new to BtS and can wait. Can anyone think of new columns that should be added due to new features in BtS. Corporations I would guess -- ouch that will be a lot more work. Any others?
Also note that I excluded the DLL, and now it won't jump to the city and open the city screen. Since the original DA does this, I'm hoping I can fix it without a DLL change.
alerum68 Aug 13, 2007, 07:30 PM Is great news EF!
Another addition, if possible. The liberate button to become clickable?
I can't wait... seems this is coming together very nicely.
Update on Sourceforge. I updated the docs and task list, but I'm having a problem upload to the SVN on sourceforge. I have it set up properly in WinSCP but it says that the host doesn't exist. I know the host is working because I can access it from Firefox. I have no idea what is going on.
Anyway, what does this mean? Time for us to stop being lazy and use the damn thing.:p
Ket Aug 13, 2007, 09:47 PM Alerum beat me to it, so I'll just add that it won't work if you check "Lock Modified Assets" when you start a custom game. Same if you are using a mod that has that option set in its INI file. Most likely you won't know what I'm talking about*, which means it won't affect you. :)
* Only because it's a very oddly-named option that most players simply ignore.
Lets get Ruff_Hi's input on that.... I would expect that that option may be used in HOF & SG
QcFrogMan Aug 13, 2007, 10:14 PM Alerum beat me to it, so I'll just add that it won't work if you check "Lock Modified Assets" when you start a custom game. Same if you are using a mod that has that option set in its INI file. Most likely you won't know what I'm talking about*, which means it won't affect you. :)
* Only because it's a very oddly-named option that most players simply ignore.
thanks alerum, and EF.
FWIW, I checked how I usually start my game and that "Lock Modified Assets" is not checked. Also, for now I'm playing with a vanilla BtS, no mods installed (or loaded) other than the BlueEarth for the look and stuff, but that doesn't count as a mod, does it?
QFM
ruff_hi Aug 13, 2007, 10:22 PM Also, for now I'm playing with a vanilla BtS, no mods installed (or loaded) other than the BlueEarth for the look and stuff, but that doesn't count as a mod, does it?BlueMarble? No - BUG and BlueMarble should be compatible.
Ket Aug 13, 2007, 10:41 PM Is unit renaming really working now?
alerum68 Aug 13, 2007, 10:48 PM FYI - Playing with Blue Marble too and running into no problems.
Good news on the File Repository front:
The BUG Project File Repository. (https://civ4bug.svn.sourceforge.net/svnroot/civ4bug/)
Is 100% operational, with the most current version and readme files.
Also, made another little addition to the project.... should make it easier for people to install.... everyone likes binaries, right?
PLEASE I BEG YOU! Use the repository. Once you get it setup you can get the most current version in progress, with a click from Windows Explorer. Also, as soon as you make a working change to the code, do the same thing. Took me a while to figure it all out, but it's pretty simple once you get it set up, and I was doing admin stuff.:p So, please use it... this will allow everyone to work on it at once, instead of just waiting for EF to take a break and let the rest of us have a go.;)
QcFrogMan Aug 13, 2007, 11:16 PM BlueMarble? No - BUG and BlueMarble should be compatible.
oops, yeah, brain fart here, it's Blue Marble obviously. :)
Thanks for the answer...
FM
Cammagno Aug 14, 2007, 02:42 AM Hi,
a lot of things to say, so let's start :)
0) A lot of good work done, so thanks to everybody! ^_^
1) Even if you are developing, I've started my translation work, so here you can find the 3 xml files with updated/added Italian translation
http://forums.civfanatics.com/uploads/74513/Cammagno_s_Adds_to_BUG.zip
2) in the same zip, you'll find also a BUG_Structure.doc file, in which I've put the structure of BUG Mod. It is something that I usually do for all the mod before installing them, to know exactly which files they install and where, to make future merges/changes/uninstalls/etc more easy. So, I suggest that maybe (if you think it's good) it can be added inside the Mod zip file of official releases (no problem for me to keep it updated, I'll do it in any case), maybe in a Documentation subdirectory together with BUG Readme.doc file (that I suggest to add to the zip file too).
3) I've some problem with installation of the BUG Mode, so probably I've not understood well the instructions in the Readme file ^_^;
Let see:
a) I've located the BtS folder, that for me (with Vista OS) is C:\Users\username\Documents\My Games\Beyond the Sword
b) I've renamed CustomAssets folder inside it (C:\Users\username\Documents\My Games\Beyond the Sword\CustomAssets) [by the way, not so clear here, I've to make a backup copy of it or to rename the original one? And why?]
c) I've unzipped the zip file's content inside the BtS folder, so that BUG Mod.ini goes directly inside it and all the other stuff goes inside the assets folder (to be clear: BUG Mod.ini inside C:\Users\username\Documents\My Games\Beyond the Sword and all other files inside C:\Users\username\Documents\My Games\Beyond the Sword\assets)
I must have done something wrong, because nothing happens, it loads the vanilla interface, and pressing Ctrl-Alt-O does nothing ^_^;
Ket Aug 14, 2007, 02:42 AM Welp, I released version 2.0.2.0 of the composite at this point it has some of the things I'm considering for the first flavor release and this will also put the mod into a wider scale of use. At version 2.0.2.1 it will diverge from the flavor add on.....
I wanted to discuss Bad Ronald's Flags which should be out for BTS "Soon"
http://forums.civfanatics.com/showthread.php?t=194319
I think we should have this in our main unaltered mod... If not ill toss it in the flavor mod, but this will be a simple merge for the unaltered and should go on our to do list... (IMHO)
Ket Aug 14, 2007, 02:44 AM Hmmm Vista and Registry... YIKES
I guess its good that the registry stuff was removed!!!!!!!!
EmperorFool Aug 14, 2007, 05:25 AM QcFrogMan, Blue Marble puts its graphics into your CustomAssets directory, so it's not a mod and will work with other mods, including ours.
Ket, unit renaming is not included yet. That should be easy to port (hopefully no real work there).
Cammagno, I've included the Italian translations and the structure doc. Thanks! My only concern with the latter is that it's easy to forget to add a new file and keep it up-to-date. I'll try though. :)
The reason the mod isn't working for you is because I am now ZIPping it up from my mods folder, so the directory is now called "Assets" instead of "CustomAssets". This is why the renaming procedure seemed odd to you but actually makes sense. If you rename that directory, it should work fine.
Ket, the registry is still used on Windows. While I could use Python's built-in modules to find the install directory, the registry will be needed to get the user's My Documents folder.
Also, we'll need someone with a Mac to test it because I don't know the structure of how BtS is installed on MacOS. I suspect the directories in CvPath.py are incorrect (no mention of BtS).
Cammagno Aug 14, 2007, 07:39 AM Cammagno, I've included the Italian translations and the structure doc. Thanks! My only concern with the latter is that it's easy to forget to add a new file and keep it up-to-date. I'll try though. :).
Oh, well, my suggestion of the inclusion of the structure.doc file was intended only for "real" releases (we can call them "public" ones), not for "working" versions, because I know that it's a pain to keep it updated.
So, if you prefer, you can avoid to do it, and I can do it for you; I'll do it in any case fom my personal use (I like to test mod, and to do it I need to know exactly which files they put in my directories) and post the risult here (and/or somewhere else) after every "working" release.. the only problem is that in this way the updated file can't be inside the zip, but the updated file can be added only to the public releases, while the working ones can be left without it or with the previous one. I hope that I've been able to explain clearly enough what I mean ^^;
The reason the mod isn't working for you is because I am now ZIPping it up from my mods folder, so the directory is now called "Assets" instead of "CustomAssets". This is why the renaming procedure seemed odd to you but actually makes sense. If you rename that directory, it should work fine.
So you mean that I've to rename the folder Assets caming from the zip file into CustomAssets? Oh, now everything is clear ^_^
Ok, now it loads, but not properly. Almost all the text is gone from the menus, including the main ones (the ones used to load the game or start a new one) and the in-game ones... only the text added by BUG mode is visible.
I think it's something related with localized version, because the same problem arised in the past with another mod and it was discovered that it was so.
Edit: Ok, confirmed, it is so, if I manually force the game to english version (through the ini file) the text is back. So I suppose that as it is, the call to the bug menus goes over the call for the localized ones, "overwriting" it instead of adding over it. Again, I hope that I've been able to explain properly [remember that English is not my language, so be patient with my msgs, please ^^;]
If you have problems to figure out a solution, I can search the forum for the past solution with that other mod I spoke about above, but it may be a not-so-easy search ^_^;
ruff_hi Aug 14, 2007, 08:08 AM Ket, unit renaming is not included yet. That should be easy to port (hopefully no real work there).I'm claiming dibs on the unit naming mods. I'm thinking of folding in the ones from my mod - are there any others that people want included? Alerum mentioned one with levels (private, sarge, captain, major, etc) - does anyone have a link to that one? Any others?
EmperorFool Aug 14, 2007, 08:14 AM I've added Culture Turns and Great Person Turns on City Screen (optionally, of course) and as columns in the CustDomAdv. I've also switched back to working in my CustomAssets directory. I hope that isn't too confusing, but it will be the last switch. :)
Commagno, I think I understand what you wrote about the text issues, but I don't see how it would cause a problem. While BUG has some XML GameText files, it doesn't have any with the same names as the standard game. You're really talking about the main menu "Single Player", "Load Game", etc?
Anyway, here's the new version: BUG Mod 0.11.zip (http://forums.civfanatics.com/uploads/111657/BUG_Mod_0.11.zip)
Edit: I'll update SourceForge once Alerum adds my account.
EmperorFool Aug 14, 2007, 08:21 AM I'm claiming dibs on the unit naming mods. I'm thinking of folding in the ones from my mod - are there any others that people want included? Alerum mentioned one with levels (private, sarge, captain, major, etc) - does anyone have a link to that one? Any others?
Sounds great! Does this mean you have BtS now? :)
The thread that Alerum mentioned is here (http://forums.civfanatics.com/showthread.php?t=184037). As far as I can tell, it never went past the "gee this would be cool" stage, unless there's a second thread I didn't find. As well, the idea was to continuously rename units as they gained experience, which is quite different from the other methods in your mod.
ruff_hi Aug 14, 2007, 08:28 AM Sounds great! Does this mean you have BtS now? :)It is on its way, currently somewhere in USPS land (from the USPS website ... "Enroute, August 13, 2007, 8:55 pm, JERSEY CITY, NJ 07097"!!!). I expect it will be delivered tomorrow.
The thread that Alerum mentioned is here (http://forums.civfanatics.com/showthread.php?t=184037). As far as I can tell, it never went past the "gee this would be cool" stage, unless there's a second thread I didn't find. As well, the idea was to continuously rename units as they gained experience, which is quite different from the other methods in your mod.Hmmn - I (sort of) like the idea but I don't think it can be linked to XPs ... as far as I know, there isn't an event linked to XPs. There is an event linked to promotions so I could do that. However, I would only want to rename units that had started with this naming convention. Will have a think about it and throw some code together.
Cammagno Aug 14, 2007, 09:09 AM Commagno, I think I understand what you wrote about the text issues, but I don't see how it would cause a problem. While BUG has some XML GameText files, it doesn't have any with the same names as the standard game. You're really talking about the main menu "Single Player", "Load Game", etc?.
Well, I'm speaking of all the text, included the main screen before the games starts ("Single Player", "load Game" and so on), all of the screens for creating a new game (the only visible things are the name of the scenarios and mods) and all the in-game screens, included advisors' ones and civpedia and so on. The only visible text is the text from BUG.
As I've told, the problem is surely linked to the localized version, because changing the language in the CivilizationIV.ini from italian (3) to english (0), all the text (obviously in English) is there again. So, maybe you can reproduce the problem doing the inverse operation, from 0 to 3... I'm not sure that it's the same as if the game has been installed in Italian, but you may try...
Anyway, here's the new version: BUG Mod 0.11.zip (http://forums.civfanatics.com/uploads/111657/BUG_Mod_0.11.zip).
I'll make the Structure file and post it :)
Here it is:
http://forums.civfanatics.com/uploads/74513/Bug_Structure.zip
I've chosen to only report the folders which has files inside them.
EmperorFool Aug 14, 2007, 09:34 AM I did some testing and found that the problem is caused if any file is missing translations. In other words, all four translations (French, German, Italian, and Spanish) must be present for each text key. Once I filled them in for the Sevopedia file, it worked.
Here's the file if you want for now. Otherwise it will be included in the next update.
Sevopedia_CIV4GameText.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Sid Meier's Civilization 4 -->
<!-- -->
<!-- Game Text - Unit Upgrades for Civilopedia -->
<Civ4GameText xmlns="http://www.firaxis.com">
<TEXT>
<Tag>TXT_KEY_WIDGET_HELP</Tag>
<English>SEVOPEDIA 2.3.1</English>
<French>SEVOPEDIA 2.3.1</French>
<Gernam>SEVOPEDIA 2.3.1</Gernam>
<Italian>SEVOPEDIA 2.3.1</Italian>
<Spanish>SEVOPEDIA 2.3.1</Spanish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_PEDIA_CATEGORY_UNIT_UPGRADES</Tag>
<English>Unit Upgrades</English>
<French>Unit Upgrades</French>
<Gernam>Unit Upgrades</Gernam>
<Italian>Miglioramenti Unità</Italian>
<Spanish>Unit Upgrades</Spanish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_PEDIA_CATEGORY_PROMOTION_TREE</Tag>
<English>Promotion Tree</English>
<French>Promotion Tree</French>
<Gernam>Promotion Tree</Gernam>
<Italian>Albero delle Promozioni</Italian>
<Spanish>Promotion Tree</Spanish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_PEDIA_CATEGORY_NATIONAL_WONDERS</Tag>
<English>National Wonders</English>
<French>National Wonders</French>
<Gernam>National Wonders</Gernam>
<Italian>Meraviglie Nazionali</Italian>
<Spanish>National Wonders</Spanish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_PEDIA_CATEGORY_GREAT_WONDERS</Tag>
<English>Great Wonders</English>
<French>Great Wonders</French>
<Gernam>Great Wonders</Gernam>
<Italian>Grandi Meraviglie</Italian>
<Spanish>Great Wonders</Spanish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_PEDIA_CATEGORY_CONCEPT_NEW</Tag>
<English>BTS Concepts</English>
<French>BTS Concepts</French>
<Gernam>BTS Concepts</Gernam>
<Italian>Concetti di BTS</Italian>
<Spanish>BTS Concepts</Spanish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_UNIQUE_BUILDINGS</Tag>
<English>Unique Building</English>
<French>Unique Building</French>
<Gernam>Unique Building</Gernam>
<Italian>Edifici Unici</Italian>
<Spanish>Unique Building</Spanish>
</TEXT>
</Civ4GameText>
ruff_hi Aug 14, 2007, 10:21 AM <Gernam>Promotion Tree</Gernam>
What language is that? I am fairly sure you mean GERMAN! :lol: :rolleyes: :D
Cammagno Aug 14, 2007, 10:32 AM I did some testing and found that the problem is caused if any file is missing translations. In other words, all four translations (French, German, Italian, and Spanish) must be present for each text key. Once I filled them in for the Sevopedia file, it worked.
You are right! :goodjob:
Now I remember that the problem was this one, and that the solution was the one you have used, that is to add the missing language entries.
Strange thing that it requires all of them and not only the ones for the language that somebody is using, so it was difficult to remember.:crazyeye:
Thanks a lot :)
EmperorFool Aug 14, 2007, 10:34 AM <Gernam>Promotion Tree</Gernam>
What language is that? I am fairly sure you mean GERMAN! :lol: :rolleyes: :D
Shoot. And I even typed it that way when posting the above message and corrected it immediately. :lol: Even funnier, it solves the problem. Maybe it ignores the tag and only considers the position, given that you specify your language in the INI using a number.
Fixed in next update.
Cammagno Aug 14, 2007, 11:18 AM Shoot. And I even typed it that way when posting the above message and corrected it immediately. :lol: Even funnier, it solves the problem. Maybe it ignores the tag and only considers the position, given that you specify your language in the INI using a number.
I think so, but it's funny :lol:
BTW, I've tested it for half an hour, and everything seems to work properly also with the localized Italian version (and with Vista ;) )...
a very good mod you are doing, really :goodjob:
Ket Aug 14, 2007, 12:39 PM Ignore this....
alerum68 Aug 14, 2007, 04:15 PM @Cammango, if you're willing to help with translations of not just xml but the documentation, that would be a huge help. SourceForge has a repository for documentation too, so that should be easy to keep the structure.doc file updated. Let me know if you want on, and I'll add you to the project on SourceForge and give you full access to docs. I'll take a look into the loading problem you're experiencing. Did you try using the .exe I created, or just downloaded the zipped code?
@ruff - I was thinking and I think you're right about it being linked to level instead of experience. You may have 20 guys running around with a ton of experience points, but you haven't promoted them yet... so instead of having 20 generals, and no grunts, you'll only have a few generals, and the majority will be grunts waiting to level. How many levels are there? 5? If so it should be easy to make a basic ranking structure, even maybe later on down the road make it ethnic.
I'll be updating SourceForge today, and I believe everyone is added... I added you Ket, but not sure if it's the same Ket.;) Let me know if it is you.
Has everyone tried SourceForge and Tortoise so far? If you have some questions I can answer the intial set up and a few basic questions about operation of the site. Let me know if anything needs to be changed.
ruff_hi Aug 14, 2007, 04:23 PM @ruff - I was thinking and I think you're right about it being linked to level instead of experience. You may have 20 guys running around with a ton of experience points, but you haven't promoted them yet... so instead of having 20 generals, and no grunts, you'll only have a few generals, and the majority will be grunts waiting to level. How many levels are there? 5? If so it should be easy to make a basic ranking structure, even maybe later on down the road make it ethnic.Level 5?? No. Levels are unlimited. Usually, people promote when they have the option. Sometimes, they save a promotion so that they can speed up the healing of a unit.
http://forums.civfanatics.com/uploads/13663/druid6.JPG
alerum68 Aug 14, 2007, 05:40 PM Dear God that can't be a real screen shot! Well, I still think we should find a range that is more plausable... the person with the idea had 26 listed... I think 25 is a good range... How many people will have a unit that survives that long? Mine are usually killed off within 20 battles.
And good news on the shipping of your BTS.;) isa, we'll see you hooked within a weekend.;)
Also, besides the autologger, and getting Italian language support added, I think we're ready for 1.0. Let me know what you guys think, but I put our task for the end of v1.0 as August 20th.
Thornburgh Aug 14, 2007, 07:03 PM Glad you got CDA working; that's great.
BTW, CDA always had a bug where it would get corrupted when you had more than about 20 cities. Any chance of fixing that?
Also, CDA like the the regular DA, doesn't remember your sort when you click a city and change its production from within the DA. It would sure be nice if the sort would stay put (so you can go through and work on all your top cities one by one, for instance).
Thanks.
alerum68 Aug 14, 2007, 07:23 PM The most current version (0.11) is on the SVN. Updated the ReadMe file, and included the directory structure as well.
Cammagno, would you mind translating the ReadMe into Italian too? If we have Italian support should be complete.
Don't forget to add revision notes for what you upload... I've been bad about it myself, but don't do as I do....;)
EmperorFool Aug 14, 2007, 08:02 PM The problem with sorting in the CDA is that the table control is provided by the C++ game file (not the SDK I don't think). I don't think we get any message when the table is sorted, so there's no way to remember it when the list is repopulated. I agree that it's annoying and will see what I can find.
As for the 20+ city thing, I got it to crash after playing with it for a minute while porting it -- 1 city. I'm still not very familiar with the code, but when I get some time I'll go through it. It's pretty clean, so hopefully I can find something that looks like it would cause a crash. To be honest, crashes tend to point to something wrong with the windowing toolkit/widgets rather than the Python code.
alerum68 Aug 14, 2007, 08:40 PM IIRC, There was a Domestic Advisor MOD that did allow for the list to in the same order.
Also, the 20+ city thing should have been resolved with the release of BTS. Maybe you can steal something for it for the button? If it's crashing, then I'd say it was still a problem with BTS. I'll go crazy on a game I have, and take over some cities and see if I can get it to crash with either domestic advisor.
alerum68 Aug 14, 2007, 09:34 PM Playing around with CDA... see it has Cammagno's 30 screen list... very nice. Where is the CustomDomAdv.txt file stored now? Next thing we should look into for the CDA (In the future of course) is the ability to switch between different CDA.txt files, and look into the possibility of saving and loading from withing the CDA. Wish Taelis was still around...
And still getting that damn problem of it not always refreshing after swtiching views. Anyone else getting this?
FYI - Loaded a game with around 30 cities, and have been playing around within the screen. No crashes at all. I really think they fixed the button in BTS.
EmperorFool Aug 15, 2007, 12:23 AM After :hammer2: for a minute for missing the blatantly obvious when I tried to get the zoom-to-city button to work before, I'm pleased to say that the button works just fine. We'll see if 20+ cities causes any problems with it, but I don't see how.
Now to see about storing the sort order . . . .
Alerum, what do you mean by not refreshing when switch views? I assum you mean choosing a different "page" from the dropdown list, right? How exactly doesn't it refresh? Does it not redraw the column headings, the values, what? When I was adding new columns with incorrect formulas, the table would stop drawing at the bad column, sometimes leaving the culture level list at the bottom "behind" the table. Is that what you mean?
Oh yeah, and I didn't include any text file for CDA, so if you're seeing Commagno's pages, it's because you installed them yourself (or Commagno added them to SF.net, if so :goodjob:).
Cammagno Aug 15, 2007, 12:34 AM @Cammango, if you're willing to help with translations of not just xml but the documentation, that would be a huge help.
Sure, no problem :)
SourceForge has a repository for documentation too, so that should be easy to keep the structure.doc file updated. Let me know if you want on, and I'll add you to the project on SourceForge and give you full access to docs.
If you want to add me, I'll try to learn how to use it :crazyeye:
I'll take a look into the loading problem you're experiencing. Did you try using the .exe I created, or just downloaded the zipped code?.
Problem solved. it was that old problem for localized version caused by the lack of language tags in one (or more) of the old files...
I use the zip version, because I like to have more control on the installing process... it's one of my long-lasting phobias :lol:
Cammagno Aug 15, 2007, 12:39 AM Cammagno, would you mind translating the ReadMe into Italian too? If we have Italian support should be complete.
I'll do it in the next hour, and I'll post it here, for practical reasons. In the future, I'll try to learn how to use that repository :)
Note: sorry for the late answer to your request, but we have lag problems... when you post, here in Italy we are in the deep of the night, so some hours are required before I can answer to you :rolleyes:
Cammagno Aug 15, 2007, 12:49 AM Playing around with CDA... see it has Cammagno's 30 screen list... very nice. Where is the CustomDomAdv.txt file stored now?
:confused:
I don't see them... probably they already were in your Civ4 main folder, so the CDA use them
Next thing we should look into for the CDA (In the future of course) is the ability to switch between different CDA.txt files, and look into the possibility of saving and loading from withing the CDA. Wish Taelis was still around...
I agree with you, I wanted to release a new version of my pages optimized for BtS, and I was thinking of making two of them, one "complate version" with all the possible pages, and one "reduced version" with the more important ones.
A simple solution (I think) will be to enable the desired version of those pages (the original one, my two versions and in the future some other ones) from the BUG option screen... less elegant that your solution, but probably easier to implement. Another related important thing will be to modify the CDA so that this configuration file will go in the Documents/MyGames/... folder, instead of the CivIV installing directory.
Cammagno Aug 15, 2007, 01:15 AM Oh yeah, and I didn't include any text file for CDA, so if you're seeing Commagno's pages, it's because you installed them yourself (or Commagno added them to SF.net, if so :goodjob:).
My nick must be terrible for English-speaking people, nobody ever spell it properly, not even in the ToDoList... :sad: ... :lol: :lol: :lol:
Speaking of the CDA and the configuration file, two things may be useful: the moving of that file from the main installing direcrory to the BTS directory under Documents/MyGames/ is the first.
The second one, whitch will allow to greatly reduce the size of the columns (and so the needed pages to store all the information) is the possibility to put into the headers of that columns the icons of the buildings and resources instead of (or even before) the names (as it was done in "ModifiedSpecialDomesticAdvisor"). This also solve another problem, which is that with the name of building and resources, the size of columns must be optimized for each different language, while obviously not if we have icons.
Another useful thing for reducing the number of the pages is the possibility to scroll orizonally the table, but if the icons modification is possible, this scrolling modification will probably be much less useful.
Edit: Taelis had added to his CDA the icons for the resources, and it worked fine, but a small problem related to the "zoom button question". Probably The Lopez removed them when he made the CDA version for WL, but now that BtS seems to have solved that type of problem, I hope that the icons can came back. [you can see http://forums.civfanatics.com/showpost.php?p=3543653&postcount=47 and http://forums.civfanatics.com/showpost.php?p=3573070&postcount=51 for reference]
EmperorFool Aug 15, 2007, 02:23 AM My nick must be terrible for English-speaking people, nobody ever spell it properly, not even in the Readme... :sad: ... :lol: :lol: :lol:
:lol: And here I thought I had finally gotten it right! The toughest part is that your nick is very close to the English word "Commando" (a promotion in Civ4). Because it is so close, my fingers keep wanting to type that. Now that you pointed it out, I should get it from here on out, ok Camanche? :p
the moving of that file from the main installing direcrory to the BTS directory under Documents/MyGames/ is the first.
Agreed.
the possibility to put into the headers of that columns the icons of the buildings and resources instead of (or even before) the names (as it was done in "ModifiedSpecialDomesticAdvisor").
Doubleplusagreed. I vastly prefer the way MSDA does it. The icon headers make the columns narrower, but also a simple "x" (have it), "o" (can build it), or "-" (can't build it) for the value is much cleaner. I know the effects of the Library. If I forget, I'll open a city screen or the Sevopedia. No need to have it repeated here. I'll have to look up the values from MSDA, but that's the gist of it.
Bonus points to have it skip buildings not available to your civ.
Another useful thing for reducing the number of the pages is the possibility to scroll orizonally the table
This is possible using the same technique MSDA did: refilling the entire table. The table control in the game doesn't have a horizontal scrollbar AFAICT. Honestly, I think grouping the buildings into pages might just be better overall:
Production modifiers
Commerce (gold, science, culture, espionage) modifiers
Religious
National Wonders
World Wonders
If the first two could fit together, it'd help reduce the number of pages.
Also, let me know if I'm missing any other columns. The new ones I added are
Culture Turns - :culture:T
Great Person Turns - :gp:T
Espionage Rate - :espionage:
Espionage Defense Modifier - :espionage:%
Corporations
Buildings are added automatically from the XML files.
Cammagno Aug 15, 2007, 02:47 AM :lol: And here I thought I had finally gotten it right! The toughest part is that your nick is very close to the English word "Commando" (a promotion in Civ4). Because it is so close, my fingers keep wanting to type that. Now that you pointed it out, I should get it from here on out, ok Camanche? :p
:lol: :lol: :lol:
Doubleplusagreed. I vastly prefer the way MSDA does it. The icon headers make the columns narrower, but also a simple "x" (have it), "o" (can build it), or "-" (can't build it) for the value is much cleaner. I know the effects of the Library. If I forget, I'll open a city screen or the Sevopedia. No need to have it repeated here.
Question: are we able to add tooltips? If so, a good idea may be to add them to the icons in the headers, showing what they are (for the ones that are a bit difficoult to understand) and/or the effect of the building (for buildings and wonders).
This is possible using the same technique MSDA did: refilling the entire table. The table control in the game doesn't have a horizontal scrollbar AFAICT. Honestly, I think grouping the buildings into pages might just be better overall
I agree :)
Also, let me know if I'm missing any other columns. The new ones I added are
Culture Turns - :culture:T
Great Person Turns - :gp:T
Espionage Rate - :espionage:
Espionage Defense Modifier - :espionage:%
Corporations
Good, when I'll do my new config file (I'll wait 'till I've the icon headers, so I don't have to make them twice), I'll look for them. :)
Oh, I remember that some of the headers had the same header (icon#), so, if you haven't already did it (I only checked CDA quickly), I suggest to modify them, I think using different symbols after the icon (and also moving it before it, or viceversa) can be enough... just to decrease confusion :rolleyes:
Cammagno Aug 15, 2007, 02:59 AM I'll do it in the next hour, and I'll post it here, for practical reasons. In the future, I'll try to learn how to use that repository :)
Here it is:
http://forums.civfanatics.com/uploads/74513/BUG_Readme_ITA_.zip
Note: In the English version, the mod version in the title and in the names of the files is still 0.10 (instead of 0.11).
Oh, and I suggest to start using a standardized pattern for naming files, if it is possible... no matter which one, of course :blush:
EmperorFool Aug 15, 2007, 02:31 PM I've set up SVN and commited my latest changes, mostly around the espionage screen. The original non-compact version is now available, and I rearranged the compact list a little.
I also added two cutoff ratios that color the cost percent. For example, if your cost is >= 105%, it's yellow (red was too hard to read against the blue background), and if it's <= 95%, it's green. The cutoff values are options.
Lastly, the zoom-to-city button on the CDA works. :)
And I'll just add, WinMerge kicks major butt when merging two directory trees. :goodjob:
Edit: Removed .bak files from repository -- they're local backup files made by my editor. :)
EmperorFool Aug 15, 2007, 02:40 PM Here's my thinking on localizing the options screen.
Each Option currently is created with an English Text and Tooltip along with its unique Key and other info (Section, Name, Default, Values, Format and DirtyBit). We can create standard GameText XML files holding the translations keyed to
"TXT_BUGOPT_" + Option.Key
and
"TXT_BUGOPT_" + Option.Key + "_TOOLTIP"
just to be safe in avoiding collisions. Then, when the Option is created, it will look up the translation, replacing the English values provided if translastions exist.
In addition, the labels and tab titles on the options screen will need to be externalized in a similar way.
Since the Options modules are semi-decoupled from the Tab modules, it makes sense to have an XML file for each module. The Tab modules' XML files will pretty much contain just labels and tab titles, but I think it makes keeping them straight easiest.
Thoughts?
alerum68 Aug 15, 2007, 06:49 PM Thanks for pointing out the mistake in the ReadMe Cammagno. Fixed it, and also added the Italian version. Could you update the structure too?
File naming structure wil be:
BUGReadMe.rtf = English ReadMe File.
BUGReadMeITA.rtf = Italian ReadMe File
BUGDir.rtf = Directory Structure.
GNU Public License.rtf = GPL
I also noticed you added some formatting. Nice. I'll probably use your formatting in the English version as well. No reason for Italy to get all the hot women, and the prettier readme file.:p
Also filenames for download, I want to know if you want to include version numbers or not? If so, the format for them will be:
TheBUGModvX.XX.exe
TheBUGModvX.XX.zip
I'm not going to update the download files for the readme's yet. Figure we'll wait til 1.0. I have some tasks listed on SF that lists what I think is left before 1.0... can anyone add or remove from the tisk list?
Edit: Updated format in the ReadMe, and made some other minor changes.;) Comm, can you take a look for the Italian version?
Edit again: Also planning on getting the Docs together for the other MODs. How is it viewed to change people's documents to match our formmating, and adding a little bit of text to the end listing what changes, if any, we made to the MOD?
EmperorFool Aug 16, 2007, 05:08 AM I was able to fix some typos and assign a task to myself, but it's possible only admins can add/edit tasks not assigned to themselves.
As for the name, I think I'd drop the "The" and "v" and go with standard "x.y.z" numbering. If any number goes into two digits, that's fine -- no need for leading zeros. First release should then be "BUG Mod 1.0.zip" or "BUGMod1.0.zip", but I prefer spaces. :)
To make it easier on ourselves, I suggest including the submods' docs as-is and creating a single "what we changed" section to the main readme.
BTW, can someone try out the new Espionage Screen and let me know what ya think? I rearranged the civ panels slightly and added coloring to the cost percentage. I have one last idea to add to the screen -- coloring a mission's cost green if you can perform it. This is most handy for the passive missions as I find myself constantly looking back and forth to check if I have enough points.
Finally, I have assigned Autolog to myself but haven't started it yet (just looked over the code, and it looks like it should port pretty easily). I'm going to tackle that tomorrow. PLE is another one I forgot about that I'd like to include, but we need to really decide which pieces to include.
Oh ya, Sevopedia currently isn't optional, so I'll add a task to make it optional.
ruff_hi Aug 16, 2007, 05:40 AM I have the game. Will try and look at what we have tonight and start thinking about what mods go in the naming mod. I'll post ideas and ask for comments before starting the coding.
Edit: I have set my local repository and 'copied' down the latest version. All files have little green check marks against them. Does this mean that they are the latest version or that I have checked them out? Is there a 'how to use this stupid piece of software' section somewhere?
alerum68 Aug 16, 2007, 08:37 AM @EF - Will drop the v from the file names, but SF doesn't allow spaces when you upload to their file release system. Is fine for SVN though.
@ruff - Yes if it's green that means its up to date. If you want to download changes others have made then use SVN Checkout in the right-click menu. If you want to upload the changes you made then use the Commit command. If you click on Repo-Browser, it will open a mini-browser that allows you to upload/download just the files you want, or if you need to move, rename, or remove changes you made.
You can do your actual coding within your local repository, just do not commit changes until you clean it up, and tested slghtly. If you go to the SF webpage for them, they have detailed help files there, but those 2 commands, and the browser are all you need for basic functions.. I'll be home around 6pm this evening if you need to IM me for help with it.
NikNaks Aug 16, 2007, 08:42 AM Can I sign up to do some XML coding for you? If not, can I join as a playtester?
ruff_hi Aug 16, 2007, 09:12 AM @ruff - Yes if it's green that means its up to date. If you want to download changes others have made then use SVN Checkout in the right-click menu. If you want to upload the changes you made then use the Commit command. If you click on Repo-Browser, it will open a mini-browser that allows you to upload/download just the files you want, or if you need to move, rename, or remove changes you made.Great - that helps. It also looked like I could lock a file - assuming that this stops others from changing a file that I am currently working.
Can I sign up to do some XML coding for you? If not, can I join as a playtester?The more testers the better - as long as you give detailed feedback on errors you have found. Also feel free to give suggestions on possible improvements etc. If you find a bug, it helps if you give details on how to reproduce it, etc (save files, screen shots, etc).
ruff_hi Aug 16, 2007, 09:17 AM Finally, I have assigned Autolog to myself but haven't started it yet (just looked over the code, and it looks like it should port pretty easily). I'm going to tackle that tomorrow. PLE is another one I forgot about that I'd like to include, but we need to really decide which pieces to include.I got the logger to where I was fairly happy with it. However, there are some 'issues' with it (see the first page of my mod). One that I do remember is that unit and building builds and tech research starts currently report the number of turns to completion. These are somethings wrong. I think the issue is hammer overflow. If you click on a tech that is deep in the tree, the logger reports that you have started that tech and all of its pre-reqs and says that the turns to complete are all the same (eg all 7) but only uses the very first tech to calculate the turns to complete. I think I caused that because I picked off the turns to complete the first item - got errors if I used a different item.
I've provided my feedback on PLE previously.
NikNaks Aug 16, 2007, 09:30 AM The more testers the better - as long as you give detailed feedback on errors you have found. Also feel free to give suggestions on possible improvements etc. If you find a bug, it helps if you give details on how to reproduce it, etc (save files, screen shots, etc).I'll do just that (I post in the SF forum, right?).
ruff_hi Aug 16, 2007, 09:32 AM I'll do just that (I post in the SF forum, right?).My preference is to do all the interaction stuff here and use sourceforce (whatever its called!) to just hold / control the developing code / docs / etc. I followed up with Thunderfall re our own forum again - hopefully this will come thru this weekend.
NikNaks Aug 16, 2007, 09:43 AM Sure ok. I've noticed two bugs so far, both of which have probably been mentioned already.
The first is a weird 'stretched leaderhead' bug in the Sevopedia. I think this one has been mentioned, so I won't elaborate unless I find it hasn't.
The second, which I assume you know about considering how many interface changes you guys are making, is that the city screen appears very slowly and the scoreboard is still shown on the right hand side.
I could post screenshots if you need them, but I'm sure you know the bugs I'm talking about.
Ludwig II Aug 16, 2007, 10:00 AM Downloaded 0.11 yesterday and I have to say that it is really very promising! If you continue like this I think it will be the best interface mod ever.
Now waiting unpatiently for the implementation of PlotlistEnhancer and finishing of DA ...
Questions:
The alerts often show an unsanely high amount of cash available to an AI leader (f.e. 4400). When I talk to this leader mostly the cash has lowered considerably or is at zero. Is it possible that at the moment when the alert appears the leader has really this amount of cash and than does some trade to another AI before I can talk to him, or is it just an error? (Civ4lerts in HOFmod doesn't behave this way I think)
How is the power index in the player list calculated?
Thanks a lot for the mod!
ruff_hi Aug 16, 2007, 10:34 AM It seems that Jeckel has already created combined unit naming mod (http://forums.civfanatics.com/showthread.php?t=178107). Unfortunately, he missed the bestest ever naming method (borg names) but I think that I will start from his code and roll it into BUG. I'll look at the underlying code and see if it needs a lot of modification or a little.
EmperorFool Aug 16, 2007, 10:55 AM Wow, you guys are all early birds! :)
@NikNaks93: the Sevopedia bug is known (that thread said there's nothing to be done, but I'll see if I can find a way to fix that), but the slow-draw problem is because you're getting an error. Can you please turn on python error logging and post the error from PythonErr.log? IIRC, just one settings in the CivilizationIV.ini needs to be changed:
; Enable the logging system
LoggingEnabled = 1
If you "unhide" the python exceptions, you'll be inundated with the errors line-by-line. They're much easier to see in the file.
As for contributing, I'd love it. In case you haven't read the whole thread (woot 11 pages already!), we're going to have a separate "flavor" project since there's no way to control which XML changes get loaded from Python. BUG is the interface-only mod and the flavor project will contain new colors, flags, civs, art styles, etc.
@Alerum: BUG_Mod_x.x.x.zip? I normally hate underscores, but at least now I know why every project on SF.net uses them in their release builds. :lol:
@ruff_hi: the other major command you'll use is "SVN Update". This will bring down any changes since your last update/checkout and merge them with your local files. Also, there's no need to lock files since SVN will merge changes from multiple people (sometimes this is a PITA, so ask and I can help). Unless two people are working in CvMainInterface, this shouldn't be a problem.
Borg names FTW! :) Someone needs to create the Borg civ.
Leader: Locutus of Borg
Traits: Aggressive, Nanotech (50% chance enemy units are assimilated as drones (next-best foot soldier or maybe worker) when they lose in combat)
Starting Techs: Computers, Robotics (aww, no Angkor Wat for you!)
@Ludwig II: Thanks for the feedback! I haven't seen that one yet. Could you please PM me a saved game and I'll check it out? Are you using the latest patch (3.02?) and are you using BUG with any other mod?
NikNaks Aug 16, 2007, 11:09 AM @NikNaks93: the Sevopedia bug is known (that thread said there's nothing to be done, but I'll see if I can find a way to fix that), but the slow-draw problem is because you're getting an error. Can you please turn on python error logging and post the error from PythonErr.log? IIRC, just one settings in the CivilizationIV.ini needs to be changed:
If you "unhide" the python exceptions, you'll be inundated with the errors line-by-line. Their much easier to see in the file.Okay, I've logged the Python and found the bug. I take it you wanted me to repeat what I did then post the file?
If you did, the log is attached to this post.
Screenie:You can see the exception (plainly), but also the scoreboard on the right-hand side (which shouldn't be there).
http://img401.imageshack.us/img401/2972/bugbugzw5.png
As for contributing, I'd love it. In case you haven't read the whole thread (woot 11 pages already!), we're going to have a separate "flavor" project since there's no way to control which XML changes get loaded from Python. BUG is the interface-only mod and the flavor project will contain new colors, flags, civs, art styles, etc.:D A few questions on the matter:
Who's running that branch of the project?
How much work has been done so far?
Will it be modular?
Also, I can't access the SVN repository (need Authorisation).
Wow, you guys are all early birds!Heh. I live in the UK :p
EmperorFool Aug 16, 2007, 01:29 PM Yes, the info I needed was in the screenshot. It should have written that to disk as PythonErr.log (you posted PythonErr2.log). You got a nice dialog, so that worked. (When I enable in-game exceptions, I get a separate dialog box for each line of the error message you saw. :rolleyes: )
Looks like you have a borked release. Two files are out of sync with each other. In other words, you got new file A that requires new file B, but you have old file B. If you grab the latest from SVN, it should work. If not, then I failed to commit a file.
I assumed that the public can access SVN. Have you tried leaving username and password blank? I don't even think it asked me for them until I committed a change. Let us know if you still can't access it and I'll email SF.net. I don't see it as an option in the admin interface.
ruff_hi Aug 16, 2007, 02:04 PM Yes, the info I needed was in the screenshot. It should have written that to disk as PythonErr.log (you posted PythonErr2.log). You got a nice dialog, so that worked. (When I enable in-game exceptions, I get a separate dialog box for each line of the error message you saw. :rolleyes: )I don't know why the different python approach - sometimes I get a big dialog box (as per picture) and sometimes I get 10 little stacked dialog boxes.
NikNaks Aug 16, 2007, 02:05 PM Hmm... I only had a PythonErr2.log. Odd...
Nope, can't access the SVN. I have a SF account, but that doesn't work as authorisation.
EmperorFool Aug 16, 2007, 03:32 PM I read the docs on SVN on SF.net and it says you don't need an account for read access. It says you shouldn't even be asked for a username or password.
What error message are you getting? Are you using HTTPS? The correct URL? Tortoise or some other client?
Maybe Civ is not writing to PythonErr.log because you have it showing the exceptions in popups. Try hiding them and see if it writes the log file. Either way is fine with me, I just find it easier to cut-n-paste from the log file than using a screenshot.
NikNaks Aug 16, 2007, 03:41 PM I'm using the link from SourceForge. Whenever I use Tortoise to download the files, it asks for a Username and Password.
I can't do anything now unfortunately as I'm on a different PC. I'll check the URL in the morning to see if I'm using HTTPS by accident.
How do I turn off pop-ups?
EmperorFool Aug 16, 2007, 04:02 PM Whenever I use Tortoise to download the files, it asks for a Username and Password. . . . I'll check the URL in the morning to see if I'm using HTTPS by accident.
You want to use HTTPS, but if you copied the link from SF.net, it should be already. Double-check tough. Otherwise, could you email SF.net on this? We're going to want the public to be able to grab the latest version if they want. Also PM me your SF.net account name.
How do I turn off pop-ups?
Set the following to 1 in CivilizationIV.ini.
; Set to 1 for no python exception popups
HidePythonExceptions = 1
NikNaks Aug 16, 2007, 04:21 PM I remember copying it from SourceForge, but I'll try again in the morning.
And I'll do that in the ini as well. Anything to make it easier for you guys. ;)
What was in the log file I sent? Anything related or just irrelevant stuff?
EmperorFool Aug 16, 2007, 04:26 PM What was in the log file I sent? Anything related or just irrelevant stuff?
I haven't found the PythonErr2.log file to be useful yet. I think it just shows that modules are being loaded, but not why they fail. The why is all in PythonErr.log and the exception popups (same information).
EmperorFool Aug 16, 2007, 04:34 PM I've committed the porting of AutoLog. Note, I haven't had any chance to test it yet. Hopefully I can get to that later tonight.
If it causes you any problems, simply remove its creation from CvCustomEventManager -- comment out the lines
import autologEventManager
and
autologEventManager.autologEventManager(self)
and restart Civ.
I also had to update the INI file, so you'll lose your settings unless you copy over the [Autolog] section, replacing the existing section in your file.
alerum68 Aug 16, 2007, 06:07 PM @ruff - Another feature I use alot is Export. This will allow you to export your CustomAssets foler to the BTS folder very easily, and if there is a screw up in the file then just revert to the previous revision and re-export to test if that is working.
@EF - I'm using the original version of BTS, and waiting for a stable release before I update. I remember all the headaches I had on updating too soon in the past. And the MOD is working perfectly. Is everyone else using the 3.02 patch? If so, I think we can claim this as a BTS complete MOD instead of having to have a different version for each version of BTS. Will be testing the new revision tonight.
@nik - was looking at SF's page, and it says anyone can access it with a SVN client. Make sure that where you put your username/password is blank. If that doesn't work let me know. I do know you can access directly from the website, using https.
On PLE the additions I'd like to see are:
Button to use multiline instead of single line with scroll for units.
Button to group Units by unit type.
Button to group units horizontally by unit type.
Button to select all units on tile.
Button to select units of same type in tile.
Unit action indicator. (If it's moved, forted, etc...)
Promotion Indicator
Upgrade Indicator
Mouse-Over tool tips.
These are the ones I feel are the most important. I don't think we need all the filters, even though they were a nice little touch, and some of the promo/upgrade stuff is over kill.
Anyone else want to add or remove from this list?
And has anyone seen Ket lately? He seems MIA.
ruff_hi Aug 16, 2007, 06:22 PM On PLE the additions I'd like to see are:
My comments on these items:
Button to use multiline instead of single line with scroll for units. - already in native BtS
Button to group Units by unit type. - if we do this we will need to totally re-write the unit selection code, do we want to do this?
Button to group units horizontally by unit type. - if we do this we will need to totally re-write the unit selection code, do we want to do this?
Button to select all units on tile. - already in native Civ4 (hold down the ctrl key and click on a unit)
Button to select units of same type in tile. - already in native Civ4 (hold down the alt key and click on a unit)
Unit action indicator. (If it's moved, forted, etc...) - agreed, see my mod for artwork and code
Promotion Indicator - agreed, see my mod for artwork and code
Upgrade Indicator - hmmn - maybe, not so fussed either way
Mouse-Over tool tips. - what extra do you get?
I liked the ability to select all injured units - can we add a keyboard combo and mouse click to do this? Say, hold down Ctrl-Alt and click on an injured unit. The alternative is some quick way to tell which units are injured. Sometimes the health bar is so close to fully healed I cannot tell if it is full-strength or slightly injured.
alerum68 Aug 16, 2007, 07:15 PM FYI, The new revision (42) is working fine on new games, but doesn't want to load previous saves.
Ket Aug 16, 2007, 07:20 PM I'm getting a major error in version .10 and version .11
Traceback (most recent call last):
File "CvScreensInterface", line 739, in forceScreenRedraw
File "CvMainInterface", line 800, in redraw
File "CvMainInterface", line 1806, in updateGameDataStrings
File "CvMainInterface", line 1925, in updateTimeText
RuntimeError: unidentifiable C++ exception
ERR: Python function forceScreenRedraw failed, module CvScreensInterface
Traceback (most recent call last):
EmperorFool Aug 16, 2007, 07:33 PM BtS already has ctrl-H to select all injured units. The problem for me is -- and maybe I'm just overly micro-managing my stacks -- is that I want to have units move on once they have healed fully. If 2 will heal in 1 turn and 1 will heal in 3 turns, I don't want all three units sitting stationary for 3 turns. PLE doesn't address this concern, but it could by having each click of the "select injured units" progressively select units that will heal in 1 turn, 2 turns, 3 turns, etc. Okay, too much work, so drop that idea. :)
I've only used Ruff's mod, so I haven't seen the real PLE in action. I have the BtS version and will check it out later tonight. However, the readme is pretty expansive.
I've added my level of desire after each entry in the ToC, partially based on how much work I think it will be. On a certain level, extracting a portion might actually be harder than including the whole thing.
1.) Enhanced unit buttons in the plot list - high
2.) Mouse over info pane of the unit buttons in the plot list - medium
3.) Unit/group selection in the plot list - nothing (fixed in BtS)
4.) Plot list display modes - low (I like the separate line per unit mode)
5.) Plot list unit filters - medium
6.) Plot list grouping modes - low (the group sort sounds cool)
7.) Plot list uprade View - low
8.) Plot list promotion View - low
9.) Move highlighter - low because current version has a bug and it might be slowThe upgrade and promotion views sound interesting but don't add that much to BtS.
Each unit button provides you now with some additional information. This makes it easier to determine what status a single unit has, without selecting it first. Following information is implemented :
a.) Health Indicator :
the colored spot in the upper left corner is displayed in a darker color, as soon as the unit is wounded. This feature can be switched off in the ini-file.
b.) Health Bar :
At the top of each unit button, a vertical stacked bar is displayed. This stacked bar indicates the remaining health points of the unit in percent. The colors of that bar can be configured in the ini-file, as well as the display itself. The default colors are green and red.
c.) Move Bar :
At the top of each unit button, below the health bar, another vertical stacked bar is displayed. This indicates the remaining movement points of the unit in percent. The colors of that bar can be configured in the ini-file, as well as the display itself. The default colors are blue and yellow.
d.) Mission Indicator :
in the lower right corner, the units actual mission is disaplyed. The following mission types are indicated :
FORT (blue) -> unit is fortified
PAT (light blue) -> unit is at air patrol
GOTO (light green) -> unit has a goto command.
EXP (dark green) -> unit is at exploring mission
HEAL (light red) -> unit is in healing mode
SEN (yellow) -> unit is in sentry mode
SKIP (light gray) -> unit is skipped in current turn
AUT-B (orange) -> worker is automized
AUT-C (orange) -> worker is automized for a city
AUT-N (orange) -> worker is automized for building a trade network
The display of this mission indicator can be switched off by ini file.
e.) Promotion Indicator :
A unit which can be promoted, is displayed with a light blue frame in the plot list. This indicator can be switched on/off in the ini file.
f.) Upgrade Indicator :
A unit which can be upgraded to any other unit, will get a small orange up-arrow in the lower left corner of its unit button. The arrow is displayed regardless if you have the money for the upgrade or not. This indicator can be switched on/off in the ini file.
When you move the mouse over any unit button in the plot list, an info pane is displayed on the left side of the screen. This Info pane has been been modified in the following places :
a.) Remaining movement points :
The remaining movement points of the unit are displayed as a floating value with 1 decimal
b.) Strength + Turns-To-Heal
The current unit strenght is displayed as a floating value with 1 decimal. In case the unit is wounded a third value is displayed in brackets. This number indicates the number of rounds the units need to heal completly under the current circumstances. This circumstances takes consideration of city building (like hospital), the unit's promotion (Medic, or any other promotion with self heal abailites) the promotions of units on the same or adjacent tiles, the territory the unit is on.
c.) Specialties
The special abilites a unit gains due to a promotion are displayed in a different color than the specials it gains due to its unit type. The color can be modified in the ini file, the default color is light gray.
d.) Experiance
The unit's experience points are displayed in the following format : <curr-exp>/<needed-exp>. Where <curr-exp> is the units current experience points and <needed-exp> is the units needed experience points to get the next higher level. Both values are only displayed if the unit has an experience value > 0.
e.) Level
The unit's level is displayed in the following format. : <curr-lev>/<possible-lev>. Where <curr-lev> is the unit's actual level and <possible-lev> is the level the unit could have due to its expereience points. In other words : the first value shows the number of promotions the unit already has, the second value shows the number of promotion the unit could have. Both values are displayed, as soon as one of the values is > 0.
Because this info pane has to be reprogrammed completely new, the layout differs slighly from the built-in one. There may also be soe differences in the infromation I haven't documented herer. If so, please contact me.
The selection in the plot list has also been improved by eliminating some bugs of the Civ4 standard verion :
a.) Civ4 bug : when selecting a unit on the very right the plot list is rebuild so that the selected unit is at position 10 in the plot list -> fixed
b.) Civ4 bug : under some special circumstances the scroll arrows did disappear -> fixed
c.) Civ4 bug : when selecting a unit with Alt-key pressed, all units should be selected. Because it is not possible to put units with different domain type into one group, always the first domain in the plot list is selected. -> fixed. All units with the same domain type as the selected unit will be put together into a group.
The rest of the selection method is pretty much the same as before :
- Shift : to add single units or their groups to the selected group
- Ctrl : to select all units of the same type
- Alt : to select all units of the same domain type.
Remark:
The main problem of the complete mod was to modify the unit selection in the plot list. The existing API function CyInterface.selectUnit() and CyInterface.selectGroup() are quite a mess. You have no chance to create a selection group without the function CyInterface.selectGroup(). The problem with that is, that this function doesn't have a any parameter for a unit. It directly checks the existing units on the plot and takes it decisions, so that you don't have any influence to it. Because I want that the selection groups doesn't select any unit which is not disaplyed due to one of the display filter, I had to make several crazy program climbs (you can watch them in the selectGroup() function in the PLEMainInterface.py). Main method to avoid those things is to temporarily move away (with CyUnit.setXY()) those units I don't want to be added to the group, create the group witht CyInterface.selectGroup() and then move back those "parked" units.
Due to that changes it might be possible, that there are some error in I havn't catched so far. Also, the behavior of the complete selection functionality could be slightly different to that you know. If you found any problems, just inform me, please.
To improve the display of a large ampunt of units on one plot, I added some disaply modes :
a.) Standard mode :
The units are displayed in one vertical line with scroll buttons on the right side. As already mentioned in chapter 3., the bothering bugs with the display have been eliminated.
b.) Multiline mode :
All units are disaplyed in several lines, so that there is no scrolling needed. The display starts in the lower left corner. Using this view, no scroll buttons are needed, except you have so much units on one plot, that the screen height is not enough to display them in multi line view. In this case, vertical scroll buttons (up and down arrow) are disaplyed.
c.) Vertical stacks :
Dependant on the grouping mode (see chapter 6.) some units are disaplyed in vertical stacks. You can scroll left an right with the scroll buttons. In the unit type grouping mode, units of the same type are displayed in a vertical stack, in the selection group grouping mode selection groups are displayed in a vertical stack.
d.) Horizontal stacks :
Pretty much the same as the vertical stacks with the only difference, that the stacks are horizontal oriented. You may now ask what that is for. Two reasons. First: because of the different screen ratios this option may be better than the vertical stacks (you have smaller stacks, but more lines). Second : it was fun to do it ;)
There are several unit filters added. You find them next to the display mode buttons. The following filters have been implemented (the button in brackets) :
a.) Wounded untis (red cross)
b.) Healthy units (green cross)
c.) Domain filter air units (plane)
d.) Domain filter sea units (ship)
e.) Domain filter land units (car)
f.) Domestic units (house)
g.) combat units (tank)
h.) player units (green flag)
i.) foreign units (red flag)
An active filter is displayed with a red frame. By default all filters are inactive (-> no frame). Also all filters are EXCLUSIVE filters. That means, if you press a filter button the belonging units are NOT displayed.
There are two groping modes implemented. The grouping modes have influence in the order the units are disaplyed. If a stack display mode (vertical or horizontal) is selected it also have influene, to what is displayed in a stack :
a.) Unit type grouping (the button with the 3 squares which are behind each other) default grouping mode) :
In simple words : the units are sorted as in Civ4 Standard. When the display mode is a stack mode, then units of the same type are put into one stack.
In more complex words :
The grouping is done by unit type. That means that the untis are sorted by the following order :
- Player. Order : player units, then all other players in the order of their player id.
- Domain. Order : sea, air, land
- Combat strength. Descending order(-> means strongest first)
- Unit type. Order by unit type id, descending
- Unit level. Order descending.
- Unit experience. Order descending.
- Unit ID. Order ascending. This is just added to get a reproducable sorting in case anything else isn't unique.
ATTENTION :
There is one exception for the sorting : cargo'ed units. As soon as a unit is cargo of another unit, the cargo unit is always displayed BEHIND its transporting unit. Within the cargo units, the sorting is as mentioned above. This is as in Civ4 standard, but has some effects to the stacked views modes : cargo units are displayed together with their tranport unit in the same stack, where the cargo units are on top off their transport unit.
b.) Selection group grouping (the button with the square and the triangle in brackets) :
In simple words : the units which are in the same selection group are displayed together. Also the selection groups are displayed right most wihtin their domain. When the display mode is a stack mode, then units within the same selection group are put into one stack.
In more complex words :
The above grouping is slightly changed :
- Player. Order : player units first, then all other players in the order of their player id.
- Domain. Order by sea, air, land
- Selection group : Ascending order by their internal group id.
- Combat strength. Descending order (-> means strongest first)
- Unit type. Order by unit type id, descending
- Unit level. Order descending.
- Unit experience. Order descending.
- Unit ID. Order ascending. This is just added to get a reproducable sorting in case anything else isn't unique.
Again, cargo units are displayed together with their transport units. This view is ideal to create complex selection groups.
Tip : try the "Group" grouping and create selection group by selecting single units holding the shift key down. Looks funny ;)
The upgrade view (button with the up-arrow) can be used, to get a clear overview about the units which can be upgraded. It also provides a simple method to upgrade a bunch of units without selecting each unit first.
When you press the button only units which can be upgraded are displayed in one line. If you also have a stack view active (important!!!), above each unit its possible upgrades are dispalyed. The upgrade buttons are disable (displayed, but you can't push them) you don't have enough money to perform the upgrade.
By pressing one of those upgrade buttons, the belonging unit is upgraded to that type. Usually that results in that the unit disappears from the view, because in ost cases only one upgrade is possible. If you press the ctrl-key when pressing an upgrade button all units on that plot are upgraded, when pressing the alt-key all player units are upgraded. If you run out of money during those multi upgrades, it simply stops doing it (as it is now in Civ4).
By moving the mouse over an upgrade button, a special info pane is displayed on the left side of the screen. It provides you with the unit type related info of the upgrade and with three values in brackets, seperated by a slash. The three values have the following meaning:
- costs to upgrade one unit
- costs to upgrade all units on the plot (hold down ctrl-key)
- costs to upgrade all play units (hold down alt-key)
If one of the values exceeds your current budget, it is displayed in red, otherwise in green. The colors can be modified in the ini-file. Of course, those multi-upgrades only upgrades the units of the same unit type. eg. all bombers or all german tanks.
This view (button with the "star" on it) is very similar to the upgrade view. It displayes only units which can be promoted. If a stack view is active, above each unit its possible promotions are displayed. By pressing such a promotion button, the promotion is performed and the display is refreshed. This could result in that the unit disappears from list because there are no more promotions possible, or that new promotions are displayed if the experience points of the units does allow that.
You can use the "level" in the unit info pane to check how much promotions are possible. (see chapter 2.)
When you hold down the alt-key, hover the mouse over a plot list button, the plots the unit can reach with its remaining movement points are highlighted. For that I implemented my Move Highlighter mod. Remark : the standard version of the move highlighter which highlights the move area when you select a unit is NOT implemented. THis can be done seperatly. Refer to the related thread for that, please.
Ket Aug 16, 2007, 07:47 PM Further information on this error I'm having, its due to custom time and dates being used. So if this goes into custom assets any time they run a mod that alters the time and date it will blow up sky high. It seems to have "something" to do with altering the game speed info lines. In
CIV4GameSpeedInfo.xml
EmperorFool Aug 16, 2007, 07:54 PM I'm getting a major error in version .10 and version .11:
File "CvMainInterface", line 1925, in updateTimeText
Line 1925 of CvMainInterface.py is
szDateGA = unicode(CyGameTextMgr().getInterfaceTimeStr(ePlaye r))
Are you using a custom DLL? That's the only reason I can think of for a C++ function to be missing. This code is straight out of the original game for the most part (the C++ call at least).
Can you grab the latest version from SVN using Tortoise or another SVN client. Setting it up was actually quite easy if you haven't done so.
Install TortoiseSVN (Google it)
Restart PC
Create a directory somewhere
Right click directory, select "SVN Checkout..."
Enter URL https://civ4bug.svn.sourceforge.net/svnroot/civ4bug/BUG Mod
Click OK
This will net you an INI file, CustomAssets folder and Documentation folder in that directory. Just copy the first two to your Civ4-BtS folder and start BtS.
EmperorFool Aug 16, 2007, 07:56 PM Alerum, were you running it as a mod? I don't think any included mods do any pickling (saving data into the saved game file). What exactly happens?
Ket, those mods must modify CvMainInterface to get it to handle their custom time format. Our mod would need those same changes. Are you running the stock BUG or a modified version? I just want to make sure the line (1925) in your copy is the one I posted.
ruff_hi Aug 16, 2007, 08:00 PM BtS already has ctrl-H to select all injured units. The problem for me is -- and maybe I'm just overly micro-managing my stacks -- is that I want to have units move on once they have healed fully.I'll need to test this but if you select all the injured units and tell them to heal, then once they are healed, they become active and ask for orders. They don't wait for the most injured to heal.
Ket Aug 16, 2007, 08:02 PM Ok I've debugged it to the including of a custom civ4gamespeed.xml file.
If I alter the game speed it will blow up sky high, if I remove that .xml file it is fine. It has to be some conversion (unicode?????) thats not working well with it.
In other words the line is in fact good, its just when you modify the xml it will not like you very much.
<GameSpeedInfo>
<Type>GAMESPEED_BALANCE</Type>
<Description>TXT_KEY_GAMESPEED_BALANCE</Description>
<Help>TXT_KEY_GAMESPEED_BALANCE_HELP</Help>
<iGrowthPercent>150</iGrowthPercent>
<iTrainPercent>100</iTrainPercent>
<iConstructPercent>150</iConstructPercent>
<iCreatePercent>150</iCreatePercent>
<iResearchPercent>160</iResearchPercent>
<iBuildPercent>160</iBuildPercent>
<iImprovementPercent>160</iImprovementPercent>
<iGreatPeoplePercent>125</iGreatPeoplePercent>
<iCulturePercent>150</iCulturePercent>
<iAnarchyPercent>150</iAnarchyPercent>
<iBarbPercent>160</iBarbPercent>
<iFeatureProductionPercent>150</iFeatureProductionPercent>
<iUnitDiscoverPercent>125</iUnitDiscoverPercent>
<iUnitHurryPercent>125</iUnitHurryPercent>
<iUnitTradePercent>125</iUnitTradePercent>
<iUnitGreatWorkPercent>125</iUnitGreatWorkPercent>
<iGoldenAgePercent>150</iGoldenAgePercent>
<iHurryPercent>80</iHurryPercent>
<iHurryConscriptAngerPercent>110</iHurryConscriptAngerPercent>
<iInflationPercent>30</iInflationPercent>
<iInflationOffset>-125</iInflationOffset>
<iVictoryDelayPercent>150</iVictoryDelayPercent>
<GameTurnInfos>
<GameTurnInfo>
<iMonthIncrement>250</iMonthIncrement>
<iTurnsPerIncrement>24</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>29</iMonthIncrement>
<iTurnsPerIncrement>103</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>18</iMonthIncrement>
<iTurnsPerIncrement>90</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>13</iMonthIncrement>
<iTurnsPerIncrement>35</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>5</iMonthIncrement>
<iTurnsPerIncrement>87</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>3</iMonthIncrement>
<iTurnsPerIncrement>92</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>2</iMonthIncrement>
<iTurnsPerIncrement>90</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>1</iMonthIncrement>
<iTurnsPerIncrement>225</iTurnsPerIncrement>
</GameTurnInfo>
</GameTurnInfos>
</GameSpeedInfo>
Ket Aug 16, 2007, 08:05 PM Also on the Tortose SVN I'm getting a propfind error...
EmperorFool Aug 16, 2007, 08:06 PM if you select all the injured units and tell them to heal, then once they are healed, they become active and ask for orders. They don't wait for the most injured to heal.
Wow, if that's the case then bravo! My memory of how it worked in Warlords is that to keep them from moving on with the rest of the stack, you need to remove them from the stack's group by creating a group out of them. This then forces them to wait until all are healed.
I never tried a new method with BtS, and I could still have been wrong about Warlords. It's a PITA because I end up telling each unit to heal separately, and as you pointed out it's tough to tell the 90% from the 100% units by the little green bars alone.
EmperorFool Aug 16, 2007, 08:09 PM Ket, is the propfind error when you access SVN, or are you getting that error in Civ4?
As for the gamespeedinfo.xml file, what exactly are you changing that causes the problem? Any change (like to one of the percentages) or only when you change the stuff about months? And does that new XML file work with the original game?
alerum68 Aug 16, 2007, 08:10 PM I was running it from the CA directory. I redid my Update and it downloaded files for rev42. It could be that it didn't update completely, and I was running an incomplete version. It's working now for me. Will test it tonight and see if I run into any more problems, and will post it tonight. I started to added some XML in a directory on SVN called Flavor. I'm going to upload just the changed files, and we can batch them together with the Mod when we release the Flavor version. I'm thinking we can probably get Standard and Flavor together in the same time span, and release them both together.
Also, another option for unit healing would be to select and heal each unit individually, even if the user selects all units that need to be healed.
Edit: I take that back, it's still not loading. EF, I wonder if it's because you upgraded to 3.02
Ket Aug 16, 2007, 08:13 PM Hmmm...
Alerum, I've been working on the flavor stuff for a while, and have a release ready to go, how do we want to handle managing this part of it?
EmperorFool Aug 16, 2007, 08:25 PM I've been running 3.02 all along -- it installed when I installed BtS and upgraded Warlords without asking. :(
I did a reorg of the Python directories -- perhaps that didn't go so well when doing an update. It should have removed DrEJLib and UnitUpgradeUtils and move all those files into a new directory called "Contrib". I updated the BUGDir.rtf file, so make sure it matches your filesystem.
I'm at 42 as well.
I just opened an old game (pre mod start) with this version. If that's not working still, I'd backup your CA and do a fresh checkout (make sure to grab the new INI).
Ket Aug 16, 2007, 08:48 PM I'm running 3.03? Whatever the last update was.
Those changes work fine without the BUG mod. I guess something to test is to take one of the scenarios that modify the date and time and see if it runs under BUG
Ket Aug 16, 2007, 08:49 PM The PROFIND error is a SVN error under Tortose using the directions you gave me before.
ruff_hi Aug 16, 2007, 09:11 PM I have v42 on my pc too. The customassets directory is under my 'repository' directory and BtS is obviously not seeing it. Can I just pick it up and copy it to the customasset directory (including the .svn directories?)?
What is winmerge - I use beyondcompare - are they similar? Edit: YES - just looked at the winmerge homesite and they look very similar. The graphics on winmerge are a bit chunky but at least it is free.
EmperorFool Aug 16, 2007, 09:11 PM The PROFIND error is a SVN error under Tortose using the directions you gave me before.
Bummer. I wrote those directions as I executed them on my machine. I installed Tortoise after downloading it a few days ago (latest version). Do you have an older version? Oh wait, aren't you running Vista? I wonder if Tortoise plays nice with it since it's a shell extension.
Here's a ZIP of the latest revision (42): BUG Mod rev 42.zip (http://forums.civfanatics.com/uploads/111657/BUG_Mod_rev_42.zip)
EmperorFool Aug 16, 2007, 09:18 PM Can I just pick it up and copy it to the customasset directory (including the .svn directories?)?
Yes. In fact, I did the SVN checkout into "My Games\Civ4\BtS" after deleting the existing CustomAssets directory (since it was just a bunch of empty dirs) and have been working from that. This won't work if you have other stuff in CA or aren't comfortable with SVN. I like to live on the wild side, though. :cool: The PITA is that doing update from the root BtS directory shows you a bunch of files that aren't part of BUG, so I may switch how I do this. Okay, TMI. :rolleyes:
What is winmerge - I use beyondcompare - are they similar?
Probably. It does file and directory tree side-by-side comparison and merging. I like that it has shell integration so you can select two files/dirs, right-click, and hit "WinMerge". This is 2007, so that's probably not as exciting as I made it out to be.
"EF needs to get out more."
Hey, I heard that!
FeedBack Aug 16, 2007, 09:18 PM Hello, guys.
I told you I'd be testing around when you merged the autologger. So, here we are! ;)
Actually, I think we may have a problem here. I downloaded the Revision 41 about 5 hours ago. I didn't see a comment here about it, so I'll post anyway.
The options screen is not exiting. When I hit the exit button nothing happens.
I got the PythonErr file here:
Traceback (most recent call last):
File "CvAppInterface", line 56, in onLoad
File "CvEventInterface", line 30, in onEvent
File "CvCustomEventManager", line 126, in handleEvent
File "CvCustomEventManager", line 171, in _handleOnLoadEvent
File "CvCustomEventManager", line 137, in _handleDefaultEvent
File "autologEventManager", line 234, in onLoadGame
File "autologEventManager", line 52, in StartLogger
File "autolog", line 50, in setLogFileName
File "BugAutologOptions", line 190, in setFileName
AttributeError: 'BugAutologOptions' object has no attribute 'setString'
ERR: Python function onLoad failed, module CvAppInterface
If you guys have already covered it, sorry for the old bug. Else, here's a new bug. :)
Steps to reproduce:
Load the default BugMod.ini into Custom Assets
Load a game
Look into the Log Directory. Bingo! :)
Good job so far. :goodjob:
ruff_hi Aug 16, 2007, 09:33 PM Probably. It does file and directory tree side-by-side comparison and merging. I like that it has shell integration so you can select two files/dirs, right-click, and hit "WinMerge". This is 2007, so that's probably not as exciting as I made it out to be.We could get into a flame war about which is better ... beyond compare does what you mentioned ... it also enables you to right click a dir / file, select 'select left side to compare', go somewhere else and right click dir / file and select 'compare to xxx'
http://www.scootersoftware.com/en/shot7w.png
|
|