Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2002:
[Freeciv-Dev] Re: movement

[Freeciv-Dev] Re: movement

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Freeciv developers <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: movement
From: Brandon Craig Rhodes <brandon@xxxxxxxxxxxxxx>
Date: 14 Aug 2002 10:57:25 -0400

"Anthony J. Stuckey" <astuckey@xxxxxxxx> writes:

>       IMHO, we want to always fail the rand().

My suggestion was precisely that the rand() should always fail, but
instead of throwing away the remaining points commits them toward
completing the movement at the beginning of the next turn.

Having focused on playing and manual-writing I am not familiar with
the code, but: would it be possible to implement my proposed scheme
very simply, by making point-carryover a property of the Goto command?

If the server is aware of when units request a Goto (am I correct in
assuming it is done server-side?), we could supplement the Goto data
structure so that it remembers to commit leftover points from the
previous turns to movment initiated at the beginning of the next turn.
Then, implementing my scheme becomes trivial: if a unit attempts to
move on to a square for which he lacks enough movement points, the
client insteead submits a Goto for the unit with the square as his
destination; the Goto routine will see he cannot move farther and at
the end of the turn will save his remaining movement points and use
them at the beginning of the next turn.

This also has the advantage that what has happened will be immediately
obvious to the user; when he tries to move his horsemen with one point
left into the mountains, an arrow and X will appear indicating the
Goto command has been issued for them.  He will know exactly what has
happened, and also will be able to cancel it (by re-selecting them)
should he realize he wants to move them a different direction instead.

Brandon Craig Rhodes   brandon@xxxxxxxxxxxxxx

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