Questions on advdiplomacy

Jordi Negrevernis i Font <[email protected]> Wed, 02 Mar 2005 18:42:41 +0100
Newsgroups gmane.games.freeciv.ai
Message-ID <[email protected]>
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?

*
    /* 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,
               ai->diplomacy.alliance_leader->name);

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


*
    /* 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.