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: "Davide Pagnin via RT" <rt@xxxxxxxxxxxxxx>
Date: Sun, 8 Dec 2002 07:09:12 -0800
Reply-to: rt@xxxxxxxxxxxxxx

On Sun, 2002-12-08 at 14:25, Per I. Mathisen via RT wrote:
> On Sun, 8 Dec 2002, Davide Pagnin via RT wrote:
> > 1. I would like this main incite rewrite to introduce the concept of
> > "international incident". In civ1 and civ2, when you were peace with
> > your opponent you were given the option of 'subverting the city' (not
> > simply inciting it), that will cost twice the gold of inciting and will
> > not give any reputation penalty to you, nor will end up in Democracy
> > fall down cause to senate being overruled.
> > NOTE: if you choose the 'subvert option' the opposite site has no 'GOOD
> > REASON' for declare war to you, but this don't mean that the opposite
> > site will not.
> 
> No. This is a separate feature and should be in a separate patch.
> Especially since I don't like this feature at all.

Oh, well, I hope that "I don't like this feature at all" is a good
reason. Your personal preferences are of great importance, but
definitely they are not SO important.

I found this is not a separate issue, because the "action" is the same,
that is bribing an enemy city and INSTEAD the reputation effect is
different.

If I remember well, you (and Raahul, but I can be wrong here) dislike
the SENATE feature of Civ2, and this is the whole problem.
But I can't see why such personal inclination should reflect to Freeciv.
Obviously I won't ask to you to write a "Add Senate Feature" patch.

Nevertheless, I feel that this "incite rewrite" moment is the best
moment to ask to add this feature.

> 
> > > +unit_list_iterate(map_get_tile(pcity->x,pcity->y)->units, punit) {
> > > +  cost += unit_type(punit)->build_cost;
> > > +} unit_list_iterate_end;
> >
> > I suggest a general variable here like
> > present_unit_incite_cost
> > it can be boolean or numeric, and will allow/not allow to count present
> > in city units build cost in the incite cost.
> 
> I guess a multiplication factor would be better. Zero would disallow.

Agreed:
0 : actual default factor, civ1 and civ2 ruleset
1 : new proposed default factor

perhaps 2 or more, for modpacks -- scenarios

history, don't know

This variable MAY be the same for units, wonders and improvement, but If
we use 3 variables there is nothing wrong.

I should remark that I'm not proposing server options.
I'm proposing ruleset option.

> 
> Same for buildings and wonders.
> 
> > > +/* Distance from capital */
> > > +capital = find_palace(city_owner(pcity));
> > > +if (capital) {
> > > +  int tmp = map_distance(capital->x, capital->y, pcity->x, pcity->y);
> > > +  dist = MIN(32, tmp);
> >
> > This definitely is a Magic number, we need instead a
> > max_capital_distance_incite_cost
> > ruleset variable
> 
> I've been thinking maybe this number should be derived from the size of
> the map instead. Something like half the size of the longest of height and
> width.

This can be another idea. But I feel that a configurable number can be
more flexible and will avoid strange topologies problems.
NOTE: I will check if map dimension will change civ2 magic number

> 
> > This changes the current behavior of Courthouse, I would like that this
> > is configurable as "courthouse effect", this means to let 2 for the
> > moment or to wait gen-impr included in CVS.
> 
> If we don't, we'll have to take another discussion about this after
> general effects. That is okay if you disagree with this change, but then
> say so, don't hide behind gen effects.

I'm not hiding behind nothing.
I feel that Courthouse, this way, become very powerful and I don't know
If this is good or bad, moreover I'm assured that with gen-impr included
in CVS this behavior isn't HARDCODED in the incite cost function and
then I can easily modify it through rulesets.

> 
> > > +size = MAX(1, pcity->size
> > > +              + pcity->ppl_happy[4]
> > > +              - pcity->ppl_unhappy[4]
> > > +              - pcity->ppl_angry[4] * 3);
> >
> > Those different weight for different class of citizen should be
> > configurable by a ruleset variable.
> 
> I'm reluctant to add so many ruleset options, but if that is what it
> takes...

this calculation means:

happy citizen counts as 2
content citizen counts as 1
unhappy citizen count as 0
angry citizen count as -1

Can this made explicit using 
ppl->happy * 2 + ppl->content * 1 
+ ppl->unhappy * 0 - ppl_angry * 1

Then a place where the 4 additional ruleset variable is easy to find...

Anyway I don't oppose to a a boolean switch
(happiness_modify_incite_cost), that can switch this on/off.

if (happiness_modify_incite_cost) {
  size = MAX(1, pcity->size
         + pcity->ppl_happy[4]
         - pcity->ppl_unhappy[4]
         - pcity->ppl_angry[4] * 3);
} else {
  size = pcity->size;
}

        Ciao, Davide




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