Requests for new components (and features)

I would like the option of simply reducing the number of AIs that show up on the scoreboard.

The current SVN version (you can download the nightly snapshot from the BUG Mod home) has this feature in it. We will be releasing 3.6 very soon if you don't want to install via a ZIP file.

Plus you can have options like displaying civs that you can see their research, civs on the same continent, or even specifically adding or deleting civs.

A common request is a scrolling scoreboard which I'll be adding sometime soon. I am a big fan of filters in interfaces, and these are some good ideas. I doubt I'll make it so you can pick and choose the civs to display as that's a lot of work. I'm not ruling it out, though. :)

Can someone point me to where I can find a sort of legend of features added and what they mean (esp if they're explained with screenshots).

You can open the help file installed with BUG by hitting ALT + CTRL + F1 or opening the BUG Options screen (ALT + CTRL + O) and clicking the BUG Help button. It currently lacks screenshots, but it does at least describe all the features and how to use them.

For example, I was having the hard time figuring out what that orange fist(s) meant on the scoreboard.

That actually means the AI is refusing to go to war with any other civ because they are WHEOOH (We Have Enough On Our Hands). It either means they are in a war or are planning a war soon. Be mindful when refusing demands from them. ;)

Once again thanks for the great work. I really like how a lot of the strategy guides are in the civopedia.

Thanks for the compliments. BUG owes a lot of its goodness to the community of modders, so it's good to recognize all the forum posters as well. :D :goodjob:
 
Hi BUG Gurus! I've looked into the problems one encounters when trying to change game speed and difficulty for a 4000 BC save via WB (i.e. civs don't get their proper starting techs and units, especially the barbs) and came up with a few changes in CvWBDesc.py. I'm not sure whether this issue falls into the scope that the great BUG-mod deals with, but I think it's somewhat along the same lines, i.e. increasing convenience + preventing bugs. And it's Python -- so if you are interested, any feedback from you Python experts would be greatly appreciated. Thread is here.
 
@DanF5771 - This seems to be quite in the spirit of BUG.

The game automatically creates a new WB-file called WBQuickSave.CivBeyondSwordWBSave for the 1st game after a fresh start of Civ.

Is there a way to force it to save a new template from Python? It would be nice to save it every time a 4000BC game is loaded so you don't have to restart Civ.

I'll throw this into my local setup and check it out. Thanks! :goodjob:
 
What about my suggestion to put the tech tree also into sevopedia? is that possible?
 
What about my suggestion to put the tech tree also into sevopedia? is that possible?

Sure, take a look at how the Promotion and Upgrade trees are done. If you create a Sevo page for it, I'd be happy to include it in BUG. :D
 
What use would be a tech tree in the pedia when we have F6?

It would assist modders who are adding techs as they could view the tree without starting/loading a game.

For quick-testing BUG, I have a shortcut to a test game 50 turns in that I can launch from Eclipse after exporting files to CustomAssets.
 
I'm not sure if there is a way to do this, but it has always bugged me that the game alerts you to enemy units encroaching on your territory, but not if they're encroaching on a healing unit. This requires you to remember to check on stationary, healing units every turn to see if you have to move them out of danger, and of course it's terribly easy to forget. It would be nice if you got an alert just as you do if an enemy unit approaches your borders.

I've been annoyed by this too. I always have to heal my units with the space bar for the first 100 turns or so, to make sure they don't become bear chow. The ideal solution is to have the "Rest Until Healed" command also include the "Sentry" command's logic of waking up when an enemy unit is nearby.

Unfortunately for us, that logic is at line 127 of CvSelectionGroup.cpp in the DLL.
 
I would find it very useful to be able to preview the result of civic changes (mainly the turns remaining for the technology being researched and the gold/turn). I realize that a lot of things can be changed afterward that would modify things(e.g. adding/removing specialists, etc), but it would be nice to know how beneficial/harmful a new civic might be. What I had in mind was something similar to what the game currently does for how much more or less the upkeep will be for the new potential civic.
 
. . . Unfortunately for us, that logic is at line 127 of CvSelectionGroup.cpp in the DLL.

If you can code the change, I'll include it in the BUG DLL. :)

I would find it very useful to be able to preview the result of civic changes (mainly the turns remaining for the technology being researched and the gold/turn). . . . What I had in mind was something similar to what the game currently does for how much more or less the upkeep will be for the new potential civic.

That would be awesome, yes. We've discussed how to do it a few times in this thread but never came to a solid solution. So far my interim solution has been to add features to BUG that will help you make that determination.
 
Thanks a lot for the enlightenment, EF!!!
Is there a way to force it to save a new template from Python? It would be nice to save it every time a 4000BC game is loaded so you don't have to restart Civ.
Unfortunately I couldn't find it yet, will keep on digging....
 
