Version 2.51 released!

Tholal

Emperor
Joined
May 19, 2009
Messages
1,676
2.51 officially released on October 19th, 2013. (not compatible with previous saves)

Download link


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

Bugfixes


  • changeStolenVisibilityTimer() now properly exposed to python
  • A unit flagged with the <UpgradeOutsideBorders> tag will now be able to upgrade anywhere if the upgrade unit requires a building so long as the owner has one of those buildings (previously it was only checking the closest city)
  • Liches now set to max 4 per player rather than 3 per team
  • BUG Unit Naming option will no longer throw errors when a Beast unit is built
  • Enclaves will no longer spawn Demagogs during Crusade
  • Unit portraits will no longer block the Unit name line
  • Baby Spiders now have a 20% chance to grow into a Giant Spider after combat (was 2%)
  • Raider units will once again be able to pillage enemy roads
  • Player will now receive a message when a HN unit kills a Worker or Settler
  • Blur no longer grants immunity to Defensive Strikes
  • River of Blood now affects size 2 cities
  • Summoners will now be re-associated with their Summons after Conversion (ie upgrades mainly)
  • fix for crash when Boarding units attack cities where the only defenders are naval units
  • Power calculations should no longer go into the negatives
  • Wild Hunt will no longer summon wolves on Peaks or Water tiles, nor will it summon wolves for non-alive units; Hyborems Whisper no longer allows the player to take a city from their Mater if they are a Vassal; Pillar of Fire and Crush will no longer count non-visible units when checking for potential targets; the Draw now disables diplomacy for the whole team (code by Terkhen)
  • Goblin Forts will no longer spawn extra units with UNITAI_LAIRGUARDIAN in Scenarios (partial fix for bug 57 - see bug entry for details)
  • fix for a potential permanent loop (fix by lfgr)
  • Civ4lerts should now work properly (fix by fe79)
  • fixed an issue that would sometimes cause the AI to inadvertently declare war on a neighbor when pursuing Barbarians

AI:


  • when selecting techs, the AI will no longer value units which have a non-matching <PrereqAligment>
  • AI should no longer try to broker peace when one of the parties is a Vassal
  • loosened some artificial restrictions that were forcing the AI to spread cities out more
  • AI should be more interested in founding near Mana and researching magic techs when pursuing a Tower victory; AI should no longer pursue Culture victories (too difficult for the current AI to actually win a Culture victory)
  • AI will now consider War Weariness when calculating AI_endWarVal()
  • AI will no longer build Warrens in small cities
  • AI less likely to set units with bonuses for attacking cities as city defense (AI_ejectBestDefender() function)
  • Some updates to AI_conquestMove() - Conquest groups should prioritize attacking cities
  • AI less likely to pursue Conquest victory based on being near the top of the scoreboard
  • AI should be less interested in building culture buildings for initial culture if they have a trait that gives free
    culture
  • few minor tweaks to how the AI values religions - now has a base value for each religion, even if that religion isn't present in the player's cities
  • when not playing with the Aggressive AI option, the AI will now take into account its current attitude towards the owning player when evaluating AI_targetCityValue()
  • AI Infernals will now build Demon's Altars; Archmages should now always be flagged with UNITAI_HERO
  • adjusted AI_searchRange() so that temporary summons shouldn't look for targets that are beyond their range*duration
  • the AI should be less likely to start new wars via AI_pickTargetCity() when they are already involved in another war
  • AI should be more focused on building offensive troops rather than defensive
  • AI will now build Hawks sometimes
  • removed some Ruthless AI code that was causing the AI to change their Worst Enemy too frequently

UI:


  • Enhanced World Builder (original code by playpting - adopted for MNAI by MagisterCultuum)
  • Updated the descriptive text for the Wildlands option
  • Sevopedia now includes a section for Minor Leaders (code by lfgr)
  • Greater Snowfall now is called Greater Snowfall (was just 'Snowfall' before)
  • Players will now receive combat messages when an Illusionary unit attacks and withdraws
  • updating the description for the Citadel of Light

Game Tweaks:


  • setting Mistforms to UNITAI_ANIMAL
  • addition of a Diplomatic Victory option (code by lfgr)
  • Spells that require a building to cast (ie, Shrine of Sirona for example), will now be castable by teammates

Code:


  • Puppet States - updating to version 1.4 code; Puppet State activation is now defined via an XML tag in TechInfos.xml
  • Advanced Tactics - Tech Diffusion enabled (settings can be changed via XML)
  • Advanced Tactics - Advanced Diplomacy - tech diffusion gets a bonus for Rights of Passage and Embassy agreements
  • Revolutions - Rebels will no longer spawn Settlers; added Stability adjustments to a few more buildings; Reduced stability penalties for City States
  • Revolutions - Rebels should now be able to spawn civ-specific units; Rebel units will no longer start the game injured; Rebels should be better at spawning tech-appropriate troops
  • exposing getMinLevel() to python
  • exposed CvPromotionInfo::getAIWeight() to python
  • Exposing CvBuildingInfo:isRequiresCaster() and CvGame::setHandicapType() to python
  • exposing isPermanentSummon() and setPermanentSummon() to python
  • some additions and changes to logging
  • fix for assert error when mousing over commerce info for Settlements
 
Thanks Tholal!


