From: Ron Koenderink Date: Thu, 16 Feb 2006 02:14:08 +0000 (+0000) Subject: (buil, drnuke_const, opt_DRNUKE, show, show_nuke_build) X-Git-Tag: PZ5~49 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=b7d0b66161f50b8fe4c5c64c8777b3faf45df921 (buil, drnuke_const, opt_DRNUKE, show, show_nuke_build) (show_nuke_capab, vers, xdvisible, build.t, Options.t): Remove opt_DRNUKE and replace with the following check drnuke_const > MIN_DRNUKE_CONST. Set MIN_DRNUKE_CONST to 0.001 to prevent issues with tiny values. Change the default drnuke_const to 0.0 because in the stock game opt_DRNUKE was disabled. --- diff --git a/include/econfig-spec.h b/include/econfig-spec.h index cc15145c1..e89880ca6 100644 --- a/include/econfig-spec.h +++ b/include/econfig-spec.h @@ -133,8 +133,6 @@ EMPCF_OPT("DEFENSE_INFRA", opt_DEFENSE_INFRA, "Allow the improvement of defensive infrastructure") EMPCF_OPT("DEMANDUPDATE", opt_DEMANDUPDATE, "Allow demand updates") -EMPCF_OPT("DRNUKE", opt_DRNUKE, - "Require research for nuke building") EMPCF_OPT("EASY_BRIDGES", opt_EASY_BRIDGES, "Allow bridge building without bridge heads") EMPCF_OPT("FALLOUT", opt_FALLOUT, @@ -344,7 +342,7 @@ EMPCFBOTH("decay_per_etu", decay_per_etu, double, NSC_DOUBLE, 0, EMPCFBOTH("fallout_spread", fallout_spread, double, NSC_DOUBLE, 0, "Amount of fallout that leaks into surrounding sectors") EMPCFBOTH("drnuke_const", drnuke_const, float, NSC_FLOAT, 0, - "Amount of research to tech needed to build a nuke (if DRNUKE is on)") + "Amount of research to tech needed to build a nuke, a common value is 0.33") EMPCF_COMMENT("\n\n### Market/Trade") EMPCFBOTH("MARK_DELAY", MARK_DELAY, int, NSC_INT, 0, diff --git a/include/nuke.h b/include/nuke.h index 8ef24c854..0a5cbb942 100644 --- a/include/nuke.h +++ b/include/nuke.h @@ -35,6 +35,7 @@ #define NUKE_H #define N_MAXNUKE 20 +#define MIN_DRNUKE_CONST 0.001 struct nukstr { /* initial part must match struct genitem */ diff --git a/info/Options.t b/info/Options.t index d05e6b73a..ade9d21f7 100644 --- a/info/Options.t +++ b/info/Options.t @@ -14,7 +14,6 @@ The following options were introduced in the Chainsaw server: EASY_BRIDGES: bridges can be built from any sector SUPER_BARS: gold bars aren't destroyed by shelling or bombing ALL_BLEED: you get tech bleed from all countries, not just allies -DRNUKE: research is required to make nukes SLOW_WAR: War declaring takes time. No land attacks unless at war. NOMOBCOST: ships pay 0 mob to fire. Subs pay 1/2 a sect's movement cost TRADESHIPS: you can build/nav/scuttle trade ships to make money @@ -53,4 +52,4 @@ TREATIES: Sign treaties with your friends and enemies, and breaking of them is reported in the news. .fi -.SA "Hidden, Server" +.SA "Hidden, Server, version" diff --git a/info/build.t b/info/build.t index 35e0e369d..b15d078b2 100644 --- a/info/build.t +++ b/info/build.t @@ -11,6 +11,10 @@ also used to build bridges. To build stuff, you generally need available work, raw materials (e.g. light and heavy construction materials, oil, radioactive materials), cash, and technology, depending on the thing being built. +For nukes, you may also need research, depending on game +configuration. +Try commands \*Qversion\*U and \*Qshow\*U to learn +how your game is configured. .s1 A sector's available work is work not used up by the update (building efficiency, working on things, etc). It is shown in the output of the @@ -118,11 +122,6 @@ Nuclear devices are built in nuclear plants. All of the materials listed by \*Qshow\*U must be available at the time of building. New nukes appear fully operational. .s1 -Note: If the DRNUKE option is enabled, you will need a certain amount -of research to make nukes. At the present time, it is 1/3 the amount of -tech needed to make the nuke. See the \*Qshow\*U command, which lists -this if applicable. -.s1 BUILDING BRIDGES .s1 A bridge is built in a sea sector by an adjacent sector. diff --git a/src/lib/commands/buil.c b/src/lib/commands/buil.c index 1fe994f74..da7133360 100644 --- a/src/lib/commands/buil.c +++ b/src/lib/commands/buil.c @@ -195,12 +195,13 @@ buil(void) np = &nchr[type]; rqtech = np->n_tech; if (rqtech > tlev - || (opt_DRNUKE && np->n_tech * drnuke_const > rlev)) + || (drnuke_const > MIN_DRNUKE_CONST && + np->n_tech * drnuke_const > rlev)) type = -1; } if (type < 0) { int tt = tlev; - if (opt_DRNUKE) + if (drnuke_const > MIN_DRNUKE_CONST) tt = (tlev < (rlev / drnuke_const) ? (int)tlev : (int)(rlev / drnuke_const)); pr("You can't build that!\n"); diff --git a/src/lib/commands/show.c b/src/lib/commands/show.c index 5314847f1..0bbbdf958 100644 --- a/src/lib/commands/show.c +++ b/src/lib/commands/show.c @@ -90,7 +90,7 @@ show(void) show_news(99999); return RET_OK; } - if (opt_DRNUKE) + if (drnuke_const > MIN_DRNUKE_CONST) tlev = ((rlev / drnuke_const) > tlev ? tlev : (rlev / drnuke_const)); bfunc = show_nuke_build; diff --git a/src/lib/commands/vers.c b/src/lib/commands/vers.c index aaf1ae4b2..07a0d4da5 100644 --- a/src/lib/commands/vers.c +++ b/src/lib/commands/vers.c @@ -173,7 +173,7 @@ vers(void) if (!ef_nelem(EF_NUKE_CHR)) pr("Nukes are disabled.\n"); - else if (opt_DRNUKE) { /* NUKES && DRNUKE enabled */ + else if (drnuke_const > MIN_DRNUKE_CONST) { pr("In order to build a nuke, you need %1.2f times the tech level in research\n", drnuke_const); pr("\tExample: In order to build a 300 tech nuke, you need %d research\n\n", (int)(300.0 * drnuke_const)); } diff --git a/src/lib/commands/xdump.c b/src/lib/commands/xdump.c index 6058220a4..12dfc9d92 100644 --- a/src/lib/commands/xdump.c +++ b/src/lib/commands/xdump.c @@ -242,7 +242,7 @@ xdvisible(int type, void *p) return player->god || tlev <= (int)(1.25 * natp->nat_level[NAT_TLEV]); case EF_NUKE_CHR: tlev = ((struct nchrstr *)p)->n_tech; - if (opt_DRNUKE) { + if (drnuke_const > MIN_DRNUKE_CONST) { natp = getnatp(player->cnum); if (tlev > (int)((int)(1.25 * natp->nat_level[NAT_RLEV]) / drnuke_const)) diff --git a/src/lib/global/constants.c b/src/lib/global/constants.c index 90d81b407..b71409738 100644 --- a/src/lib/global/constants.c +++ b/src/lib/global/constants.c @@ -199,8 +199,7 @@ double buil_tower_bc = 7500.0; /* cash required to build a bridge tower */ /* opt_SLOW_WAR */ int War_Cost = 1000; /* Cost to declare war */ -/* opt_DRNUKE */ -float drnuke_const = .33; /* research must be at least drnuke_const*tech */ +float drnuke_const = 0.0; /* research must be at least drnuke_const*tech */ /* in order to build a nuke. For example, if * drnuke_const is .25, you need a 75 res to * build a nuke that takes 300 tech diff --git a/src/lib/global/options.c b/src/lib/global/options.c index 9249bbe6c..6f6ba3147 100644 --- a/src/lib/global/options.c +++ b/src/lib/global/options.c @@ -42,7 +42,6 @@ int opt_BLITZ = 1; int opt_BRIDGETOWERS = 1; int opt_DEFENSE_INFRA = 0; int opt_DEMANDUPDATE = 1; -int opt_DRNUKE = 0; int opt_EASY_BRIDGES = 1; int opt_FALLOUT = 1; int opt_FUEL = 0; diff --git a/src/lib/subs/show.c b/src/lib/subs/show.c index 6cb1e5f22..b179df37d 100644 --- a/src/lib/subs/show.c +++ b/src/lib/subs/show.c @@ -173,10 +173,11 @@ show_nuke_build(int tlev) avail = NUK_BLD_WORK(np->n_lcm, np->n_hcm, np->n_oil, np->n_rad); if (np->n_tech > tlev) continue; - pr("%-13.13s %3d %3d %4d %4d %5d %4d %3d $%6d\n", + pr("%-13.13s %3d %3d %4d %4d %5d %4d %3.0f $%6d\n", np->n_name, np->n_lcm, np->n_hcm, np->n_oil, np->n_rad, avail, np->n_tech, - opt_DRNUKE ? (int)(np->n_tech * drnuke_const) + 1 : 0, + drnuke_const > MIN_DRNUKE_CONST ? + (np->n_tech * drnuke_const) + 1.0 : 0.0, np->n_cost); } } @@ -193,10 +194,11 @@ show_nuke_capab(int tlev) for (np = nchr; np->n_name; np++) { if (np->n_tech > tlev) continue; - pr("%-13.13s %4d %3d %3d %4d %3d $%7d ", + pr("%-13.13s %4d %3d %3d %4d %3.0f $%7d ", np->n_name, np->n_blast, np->n_dam, np->n_weight, np->n_tech, - opt_DRNUKE ? (int)(np->n_tech * drnuke_const) + 1 : 0, + drnuke_const > MIN_DRNUKE_CONST ? + (np->n_tech * drnuke_const) + 1.0 : 0.0, np->n_cost); for (i = j = 0; i < 32; i++) { if (!(np->n_flags & bit(i)))