Requests for new components (and features)

Ruff, AP votes are defined pretty much in the same way that UN ones are...... 9 turns in normal speed between votes ( besides that $&##&%#$% bug that freezes the AP vote results to be posted if it happens something that changes the AI mind between the human vote and their ). That intel would not be spoilerish, atleast not more than the UN one
 
Ruff, AP votes are defined pretty much in the same way that UN ones are...... 9 turns in normal speed between votes ( besides that $&##&%#$% bug that freezes the AP vote results to be posted if it happens something that changes the AI mind between the human vote and their ). That intel would not be spoilerish, atleast not more than the UN one
As I said originally - I have no idea how it determines when it should have a vote. However, check this post for in depth info.
 
Thanks ruff_hi -- I was just about to put a link here. Yeah, I haven't encountered any randomness with the AP resolutions so they *are* somewhat predictable which in turn reduces the spoiler-value of the proposed intel. But I'm not 100% certain.
r_rolo1: do you mean the problem is not that a vote is not triggered, but that it somehow does not "get through" to all relevant AI players? Do you happen to have a save of such a situation?
 
The problem is that if a certain vote is called ( like the inocuous OB agreement ) and it happens something that changes the AI mind about it before the AI vote on that ( like for a example, a war between 2 AP members ( this already happened to me )), the vote sometimes gets stuck and no vote result ( and by extension no other AP votes ) is posted ,sometimes during that whole session, sometimes during a smaller period ( reloading or simply save/load normally solves it ).

I'm pretty sure that I have a save in those conditions ( I discovered that it is highly reproducible anyway: get a AP vote, DOW on a AP member on the same turn, see the vote disapear ) buried in my saves folder.... gimme a day or two ;)
 
Or do you consider this information spoilerish / exploitable?

I'm with Ruff: it's spoilerish and thus doesn't belong in BUG.

Peter & Palin: maybe reversing the last 2 arguments would be the best then (when not changing the dll) so that the button has Palin's picture but displays the Peter-toward-Palin info text. :dunno:

But unless I'm missing something, the first argument (would be Peter) determines the leaderhead to display.
 
I'm with Ruff: it's spoilerish and thus doesn't belong in BUG.
:cry: No, I actually think the AP *should* remain a little mystery in Civ. :)

~~~~~~~~~~~~~

I meant to use the call like this:
[pre]self.iconGrid.addIcon(iRow, self.Col_WEnemy, gc.getLeaderHeadInfo(pWorstEnemy.getLeaderType()).getButton(), 45, WidgetTypes.WIDGET_LEADERHEAD, iLeader, pWorstEnemy.getID())[/pre]The button graphics will be for the WorstEnemy=Pacal, but the info about the leader (including attitude toward WorstEnemy) will be for iLeader (the row-leader=Napoleon).



Right clicking will also open the trade screen with iLeader (Napoleon).
 
I meant to use the call like this . . .

My bad, I didn't pay close enough attention. I thought the image was being chosen by the first widget parameter (iData1). I have reversed them and it works great. It's in SVN now. Thanks!

I do notice that right-clicking the smallest icons doesn't close the window, but the effects of those clicks queue up and happen when you close it. I'll take a look at that now.
 
Sadly, I cannot get the correct leader diplomacy window to open because I have no control over it. The leader that you contact is always the first leader parameter (data1), thus always the row's leaderhead rather than the leader on the button image.

To top it off, when you click the smallest leaderheads on the SitRep (or any icon in a multilist for that matter), the mouse flags are not reported. :gripe: All you get is a bare List Select event. Therefore, I cannot detect if you left- or right-clicked, so I don't know whether or not to close the screen so the diplomacy window can open.

I am erring on the side of caution and closing the screen so you don't queue up a bunch of contact attempts that all happen when you finally close the screen. I have just committed this.

The real bummer result is that my plan for allowing you to select resources to assume a player has on the StratAdv tab won't work so nicely. :(
 
I've been running into a situation that an addition to BUG could really help with. I've vassalized my entire continent and am planning an assault on the French over in the next continent. I don't need to have any troops guarding my borders other than along my coast, yet I have a number of captured cities that have a high rate of culture from the civ I conquered it from. As my own culture builds up I can move some of those garrisoned troops away and use them in my next wave. But this means moving a unit, then going into the city screen and mousing over the nationality bar to check whether I've left a chance of a revolt. It would be great if the revolt probability were displayed in the city bar of the main map somehow so I could see right away whether I've just moved one too many units. Maybe have a fist with a percentage value next to the one for cultural defence.
 
Any citybar modification would take an SDK change (and we're somewhat limited even then). And while CvCity::getRevoltTestProbability() does not look to be exposed to Python (that's a key component of the percentage you see in the nationality bar hovertext), we might be able to fake it and add a column to the domestic advisor showing the revolt chance; the latter wouldn't help much in your situation but could help identify which cities need the initial garrison reinforcement.
 
OK, one more thing. There are so many log messages appearing each turn that I quite often don't even notice them, especially if I'm busy doing something. But there are some important messages that I would have liked to be notified of. For instance, I was originally planning on attacking Montezuma, but during a war with the French he became a vassal of Ramses. At some point though he decided to go back out on his own and I didn't notice it for quite awhile. Is there any possibilty of having some of the more important messages like that displayed as one of the random event boxes so we need to click on them, and so acknowledge them, instead just being part of the endlessly scrolling log?
 
OK, one more thing. There are so many log messages appearing each turn that I quite often don't even notice them, especially if I'm busy doing something. But there are some important messages that I would have liked to be notified of. For instance, I was originally planning on attacking Montezuma, but during a war with the French he became a vassal of Ramses. At some point though he decided to go back out on his own and I didn't notice it for quite awhile. Is there any possibilty of having some of the more important messages like that displayed as one of the random event boxes so we need to click on them, and so acknowledge them, instead just being part of the endlessly scrolling log?
The main issue here is how do we determine which message is important? You might be trying to gather money and a message that so-and-so has 1000g is important. Best option is to open the BUG options tab and uncheck the options you don't want to see. Or open the log and manually review the list of messages.
 
I've been running into a situation that an addition to BUG could really help with. I've vassalized my entire continent and am planning an assault on the French over in the next continent. I don't need to have any troops guarding my borders other than along my coast, yet I have a number of captured cities that have a high rate of culture from the civ I conquered it from. As my own culture builds up I can move some of those garrisoned troops away and use them in my next wave. But this means moving a unit, then going into the city screen and mousing over the nationality bar to check whether I've left a chance of a revolt. It would be great if the revolt probability were displayed in the city bar of the main map somehow so I could see right away whether I've just moved one too many units. Maybe have a fist with a percentage value next to the one for cultural defence.

How about an extra line in the hover info for the unit:



I have 5 units in the city which is threatened by Shaka's culture (we are at war):
  • 2 Marines (culture garrison value [CGV] 12 each)
  • 1 Rifleman (CGV 8)
  • 1 Warrior (CGV 3)
  • 1 Great Engineer (CGV 0)

Shaka's culture pressure is iCityStrength = 75.
The city's culture garrison is iGarrison = 1 + sum of CGVs of all units --> iGarrison = 1 + 2*12+8+3+0 = 36.
Since we are at war all the garrison values are doubled --> iGarrison = 72.

If iGarrison >= iCityStrength I am safe from any revolts, otherwise there is a 10% chance (REVOLT_TEST_PROB = 10 from GlobalDefines; there is no extra protection in the unmodded game) that the game performs a revolt test. Then the chance of a revolt is (1-iGarrison/iCityStrength)*100 % so the overall chance for a revolt is (1-iGarrison/iCityStrength)*10 %.
Example: (1-72/75)*10 = 0.4%

The hover text for the unit under the mouse pointer (Rifleman in screenshot = "ActiveUnit") gives (values doubled for war):
  1. the sum of the CGVs of the units left of the ActiveUnit in the plot list -- 2 Marines = 2*12 *2 = 48
  2. the CGV of the ActiveUnit in [] -- 1 Rifleman = 8 *2 = [16]
  3. the sum of the CGVs of the units right of the ActiveUnit in the plot list -- 1 Warrior = 3 *2 = 6
  4. iCityStrength = 75
So this hover text can help me find the necessary strong=left or weak=right units I need to keep in a city to avoid revolts.
One could also introduce a new filter button for the PLE to filter out necessary garrison units ...

The (not thoroughly tested) added code for CvMainInterface.py:
Spoiler :
Code:
[SIZE="3"]		# culture garrison info	
		szGarrison = u""
		pPlot = pUnit.plot()
		pCity = pPlot.getPlotCity()
		if (pCity and not pCity.isNone()):
			eCulturalOwner = pPlot.calculateCulturalOwner()
			if (pCity.getOwner() != eCulturalOwner):
				iCityStrength = pCity.cultureStrength(eCulturalOwner)
				bAtWar = gc.getTeam(pUnit.getTeam()).isAtWar(gc.getPlayer(eCulturalOwner).getTeam())
				iGarrisonLeftTotal = 0
				iGarrisonRightTotal = 0
				iGarrisonActiveUnit = -1
				for i in range(len(self.lPLEUnitList)):
					pLoopUnit = self.getInterfacePlotUnit(i)
					iGarrison = gc.getUnitInfo(pLoopUnit.getUnitType()).getCultureGarrisonValue()					
					if (bAtWar):
						iGarrison *= 2
					if (pLoopUnit.getID() == pUnit.getID()):
						iGarrisonActiveUnit = iGarrison
					elif (iGarrisonActiveUnit >= 0):
						iGarrisonRightTotal += iGarrison
					else:
						iGarrisonLeftTotal += iGarrison
					
				szGarrison = u"\nCulture Garrison: "
				if (iGarrisonLeftTotal > 0):
					szGarrison += u"%i "   % iGarrisonLeftTotal 
				szGarrison     += u"[%i] " % iGarrisonActiveUnit
				if (iGarrisonRightTotal > 0): 
					szGarrison += u"%i "   % iGarrisonRightTotal
				szGarrison     += u" / %i" % iCityStrength
				szGarrison      = u"<font=2>" + localText.changeTextColor(szGarrison, gc.getInfoTypeForString("COLOR_PLAYER_LIGHT_PURPLE")) + u"\n" + u"</font>"[/SIZE]
 
How about an extra line in the hover info for the unit
that is a lot of extra information that isn't available from the unmodded game. How about we add that chance of revolt to the city hover so that you don't have to open the city screen and then hover over the cultural slider.

That doesn't answer your 'which units can I take' question, but it does give you quick 'is this city in revolt trouble' information.

Can we add this without modding the DLL?
 
I agree that it's spoilerish, but definitely "ish" in this case since you can use brute force to determine how many units are required. What are people's thoughts on cases like this where you can keep moving units to eventually find the right number to keep in the city and still avoid revolt?

BUG could make it easier for you to figure out what the stock game allows you to do manually. Should it?

This is different from showing you information you simply cannot find yourself, so I can see a possible case for allowing it in a somewhat lessened form. I don't know what that form looks like, however. We shouldn't show the individual CGVs of the units, but then what can we show? There is no "it will take X units to avoid revolt" value we can show as it depends on the units in the city. We could count from the strongest to weakest or vice versa since that's typically how you'll test yourself.

And yes, Ruff, altering the city hover text requires DLL work. There is a ton of stuff I want to add to that hover as well. It's probably my main reason for wanting a DLL.
 
Well, we have sort of already broken this 'spoiler but the human can manually work it out' issue when we included the 'turns to Legendary' for the AI in the victory screen.

Can we show the current probability as well as the probability if we remove the selected units. Then the player can test with different selected units and not waste movements points.
 
Can we show the current probability as well as the probability if we remove the selected units. Then the player can test with different selected units and not waste movements points.

Ooh, I like that. It doesn't expose the CGVs directly, yet it minimizes the busy work.

@DanF - If you post the code for this solution, I'll add it to BUG. Please make it show the percentage only if it's not 100%. Bonus points if you add a new color option for it. ;)
 
