[BTS] Evolution

I am preparing to upload Public Beta 11 shortly. Here is the change log:


Added Culturally Linked Starts 1.1.3 by Jean Elcard
Added back most of AD 2.3 code (internal change)
Added Platy Foriegn Advisor
Added glider1's Ranged Bombard fixes from RevDCM 3.0
Changed Advanced Diplomacy tech buttons to show only if AD option selected
Cloned UnitUpgradePriceModifier tag from Buildings to Civics
Updated Platy World Builder to 2.0.0
Updated K-Mod to 1.41

:cooool:
 
Thank you so much for the merge. I use evolution for as base for my personal mod. It works mostly fine, but the AI seems to be overly peaceful and rarely, if ever, declares war. Checked this running the Evolution mod only (Standard map size, 9 civs including Monte, Shaka, Boudica) on default settings (but without Revolutions). Autoplayed three times for 250 turns and over the entire period there was no single war going on. Seems not to be a K-Mod related issue, as doing the same in K-Mod reliably causes at least some wars. I thought this may be someway related to the advanced diplomacy settings, but I could not figure out the meaning of the new XML tags (iLimitedBordersAttitudeDivisor, etc) in the leaderheads file. Btw, I also noted that there are only the XML references in the BUG diplomacy option settings.

Chronis, since you talked about thinking about merging Evolution with LoR: I use LoR as base of my personal mod and thus kind of did the merge with Evolution. It was pretty straightforward, as most dll changes required by LoR are part of RevDCM (and thus Evolution), except for dynamic religion spreading (which is changed in K-Mod anyway) and handling of colonists (which is easy to do in Python EDIT: wrong, see platyping's post below). Couldn't get ranged bombardment to work, however, and there are some glitches in the civic screen (for some reason, it shows for civics having unit gold support costs weird numbers (+123042) as happiness support).
 
Stumbled across a strange issue running a python function. Running this code:

Code:
for ixReligion in range(gc.getNumReligionInfos()):
	if gc.getGame().isReligionFounded(ixReligion):
		pHolyCity = gc.getGame().getHolyCity(ixReligion)
		iHCity = pHolyCity.getID()
		sHCity = pHolyCity.getName()
		BugUtil.alert("city id %d name %s", iHCity, sHCity)

returns something like
city id 8102 name Uruk
city id 8102 name Rome
city id 8102 name London
city id 8102 name Carthage

I'd expected the ID to differ for each city. Not sure whether this is a bug or whether I don't understand how city.getID() is supposed to work.
 
That will be the 4th big mod I know of which uses bugged colonist codes then without realising it is bugged for years
 
platyping, could you elaborate on why colonist code in python is necessarily bugged?
 
So long as it uses CyInterface().getHeadSelectedUnit(), it is bugged.
It neither works when cities are built via queued orders (Shift) or when built by A.I. (You can't expect A.I. to have an interface...)
 
I investigated the overly peaceful AI behavior a bit further. It seems to be caused by a set of functions in CvTeamAI (AI_maxWarNearbyPowerRatio to AI_makePeaceRand) having a boolean argument that defaults to false. This effectively prevents updates of the associated variables, since the calls to these function don't override the default value.
I am not quite sure whether there are any unwanted side-effects of doing this, but setting the defaults to true restores the usual AI behavior.
 
Since Beta 11 loading save games always causes a CTD. Beta 11 also introduced some assert errors when launching the game, the most serious one probably being 'eIndex < MAX_PLAYERS' in CvPlayerAI::AI_changePeacetimeTradeValue where eIndex a ridiculously large number.
 
It's really a pity that you're set back by this strange callstack problem. Hope you get that solved soon. In the meantime, I have more bug reports for you (sorry to spam your thread by all these bug reports, but I'd love to see a full working version of Evolution).

After having solved the peaceful AI bug (as written above), I realized that ranged bombard is bugged as well. First, bombard units having no ranged bombard tag (e.g. catapults) cannot bombard at all. This is related to the check in canBombard() which returns false for all units not being able to range bombard. Second, ranged bombard occasionally leads to an infinite loop during AI turns. I haven't completely sorted out this problem, but it seems to be related to the bombard() and bombardTarget() functions in CvUnit. bombardTarget() sometimes returns NULL for pBombardCity which causes bombard() to return true without changing the Moves or the madeAttack states. A dirty hack that fixes the infinite loop is just to add the following at the beginning of CvUnit::bombard()

Code:
	if(pBombardCity == NULL){
		setMadeAttack(true);
		changeMoves(GC.getMOVE_DENOMINATOR());
		return true;
	}

However, as far as I can see, this effectively makes the AI think it successfully bombarded a city without actually having done anything, so it's definitely not a real solution. It would probably be better to find out why bombardTarget() returns NULL, but I wasn't able to figure that out (I am new to DLL modding and find it quite confusing...).

These bugs refer to beta 10 (as beta 11 doesn't really work for me), but I think the bugs are still present in beta 11.
 
I wouldn't do too much on ranged bombard until you have properly checked out beta 11 otherwise you might be wasting your time. I've fixed what you are talking about already in RevDCM 3.00 beta (have a look at sourceforge for the project). I'll try to release a proper version of RevDCM over the holidays with the fixes properly documented.
 
All right, it seems that the Dynamic Civ Names mod is definitely bugged... even in vanilla Evolution, the civs only have "Unknown" as the 'short' name.
 
I've been thinking of downloading beta 11 and giving it a try, has anyone had any major issues with it?
 
Okay, I found a MAJOR bug: it's apparently impossible to load games without it crashing! :mad:
 
Not necessarily. It happens often that the OP resurfaces at several months cycles. It is just RL is ruthless for some.
 
Back
Top Bottom