Complete.Org: Mailing Lists: Archives: freeciv-dev: January 2000:
[Freeciv-Dev] diplomat/spy handling
Home

[Freeciv-Dev] diplomat/spy handling

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] diplomat/spy handling
From: Jeff Mallatt <jjm@xxxxxxxxxxxx>
Date: Tue, 11 Jan 2000 15:07:41 -0500

This started out with a simple complaint from a friend who noticed that
Diplomats/Spies need *lots* of movement to do anything.  In Civ2, they need
only 1/3 movement point to perform any action.  "A quick fix", I thought...

It turns out that this constraint was buried deep in the code, and I found
that much of the Diplomat/Spy handling could stand some fixing.

So, here is a major cleanup/reimplementation of the Diplomat/Spy code, in
an effort to make it more closely compliant with Civ2 rules.  Some specific
changes are:

- Changed all Diplomat/Spy actions to more closely conform to Civ2 rules.
  (See comments in server/unitfunc.c for diplomat_*() and spy_*() routines.)

- Changed "diplchance" to be %-chance of success.  Used in many ways.
  (Again, see diplomat_*() and spy_*() routines in server/unitfunc.c.)

- Diplomat/Spy may attempt action with any movement left.

- Added "At Spy's Discretion" selection to steal tech and sabotage dialogs.
  (Gtk and Xaw clients changed.  Mui client not changed.)

- Allow Spies to steal tech from a city more than once (gets harder).

- May only poison towns of size > 1.

- May only sabotage units that are alone on a square.

- When a city is subverted, only nearby units change sides.

- Veteran status improves Diplomat/Spy defense against other Diplomats/Spies.

- Changed interpretation of kill_outside arg to transfer_city_units()
  to be the radius outside which supported units are killed (-1 means none).

Attachment: dipl-spy-cleanup-2.diff.gz
Description: Binary data

jjm

[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] diplomat/spy handling, Jeff Mallatt <=