--- server/plrhand.c.orig Thu Jan 6 13:31:29 2000 +++ server/plrhand.c Thu Jan 6 14:03:45 2000 @@ -78,6 +78,8 @@ int value; }; +#define fc_min(a,b) ((a) < (b) ? (a) : (b)) + static int secompare(const void *a, const void *b) { return (((const struct player_score_entry *)b)->value - @@ -1663,7 +1665,14 @@ get_government_name(preq->government)); if (!pplayer->ai.control) - check_player_government_rates(pplayer); + { + /* Keep luxuries if we have any. Try to max out science. -GJW */ + pplayer->economic.science = fc_min (100 - pplayer->economic.luxury, + get_government_max_rate (pplayer->government)); + pplayer->economic.tax = 100 - (pplayer->economic.luxury + + pplayer->economic.science); + check_player_government_rates(pplayer); + } send_player_info(pplayer, pplayer); }