Complete.Org: Mailing Lists: Archives: freeciv-ai: March 2005:
[freeciv-ai] Re: Questions on advdiplomacy

[freeciv-ai] Re: Questions on advdiplomacy

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Jordi Negrevernis i Font <jorneg@xxxxxxxxxxx>
Cc: freeciv-ai@xxxxxxxxxxx
Subject: [freeciv-ai] Re: Questions on advdiplomacy
From: Jason Dorje Short <jdorje@xxxxxxxxxxxx>
Date: Wed, 02 Mar 2005 13:04:58 -0500

Jordi Negrevernis i Font wrote:
I was looking at advdiplomacy.c /Freeciv 2.0.0 Beta 8) and found 3 issues:

* When we evaluate an exchange of a city, we check for the capital city to deny a request.
 Why we don't check to see if it's the last city?

There was one game where an AI player traded me his last city (PR#12287).

   /* If this lucky fella got a ceasefire with da boss, then
    * let him live. */
   if (pplayer_get_diplstate(aplayer, ai->diplomacy.alliance_leader)->type
       == DS_CEASEFIRE && pclause->type == CLAUSE_CEASEFIRE) {
notify(aplayer, _("*%s (AI)* %s recommended that I give you a ceasefire."
              " This is your lucky day."), pplayer->name,

Why we do not accept a peace state with the boss to give a cease-fire to an enemy?

Personally I don't understand/like any of the AI alliance leader concepts. They make diplomacy very hard (sometimes you can't even do diplomacy with one player until you contact another) and make alliances too rigid.

   /* Remember: pplayers_allied() returns true when aplayer == eplayer */
   if (!cancel_excuse && pplayers_allied(aplayer, eplayer)) {
     if (ds == DS_CEASEFIRE) {
       kill_desire -= kill_desire / 10; /* 10% off */
     } else if (ds == DS_NEUTRAL) {
       kill_desire -= kill_desire / 7; /* 15% off */
     } else if (ds == DS_PEACE) {
       kill_desire -= kill_desire / 5; /* 20% off */
     } else if (ds == DS_ALLIANCE) {
       kill_desire -= kill_desire / 3; /* 33% off here, more later */
 } players_iterate_end;

In computing the desire for war, i think that the first check should exchange DS_NEUTRAL and DS_CEASEFIRE because you get a higher penalty for breaking a cease-fire instead of a neutral treaty.

Yes, absolutely.  ceasefire is one step "up" from neutral.


[Prev in Thread] Current Thread [Next in Thread]