Version 2.53 released!

Tholal

Emperor
Joined
May 19, 2009
Messages
1,676
2.53 officially released on March 22nd, 2014. (should be compatible with previous 2.5xx saves)

Download link

Not a huge list of changes this release though it does include fixes for the two major OOS issues.

Thanks to Terkhen, lfgr, Horatious and MagisterCultuum for the coding assistance!

Bugfixes


  • Fix for an OOS issue caused by a human player playing as the Kuriotates
  • Fix for OOS during multiplayer games when the Infernals capture a city (code by Terkhen)
  • fix for EVENT_ENEMY_CITY_CRIME not working (report and fix by lfgr)
  • accessing all Mana types from Improvements now requires Knowledge of the Ether
  • units should not receive messages about being affected by spells if they are immune
  • Unhappy production will now be calculated in getBaseYieldRate to make sure that it is taken into account in all production related calculations (code by Terkhen)
  • fix for a coding bug that was keeping the AI from seeking out non-unique dungeons to explore
  • fix for potential MAF when a unit is unable to withdraw (code by Terkhen)
  • Events that change experience will no longer be triggered on units if doing so will cause the unit's experience to go below 0
  • dead civs should no longer count towards the maximum number of possible votes for Council Resolutions
  • Units with a duration limit will no longer give extra votes in the Councils
  • fix for potential loop when a unit is trying to pillage
  • Teams should now be able to build Tower of Mastery even if the Prereq towers have been built by multiple teammates

AI:


  • wandering Barbarians will no longer try to guard lairs
  • it is now possible for the AI to make more than one peace deal per turn (code from K-mod)
  • AI should be better about using spells that have a gold cost
  • Inquisitors should no longer double up
  • reduced effect that attitude has on AI_startWarVal; AI should devalue wars when they dont share a border; reduced effect that warSuccess has on valuing peace deals; AI will now take into consideration the duration of the war when valuing a peace deal
  • City Production - AI should build a few more attack troops; AI will sometimes build units with UNITAI_PILLAGE
  • Workboats building Pirate Coves and Svartalfar Kidnapping troops will now try to avoid danger
  • AI should have a better understanding about the range on summoned units (in particular, ones with flying or other promotions that grant extra movement)
  • AI will no longer try to select techs while in anarchy and should be better about choosing techs when their Science rate is 0%
  • AI should no longer build early attack stacks if they have not met any other players and there is no danger to the city
  • slightly devalued Projects that increase the Armageddon Counter
  • AI should be better about using summons to attack with; AI summoners should be more interested in promotions that grant their summons extra moves (ie, Spell Extension)
  • AI should now sometimes use Slaves to Hurry production

UI:


  • Updating to Enhanced WorldBuilder 3.18 (code by playpting and MagisterCultuum)
  • Spell Promotions now have their own category in the Sevopedia and Worldbuilder (code by Terkhen)
  • displaying war duration when viewing war info in debug mode
  • The Doviello spell to upgrade Workers now refers to Beastmen rather than Warriors

Code:


  • fix for assert error when gifting units with a -1 productionCost (code by Terkhen)
  • code improvements to CvEventManager.py (code and suggestions by Horatious)
  • new function CvPlayer::getHighestUnitTier(); exposing this and countNumOwnedTerrainTypes() to python
  • Additional logging
 
Thanks Tholal!

I merged this with Magister Modmod, and then loaded a game I had in progress. Things seemed to work fine, with a somewhat shorter time between turns and and without the Waiting for Other Civilizations issue I had been having with that game.


However, the change does not seem to do anything to fix the crash to desktop that is occasionally caused by the Taunt ability. It still seems to happen whenever the caster dies in combat while casting the spell. Units strong enough to kill the caster are likely to resist the spell, so the crash does not happen often, but it can happen still.
 
However, the change does not seem to do anything to fix the crash to desktop that is occasionally caused by the Taunt ability. It still seems to happen whenever the caster dies in combat while casting the spell. Units strong enough to kill the caster are likely to resist the spell, so the crash does not happen often, but it can happen still.

I have not had a chance to look into that. I'll add it to the bug list.
 
great job on removing the code that artificially forced AIs to separate their cities! they seemed to have an irrational hatred for tile overlap before and they settle much better now. it should definitely improve their performance :)
 
Is this some python coding that you could point me to pls? And thanks for your modmod keeping FFH2 updated!! :)

More Naval AI is stored in a source code repository, using a version control system called Subversion. Each change to MNAI source code is stored as a commit, and whenever possible each commit is a small, self contained change with a description. Therefore, it is possible to find those commits in the commit browser of the project page of MNAI (https://sourceforge.net/p/tholalsffhaimod/code/commit_browser), although it is more confortable to check out the code and check the commits logs locally. In this particular case, the change you are asking for is r1675.

Bear in mind that the change mentioned by Tholal in the changelog is in the AI section, and it means that the AI will give less value to building that kind of projects. This code is entirely in the DLL and it has no python components. You can modify what kind of buildings the AI will build in python via pure brute force. Check the AI_chooseProduction method in the CvGameUtils.py file for examples. The code that you will find there is pretty generic and meant for all FFH2 games; if you are trying to make an AI code that will run in a specific scenario, you need to guard the code with specific conditions to prevent modifying how the standard AI plays. To avoid derailing this thread, feel free to highlight me at #erebus if you have more questions :)
 
Top Bottom