Complete.Org: Mailing Lists: Archives: freeciv-dev: April 2005:
[Freeciv-Dev] (PR#12919) crazy barbarians
Home

[Freeciv-Dev] (PR#12919) crazy barbarians

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Subject: [Freeciv-Dev] (PR#12919) crazy barbarians
From: "Jason Short" <jdorje@xxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 28 Apr 2005 01:06:26 -0700
Reply-to: bugs@xxxxxxxxxxx

<URL: http://bugs.freeciv.org/Ticket/Display.html?id=12919 >

This toy patch changes barbarian generation to be more open-ended.

1.  The barbarianrate may go up to 16.
2.  The number of barbarian summons is exponential at 2^(rate-2).
3.  The default barbariansrate is changed to 3.

This means the default remains the same (2^(2-2) == 2-1) but the higher
levels are very, well, crazy.

Setting anything above 10 may be too slow to play.

This patch also highlights a lot of stupidities in barbarians.

1.  They aren't very fair.  With a high barbarian rate the winning
civilization is the one that survives the longest.  Usually this is the
smallest civ.

2.  They are Real Dumb.  Over half of the barbarians (ships and land
units) just fortify.

3.  They go after each other.  There is no check on
barbarians-attacking-barbarian-civs so after they conquer enough cities
most combat is barbarian-versus-barbarian.

-jason

? barbs
? gmon.out
? client/gui-gtk-2.0/gotodlg.o.BK7xei
? server/gotohand.o.SpzOrw
Index: common/game.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/game.h,v
retrieving revision 1.181
diff -u -r1.181 game.h
--- common/game.h       21 Apr 2005 00:28:27 -0000      1.181
+++ common/game.h       28 Apr 2005 08:02:03 -0000
@@ -468,7 +468,7 @@
 
 #define GAME_DEFAULT_BARBARIANRATE   2
 #define GAME_MIN_BARBARIANRATE       0
-#define GAME_MAX_BARBARIANRATE       4
+#define GAME_MAX_BARBARIANRATE       16
 
 #define GAME_DEFAULT_ONSETBARBARIAN  (GAME_START_YEAR+ \
                                      
((GAME_DEFAULT_END_YEAR-(GAME_START_YEAR))/3))
Index: server/barbarian.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/barbarian.c,v
retrieving revision 1.87
diff -u -r1.87 barbarian.c
--- server/barbarian.c  23 Apr 2005 17:40:28 -0000      1.87
+++ server/barbarian.c  28 Apr 2005 08:02:03 -0000
@@ -463,7 +463,8 @@
     n = 1;
   }
 
-  for (i = 0; i < n * (game.barbarianrate - 1); i++) {
+#define BARBARIAN_RATE (1 << (game.barbarianrate - 2))
+  for (i = 0; i < n * BARBARIAN_RATE; i++) {
     try_summon_barbarians();
   }
 }
Index: server/settings.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/settings.c,v
retrieving revision 1.20
diff -u -r1.20 settings.c
--- server/settings.c   21 Mar 2005 13:05:21 -0000      1.20
+++ server/settings.c   28 Apr 2005 08:02:04 -0000
@@ -688,9 +688,11 @@
          N_("Barbarian appearance frequency"),
          N_("0 = no barbarians \n"
             "1 = barbarians only in huts \n"
-            "2 = normal rate of barbarian appearance \n"
-            "3 = frequent barbarian uprising \n"
-            "4 = raging hordes, lots of barbarians"), NULL, 
+            "2 = few barbarians \n"
+            "3 = normal rate of barbarian appearance \n"
+            "4 = frequent barbarian uprising \n"
+            "5 = raging hordes, lots of barbarians\n"
+            "16 = absolute suicide"), NULL, 
          GAME_MIN_BARBARIANRATE, GAME_MAX_BARBARIANRATE, 
          GAME_DEFAULT_BARBARIANRATE)
 

[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] (PR#12919) crazy barbarians, Jason Short <=