]> git.pond.sub.org Git - empserver/blob - src/lib/global/constants.c
Cleanup #includes of (mostly a long time) unused header files.
[empserver] / src / lib / global / constants.c
1 /*
2  *  Empire - A multi-player, client/server Internet based war game.
3  *  Copyright (C) 1986-2004, Dave Pare, Jeff Bailey, Thomas Ruschak,
4  *                           Ken Stevens, Steve McClure
5  *
6  *  This program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 2 of the License, or
9  *  (at your option) any later version.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, write to the Free Software
18  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  *  ---
21  *
22  *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
23  *  related information and legal notices. It is expected that any future
24  *  projects/authors will amend these files as needed.
25  *
26  *  ---
27  *
28  *  constants.c: Global constants file.  Note that the "hours" file can
29  *               override these, as does the global "econfig" file.
30  * 
31  *  Known contributors to this file:
32  *     Ken Stevens, 1995
33  *     Steve McClure, 1996
34  *     
35  */
36
37 #include "gamesdef.h"
38 #include "misc.h"
39
40 char *privname = PRVNAM;        /* name of priv user */
41 char *privlog = PRVLOG; /* logname of priv user */
42
43 int WORLD_X = DEF_WORLD_X;      /* World size - x */
44 int WORLD_Y = DEF_WORLD_Y;      /* World size - y */
45
46 int MARK_DELAY = 7200;          /* Seconds to bid on commodities */
47 int TRADE_DELAY = 7200;         /* Seconds to bid on units */
48
49 int m_m_p_d = 1440;             /* max mins of play per day (per country) */
50 int s_p_etu = DEF_S_P_ETU;      /* seconds per Empire time unit */
51 int etu_per_update = ETUS;      /* # of etu's per update, from misc.h */
52 int adj_update = 0;             /* update time adjustment */
53 int update_window = 0;          /* update window adjustment */
54 int hourslop = 5;               /* amount of slop to match update times */
55 char *update_times = "";        /* times regular update is allowed */
56 int update_policy = 0;          /* update policy for regular updates */
57 int update_demandpolicy = 2;    /* update policy for demand updates */
58 int update_missed = 999;        /* demand updates missed before veto */
59 int update_wantmin = 0;         /* number of votes required for demand update */
60 int blitz_time = 10;            /* number of minutes between blitz updates */
61 char *update_demandtimes = "";  /* times demand update is allowed */
62 char *game_days = "";           /* days game is running */
63 char *game_hours = "";  /* hours game is running */
64 int max_idle = 15;              /* session dies after max_idle minutes idle */
65
66 int sect_mob_max = 127;         /* sector mobility limits */
67 float sect_mob_scale = 1.0;     /* accumulation multiplier */
68 int land_mob_max = 127;         /* land mobility limits */
69 float land_mob_scale = 1.0;     /* accumulation multiplier */
70 int ship_mob_max = 127;         /* ship mobility limits */
71 float ship_mob_scale = 1.5;     /* accumulation multiplier */
72 int plane_mob_max = 127;        /* plane mobility limits */
73 float plane_mob_scale = 1.0;    /* accumulation multiplier */
74
75 float fire_range_factor = 1.0;  /* Increase/reduce firing ranges */
76
77 int morale_base = 42;           /* base for morale */
78
79 /* opt_MOB_ACCESS */
80 int sect_mob_neg_factor = 2;    /* ETU/neg_factor = negative amount of mobility
81                                    a sector has after being taken */
82
83 int anno_keep_days = 7;         /* How long until annos expire (<0 never) */
84 int news_keep_days = 10;        /* How long until news expire (<0 never) */
85 int lost_items_timeout = 172800;        /* How long before removing from database */
86
87 double combat_mob = 5.0;        /* how much mob do units spend for combat? */
88
89 /* if you find that naving is taking too long, try reducing these */
90 int fort_max_interdiction_range = 8;
91 int ship_max_interdiction_range = 8;
92 int land_max_interdiction_range = 8;
93
94 double mission_mob_cost = 0.0;  /* Cost is percentage of max mob */
95
96 double unit_damage = 0.30;      /* Units take this fraction of normal damage */
97 double people_damage = 1.00;    /* Civs/mil/uw take this fraction of damage */
98 double collateral_dam = 0.10;   /* Side effect damage to sector */
99 double assault_penalty = 0.50;  /* attack factor for para & assault troops */
100
101 /* START_UNITS */
102 #ifdef START_UNITS
103 int start_unit_type[START_UNITS] = { 0, 1 };    /* type of unit */
104 #endif /* START_UNITS */
105
106 /* opt_FUEL */
107 int fuel_mult = 10;             /* 1 fuel = 10 mob */
108
109 int land_grow_scale = 2;        /* how fast eff grows for land units (xETUS) */
110 int ship_grow_scale = 3;        /* how fast eff grows for ships (xETUS) */
111 int plane_grow_scale = 2;       /* how fast eff grows for planes (xETUS) */
112
113 double fgrate = 0.0012;         /* food growth rate (dt * fert) */
114 double fcrate = 0.0013;         /* food cultivate rate (dt * workforce) */
115 double eatrate = 0.0005;        /* food eating rate (dt * people) */
116 /*double   eatrate     = 0.0001;*//* food eating rate (dt * people) */
117 double babyeat = 0.0060;        /* food to mature 1 baby into a civilian */
118 /*double   babyeat     = 0.0000;*//* food to mature 1 baby into a civilian */
119
120 double obrate = 0.005;          /* other sectors birth rate */
121 double uwbrate = 0.0025;        /* uncompensated worker birth rate */
122                                 /* values > 0.25 for either will overflow */
123 int rollover_avail_max = 0;     /* max. avail that can roll over an update */
124
125 /* opt_FALLOUT */
126 /* these are the radioactive decay constants */
127 /* fraction of commodity destroyed is
128    etus*fallout/(1000*melt_item_denom[item])
129    higher denominators for tougher commodities */
130 int melt_item_denom[] =
131         /*   civ mil shell gun pet iron dust bar */
132 { 0, 4, 20, 80, 100, 50, 100, 100, 200,
133     2, 50, 100, 100, 2, 1000
134 };
135         /*food oil lcm hcm UW rads */
136 double decay_per_etu = 0.006;   /* This gives a half life of ? etus,
137                                    about ? days.
138                                    half life in Jt
139                                    log(.5) / log(1-decay_per_etu)
140                                    Calculate your own if you don't like it.
141                                    If you want a specific half life you can
142                                    calc it with this formula:
143                                    decay_per_etu = 1 - (.5)^(1/etus)
144                                    due to the discrete nature of empire
145                                    you can not get a precise number
146                                    without intensive simulation
147                                    (more than 3 digits). */
148 double fallout_spread = 0.005;  /* fraction of fallout that leaks into 
149                                    each surrounding sector */
150 /* end opt_FALLOUT */
151
152 double bankint = 0.25;          /* bank interest rate (dt * bars) */
153
154 /* Note in the taxes below:
155    tradetax - this is charged to the seller, so it is < 1 (because the seller
156               gets the (price paid * tradetax)
157    buytax - this is charged to the buyer, so it is > 1 (because the buyer is
158               charged (price paid * buytax).
159    Not perfect, but it works. :) */
160
161 double tradetax = 0.99;         /* Tax charged on trade */
162 double buytax = 1.0;            /* Tax charged on market purchases */
163 int startmob = 127;             /* Sanctuary starting mobility */
164 double flakscale = 1.75;        /* Scale factor for flak damage */
165
166 /* money gained from taxes, paid to military, and reservists */
167 double money_civ = 0.0083333;
168 double money_uw = 0.0017777;
169 double money_mil = -0.0833333;
170 double money_res = -0.0083333;
171
172 /* pct cost per ETU for maintaining a ship or plane or land unit */
173 double money_plane = -0.001;
174 double money_ship = -0.001;
175 double money_land = -0.001;
176
177 /* edu and hap consumption factors -- hap_cons civs need 1 hap --> hlev++ */
178 double hap_cons = 600000.0;
179 double edu_cons = 600000.0;
180
181 /* hap and edu avg mean that the weight on current happiness is
182  *  (cur_hap * hap_avg + hap_prod * etu) / (hap_avg + etu);             */
183 float hap_avg = 16.0 * 3.0;
184 float edu_avg = 16.0 * 12.0;
185
186
187 /* tech build limitations.  */
188 float easy_tech = 1.00;         /* amount of tech built with no penality */
189 float tech_log_base = 2.0;      /* base of log to take of in-efficient tech */
190
191 float ally_factor = 2.0;        /* shared tech with allies = 1/factor */
192 float level_age_rate = 96.0;    /* 1% per 96 etu's; 0 -> no decline */
193
194
195 int players_at_00 = 0;          /* players coord system on deity 0,0? */
196 int at_least_one_100 = 1;       /* init player with 100/100/100/100 sector? */
197
198
199
200 float btu_build_rate = 0.0012;  /* etu * civ * eff * btu_build_rate */
201                                 /* 8 * 999 * 100 * 0.0004 = 319 */
202 int max_btus = 640;             /* maximum # of btu's */
203 double powe_cost = 10.0;        /* btu cost to gen a power report */
204
205 double buil_bt = 10.0;          /* tech level required to build a bridge */
206 int buil_bh = 100;              /* hcm required to build a bridge */
207 double buil_bc = 2000.0;        /* cash required to build a bridge */
208
209 double buil_tower_bt = 100.0;   /* tech level required to build a tower */
210 int buil_tower_bh = 400;        /* hcm required to build a bridge tower */
211 double buil_tower_bc = 7500.0;  /* cash required to build a bridge tower */
212
213 /* opt_SLOW_WAR */
214 int War_Cost = 1000;            /* Cost to declare war */
215
216 /* opt_DRNUKE */
217 float drnuke_const = .33;       /* research must be at least drnuke_const*tech */
218                                 /* in order to build a nuke. For example, if
219                                  * drnuke_const is .25, you need a 75 res to
220                                  * build a nuke that takes 300 tech
221                                  */
222 /* opt_TRADESHIPS */
223 int trade_1_dist = 8;           /* less than this gets no money */
224 int trade_2_dist = 14;          /* less than this gets trade_1 money */
225 int trade_3_dist = 25;          /* less than this gets trade_2 money */
226 float trade_1 = 0.025;          /* return on trade_1 distance */
227 float trade_2 = 0.035;          /* return on trade_2 distance */
228 float trade_3 = 0.050;          /* return on trade_3 distance */
229 float trade_ally_bonus = 0.20;  /* 20% bonus for trading with allies */
230 float trade_ally_cut = 0.10;    /* 10% bonus for ally you trade with */
231 /* end opt_TRADESHIPS */
232
233 int torpedo_damage = 40;        /* damage is X + 1dX + 1dX, so 40+1d40+1d40 */
234
235 /* initial levels */
236 float start_education = 0.0;
237 float start_happiness = 0.0;
238 float start_technology = 0.0;
239 float start_research = 0.0;