1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

A Better AI.

Discussion in 'Civ4 - General Discussions' started by Blake, Nov 4, 2006.

  1. Iustus

    Iustus Chieftain

    Joined:
    Jul 18, 2006
    Messages:
    609
    Location:
    Sunnyvale, CA
    Actually, this has always been in the game. This behavior should be the same in 1.61, 2.08 and Better AI.

    from the attitude code (cleaned up to be more readable)

    Code:
    RankDifference = rank(Saladin) - rank(WhiteElk);
    
    if (RankDifference > 0)
    	iAttitude += Leader.WorseRankDifferenceAttitudeChange * RankDifference) / (playersInGame + 1));
    else
    	iAttitude += Leader.BetterRankDifferenceAttitudeChange * -(RankDifference)) / (playersInGame + 1);
    and the XML for Saladin:
    Code:
    <iWorseRankDifferenceAttitudeChange>0</iWorseRankDifferenceAttitudeChange>
    <iBetterRankDifferenceAttitudeChange>2</iBetterRankDifferenceAttitudeChange>
    So, you must have raised his ranking in the score list (or lowered your own). In any case, you and he became closer in score, while you were above him in score prior to the trade. Saladin gives a bonus to people above him in score, based on how far above they are. From the screenshot you are dead last in score after the trade. Were you above him prior to it?

    Montezuma on the other hand:
    Code:
    <iWorseRankDifferenceAttitudeChange>-3</iWorseRankDifferenceAttitudeChange>
    <iBetterRankDifferenceAttitudeChange>0</iBetterRankDifferenceAttitudeChange>
    hates people worse than him, and has no modifier to those stronger than him.

    -Iustus
     
  2. Iustus

    Iustus Chieftain

    Joined:
    Jul 18, 2006
    Messages:
    609
    Location:
    Sunnyvale, CA
    Just in custom assets, not in a subfolder.



    Hold down the alt key and mouse over your name on the bottom right where all the player scores are displayed. The score breakdown that shows up on the left side (score from population, score from wonders, etc) should have ""=== Better AI ===" at the top if you have it installed correctly.



    -Iustus
     
  3. Iustus

    Iustus Chieftain

    Joined:
    Jul 18, 2006
    Messages:
    609
    Location:
    Sunnyvale, CA
    It already does a lot of this. The thing it doesnt do, which I am not convinced it _should_ do, is absolutely try not to waste any tiles. I waste tiles on purpose when I play. I want good cities, not a ton of mediocre cities. Then, when I get around to it, I might found some half-cities to fill the empty spaces later. The AI seems to do the same thing. It will not found junk cities until there are no other options left.

    Since there is a lot of discussion about it, here is what the AI does currently (I went through some effort to make it human readable, if there are any typos, it was probably in my translation):

    Spoiler :
    Code:
    if GameStart
    {
    	if goody hut -> zero value
    	if any plots off the edge of the map -> zero value
    }
    
    if count the number of plots which we cannot use (off map or another team) > 7 -> zero value
    
    iBadTile = 0;
    
    count bad plots:
    if plot is off map, or a peak, count as 1
    if plot is not hills and not directly connected to fresh water (river/lake)
    	if zero food or one food and nothing else, count as 1
    	else if ocean and not coastal city and food less 2, count as 1/2
    else if plot owned by a city in our team, count as 1/2
    
    if not GameStart
    {
    	if bad plots > 10
    	{
    		check all the unowned plots that are either water or on the same land mass as the city
    		is there a bonus resource which we do not already have, or which scores higher than 10?
    		if not -> zero value, quit
    	}
    }
    
    iGreed = 100;
    if not GameStart
    {
    	if hasTrait UpkeepModifier (Organized)
    		iGreed -= 25 [actually +UpkeepModifier/2]
    
    	if hasTrait CultureChange (Creative)
    		iGreed += 40 [actually CommerceChange * 20]
    }
    
    iTakenTiles = 0;
    iTeammateTakenTiles = 0;
    iHealth = 0;
    iSpecialFoodPlus = 0;
    iResourceValue = 0;
    iSpecialFood = 0;
    iSpecialFoodPlus = 0;
    iSpecialFoodMinus = 0;
    iSpecialProduction = 0;
    iSpecialCommerce = 0;
    
    value = 1000;
    for each plot
    {
    	if off map, iTakenTiles++
    
    	if within another city radius, iTakenTiles++
    
    	if within our team's city radius, iTeammateTakenTiles++;
    
    	else 
    	{
    		determine food/production/commerce yield of the plot
    			(adjusting the city home plot negative the value of the improvement of a bonus resource, if trying to found on one)
    
    		tempValue = 0
    
    		if city home plot
    			tempValue = 60*food + 60*production +40*commerce
    		else if food >= 2
    			tempValue = 40*food + 40*production +30*commerce
    			if GameStart tempValue *= 2
    		else if food == 1
    			tempValue = 25*food + 25*production +20*commerce
    		else
    			tempValue = 15*food + 15*production +10*commerce
    		
    		if coastal city and this plot water and this plot commerce > 1
    			tempValue += 40
    
    		if this plot borders river
    			tempValue += 10
    
    		if home plot
    			tempValue *= 2
    		else if this plot already in our culture, or within 1 distance of home
    			tempValue *= 3/2
    		else
    			tempValue *= iGreed/100
    
    		value += tempValue
    
    		if this plot has forest or jungle (and not home plot)
    			iHealth += health of feature
    			iSpecialFoodPlus += any food over 2 on this plot
    
    		if this plot has a bonus resource
    		{
    			if not GameStart and this the first bonus of this type for this city
    				tempValue = bonusValue() * 80
    			else
    				tempValue = bonusValue() * 20
    			
    			tempValue *= iGreed/100
    			
    			if plot distance 2 from home and our culture not already on it
    				tempValue *= 2/3 * iGreed/100
    
    			value += tempValue
    
    			if not home plot
    			{
    				if an improvement exists for this bonus resource
    				{
    					iSpecialFood += food after bonus improved
    					
    					iSpecialFoodPlus += any food over 2 after improved (zero if less than 3)
    					iSpecialFoodPlus -= any food under 2 after improved (zero if more than 1)
    
    					iSpecialProduction += production after improved
    					iSpecialCommerce += commerce after improved
    				}
    
    				if jungle, iResourceValue -= 30
    
    				if water bonus resource
    					if coastal, value += 150
    					else value -= 150
    			}
    		}
    	}
    }
    
    
    iResourceValue += iSpecialFood * 50
    iResourceValue += iSpecialProduction * 50
    iResourceValue += iSpecialCommerce * 50
    if (iResourceValue > 0)
    	value += iResourceValue
    
    if (iTakenTiles > 7) and (iResourceValue < 250), zero value, quit
    
    if iTeammateTakenTiles > 1, zero value, quit
    
    value += (iHealth / 5)
    
    if coastal city
    {
    	value += 300
    
    	if not GameStart
    	{
    		if we have no other cities on this land mass
    			value += 400
    
    		value += 200
    	}
    }
    
    if city home plot is hills
    	value += 200
    
    if city home plot has river
    	value += 40
    
    if city home plot has fresh water
    	value += 100 [really uses the define for health change from fresh water]
    
    if GameStart
    	for every plot within 5 distance
    		value += 10*food + 10*production + 5* commerce
    	if first starting city assigned
    		value += max distance on map * 100
    	else
    		value += distance to closest other start city * 100
    
    if (distance to our nearest city) < 5
    	value -= (5 - (distance to our nearest city)) * 500
    else
    	value -= ((distance to our nearest city) - 5) * 500
    
    if number of cities on land mass is zero
    	value *= 2
    else if every city on land mass is our team
    	value *= 3/2
    else if every city on land mass is our team or barbarians
    	value *= 4/3
    else if our team has zero cities on land mass
    	value *= 5/4
    
    if iSpecialFoodPlus > 8
    	iSpecialFoodPlus = 8
    
    value *= (100 + (20*iSpecialFoodPlus))
    value /= (100 + (10*iSpecialFoodMinus))
    
    value /= (num bad plots over 5) + 3
    
    if Gamestart
    	value /= (num plots on different land mass over 14) + 2
    


    as you can see, it is rather complicated :)

    -Iustus
     
  4. Watiggi

    Watiggi Chieftain

    Joined:
    Feb 27, 2006
    Messages:
    2,107
    I'm just jumping in here, but is there a way to make the conquerors in the game actually do what they are supposed to do: Conquer?

    It would be good if, in particular, the 4 conquerors, Napoleon, Genghis, Julius and Alexander made a point of relying on conquest as their means of playing. They would go to war as a matter of expansion and aim to develop their empire through war. The game lacks that currently.

    edit: I guess what I am asking is can Blake make some changes so that the Napoleon, Genghis, Julius and Alexander AI is more 'empire building through conquest' based rather than simple 'warmonger'?
     
  5. mjs0

    mjs0 The 4th X

    Joined:
    Nov 9, 2001
    Messages:
    1,063
    Location:
    Central Florida
    ...and I'm going to jump in here, second this request :goodjob: and use it as inspiration for my own idea.

    I would take this suggestion a stage further and say that it would be nice to see the victory conditions that each Civ is predisposed to pursuing influenced by their traits.
    So, for example, an aggressive leader might be predisposed to conquest, imperialist to domination, philosophical to Space Race and Industrious/Creative to Cultural.
    (Of course, ideally this would require new victory conditions such as economic for financial and religious for spiritual leaders but I know that is way beyond the goals of this project :) )
    So, for example, Alexander (Agg/Phi) might aim for conquest or surprise us by aiming for Space Race, whereas Catherine (Cre/Imp) might aim for Cultural or Domination.
    I'm not suggesting leaders be forced to these victory conditions, just nudged in that direction. After all, isn't this the way a human would play, picking which victory to pursue based in part on the strengths of the leader they are playing.
     
  6. kettyo

    kettyo Seeker of Reality

    Joined:
    Mar 6, 2002
    Messages:
    662
    Location:
    Budapest, Hungary
    You can alter their behaviour in the leaderheadsinfo file.
    Most important values affecting this are:
    -maxwarrand
    -limitedwarrand
    -makepeacerand
    -nowarattitudeprobs
     
  7. Powerslave

    Powerslave Chieftain

    Joined:
    Jun 3, 2004
    Messages:
    388
    Location:
    USA
    What's the difference? The number of settlers? And why just those four guys, and not Tokugawa, Qin, Victoria, or Montezuma? Hell, most of the leaders in Civ IV were bloodthirsty dictators bent on conquest of the known world. In fact, I can think of a few modern dictators who'd be right at home in Civ IV.

    Blake has intimated that its his plan that the warmongers will flip out and try to conquer the world, however. It'll be nice to see the AI actually try to win, rather than patiently wait to be conquered, one after another.
     
  8. Watiggi

    Watiggi Chieftain

    Joined:
    Feb 27, 2006
    Messages:
    2,107
    Pfffft! I have tried but I cannot get it to decently go to war conquest style. Even a maxwarrand of 1 and a high nearby ratio plus an extreme border annoyance factor still makes it a cumbersome conqueror at best. The AI just doesn't know how to hit a city properly. Maybe the latest version with those settings might give a different result, but I wouldn't hold my breath - especially when it still takes its time going to war in the first place. I have even toyed around with the base happiness factors and all it ended up doing was just be annoyed with everyone. The problem there is everyone else was just annyoed with it aswell. This prevented tech trading, etc. I guess if it went to war with its military and capitalised on it, it would be ok, but it doesn't.

    I'd be for it provided it wasn't too predictable. I just at the very least want the conquerors to be what they are meant to be and not just an ornament that the human player manipulates when its time to clean 'em up. The techers - with their enormous advantage of being able to tech quickly and then upgrade instantly - gives a distinct dis-advantage to the heavy military leaders who need to make use of their military and not just waste it. Sitting on their butts not going to war just makes the techers out tech them in the military department. It's sad to watch.

    When I mean 'conqueror' I mean the 4 major empire builders in the game: Genghis, Napoleon, Alexander and Julius. They don't do what they are supposed to in my games. I guess from the warmonger perspective, none of the warmongers do what they are supposed to do that much. But more specifically, the 4 conquerors should conquer for the specific intention of building an empire. They don't, not even close and it's sad to watch. I miss the civ2 AI engine whereby 'Aggressive Militaristic Expansionist' actually meant something. I will also say that there is a big difference between Tokugawa, Qin, Monty, etc vs Genghis, Napoleon, Julius, etc.

    Yeah, that is what I hate about the warmongers. They build a nice, costly military and then sit there while the peaceful techers just out tech them.... It kills the game for me.
     
  9. kettyo

    kettyo Seeker of Reality

    Joined:
    Mar 6, 2002
    Messages:
    662
    Location:
    Budapest, Hungary
    Did you try to increase the openborders threshold?
    AFAIK AI's can't declare war on rivals with openborders in effect on their own.

    Also try to decrease the nowarattitudeprobs modifiers or clear them completely for annoyed and cautious (i don't like backstabbing so i leave them for pleased and friendly)
     
  10. Watiggi

    Watiggi Chieftain

    Joined:
    Feb 27, 2006
    Messages:
    2,107
    The exact changes I made are:
    Spoiler :
    Code:
    		<LeaderHeadInfo>
    			<Type>LEADER_GENGHIS_KHAN</Type>
    			<Description>TXT_KEY_LEADER_GENGHIS_KHAN</Description>
    			<Civilopedia>TXT_KEY_LEADER_GENGHIS_KHAN_PEDIA</Civilopedia>
    			<ArtDefineTag>ART_DEF_LEADER_GENGHIS_KHAN</ArtDefineTag>
    			<iWonderConstructRand>10</iWonderConstructRand>
    			<iBaseAttitude>-1</iBaseAttitude>
    			<iBasePeaceWeight>0</iBasePeaceWeight>
    			<iPeaceWeightRand>2</iPeaceWeightRand>
    			<iWarmongerRespect>0</iWarmongerRespect>
    			<iRefuseToTalkWarThreshold>20</iRefuseToTalkWarThreshold>
    			<iNoTechTradeThreshold>5</iNoTechTradeThreshold>
    			<iTechTradeKnownPercent>40</iTechTradeKnownPercent>
    			<iMaxGoldTradePercent>5</iMaxGoldTradePercent>
    			<iMaxGoldPerTurnTradePercent>10</iMaxGoldPerTurnTradePercent>
    			<iMaxWarRand>1</iMaxWarRand>
    			<iMaxWarNearbyPowerRatio>200</iMaxWarNearbyPowerRatio>
    			<iMaxWarDistantPowerRatio>10</iMaxWarDistantPowerRatio>
    			<iMaxWarMinAdjacentLandPercent>0</iMaxWarMinAdjacentLandPercent>
    			<iLimitedWarRand>1000</iLimitedWarRand>
    			<iLimitedWarPowerRatio>90</iLimitedWarPowerRatio>
    			<iDogpileWarRand>200</iDogpileWarRand>
    			<iMakePeaceRand>200</iMakePeaceRand>
    			<iDeclareWarTradeRand>1</iDeclareWarTradeRand>
    			<iDemandRebukedSneakProb>99</iDemandRebukedSneakProb>
    			<iDemandRebukedWarProb>1</iDemandRebukedWarProb>
    			<iRazeCityProb>75</iRazeCityProb>
    			<iBuildUnitProb>80</iBuildUnitProb>
    			<iBaseAttackOddsChange>4</iBaseAttackOddsChange>
    			<iAttackOddsChangeRand>8</iAttackOddsChangeRand>
    			<iWorseRankDifferenceAttitudeChange>0</iWorseRankDifferenceAttitudeChange>
    			<iBetterRankDifferenceAttitudeChange>0</iBetterRankDifferenceAttitudeChange>
    			<iCloseBordersAttitudeChange>-10</iCloseBordersAttitudeChange>
    			<iLostWarAttitudeChange>-1</iLostWarAttitudeChange>
    			<iAtWarAttitudeDivisor>-5</iAtWarAttitudeDivisor>
    			<iAtWarAttitudeChangeLimit>5</iAtWarAttitudeChangeLimit>
    			<iAtPeaceAttitudeDivisor>60</iAtPeaceAttitudeDivisor>
    			<iAtPeaceAttitudeChangeLimit>1</iAtPeaceAttitudeChangeLimit>
    			<iSameReligionAttitudeChange>1</iSameReligionAttitudeChange>
    			<iSameReligionAttitudeDivisor>10</iSameReligionAttitudeDivisor>
    			<iSameReligionAttitudeChangeLimit>1</iSameReligionAttitudeChangeLimit>
    			<iDifferentReligionAttitudeChange>0</iDifferentReligionAttitudeChange>
    			<iDifferentReligionAttitudeDivisor>-5</iDifferentReligionAttitudeDivisor>
    			<iDifferentReligionAttitudeChangeLimit>-1</iDifferentReligionAttitudeChangeLimit>
    			<iBonusTradeAttitudeDivisor>50</iBonusTradeAttitudeDivisor>
    			<iBonusTradeAttitudeChangeLimit>2</iBonusTradeAttitudeChangeLimit>
    			<iOpenBordersAttitudeDivisor>25</iOpenBordersAttitudeDivisor>
    			<iOpenBordersAttitudeChangeLimit>2</iOpenBordersAttitudeChangeLimit>
    			<iDefensivePactAttitudeDivisor>12</iDefensivePactAttitudeDivisor>
    			<iDefensivePactAttitudeChangeLimit>2</iDefensivePactAttitudeChangeLimit>
    			<iShareWarAttitudeChange>1</iShareWarAttitudeChange>
    			<iShareWarAttitudeDivisor>8</iShareWarAttitudeDivisor>
    			<iShareWarAttitudeChangeLimit>10</iShareWarAttitudeChangeLimit>
    			<iFavoriteCivicAttitudeChange>1</iFavoriteCivicAttitudeChange>
    			<iFavoriteCivicAttitudeDivisor>10</iFavoriteCivicAttitudeDivisor>
    			<iFavoriteCivicAttitudeChangeLimit>3</iFavoriteCivicAttitudeChangeLimit>
    			<DemandTributeAttitudeThreshold>ATTITUDE_CAUTIOUS</DemandTributeAttitudeThreshold>
    			<NoGiveHelpAttitudeThreshold>ATTITUDE_CAUTIOUS</NoGiveHelpAttitudeThreshold>
    			<TechRefuseAttitudeThreshold>ATTITUDE_ANNOYED</TechRefuseAttitudeThreshold>
    			<StrategicBonusRefuseAttitudeThreshold>ATTITUDE_CAUTIOUS</StrategicBonusRefuseAttitudeThreshold>
    			<HappinessBonusRefuseAttitudeThreshold>ATTITUDE_ANNOYED</HappinessBonusRefuseAttitudeThreshold>
    			<HealthBonusRefuseAttitudeThreshold>ATTITUDE_ANNOYED</HealthBonusRefuseAttitudeThreshold>
    			<MapRefuseAttitudeThreshold>ATTITUDE_PLEASED</MapRefuseAttitudeThreshold>
    			<DeclareWarRefuseAttitudeThreshold>ATTITUDE_PLEASED</DeclareWarRefuseAttitudeThreshold>
    			<DeclareWarThemRefuseAttitudeThreshold>ATTITUDE_PLEASED</DeclareWarThemRefuseAttitudeThreshold>
    			<StopTradingRefuseAttitudeThreshold>ATTITUDE_PLEASED</StopTradingRefuseAttitudeThreshold>
    			<StopTradingThemRefuseAttitudeThreshold>ATTITUDE_PLEASED</StopTradingThemRefuseAttitudeThreshold>
    			<AdoptCivicRefuseAttitudeThreshold>ATTITUDE_CAUTIOUS</AdoptCivicRefuseAttitudeThreshold>
    			<ConvertReligionRefuseAttitudeThreshold>ATTITUDE_CAUTIOUS</ConvertReligionRefuseAttitudeThreshold>
    			<OpenBordersRefuseAttitudeThreshold>ATTITUDE_ANNOYED</OpenBordersRefuseAttitudeThreshold>
    			<DefensivePactRefuseAttitudeThreshold>ATTITUDE_PLEASED</DefensivePactRefuseAttitudeThreshold>
    			<PermanentAllianceRefuseAttitudeThreshold>ATTITUDE_PLEASED</PermanentAllianceRefuseAttitudeThreshold>
    			<VassalRefuseAttitudeThreshold>ATTITUDE_FRIENDLY</VassalRefuseAttitudeThreshold>
    			<iVassalPowerModifier>50</iVassalPowerModifier>
    			<FavoriteCivic>CIVIC_POLICE_STATE</FavoriteCivic>
    			<Traits>
    				<Trait>
    					<TraitType>TRAIT_AGGRESSIVE</TraitType>
    					<bTrait>1</bTrait>
    				</Trait>
    				<Trait>
    					<TraitType>TRAIT_IMPERIALIST</TraitType>
    					<bTrait>1</bTrait>
    				</Trait>
    			</Traits>
    			<Flavors>
    				<Flavor>
    					<FlavorType>FLAVOR_MILITARY</FlavorType>
    					<iFlavor>10</iFlavor>
    				</Flavor>
    			</Flavors>
    			<ContactRands>
    				<ContactRand>
    					<ContactType>CONTACT_RELIGION_PRESSURE</ContactType>
    					<iContactRand>500</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_CIVIC_PRESSURE</ContactType>
    					<iContactRand>500</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_JOIN_WAR</ContactType>
    					<iContactRand>20</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_STOP_TRADING</ContactType>
    					<iContactRand>50</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_GIVE_HELP</ContactType>
    					<iContactRand>250</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_ASK_FOR_HELP</ContactType>
    					<iContactRand>500</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_DEMAND_TRIBUTE</ContactType>
    					<iContactRand>25</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_OPEN_BORDERS</ContactType>
    					<iContactRand>20</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_DEFENSIVE_PACT</ContactType>
    					<iContactRand>80</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_PERMANENT_ALLIANCE</ContactType>
    					<iContactRand>80</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_PEACE_TREATY</ContactType>
    					<iContactRand>20</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_TRADE_TECH</ContactType>
    					<iContactRand>5</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_TRADE_BONUS</ContactType>
    					<iContactRand>5</iContactRand>
    				</ContactRand>
    				<ContactRand>
    					<ContactType>CONTACT_TRADE_MAP</ContactType>
    					<iContactRand>20</iContactRand>
    				</ContactRand>
    			</ContactRands>
    			<ContactDelays>
    				<ContactDelay>
    					<ContactType>CONTACT_RELIGION_PRESSURE</ContactType>
    					<iContactDelay>50</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_CIVIC_PRESSURE</ContactType>
    					<iContactDelay>50</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_JOIN_WAR</ContactType>
    					<iContactDelay>20</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_STOP_TRADING</ContactType>
    					<iContactDelay>20</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_GIVE_HELP</ContactType>
    					<iContactDelay>50</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_ASK_FOR_HELP</ContactType>
    					<iContactDelay>50</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_DEMAND_TRIBUTE</ContactType>
    					<iContactDelay>50</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_OPEN_BORDERS</ContactType>
    					<iContactDelay>20</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_DEFENSIVE_PACT</ContactType>
    					<iContactDelay>20</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_PERMANENT_ALLIANCE</ContactType>
    					<iContactDelay>20</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_PEACE_TREATY</ContactType>
    					<iContactDelay>10</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_TRADE_TECH</ContactType>
    					<iContactDelay>30</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_TRADE_BONUS</ContactType>
    					<iContactDelay>20</iContactDelay>
    				</ContactDelay>
    				<ContactDelay>
    					<ContactType>CONTACT_TRADE_MAP</ContactType>
    					<iContactDelay>50</iContactDelay>
    				</ContactDelay>
    			</ContactDelays>
    			<MemoryDecays>
    				<MemoryDecay>
    					<MemoryType>MEMORY_GIVE_HELP</MemoryType>
    					<iMemoryRand>200</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_REFUSED_HELP</MemoryType>
    					<iMemoryRand>100</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_ACCEPT_DEMAND</MemoryType>
    					<iMemoryRand>50</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_REJECTED_DEMAND</MemoryType>
    					<iMemoryRand>150</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_ACCEPTED_RELIGION</MemoryType>
    					<iMemoryRand>100</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_DENIED_RELIGION</MemoryType>
    					<iMemoryRand>50</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_ACCEPTED_CIVIC</MemoryType>
    					<iMemoryRand>100</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_DENIED_CIVIC</MemoryType>
    					<iMemoryRand>50</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_ACCEPTED_JOIN_WAR</MemoryType>
    					<iMemoryRand>150</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_DENIED_JOIN_WAR</MemoryType>
    					<iMemoryRand>100</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_ACCEPTED_STOP_TRADING</MemoryType>
    					<iMemoryRand>100</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_DENIED_STOP_TRADING</MemoryType>
    					<iMemoryRand>50</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_STOPPED_TRADING_RECENT</MemoryType>
    					<iMemoryRand>30</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_MADE_DEMAND_RECENT</MemoryType>
    					<iMemoryRand>20</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_CANCELLED_OPEN_BORDERS</MemoryType>
    					<iMemoryRand>10</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_TRADED_TECH_TO_US</MemoryType>
    					<iMemoryRand>100</iMemoryRand>
    				</MemoryDecay>
    				<MemoryDecay>
    					<MemoryType>MEMORY_RECEIVED_TECH_FROM_ANY</MemoryType>
    					<iMemoryRand>20</iMemoryRand>
    				</MemoryDecay>
    			</MemoryDecays>
    			<MemoryAttitudePercents>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_DECLARED_WAR</MemoryType>
    					<iMemoryAttitudePercent>-300</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_DECLARED_WAR_ON_FRIEND</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_HIRED_WAR_ALLY</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_NUKED_US</MemoryType>
    					<iMemoryAttitudePercent>-200</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_NUKED_FRIEND</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_RAZED_CITY</MemoryType>
    					<iMemoryAttitudePercent>-250</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_RAZED_HOLY_CITY</MemoryType>
    					<iMemoryAttitudePercent>-200</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_SPY_CAUGHT</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_GIVE_HELP</MemoryType>
    					<iMemoryAttitudePercent>100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_REFUSED_HELP</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_ACCEPT_DEMAND</MemoryType>
    					<iMemoryAttitudePercent>100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_REJECTED_DEMAND</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_ACCEPTED_RELIGION</MemoryType>
    					<iMemoryAttitudePercent>100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_DENIED_RELIGION</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_ACCEPTED_CIVIC</MemoryType>
    					<iMemoryAttitudePercent>100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_DENIED_CIVIC</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_DENIED_JOIN_WAR</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_ACCEPTED_STOP_TRADING</MemoryType>
    					<iMemoryAttitudePercent>50</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_DENIED_STOP_TRADING</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_STOPPED_TRADING</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_HIRED_TRADE_EMBARGO</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_MADE_DEMAND</MemoryType>
    					<iMemoryAttitudePercent>-100</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    				<MemoryAttitudePercent>
    					<MemoryType>MEMORY_TRADED_TECH_TO_US</MemoryType>
    					<iMemoryAttitudePercent>10</iMemoryAttitudePercent>
    				</MemoryAttitudePercent>
    			</MemoryAttitudePercents>
    			<NoWarAttitudeProbs>
    				<NoWarAttitudeProb>
    					<AttitudeType>ATTITUDE_ANNOYED</AttitudeType>
    					<iNoWarProb>10</iNoWarProb>
    				</NoWarAttitudeProb>
    				<NoWarAttitudeProb>
    					<AttitudeType>ATTITUDE_CAUTIOUS</AttitudeType>
    					<iNoWarProb>50</iNoWarProb>
    				</NoWarAttitudeProb>
    				<NoWarAttitudeProb>
    					<AttitudeType>ATTITUDE_PLEASED</AttitudeType>
    					<iNoWarProb>90</iNoWarProb>
    				</NoWarAttitudeProb>
    				<NoWarAttitudeProb>
    					<AttitudeType>ATTITUDE_FRIENDLY</AttitudeType>
    					<iNoWarProb>100</iNoWarProb>
    				</NoWarAttitudeProb>
    			</NoWarAttitudeProbs>
    			<UnitAIWeightModifiers>
    				<UnitAIWeightModifier>
    					<UnitAIType>UNITAI_ATTACK_CITY</UnitAIType>
    					<iWeightModifier>100</iWeightModifier>
    				</UnitAIWeightModifier>
    			</UnitAIWeightModifiers>
    			<ImprovementWeightModifiers/>
    			<DiplomacyIntroMusicPeace>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_ANCIENT</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_EARLY_INTRO</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_CLASSICAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_EARLY_INTRO</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_MEDIEVAL</EraType>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_RENAISSANCE</EraType>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_INDUSTRIAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_LATE_INTRO</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_MODERN</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_LATE_INTRO</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_FUTURE</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_LATE_INTRO</DiploScriptId>
    				</DiploMusicPeaceEra>
    			</DiplomacyIntroMusicPeace>
    			<DiplomacyMusicPeace>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_ANCIENT</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_EARLY_LP</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_CLASSICAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_EARLY_LP</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_MEDIEVAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_MIDDLE</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_RENAISSANCE</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_MIDDLE</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_INDUSTRIAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_LATE_LP</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_MODERN</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_LATE_LP</DiploScriptId>
    				</DiploMusicPeaceEra>
    				<DiploMusicPeaceEra>
    					<EraType>ERA_FUTURE</EraType>
    					<DiploScriptId>AS2D_DIPLO_GENGHISKHAN_LATE_LP</DiploScriptId>
    				</DiploMusicPeaceEra>
    			</DiplomacyMusicPeace>
    			<DiplomacyIntroMusicWar>
    				<DiploMusicWarEra>
    					<EraType>ERA_ANCIENT</EraType>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_CLASSICAL</EraType>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_MEDIEVAL</EraType>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_RENAISSANCE</EraType>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_INDUSTRIAL</EraType>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_MODERN</EraType>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_FUTURE</EraType>
    				</DiploMusicWarEra>
    			</DiplomacyIntroMusicWar>
    			<DiplomacyMusicWar>
    				<DiploMusicWarEra>
    					<EraType>ERA_ANCIENT</EraType>
    					<DiploScriptId>AS2D_DIPLO_WARDRUMS_EARLY</DiploScriptId>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_CLASSICAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_WARDRUMS_EARLY</DiploScriptId>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_MEDIEVAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_WARDRUMS_MIDDLE</DiploScriptId>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_RENAISSANCE</EraType>
    					<DiploScriptId>AS2D_DIPLO_WARDRUMS_MIDDLE</DiploScriptId>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_INDUSTRIAL</EraType>
    					<DiploScriptId>AS2D_DIPLO_WARDRUMS_LATE</DiploScriptId>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_MODERN</EraType>
    					<DiploScriptId>AS2D_DIPLO_WARDRUMS_LATE</DiploScriptId>
    				</DiploMusicWarEra>
    				<DiploMusicWarEra>
    					<EraType>ERA_FUTURE</EraType>
    					<DiploScriptId>AS2D_DIPLO_WARDRUMS_LATE</DiploScriptId>
    				</DiploMusicWarEra>
    			</DiplomacyMusicWar>
    		</LeaderHeadInfo>
    

    I also made some changes with <iBaseAttitude>(-2), <iBasePeaceWeight>(-1) and <iPeaceWeightRand>(-1) and <iWarmongerRespect>(0) in another version (I think they're the values) but that just ended up with everyone hating the leader and vica versa. It didn't encourage war at all.
     
  11. kettyo

    kettyo Seeker of Reality

    Joined:
    Mar 6, 2002
    Messages:
    662
    Location:
    Budapest, Hungary
    <iMaxWarNearbyPowerRatio>200 - Why you need double power to attack?

    <iLimitedWarRand>1000 - This actually bans limited wars (whatever that means :) )

    OpenBordersRefuseAttitudeThreshold>ATTITUDE_ANNOYED - Change this to cautious so Genghis will only open his borders for pleased/friendly rivals. He won't attack anyone with open borders on

    <NoWarAttitudeProb>
    <AttitudeType>ATTITUDE_ANNOYED</AttitudeType>
    <iNoWarProb>10</iNoWarProb>
    </NoWarAttitudeProb>
    <NoWarAttitudeProb>
    <AttitudeType>ATTITUDE_CAUTIOUS</AttitudeType>
    <iNoWarProb>50</iNoWarProb>
    </NoWarAttitudeProb>
    - Clear these lines (mercy randomizers) completely to make Genghis attack his annoyed and cautious rivals if in the position and other criteria are fulfilled

    It's sure with the attitude values you written the given leader will be hated by even the softer warmongers only the toughest warmongers like Monty and Napoleon could get a cautious relation with him.
    Gandhi is probably furious right from the start :)

    Just my first sight observations and thoughts.
     
  12. Watiggi

    Watiggi Chieftain

    Joined:
    Feb 27, 2006
    Messages:
    2,107
    I don't think this is what people think it is. With it like this, Genghis allways attacked the neighbours regardless of the relative power ratios. I am wondering if this value is a ratio between near and far, so 200:10 or something like that. I have found nothing while playing to suggest that it has to do with relative power ratios.

    I didn't want him to conduct limited wars (which is basically declare war, have a bit of a skirmish and then sue for peace). You'll notice that Genghis will stay at war for quite a long time too (make peace rand of 200 where it's usually a lot lower).

    Hmm. Didn't think of this. My thoughts were that the Genghis AI tends to open borders and then seek out the resources (which is why he is happy to open borders while still being annoyed with you). Basically he will open borders, find copper and then close borders and declare war right away. It has happened to me a few times in the normal game. It's almost as if the strategy was specifically designed for him and it's certainly no accident. The default setting has it just as low too.

    This is interesting. I didn't realise these existed. I will definitely kill this, that's for sure.

    Yeah, most were annoyed, even the warmongers I think and a couple were furious. It didn't do anything for my objectives though as it just restricted his trading choices.

    I have also set him up to get along really well with other leaders who are at war with the same enemies. It will go up to +10.

    Another thing I have done which may not be so obvious is that he has a 80&#37; probability of building units. I thought this might get his power rating up quickly but all it does is give him a lot of units and no outlet for them (ie, no war).

    Another thing: How do you make them go to war immediately apon contact or close enough to? With the settings I have, there seems to be a limited number of turns before the AI will declare war on someone. Do you know of this?
     
  13. kettyo

    kettyo Seeker of Reality

    Joined:
    Mar 6, 2002
    Messages:
    662
    Location:
    Budapest, Hungary

    You misunderstand this i think.
    I'm very confident that 'MaxWarNearbyPowerRatio' and 'MaxWarDistantPowerRatio' mean how much power we must have compared to rival to able to declare war on them.
    So 50 means 50&#37; power is enough (would be foolish).
    200% means you need double the power rating (cowardly :))

    'LimitedWarPowerRatio' is the very same just how much power do we need in relation to rival to able to declare a limited war on them (i think these could be overseas civs etc. but i don't know)

    We cannot do this.

    Iustus (Blake team member) wrote here an explanation about this not so much earlier.
    The AI need to have a unit wanting to move to the territory of the rival AI and when it cannot do so due to closed borders then they evaluate a war declaration.

    Blake's have written the code that after war decision they don't declare war instantly but send an attack stack and only declare war when it has arrived at the border which is cool.

    I don't know whether they could and intend to replace this routine with an alternative war declaration mechanism like checking all the rivals for a war declaration in the beginning of all AI turns.

    Now it's their business.

    So actually slower game speeds also mean more wars because more units will wander around in the same time range which could trigger out wars.
    Still i can't play epic speed on huge map. 17 turns for polytheism is too much for me. ;)
     
  14. bolt144

    bolt144 Chieftain

    Joined:
    Dec 13, 2003
    Messages:
    31
    Based on experiences with other mods, placing it in that specific location applies only to single player games. Not multiplayer. Can you say with certainty that multiplayer/direct IP uses the info in CustomAssets? I don't see the harm in replacing the original DLL.

    Regardless, my opponent had said that he experienced the same problem and he had placed it in the recommended location.

    Thanks for the help.
     
  15. kettyo

    kettyo Seeker of Reality

    Joined:
    Mar 6, 2002
    Messages:
    662
    Location:
    Budapest, Hungary
    Don't get me wrong but it's good to see whining for the peacemongers and whining for the warmongers the same time. :D

    It suggests balance could be about ok. :)
     
  16. Iustus

    Iustus Chieftain

    Joined:
    Jul 18, 2006
    Messages:
    609
    Location:
    Sunnyvale, CA
    There are a few basic things with how AI's war, which cause AI-AI wars to be shorter than you would expect.

    • After 30-40 turns, if the war is going about even for both, then peace is made.
    • After 50 turns, peace is made, always.
    • unless you have aggresive AI checked, the chance of war goes down in proportion to the number of cities an AI has. (it rolls a die from 1 to number of cities, if it rolls a 1, then it will consider war that turn).
    • if an AI thinks it is in financial trouble, it will not declare war, under any circumstances. you would be supprised how often this occurs.

    I am testing out a build right now that makes some changes in these:
    • (B) is completely removed.
    • (D) is changed, if a leader is determined to be warlike, then he will choose war to solve financial troubles
    • AIs performing dagger strats or who choose war to solve finances will be very relucant to end wars while they are winning

    If these changes pan out correctly, then conquest and domination wins may actually happen! It will make it into the Better AI build if the behavior seems good.

    -Iustus
     
  17. Arlborn

    Arlborn Legendary Noob

    Joined:
    Jul 29, 2006
    Messages:
    1,939
    So just to clarify(I asked before you didnt asnwer), Better AI Team = Blake + you?
     
  18. Louis XXIV

    Louis XXIV Le Roi Soleil

    Joined:
    Mar 12, 2003
    Messages:
    13,579
    Location:
    Norfolk, VA
    I agree. I think a warmongering civ should have an automatic distrust of powerful warmongering civs. They should be willing to ally with them to conquer a third party, but will always react to how the other is doing (trying to keep up in the power raiting, for instance). They will never be friends, though, and won't give them stuff that could be used against them (techs for military, for instance).

    This might be a bit too complicated to program, though. I don't think that warmongers should automatically attack other warmongers, just that they will try to limit other warmongers from growing too powerful unless they too are able to keep uip.
     
  19. Iustus

    Iustus Chieftain

    Joined:
    Jul 18, 2006
    Messages:
    609
    Location:
    Sunnyvale, CA
    Right now, we have a third person just coming online right now.

    -Iustus
     
  20. kettyo

    kettyo Seeker of Reality

    Joined:
    Mar 6, 2002
    Messages:
    662
    Location:
    Budapest, Hungary
    Thanks for all the info!
    I think you should try to remove C too. It's a real nonsense. :)
    And if aggressive AI turns that off you could take and use that code by default.
     

Share This Page