I went ahead and used WinMerge to update my modmod to include MNAI v2.51. I have not yet done significant testing to be sure I did not break things during the merge, much less begun to test the new functions which I requested be exposed.


I have however already found one bug which my modmod seems to have inherited from this update of yours.

In my first quick test game after merging MNAI v2.51 with MagisterModmod, I came across this bug which I then confirmed is also present in MNAI by itself.

When you are in the 'pedia and you try to go to the Index, it is blank.

PythonErr.log reveals this message:
Code:
Traceback (most recent call last):

  File "CvScreensInterface", line 1293, in handleInput

  File "SevoPediaMain", line 1172, in handleInput

  File "SevoPediaMain", line 423, in showIndex

  File "SevoPediaIndex", line 46, in interfaceScreen

  File "SevoPediaIndex", line 73, in buildIndex

TypeError: getLeaderList() takes exactly 2 arguments (1 given)
ERR: Python function handleInput failed, module CvScreensInterface

When I searched all the python files for getLeaderList(), I found that it appears in both SevoPediaMain.py and SevoPediaIndex.py.

In SevoPediaMain.py, you commented out self.list = self.getLeaderList() and replaced it with self.list = self.getLeaderList( SevoScreenEnums.TYPE_MAJOR ), but you did not make the equivalent change in SevoPediaIndex.py

After I made this minor change, everything seems to work fine.
Code:
	def buildIndex(self):
		if self.index: return

		techList = self.top.getTechList()
		unitList = self.top.getUnitList()
		unitCombatList = self.top.getUnitCategoryList()
		promotionList = self.top.getPromotionList()

		buildingList = self.top.getBuildingList()
##--------	BUGFfH: Deleted by Denev 2009/10/09
		"""
		nationalWonderList = self.top.getNationalWonderList()
		greatWonderList = self.top.getGreatWonderList()
		"""
##--------	BUGFfH: End Delete
		projectList = self.top.getProjectList()
		specialistList = self.top.getSpecialistList()

		terrainList = self.top.getTerrainList()
		featureList = self.top.getFeatureList()
		bonusList = self.top.getBonusList()
		improvementList = self.top.getImprovementList()

		civList = self.top.getCivilizationList()
[COLOR="Red"]##		leaderList = self.top.getLeaderList()[/COLOR]

	[COLOR="Blue"]	leaderList = self.top.getLeaderList( SevoScreenEnums.TYPE_MAJOR ) + self.top.getLeaderList( SevoScreenEnums.TYPE_MINOR )[/COLOR]

		traitList = self.top.getTraitList()

		civicList = self.top.getCivicList()
		religionList = self.top.getReligionList()
		corporationList = self.top.getCorporationList()

		conceptList = self.top.getConceptList()
		newConceptList = self.top.getNewConceptList()

Other than that, things seem fine so far.



P.S.
I wish you had told me a day couple days ago when you intended to release MNAI v2.51, so I could have gotten you a slightly updated version of World Builder to include with it. The differences are that it allows you to add new player of the same civilization (but not leader) type as another player in the game, and that it allows you to reassign the human player to control a different civ instead. All of the changes are within CvWorldBuilderScreen.py, except for one new TXT_KEY.
 
Thanks Tholal :)
 
I decided to go ahead and separately upload the updated world builder files which I used in my modmod. This includes a few things which newly exposed functions made possible.

The changes are:

The Plot Data screen now correctly displays the minimum level required to enter a tile.

The Game Data screen has a drop down box hat lets you adjust the game's difficulty level (although this does not seem to be changing the individual players' difficulty levels, so I'm not quite sure what it does.)

The Building screen now properly shows spell buildings based on whether they require a caster, not whether they are of BUILDINGCLASS_SPELL (which MNAI lacks)

The Unit Data screen has a new radio button to control whether a unit is counted as a Permanent Summon, and the old button re rearranged slightly.

You can reassign a human player to take control of an AI.

Duplicate civilization types are no longer blocked from being added through world builder (although duplicate leader types still are).


(I also included that fix for bug with the Sevopedia's Index screen.)


(p.s. I don't know about in regular MNAI v2.51, but in Magister Modmod the code you added to make AI players sometimes build Hawks seems to be causing them to train them far too often. After comming accross several cities where Hawks comprised the majority of the "defenders," I commented out the lines that pushes Hawk production in my modmod.)
 
After unzipping it, when you run the installer does it once again install as a patch into the original "Fall from Heaven 2" folder?
 
I decided to go ahead and separately upload the updated world builder files which I used in my modmod. This includes a few things which newly exposed functions made possible.

...

(I also included that fix for bug with the Sevopedia's Index screen.)

Awesome! Thanks!

(p.s. I don't know about in regular MNAI v2.51, but in Magister Modmod the code you added to make AI players sometimes build Hawks seems to be causing them to train them far too often. After comming accross several cities where Hawks comprised the majority of the "defenders," I commented out the lines that pushes Hawk production in my modmod.)

Did you catch the change to <AirUnitCap> for Hawks in UnitInfos.xml?

After unzipping it, when you run the installer does it once again install as a patch into the original "Fall from Heaven 2" folder?

That's the default. But you do have the chance to change the installation directory.
 
Awesome! Hopefully soon I can start contributing to this great mod again. My thesis defense is coming up next week. Then I'm moving to start a real job.
 
Thanks Tholal, Magister, Terkhen, fe79, lfgr, and others who worked on this update!
 
Top Bottom