diff -ur -X diff_ignore freeciv-cvs/server/unittools.c freeciv-shipmodify/server/unittools.c --- freeciv-cvs/server/unittools.c Wed Apr 11 11:08:58 2001 +++ freeciv-shipmodify/server/unittools.c Sat Apr 21 15:17:51 2001 @@ -486,7 +486,7 @@ ***************************************************************************/ int get_total_defense_power(struct unit *attacker, struct unit *defender) { - int defensepower=get_defense_power(defender); + float defensepower=(float)get_defense_power(defender); if (unit_flag(defender->type, F_PIKEMEN) && unit_flag(attacker->type, F_HORSE)) defensepower*=2; if (unit_flag(defender->type, F_AEGIS) && (is_air_unit(attacker) || is_heli_unit(attacker))) @@ -497,7 +497,9 @@ if (unit_behind_sdi(defender) && unit_flag(attacker->type, F_MISSILE)) defensepower*=2; } else if (is_sailing_unit(attacker)) { - if (unit_behind_coastal(defender)) + if (is_ground_unit(defender)) + defensepower*=1.5; + if (unit_behind_coastal(defender)) defensepower*=2; } if (!unit_really_ignores_citywalls(attacker) @@ -511,7 +513,7 @@ is_ground_unit(defender)) defensepower*=1.5; - return defensepower; + return (int)defensepower; } /**************************************************************************