Removed the AI_averageCommerceExchange factor in AI_yieldValue; increased the value of production to compensate.
Increased the base value of production in AI_improvementValue.
Repeat research no longer triggers "avoid research" for human players unless they have their research percentage set <= 20%.
Made some changes to the way AI_yieldValue handles starvation, and emphasis. This should fix the behaviour in some situations which previously let the city starve.
Made some changes to AI_yieldValue to fix a problem which caused food to be more valuable on unworked plots. (and hence caused the governor's job choices to oscillate.)
Unit cycle order is no longer updated when a unit moves. Instead, it is updated at the end of the turn for units which have moved, and at various other times. (The goal is to have more natural cycling.)
Fixed a bug which caused units to be placed out of order in the cycle list if they happen to be standing on the same plot as units owned by a different player.
Changed the CvPlayer::updateGroupCycle so that it takes a CvSelectionGroup* arguement rather than a CvUnit*.
Added a bias to the unit cycle list so that units of similar types will be more likely to be ordered next to each other.
Fixed a mistake in AI_commerceWeight which caused culture to be valued more highly than intended.
Added some new adjustments to AI_commerceWeight to reduce the value of culture in particular circumstances.
Rewrote the evaluation of specialist slots in AI_buildingValue.
Reduced the value of yield multipliers in AI_buildingValue (especially for factories.)
Reduced the effect of high values of iDesiredFoodChange in AI_improvementValue.
Changed when and how the group cycle order is updated.
(It is now updated for all groups at the end of the turn rather than just for groups which have moved. Also, group cycle order is now biased such that awake groups will clump together.)
Fixed a bug in the volcano event which sometimes caused the game message to be given to the wrong player. (They were always sent to the owner of the volcano plot rather than the owner of the affected plot.)
Reverted the CvEspionageAdvisor.py back to the original BtS code. (Previously, it was the BUG code, but the BUG advisor was disabled.)
Implemented min/max right-click functionality to the +/- weight buttons in the espionage screen.
German Panzars now start with the Flanking I promotion.
Fixed a problem in AI_updateBestBuild which sometimes caused the AI to prefer to replace improvements rather than build new ones on unimproved plots.
Made some adjustments to the growth evaluation in AI_yieldValue.
Made some further fixes / adjustments to the new group-cycle ording system.
Completely redesigned the group cycle ordering scheme, again.
Implemented a new system for tracking which groups have been selected, so that the group cycle wrap condition will only be triggered once all group have been cycled through rather than just triggering at some arbitrary point in the cycle.
Fixed a minor problem in the new specialist code of AI_buildingValue.
Changed getOtherRelationsString so that the "at war" and "worst enemy" mouseover text for leaders will include the civ which is currently selected.
Fixed a bug in CvInfoScreen which prevented the end-of-game graphs screen from bypassing the canSeeDemographics condition. (This bug was introduced by a recent K-Mod change.)
Made some changes to CvCity::doPlotCultureTimes100 and CvCity::setCultureTimes100 so that it these functions can apply negative culture changes.
Corrected a couple of fringe cases in which new civilizations could be seen without meeting their leader.
Made a minor efficiency improvement to CvPlot::changeVisibilityCount.
Fixed another case of missing "at war" text in the mouseover text. (for the scoreboard mouseover.)
The word "contact" is no longer shown in the mouseover text for unmet players.
Deleted CvMainInterface-PLE.py. As far as I can tell, this file wasn't actually being used.
Added a new bool array to CvTeam: m_abHasSeen. This tracks which teams have been seen. It's similar to "has met", except that it will also be set true due to map trading and things like that.
Changed the functionality of CvPlayer::getPlayerColor, ::getName, and so on, so that they do not reveal the player's civilization to anyone who hasn't met them yet. (Note: By changing these functions I risk creating a bug of new bugs; but these functions are used outside of the dll and so I couldn't implement the desired functionality without changing them directly.)
The culture-based espionage discount is now calculated using plot culture rather than city culture.
The spread culture espionage mission now adds plot culture only, not city culture.
The air circling animation for fighter units will now be stopped if they leave their group. (This fixes the problem of 'phantom fighters', apparently circling long after the actual fighter has left.)
Tweaked the way culture pressure affects the value of culture.
Disabled a condition in the original AI which caused the AI to cancel everything it was building and researching when it first met a human player.
Tided up some code in CvUnit::healTurns. (no changes in functionality.)
Units will once again wake up when forming a group. This prevents an exploit which could allow players to bypass the movement check on air patrol and sea patrol missions.
The pillage command will now cause the whole group to pillage rather than just one unit. (This is the original functionality. It was changed by BBAI.)
The game will now cycle selection groups when an order is issued to a group which is not ready to move; just as it cycles when the order is to a group which can move.
Fixed a problem with Rapid Unit Cycling which caused it not to cycle for some particular missions, including air patrol and sea patrol.
Fixed a problem with the original unit cycling which caused the game to cycle when units form a group in certain situations.
Rewrote the conditions for CvSeletionGroup::canStartMission and the conditions for continueing a mission so that they are consistent with one another and so that they are less restrictive about which missions can be executed. For example, fortify, sentry, and heal can now be executed by units without any movement points. Bombard and airstrike can be executed by groups which include units that can't move, and so on.
autoMission will no longer call continueMission when the group is not ready to continue. (this prevents some unnessary unit cycling.)
Combat animations are now choreographed to roughly correspond to the events in the combat log. As a result, the battles will be a bit more varied and less predictable.
(Rewrote CvUnit::planBattle; signficantly changed CvUnit::updateCombat and CvUnit::resolveCombat. The underlying game mechanics have not been changed.)