Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2002:
[Freeciv-Dev] Re: (PR#2507) incite cost patch
Home

[Freeciv-Dev] Re: (PR#2507) incite cost patch

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: per@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#2507) incite cost patch
From: "Raahul Kumar via RT" <rt@xxxxxxxxxxxxxx>
Date: Sat, 7 Dec 2002 19:00:33 -0800
Reply-to: rt@xxxxxxxxxxxxxx


--- "Per I. Mathisen via RT" <rt@xxxxxxxxxxxxxx> wrote:
> 
> This is Thomas' incite cost patch with my extensive modifications adapted
> to current cvs.
> 
> Only one change since last time (apart from cvs adaptation): Celebrating
> cities can now be incited, but at double price. Since we also get
> stability bonuses from happy cities and bonuses from happy citizens, a
> celebrating city should be extremely expensive, yet not impossible to
> incite.
>  /**************************************************************************
> -  Sets the incite_revolt_cost field in the given city.
> +  Returns the cost to incite a city. This depends on the size of the city,
> +  the number of happy, unhappy and angry citizens, whether it is
> +  celebrating, how close it is to the capital, how many units it has and
> +  upkeeps, presence of courthouse and its buildings and wonders.
>  **************************************************************************/
>  int city_incite_cost(struct player *pplayer, struct city *pcity)
>  {
>    struct government *g = get_gov_pcity(pcity);
>    struct city *capital;
> -  int dist;
> -  int incite_revolt_cost;
> +  int dist, size, cost;


>    if (city_got_building(pcity, B_PALACE)) {
> -    incite_revolt_cost = INCITE_IMPOSSIBLE_COST;
> -  } else {
> -    incite_revolt_cost = city_owner(pcity)->economic.gold + 1000;
> -    capital = find_palace(city_owner(pcity));
> -    if (capital) {
> -      int tmp = map_distance(capital->x, capital->y, pcity->x, pcity->y);
> -      dist = MIN(32, tmp);
> +    return INCITE_IMPOSSIBLE_COST;
> +  }

You need a Civ 2 compatability option. Hah! See how it feel when you're on the
receiving end ; ) .

> +  if (city_celebrating(pcity)) {
> +    cost *= 2;
> +  }

This is a bad idea. You should have return INCITE_IMPOSSIBLE_COST here. 
It makes no sense. All the citizens are happy with your rule, yet they will 
revolt for sufficient cash. 

I defy you to provide one real life example of this effect. No amount of cash
will subvert a city unless there are people unhappy with the current regime. 
 
> +  /* City is empty */
> +  if (unit_list_size(&map_get_tile(pcity->x,pcity->y)->units) == 0) {
> +    cost /= 2;
> +  }
> +
> +  /* Buy back is cheap, conquered cities are also cheap */
> +  if (pcity->owner != pcity->original) {
> +    if (pplayer->player_no == pcity->original) {
> +      cost /= 2;            /* buy back: 50% price reduction */
> +    } else {
> +      cost = cost * 2 / 3;  /* buy conquered: 33% price reduction */
>      }
>    }

I like this. Great addition to the gameplay. Can you add docu to the help text?

Aloha,
RK.

Waving away a cloud of smoke, I look up, and am blinded by a bright, white
light. It's God. No, not Richard Stallman, or Linus Torvalds, but God. In a
booming voice, He says: "THIS IS A SIGN. USE LINUX, THE FREE UNIX SYSTEM FOR
THE 386. -Matt Welsh

__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com



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