Complete.Org: Mailing Lists: Archives: freeciv-dev: June 2000:
[Freeciv-Dev] Re: Diplomatic states patch
Home

[Freeciv-Dev] Re: Diplomatic states patch

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Freeciv dev list <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Diplomatic states patch
From: Robert Rendell <rob@xxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 7 Jun 2000 11:40:18 +1000 (EST)

Tony Stuckey wrote:
} On Tue, Jun 06, 2000 at 01:58:54PM +0200, Thue Janus Kristensen wrote:
} > IIRC, in payciv you did not need an embassy to have a meeting. I think it
} > should either be made that way, inclusive a free first meeting, or kept
} > the way it is now.
} 
}       There were three ways to enter the diplomatic dialogs:
} 
}       1) initial meeting of any kind of unit anywhere.
}       2) Diplomat adjacent to a city chooses "Meet with King".
}       3) Embassy -> Meet button.
} 
}       So no, you didn't *have* to have an embassy to meet.  But it was
} not a free action you could take just for fun.

It works differently in Civ 1 and Civ 2.  In Civ 1, the computer can meet
you any time you have adjacent ground units with them, but you can only
initiate a meeting with them with a diplomat using "Meet with King".
Embassies didn't allow meetings, they just gave information.  When you
first moved ground units next to them, a meeting always happens (it has to
be ground units - your ocean units could happily pound their cities without
diplomatic channels opening, which was handy if you were a republic or
democracy :)

In Civ 2, both you and the computer can initiate a meeting any time after
you've encountered one another, independant of embassies or units.  A
meeting is automatically initiated when you first meet (I don't know if the
ground-unit condition still applies).  Diplomats and Spys don't have "Meet
with King".  Abuse is controlled by the AI players getting sick of you
talking to them if you contact them too often, becoming less well disposed
to your overtures.

A diplomacy.ruleset file would be the right way to customise this sort of
stuff, but will be a bit of work to do.

When I added diplomacy to Openciv (a Civ 1 clone written in python which I
hacked on for a while), I did things a different way again - I made it work
as Tony describes it above, with three ways to meet, and what you could
agree on in the meeting was a function of which type of meeting it was.
For instance, you could only trade advances when one side had an embassy
established with the other (since you can't just hand over knowledge like a
bag of gold).  Also, diplomats couldn't just establish embassies at will -
that was a treaty point that had to be agreed on.  I'd like a
diplomacy.ruleset file to be sufficiently general that you could do such a
varient in freeciv.

If anyone's interested, here's the way I did diplomacy in openciv:

    # 'level' indicates who is conducting the negotiations:
    # 0: grunts conducting the initial, free treaty
    #    * peace treaty, offer/demand gold, offer/demand city
    # 1: our diplomat is involved, but there are no common embassies
    #    * as above + alliance, build embassy, demand war/peace with others
    # 2: meeting was initiated from an embassy
    #    * as above except build embassy, + offer/demand advance
    # 3: our diplomat was sent, and they already have an embassy with us
    #    * all
    #
    # If 'force' is true, they've got the Great Wall or United Nations, and
    # we have to agree to peace.  Start with a treaty agreeing on peace
    # signed by us which we can't cancel.

(As with freeciv, your signature is removed from the treaty if any points
are added or removed, so 'force' isn't quite as brutal as it might first
appear.)

                                                        Have fun,
                                                         Rob R.
                                                          \((/
                                                          ~oo~
                                                          /))\



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