Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2003:
[Freeciv-Dev] Re: barbarians on the poles (PR#6183)
Home

[Freeciv-Dev] Re: barbarians on the poles (PR#6183)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: jdorje@xxxxxxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: barbarians on the poles (PR#6183)
From: "rwetmore@xxxxxxxxxxxx" <rwetmore@xxxxxxxxxxxx>
Date: Thu, 2 Oct 2003 20:29:48 -0700
Reply-to: rt@xxxxxxxxxxxxxx

Jason Short wrote:
> Gregory Berkolaiko wrote:
> 
>>On Mon, 29 Sep 2003, Jason Short wrote:
[...]
> When viewed in this light, it seems clear to me that an attempted 
> summons on a bad-terrain tile shouldn't be treated any differently than 
> any other summoning method.  The probability of summoning on one tile 
> shouldn't change when a different tile is transformed.
> 
> This method also has the advantage of being robust.  If all tiles are 
> tundra and glacier, then there will just be no successful summoning.

The concept of a bad terrain tile for summoning may have some merit, but
the current implementation of hardwiring particular behavour for certain
terrain types is fundamentally flawed..

Since terrain is governed by the rulesets, then any such behaviour needs
to be a ruleset option, *not* a hardwired code option.

There is nothing wrong with wanting to play a game on a Star Wars IceMoon
thus, any fixed restriction on Glaciers and Tundra types is very bad.

> Patch attached.

And hopefully rejected as this is a very bad solution for what the comment
claims it is doing.

There is no fundamental relationship between polar and the terrain types you
have flagged in a general sense. They could be used for polar regions as is
currently done, They could be used in non-polar regions, and in fact are
routinely. There is no reason for restricting barbarians from being summoned
on TUNDRA which is routinely found on player continents and as has been Freeciv
historical practice.

Thus by this hack you are changing the fundamental characteristics of the game
by forcing hardcoded associations to handle a non-problem with completely
different rationale and trivial other solutions.

In fact, the current solution is just fine and you have failed to demonstrate
an adequate reason why it is not and should be changed, let alone looked at
better solutions for solving the problem of barbarians on the poles.

> jason

Cheers,
RossW
=====


> ------------------------------------------------------------------------
> 
> Index: server/barbarian.c
> ===================================================================
> RCS file: /home/freeciv/CVS/freeciv/server/barbarian.c,v
> retrieving revision 1.68
> diff -u -r1.68 barbarian.c
> --- server/barbarian.c        2003/09/19 14:14:45     1.68
> +++ server/barbarian.c        2003/10/02 01:58:49
> @@ -328,10 +328,18 @@
>    struct city *pc;
>    struct player *barbarians, *victim;
>  
> +  /* We attempt the summons on a particular, random position.  If this is
> +   * an invalid position then the summons simply fails this time.  This means
> +   * that a particular tile's chance of being summoned on is independent of
> +   * all the other tiles on the map - which is essential for balanced
> +   * gameplay. */
> +  rand_map_pos(&x, &y);
> +
>    /* No uprising on North or South Pole */
> -  do {
> -    rand_map_pos(&x, &y);
> -  } while (y == 0 || y == map.ysize - 1);
> +  if (map_get_terrain(x, y) == T_TUNDRA
> +      || map_get_terrain(x, y) == T_ARCTIC) {
> +    return;
> +  }
>  
>    if (!(pc = dist_nearest_city(NULL, x, y, TRUE, FALSE))) {
>      /* any city */




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