| Re: Re: [Freeciv-Dev] fast technology explained[Top] [All Lists][Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
 
 
>        It would be impossible to play if the first citizen in a city was
>unhappy.
I have to correct myself civII DOES make the 1st citizen unhappy sometimes.
Even more weird, additional unhappyness seems to be continuous. 
E.g. unhappylevel =1.6 is 1 unhappy every city and 6/10 of cities 
an additional one. May be that is because unhappyness can't go
below 0 content citizens :-)
I have no clue whether it makes sense to try hard to duplicate that
behaviour, but in a lot of ways civII seemed to be like civ1.0 always
should have been :-)
What helps, is that the effective cityfactor is increased when changing
to better forms of government, so there is still hope for cities that
have no content citizens. Also, a city does always produce 1 unit on
the center(all pop elvises). 3rd, cities do produce food while in unrest.
4th, which IMHO is a design bug, a city does produce shields BEFORE checking
unrest, so it is possible to produce a 50% in a city by going for one turn
unrest, one turn rest. Removing the bug would mean to reduce production to 50%
if there was unrest in this or the last turn.
The time step change is in common/game.c
I'll make a change proposal like this:
--- common/game.cold    Mon Nov  9 20:55:57 1998
+++ common/game.c       Mon Nov  9 21:15:39 1998
@@ -398,16 +398,20 @@
   if (game.year == 1) /* hacked it to get rid of year 0 */
     game.year = 0;
 
-  if (game.year < 1000)
-    game.year += 20;
-  else if (game.year < 1500)
-    game.year += 10;
-  else if (game.year < 1700)
-    game.year += 5;
-  else if (game.year < 1800)
+  if(game.year >= 1900 || game.global_advances[A_SPACEFLIGHT] )
+    game.year += 1;
+  else if(game.year >= 1750 || game.global_advances[A_ROCKETRY] )
     game.year += 2;
+  else if(game.year >= 1500 || game.global_advances[A_ADVANCED] )
+    game.year += 5;
+  else if(game.year >= 1000  || game.global_advances[A_MONOTHEISM] )
+    game.year += 10;
+  else if(game.year >= 0 )
+    game.year += 20;
+  else if(game.year >= -1500)
+    game.year += 25;
   else
-    game.year++;
+    game.year += 50; 
 
   if (game.year == 0) 
     game.year = 1;
//testing this now
--
Peter Schaefer           mailto:schaefer@xxxxxxxxxxxxxxxxxxxxxxxxxxx     
X-Url: http://wwwhoppe.math.uni-augsburg.de/~schaefer/
 
 |  |