If you can code the change, I'll include it in the BUG DLL. :)

Piece of cake, once I actually opened the right file.

CvSelectionGroup.cpp:178
Code:
			((eActivityType == ACTIVITY_HEAL) && (AI_isControlled() || !bHurt)) ||
changes to
Code:
			((eActivityType == ACTIVITY_HEAL) && (AI_isControlled() || !bHurt || sentryAlert())) ||
 
Hi again ;)
I was just looking into the AP-in-hibernation problem and thought it might be useful to have the F8-Members screen display the values of getVoteTimer and getSecretaryGeneralTimer (added 2 more rows with hard coded text to the members table):
Spoiler :
Code:
[SIZE="3"]iRow = screen.appendTableRow(szTable)
iVoteTimer = gc.getGame().getVoteTimer(iActiveVote)		
sString = u"<font=3b>" + "Turns until next Vote: %i" % iVoteTimer + "</font> "
screen.setTableText(szTable, 0, iRow, sString, "", WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_LEFT_JUSTIFY)

iRow = screen.appendTableRow(szTable)
iSecGenTimer = gc.getGame().getSecretaryGeneralTimer(iActiveVote)
sString = u"<font=3b>" + "Votes until next Election: %i" % iSecGenTimer + "</font> "
screen.setTableText(szTable, 0, iRow, sString, "", WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_LEFT_JUSTIFY)	

iRow = screen.appendTableRow(szTable)[/SIZE]

Or do you consider this information spoilerish / exploitable?
I also ran into a problem concerning the number of votes displayed for each member. In the screenshot you can see a certain DanF with 24 votes and Justinian with 12 votes (total 36) and the number of votes required for a diplomatic victory surprises with a value of 54. The AP was built by Justinian but I got elected as Resident. Switching to Free Religion made me lose that position together wit the Full Member status (with double votes). Switching back to OR and Christianity did bring me back to Full Member status but did nothing to my displayed number of votes. Also Justinian's votes are currently not doubled in spite of remaining in Christianity all the time. So we actually have 48 / 24 votes (total 72) indicating that the 54 required votes are correct (these numbers 54/72 are also given in the F8-Resolutions screen). The problem seems to be, that the AP is currently without a valid Resident (gc.getGame().getSecretaryGeneral(1) = -1) which will make getVoteAvailable(self) return -1 for iRelVoteIdx, so that pPlayer.getVotes(iVoteIdx, iActiveVote) will not take the doubling for full members into account.
Spoiler :
Code:
[SIZE="3"]def getVoteAvailable(self):

	iRelVote = -1
	iRelVoteIdx = -1
	iUNVote = -1
	iUNVoteIdx = -1

	for i in range(gc.getNumVoteSourceInfos()):
		if gc.getGame().isDiploVote(i):
			if (gc.getGame().getVoteSourceReligion(i) != -1):
				iRelVote = i
			else:
				iUNVote = i

		if (gc.getGame().canHaveSecretaryGeneral(i)
		[COLOR="Red"]and gc.getGame().getSecretaryGeneral(i) != -1):[/COLOR]
			for j in range(gc.getNumVoteInfos()):
				if gc.getVoteInfo(j).isVoteSourceType(i):
					if gc.getVoteInfo(j).isSecretaryGeneral():
						if (gc.getGame().getVoteSourceReligion(i) != -1):
							iRelVoteIdx = j
						else:
							iUNVoteIdx = j

						break
[/SIZE]
I don't know whether the gc.getGame().getSecretaryGeneral(i) != -1 condition is really necessary here, when omitted the numbers of votes are correct.
Still the AP is quite a mystery to me...
To shed some more light on this subject I'd love if the F8-Resolutions screen could display the individual resolutions color coded according to their validity in a certain situation in a game. But I found that stuff like CvGame::canDoResolution or CvGame::isValidVoteSelection isn't exposed to Python so I guess chances are not too good to accomplish something like that. :dunno:

I like this idea. How is it spoilerish? It's information that we know. I never read the xml until recently, but I intuitively grasped from experience that an AP vote came up every 30 turns (on Marathon), and that the Resident vote came up every 150 turns. Hence, I started pencilling notes for the next election based on game turns until I learned how to start setting up alarms.
Having to go through the tedium of pencilling or setting up alarms is annoying. I'd rather just look it up on the info screen. Heck, putting it into BUG would probably cause me to start missing it, since I'd stop setting up alarms to remind me!

Just bcz the feature seems mysterious to ppl who haven't been anal enough to quantify and prepare for it doesn't make it "spoilerish". This feature is certainly a lot less hidden than finding out where my capital city ranks globally in base production (information which is not directly or even indrectly beneath my fingertips, yet easily accesible with BUG).

