empserver/info/launch.t
Markus Armbruster a269cdd7e9 Limit nukes to strategic missions
Before Empire 2, nukes could be delivered only with bomb (special
mission 'n', airburst only) and launch (targeting sectors or
satellites only).

Empire 2 made nukes available for any kind of bombing, and for any
missile strike on sectors or ships.  This included interdiction and
support missions.  Nuclear-tipped anti-sats and bomb mission n were
removed.

Unfortunately, this was done in a messy way, which led to
inconsistencies and bugs.  The problem is that ordinary damage affects
just the target, while nuke damage affects an area.  Code dealing with
plane damage was designed for the former.  Instead of rewriting it to
cope with area damage cleanly, nuke damage got shoehorned into
pln_damage(), the function to compute conventional plane damage, as a
side effect: computing damage blasted sectors in the area.

If the plane carried a nuke, pln_damage() returned zero (conventional)
damage.  Without further logic, this simply bypassed the code to apply
damage to the target.  This worked out okay when the target already
got damaged correctly by the side effect.

However, some targets are immune to the side effect: when interdicting
a move or explore command, the commodities being moved are not in any
sector.

For other targets, damage has effects other than damaging the target:
offensive and defensive support don't apply the (conventional) damage
to the target sector.  Instead, they turn it into a combat bonus.
Without further logic, nuclear damage doesn't contribute to that.

To make all that work, pln_damage() returned the nuclear damage for
ground zero as well.  Because a plane does either conventional or
nuclear damage, one of them is always zero.

Most callers simply ignored the nuclear damage, and applied only the
conventional damage.

Bug: land units and ships failed to retreat when pin-bombed or
missiled with a nuke.  That's because they received zero conventional
damage.

The mission code flies planes and missiles and tallies their damage.
This mission damage included nuclear damage at ground zero (except for
missiles sometimes, see below), to make support and commodity
interdiction work.  Unfortunately, this broke other things.

Bug: when bombers interdicted ships or land units, nukes first damaged
the ships or land units by the side effect, then again through mission
damage.  Interdicting missiles had a special case to avoid this.

Bug: when interdicting move, explore or transport, nukes first damaged
the sector by the side effect, then again through mission damage's
collateral damage.

There may well be more bugs hiding in this mess.

The mess is not worth fixing.  While the idea of interdicting and
supporting with nukes sounds kind of cool, I believe it's pretty
irrelevant in actual play.

Instead, go back to a variation of the original rules: nukes can be
delivered only through bomb mission 's' and launch at sectors.

Make arm reject marine missiles in addition to satellites, ABMs and
SAMs, and clear the mission.  Make mission reject planes armed with
nukes.  Oops when they show up in mission_pln_equip() anyway.

Make pln_equip() allow planes with nukes only for missions 's' and
't'.

Clean up pln_damage() to just compute damage, without side effect.
Change strat_bomb() and launch_missile() to detonate nukes.  Simplify
the other callers.  Parameter mission of msl_launch_mindam() is now
unused, remove it.

Missiles exploding on launch no longer set off their nukes.  That was
pretty ridiculous anyway.
2009-12-13 07:46:00 +01:00

110 lines
4.4 KiB
Turing

.TH Command LAUNCH
.NA launch "Launch missiles or satellites"
.LV Expert
.SY "launch <PLANES> <SECT|SHIP|PLANE>"
The launch command is used to launch missiles (or satellites)
from sectors or submarines owned by you.
.s1
There are 5 classes of missiles:
.NF
1. "marine" missiles may only be fired at ships. They may be given
"interdiction" mission.
2. "tactical" missiles (without "marine" capability) may only be fired
against sectors. They may be given missions. If they fire on a
mission, then only enough missiles will fire to cause 100 damage.
3. "intercept" missiles can't be launched manually. They
automatically intercept planes.
4. "satellite" missiles may only be fired against satellites in orbit.
They will automatically attempt to intercept AT_WAR satellites
being launched into orbit.
5. "SDI" (anti-ballistic-missiles) can't be launched manually. They
automatically intercept incoming "tactical" (non-"marine")
missiles.
As well, there are "satellites" which are like missiles in that they
can be launched, but unlike missiles in that they don't get destroyed
as soon as they are launched.
.FI
.s1
In certain cases, a missile will require petrol or shells to be in the
sector before it can be launched. See 'show plane stats' to find out
how much fuel the missile requires. The 'load' value in 'show plane
stats' specifies how many shells the missile requires. Note that if
the missile is armed with a nucelar warhead, then it does not require
any shells.
.s1
Once a satellite has been launched, it can not be moved again.
.s1
Note here that it is much safer to use 100% missiles than those which
are less efficient,
and missiles below 40% cannot be launched.
.s1
The formula for the chance that a missile hits its target is in
\*Qinfo Hitchance\*U.
.s1
In the case of non-marine tactical missiles, if there are any HOSTILE
abm's within range of the target sector, then two of them will fire in
an attempt to intercept the incoming missile.
.s1
Similarly, two AT_WAR a-sat's will attempt to intercept any satellites
you attempt to launch within their range. Also, if the sector you are
launching your satellite at is owned by a non-allied country, then
they will get a telegram informing them of the positioning of the
satellite. See below for details of a satellite's orbit path.
.s1
When launching missiles, there is a
% chance equal to (5 + 100 - efficiency) * (1 - techfactor) that the
missile will blow up on
the launching pad instead of launching.
.s1
Missiles launched from submarines are anonymous. The victim
is not notified of the identity of the launching country.
.s1
Nuclear-tipped missiles can only be launched at sectors.
You specify whether the nuclear warhead will airburst or
groundburst when you arm the missiles (see info arm).
In order to better destroy missiles on the ground (or in their silos),
the ground-burst technique is used.
Ground-bursts are much less effective against large area targets,
but do massive damage to the sector it impacts,
possibly knocking out hardened missiles
before they can be used against you.
In the parlance of nuclear targeting doctrine,
this is known as \*Qcounter-force\*U targeting.
Air-bursts are used in order to kill large numbers of civilians,
to knock out industry (by flattening the factories),
to take out lightly armored military targets in a large area,
and to generally wreak havoc.
Nuclear strategists call this a \*Qcounter-value\*U technique.
.s1
See Also \*QOn Thermonuclear War\*U by Herman Kahn.
.s1
When you launch a satellite, you will be asked "Geostationary orbit?".
If you answer "y", then your satellite will stay where you launch it.
If, however, you answer "n", then your satellite will move along 5% of
a geodesic path around the world every update. The path the satellite
follows looks like this:
.NF
+----+
| / |
|/ |
| /|
| / |
| / |
|/ |
| /|
| / |
+----+
.FI
That is, start in the middle, move northeast until you hit the edge,
then continue from the west edge near the top and go northeast until
you go off the top of the map, then continue at the bottom going
northeast until you go off the eastern edge again, and continue from
the western edge near the bottom until you get back to the centre.
.s1
If a foreign satellite moves over your territory durring an update, then you
will get a message like "Fodderland satellite spotted over 12,24" as a
part of your update BULLETIN.
.s1
.SA "build, plane, satellite, Nuke-types, relations, Planes, Nukes"