(PR#10078) AIs often agress on cease fire just for one turn

"Mateusz Stefek" <mstefek-IjDXvh/[email protected]>
Newsgroups gmane.games.freeciv.ai
Message-ID <[email protected]>
<URL: http://rt.freeciv.org/Ticket/Display.html?id=10078 >

> [mstefek - Mon Sep 13 07:39:38 2004]:
> 
> The reason is that ai_players_can_agree_on_ceasefire() isn't restrictive
> enough.
> This patch fixes it.
> Also change the method of calculating ai.love gravitation. Now it's
> better rounded.
> --
> mateusz
> 
Of course it should be _!_ at_war_with_ally
--
mateusz
cease_fire_restriction2.diff (text/x-patch, 1.3 KB)
Index: advdiplomacy.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/advdiplomacy.c,v
retrieving revision 1.37
diff -u -r1.37 advdiplomacy.c
--- advdiplomacy.c	6 Sep 2004 09:00:32 -0000	1.37
+++ advdiplomacy.c	13 Sep 2004 07:58:08 -0000
@@ -173,8 +173,7 @@
   struct ai_data *ai1;
   ai1 = ai_data_get(player1);
   return (ai1->diplomacy.target != player2 && 
-          (player1 == ai1->diplomacy.alliance_leader ||
-           !pplayers_at_war(player2, ai1->diplomacy.alliance_leader)) &&
+          !ai1->diplomacy.player_intel[player2->player_no].at_war_with_ally &&
 	  player1->ai.love[player2->player_no] > -40 &&
 	  (ai1->diplomacy.target == NULL || 
 	   !pplayers_allied(ai1->diplomacy.target, player2)));
@@ -743,8 +742,9 @@
 	  
     /* Massage our numbers to keep love and its opposite on the ground. 
      * Gravitate towards zero. */
-    pplayer->ai.love[aplayer->player_no] -= 
-       (pplayer->ai.love[aplayer->player_no] * ai->diplomacy.love_coeff / 100);
+    pplayer->ai.love[aplayer->player_no] = 
+       (pplayer->ai.love[aplayer->player_no] * 
+       (100 - ai->diplomacy.love_coeff) / 100);
        
     /* ai love should always be in range [-100..100] */
     pplayer->ai.love[aplayer->player_no] =
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.