I vote to include it. At least to include it into the Bug Naughty version.
 
In certain other games that I've played, one cool feature was that I could see how many units were lost to certain civs (as opposed to just a running total). This information was fantastic for me, bcz it quantified the severity of certain wars and created a sense of historical sentimentality.

I'd like to see an info screen that gave a breakdown of losses (mine and thers) against each individual civ. And then further, I'd like to see those losses translated into hammers and then summed. For example, if I see that i've lost 34 privateers, I'd like to see 34 multiplied to the hammer cost for a privateer and then summed with the hammer cost for frigates lost in the war. In this manner, I can see who's winning the "hammer war," and thus have an objective viewpoint for whether I'm winning or not.
 
I missed that post by DanF when it came up originally, and I agree that it should be included in BUG. This is game-speed-dependent only information that is fixed for the game. Given how our UG discussion is going, I think even Ruff would agree now that it's safe for BUG to show the vote timings.

I'd like to see an info screen that gave a breakdown of losses (mine and thers) against each individual civ. And then further, I'd like to see those losses translated into hammers and then summed.

That's a great idea. Furthermore, I'd like a screen that detailed all of the known wars, who was involved, and when. It couldn't show the losses of course, but the other information is public as long as you know the civs involved.
 
What we really need is a better city governor. One that could control the auto selection of Specialists. Something that would permit you to emphasize certain specialists as well as de-emphasize (in other words, do not use) certain specialists. Hence, in my Ox city I could emphasize scientists, in my IW city engineers, in my WS city merchants, etc... And also, I could say no to Artists or spies or priests in certain cities (or say no to any other specialist but scientists in my Ox city).
 
This thought popped into my head during my current game and I don't think it would be too difficult to implement (at least not for you all). Is it possible to display the amount of gold a particular civ has when you scroll over them on the scoreboard and the number of turns left in their Golden Age (you could also maybe even include the gold/turn).

Additionally, would it be possible to better track the GP of other civs in the log. So that I could check if another civ has a GE before trading him a tech that I'm currently building a wonder with.
 
What we really need is a better city governor. One that could control the auto selection of Specialists.

Yes, this is something we've tossed around for a while. The trick is making it easy to use and the time to build it. Do you know about forced specialists? SHIFT (or CTRL, I forget) + click on the add specialist button.

Is it possible to display the amount of gold a particular civ has when you scroll over them on the scoreboard and the number of turns left in their Golden Age (you could also maybe even include the gold/turn).

Showing the gold would be pretty easy. What I'd like to do is have it show all trade possibilities with that civ instead of the diplomatic modifiers if you're holding down the CTRL key. The problem with the GA length is that I'd then need to track whether or nor you saw when they entered the GA. If you meet a Civ during their GA, you shouldn't know they are in a GA, right?

Additionally, would it be possible to better track the GP of other civs in the log.

How exactly would you track them better? What I'd really love (lots of work to make this) is a filterable log viewer where you can select the type of events and/or leader to show. This would let you easily see all GA changes, all GPs, all random events, all Wonders built, all your combat results, etc.

The biggest hurdle is that all the log messages are text messages, making them difficult to filter. To do this effectively, I'd need to encode them into data messages, and that means either altering the save file format or having a separate save file holding just this data like the Autolog does now.

Here's an example of what I mean by data message. I would turn these

Boudica's Golden Age has begun
You have met Washington
Stonehenge has been built in a far away land
Your Tank has died while attacking a German Spearman​

into these

[ GoldenAge, Boudica, Start ]
[ Contact, You, Washington ]
[ Wonder, UNKNOWN, Stonehenge ]
[ Combat, You, German, ATTACK, LOSE, Tank, Spearman ]​

As you can see, the number and type of data elements differs between the messages. I can surely store this in XML format, but building a generic filtering tool in Civ4 will not be a simple task.
 
I thought about exactly what you said, but forgot to put it in. The Golden Ages and GPs would only be the ones that you know about. So if it says GP X was born in a distant land, it would not be noted in the log. Likewise for Golden Ages.

By tracking Golden Ages, I just mean, when they have that sound effect and the game announced Boudica has just entered a Golden Age, for each turn afterwards you would know how many turns her Golden Age has left. If it's not announced in the game, then it's not available.
 
Yes, this is something we've tossed around for a while. The trick is making it easy to use and the time to build it. Do you know about forced specialists? SHIFT (or CTRL, I forget) + click on the add specialist button.

Well, that trick isn't really helpful for me for two reasons. One, as a city continues to grow and the governor auto assigns specialists I'd like it to auto assign the specialist I want, rather than a spy. I don't want to have to keep checking a city when it grows. Also, I want to tell it to never auto-assign spies or whatever.
 
Top Bottom