Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2002:
[Freeciv-Dev] Re: (PR#2293) Paratroopers jumping into an empty city
Home

[Freeciv-Dev] Re: (PR#2293) Paratroopers jumping into an empty city

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: ue80@xxxxxxxxxxxxxxxxxxx
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#2293) Paratroopers jumping into an empty city
From: "Davide Pagnin via RT" <rt@xxxxxxxxxxxxxx>
Date: Sun, 17 Nov 2002 11:05:29 -0800
Reply-to: rt@xxxxxxxxxxxxxx

On Sun, 2002-11-17 at 19:44, Anthony J. Stuckey via RT wrote:
> On Sun, Nov 17, 2002 at 10:01:56AM -0800, Davide Pagnin via RT wrote:
> > Ok, I found that allowing this is wrong.
> > 
> > If you paradrop in an empty city of someone you are not in contact to,
> > the paratrooper is successful but the city isn't conquered.
> > 
> > This will crash the server, at the end of turn, because of sanity
> > checks, and moreover it should not be allowed to have not-allied unit
> > inside a city.
> 
>       Right.
> 
> > Which should be the correct fix for this problem?
> [...] 
> > 1) We can let people declare war automatically if they paradrop in a
> > not_known no_contact empty city (fixing the problem that the paratrooper
> > enter a city to which we are not in *real* WAR).
> > I have to say that this should be the correct answer if we agree that
> > the pplayer_at_war() function do return TRUE if we are in NO_CONTACT...
> > 
> > 2) We can instead kill the paratrooper if he paradrop in a not_known
> > no_contact empty city (as we do for neutral, peace or cease-fire).
> > This is perhaps easy, but then we need to make_contact() happen before
> > the paradrop.
> > 
> > 3) What should happen if we paradrop on a stack of unit that contain
> > units of a nation we are in no_contact status, should we need to
> > make_contact()?
> > 
> > Let me know your thoughts, this fix (partial or complete) need to find
> > its way before 1.14.0.
> 
>       The whole idea of randomly killing paratroopers irks me for a reason I

randomly isn't appropriate, IMHO.

> haven't figured out yet.  Maybe IMHO, units should only die in battle or
> disband.

I have already said that I dislike having paratrooper killed if they
paradrop on not in war units/cities.

If the paratrooper is disbanded there is no difference. (Maybe you want
to change the message that is sent to the player, but this is not a
1.14.0 stable branch issue)

>       I'd go with option 1, and document it in the Paratrooper description.

I don't agree with you that option 1 is preferable.
I've said it is correct only because NO_CONTACT is considered WAR in
pplayers_at_war() function, but I think that pplayers_at_war() is wrong,
but Per ruled that we cannot change its behavior in the stable brach
(for now, at least...)

> Then people could avoid that behavior if they don't like unexpectedly
> declaring war.

How? 

> 
>       If we paradrop onto a stack of units, why don't we immediately engage
> in battle?

That is what we do now.

> Because we don't want to special case having to wipe every
> non-allied unit if the paratrooper wins?

the paratrooper always lose (paratroopers are considered extremely
vulnerable until landed)

Perhaps you don't understand the point, the problem isn't the battle.

The problem is that when you first meet a unit of a player that your
have no contact with, in normal circumstances (means, not in this
particular paradrop case) a contact is made between you and that player.

In this particular paradrop case, for solving the issue we need to
iterate on all units on a tile and find out if we have contact with that
unit, before killing the paratrooper.

And all of this iterate, is a lot of work, for such a little thing,
besides that I'm not sure to be able to made the code necessary right.

        Ciao, Davide




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