Complete.Org: Mailing Lists: Archives: freeciv-dev: February 2003:
[Freeciv-Dev] Re: Civ 2 Combat fixes
Home

[Freeciv-Dev] Re: Civ 2 Combat fixes

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Raahul Kumar <raahul_da_man@xxxxxxxxx>
Cc: freeciv development list <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Civ 2 Combat fixes
From: Davide Pagnin <nightmare@xxxxxxxxxx>
Date: 03 Feb 2003 17:07:31 +0100

On Mon, 2003-02-03 at 13:43, Raahul Kumar wrote:
> I don't know if you've already read this, but Civ 2 did some combat 
> differently
> to Freeciv. I'm asking you to send in patches to fix this. 
> 
> In particular: 
> 
> Aegis cruiser has 300 % defence vs aircraft and 500% vs missile. Freeciv does
> this:
> 
> static int defence_multiplication(Unit_Type_id att_type,
>                                 Unit_Type_id def_type, int x, int y,
>                                 int defensepower, bool fortified)
> {
>   struct city *pcity = map_get_city(x, y);
> 
>   if (unit_type_exists(att_type)) {
>     if (unit_type_flag(def_type, F_PIKEMEN)
>       && unit_type_flag(att_type, F_HORSE)) {
>       defensepower *= 2;
>     }
> 
>     if (unit_type_flag(def_type, F_AEGIS) &&
>       (is_air_unittype(att_type) || is_heli_unittype(att_type))) {
>       defensepower *= 5;
>     }
>          
> 
> It should do this:
> 
> if (unit_type_flag(def_type, F_AEGIS)){ 
> +     if (unit_type_flag(att_type, F_MISSILE)){ 
>        defensepower *= 5;
> +    }
> +    else if (is_air_unittype(att_type) || is_heli_unittype(att_type)){
> +      defensepower *= 3;
> +      }
>      }
> 
> I can send in my old Aegis patch if you want. It will probably still apply.
> Combat.c has not changed much.
> 
> All of this info is from 
> 
> http://www.apolyton.net/forums/Forum1/HTML/001944.html?8

I do know of this patch and that you proposed the fix.
The reason why it has been stalled is that we are waiting to implement a
generalized improvement support patch.
With that gen-impr patch applied to Freeciv, it will be easy to extend
the code to adopt also a generalized unit handling, which will lead to
very simple way of configuring such special cases.

> 
> 3.8 Partisans gain an attack advantage against non-combat units (any with
> attack value = 0). Their firepower is increased significantly, perhaps as high
> as 10x.

I wasn't aware of this rule. Have you found this is the civ2 manual or
somewhere else?

> 
> 3.12 Barbarians do not always attack and defend at normal unit strengths.
> Barbarian archers defend with a base value of 1, not 2. Other barbarian units
> have normal defense values. All barbarian attack factors are affected by the
> difficulty level of game being played:
> 
>     * Chieftan - 25% of normal
>     * Warlord - 50%
>     * Prince - 75%
>     * King - 100%
>     * Emperor - 125%
>     * Deity - 150%
> 
> What difficulty level of Civ 2 is Freeciv simulating? Deity, correct?

To adhere to this isn't so easy, and require a lot of "configurability"
for the units.ruleset, but with gen-unit-effect included in the cvs, we
can think of reaching something comparable.

> 
> Hitpoint recovery is nothing like Civ 2. I had no idea it was this complex.
> 
> WHEN THE DUST SETTLES...
> After the battle, the victor is usually damaged. Units can heal as long as 
> they
> do not move, not even along railroad. They heal at varying rates, depending on
> their proximity to a friendly city or barracks. Settlers and Engineers, the
> only units incapable of fortifying, heal while working.

I imagine this come from civ2 manual again, I'll look at this, and I
will support the idea that the heal rate should be modified if the unit
do moves.

> 
> Land Units:
> 
>     * 40% of total hit points healed every turn in a non-barrack city
>     * 30% of total hit points healed every turn near a city with barracks(i.e.
> a square 7x7 squares) 

How you discover this? Again, manual of civ2? By playing?

> 
> We don't do this.
> 
>     * 20% of total hit points healed every turn near a non-barrack city
> 
>     Don't do this either.
> 
>     * 10% of total hit points healed every turn on normal square
>     * Fortress (3.2b) always adds an extra 10% to the rate (i.e. on a normal
> square, near a city, or near a city with barracks). A city built on a fortress
> was not tested.

When you build a city on a fortress, the previous fortress is destroyed.

> 
> Naval/Aerial Units:
> 
>     * 20%/20% of total hit points healed every turn in a fortress or a city
> 
> No 20% recovery for aerial/naval units.
> 
>     * 10%/0% of total hit points healed every turn on normal square
> 
> It's always 10% in Freeciv.
> 
>     * 100%/100% of total hit points healed every turn in a city with port
> facility/airport, respectively.
>     * Airbase and barracks have no effect.
>     * port facility/airport affects only the city square.
> 
> This we do correctly.
> 
> Aloha,
> RK.
> 
> 
> 
> __________________________________________________
> Do you Yahoo!?
> New DSL Internet Access from SBC & Yahoo!
> http://sbc.yahoo.com
> 
> 



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