:( It appears I need to tone down my enthusiasm a little bit. ;)
I am surprised that you consider the units' xml attributes as classified information, I think especially the CGVs are equal to, say, their power-value which isn't explicitly given by the pedia or any other ingame info, but everybody more or less knows them and BUG uses them to tell you the power ratios up to 4 decimals.
But I'm rather new here and not familiar enough with the common secrecy philosophy ;).
 
:( It appears I need to tone down my enthusiasm a little bit. ;)
Please don't do that. BUG lives when people start throwing around ideas. We sometimes run up against principles (unaltered being the major one) but we are trying to make things easier for the playing public.

Re XML numbers - I am pretty sure that 95% of people don't dig into that stuff (I know that I don't) - so we generally steer away from anything technical (or semi-technical) like that. We also prefer to provide information in a format that jumps out at you, not one where you need to struggle with it to see what you are being told.

If you think the above is harsh - you should have been here for the argument about the spoiler nature of the GLANCE screen. Even though all of that information is available in game, one participant insisted it be removed because it provided strategic spoiler value (what ever that is) to lazy players who couldn't be bothered to self-research it.
 
now here is a question - do we give this hover information when you hover over enemy units in a city? If we assume that the player can work out the stats anyway, then why not provide it? Is it available when you investigate a city using a spy - I don't know - does anyone here know that answer to that question?
 
Top Bottom