(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")
|
"Allow the improvement of defensive infrastructure")
|
||||||
EMPCF_OPT("DEMANDUPDATE", opt_DEMANDUPDATE,
|
EMPCF_OPT("DEMANDUPDATE", opt_DEMANDUPDATE,
|
||||||
"Allow demand updates")
|
"Allow demand updates")
|
||||||
EMPCF_OPT("DRNUKE", opt_DRNUKE,
|
|
||||||
"Require research for nuke building")
|
|
||||||
EMPCF_OPT("EASY_BRIDGES", opt_EASY_BRIDGES,
|
EMPCF_OPT("EASY_BRIDGES", opt_EASY_BRIDGES,
|
||||||
"Allow bridge building without bridge heads")
|
"Allow bridge building without bridge heads")
|
||||||
EMPCF_OPT("FALLOUT", opt_FALLOUT,
|
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,
|
EMPCFBOTH("fallout_spread", fallout_spread, double, NSC_DOUBLE, 0,
|
||||||
"Amount of fallout that leaks into surrounding sectors")
|
"Amount of fallout that leaks into surrounding sectors")
|
||||||
EMPCFBOTH("drnuke_const", drnuke_const, float, NSC_FLOAT, 0,
|
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")
|
EMPCF_COMMENT("\n\n### Market/Trade")
|
||||||
EMPCFBOTH("MARK_DELAY", MARK_DELAY, int, NSC_INT, 0,
|
EMPCFBOTH("MARK_DELAY", MARK_DELAY, int, NSC_INT, 0,
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#define NUKE_H
|
#define NUKE_H
|
||||||
|
|
||||||
#define N_MAXNUKE 20
|
#define N_MAXNUKE 20
|
||||||
|
#define MIN_DRNUKE_CONST 0.001
|
||||||
|
|
||||||
struct nukstr {
|
struct nukstr {
|
||||||
/* initial part must match struct genitem */
|
/* 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
|
EASY_BRIDGES: bridges can be built from any sector
|
||||||
SUPER_BARS: gold bars aren't destroyed by shelling or bombing
|
SUPER_BARS: gold bars aren't destroyed by shelling or bombing
|
||||||
ALL_BLEED: you get tech bleed from all countries, not just allies
|
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.
|
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
|
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
|
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.
|
them is reported in the news.
|
||||||
.fi
|
.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
|
To build stuff, you generally need available work, raw materials
|
||||||
(e.g. light and heavy construction materials, oil, radioactive
|
(e.g. light and heavy construction materials, oil, radioactive
|
||||||
materials), cash, and technology, depending on the thing being built.
|
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
|
.s1
|
||||||
A sector's available work is work not used up by the update (building
|
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
|
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
|
listed by \*Qshow\*U must be available at the time of building. New nukes
|
||||||
appear fully operational.
|
appear fully operational.
|
||||||
.s1
|
.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
|
BUILDING BRIDGES
|
||||||
.s1
|
.s1
|
||||||
A bridge is built in a sea sector by an adjacent sector.
|
A bridge is built in a sea sector by an adjacent sector.
|
||||||
|
|
|
@ -195,12 +195,13 @@ buil(void)
|
||||||
np = &nchr[type];
|
np = &nchr[type];
|
||||||
rqtech = np->n_tech;
|
rqtech = np->n_tech;
|
||||||
if (rqtech > tlev
|
if (rqtech > tlev
|
||||||
|| (opt_DRNUKE && np->n_tech * drnuke_const > rlev))
|
|| (drnuke_const > MIN_DRNUKE_CONST &&
|
||||||
|
np->n_tech * drnuke_const > rlev))
|
||||||
type = -1;
|
type = -1;
|
||||||
}
|
}
|
||||||
if (type < 0) {
|
if (type < 0) {
|
||||||
int tt = tlev;
|
int tt = tlev;
|
||||||
if (opt_DRNUKE)
|
if (drnuke_const > MIN_DRNUKE_CONST)
|
||||||
tt = (tlev < (rlev / drnuke_const) ? (int)tlev :
|
tt = (tlev < (rlev / drnuke_const) ? (int)tlev :
|
||||||
(int)(rlev / drnuke_const));
|
(int)(rlev / drnuke_const));
|
||||||
pr("You can't build that!\n");
|
pr("You can't build that!\n");
|
||||||
|
|
|
@ -90,7 +90,7 @@ show(void)
|
||||||
show_news(99999);
|
show_news(99999);
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
if (opt_DRNUKE)
|
if (drnuke_const > MIN_DRNUKE_CONST)
|
||||||
tlev = ((rlev / drnuke_const) > tlev ? tlev :
|
tlev = ((rlev / drnuke_const) > tlev ? tlev :
|
||||||
(rlev / drnuke_const));
|
(rlev / drnuke_const));
|
||||||
bfunc = show_nuke_build;
|
bfunc = show_nuke_build;
|
||||||
|
|
|
@ -173,7 +173,7 @@ vers(void)
|
||||||
|
|
||||||
if (!ef_nelem(EF_NUKE_CHR))
|
if (!ef_nelem(EF_NUKE_CHR))
|
||||||
pr("Nukes are disabled.\n");
|
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("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));
|
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]);
|
return player->god || tlev <= (int)(1.25 * natp->nat_level[NAT_TLEV]);
|
||||||
case EF_NUKE_CHR:
|
case EF_NUKE_CHR:
|
||||||
tlev = ((struct nchrstr *)p)->n_tech;
|
tlev = ((struct nchrstr *)p)->n_tech;
|
||||||
if (opt_DRNUKE) {
|
if (drnuke_const > MIN_DRNUKE_CONST) {
|
||||||
natp = getnatp(player->cnum);
|
natp = getnatp(player->cnum);
|
||||||
if (tlev > (int)((int)(1.25 * natp->nat_level[NAT_RLEV])
|
if (tlev > (int)((int)(1.25 * natp->nat_level[NAT_RLEV])
|
||||||
/ drnuke_const))
|
/ drnuke_const))
|
||||||
|
|
|
@ -199,8 +199,7 @@ double buil_tower_bc = 7500.0; /* cash required to build a bridge tower */
|
||||||
/* opt_SLOW_WAR */
|
/* opt_SLOW_WAR */
|
||||||
int War_Cost = 1000; /* Cost to declare war */
|
int War_Cost = 1000; /* Cost to declare war */
|
||||||
|
|
||||||
/* opt_DRNUKE */
|
float drnuke_const = 0.0; /* research must be at least drnuke_const*tech */
|
||||||
float drnuke_const = .33; /* research must be at least drnuke_const*tech */
|
|
||||||
/* in order to build a nuke. For example, if
|
/* in order to build a nuke. For example, if
|
||||||
* drnuke_const is .25, you need a 75 res to
|
* drnuke_const is .25, you need a 75 res to
|
||||||
* build a nuke that takes 300 tech
|
* build a nuke that takes 300 tech
|
||||||
|
|
|
@ -42,7 +42,6 @@ int opt_BLITZ = 1;
|
||||||
int opt_BRIDGETOWERS = 1;
|
int opt_BRIDGETOWERS = 1;
|
||||||
int opt_DEFENSE_INFRA = 0;
|
int opt_DEFENSE_INFRA = 0;
|
||||||
int opt_DEMANDUPDATE = 1;
|
int opt_DEMANDUPDATE = 1;
|
||||||
int opt_DRNUKE = 0;
|
|
||||||
int opt_EASY_BRIDGES = 1;
|
int opt_EASY_BRIDGES = 1;
|
||||||
int opt_FALLOUT = 1;
|
int opt_FALLOUT = 1;
|
||||||
int opt_FUEL = 0;
|
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);
|
avail = NUK_BLD_WORK(np->n_lcm, np->n_hcm, np->n_oil, np->n_rad);
|
||||||
if (np->n_tech > tlev)
|
if (np->n_tech > tlev)
|
||||||
continue;
|
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_name, np->n_lcm, np->n_hcm, np->n_oil,
|
||||||
np->n_rad, avail, np->n_tech,
|
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);
|
np->n_cost);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,10 +194,11 @@ show_nuke_capab(int tlev)
|
||||||
for (np = nchr; np->n_name; np++) {
|
for (np = nchr; np->n_name; np++) {
|
||||||
if (np->n_tech > tlev)
|
if (np->n_tech > tlev)
|
||||||
continue;
|
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_name, np->n_blast, np->n_dam,
|
||||||
np->n_weight, np->n_tech,
|
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);
|
np->n_cost);
|
||||||
for (i = j = 0; i < 32; i++) {
|
for (i = j = 0; i < 32; i++) {
|
||||||
if (!(np->n_flags & bit(i)))
|
if (!(np->n_flags & bit(i)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue