(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.
This commit is contained in:
parent
d5f6d74d05
commit
b7d0b66161
11 changed files with 20 additions and 22 deletions
|
@ -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,
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue