empserver/info/bomb.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

83 lines
3.7 KiB
Perl

.TH Command BOMB
.NA bomb "Dispose of inconvenient enemy assets with air power."
.LV Basic
.SY "bomb <BOMBERS> <ESCORTS> mission-type <SECT> route|destination"
The \*Qbomb\*U command is used to rain destruction upon helpless
enemy ships, planes, land units, and sectors.
It represents a complete mission for one or more bombers and escorts
taking off from one place and returning to base at the end of the mission.
.s1
<BOMBERS> represents a list of planes to carry out the bombing run.
Only planes with a bomb bay and sufficient mobility, based in a sector
stocked with petrol and shells, will be successfully selected for the
mission.
.s1
<ESCORTS> represent a list of fighter planes which are capable of escorting
the bombers all the way to the target.
To be selected, escorts must have fuel and mobility.
.s1
Mission-type must be one of "pinpoint" or "strategic".
Each mission has different objectives for the planes performing it.
Pinpoint missions allow bombers to attack ships, sector efficiency,
commodities in sectors, land units, and planes on the ground in the
target sector.
Strategic missions damage all commodities in the entire target sector,
while not damaging any ships resident (similar to the
\*Qfire\*U command).
.s1
Nuclear bombs can only be used for strategic bombing. They damage
everything in the sector; planes, ships, and commodities.
Only missiles in hardened silos can avoid damage from a nuclear attack.
.s1
<SECT> represents an assembly point, where all of the planes in the
mission meet before proceeding on to the target sector.
The assembly point must be owned by you or an ally, or you or an ally
must have a ship there. It must not be more than
four sectors away from any of the planes selected for the mission.
.s1
Route is a normal empire path specification. You may also give a
destination sector on the command line, or at any time while giving
the route, and empire will use the best path from the current sector
to the desired destination sector.
.s1
When getting a path interactively, empire will show you a small map
(from your bmap) concerning the current area, to help you plot
your course.
.s1
Light bombers (with the tactical capability) are used primarily for pinpoint
bombing. They perform as well as fighters do for strategic bombing.
Heavy bombers (with the bomber capability), while they can perform pinpoint
bombing, are notoriously inaccurate and in general miss what they are aiming
at. They are used mainly for strategic bombing.
.s1
Bombing missions can be intercepted just like any other mission. See
info \*QIntercept\*U.
.s1
When bombing ships/planes/units, entering a '~' character will cause a
particular plane not to bomb. Other planes on the mission will still
be asked for their targets.
.s1
If your plane has anti-submarine
(ASW) capabilities, you will be told when you arrive in a sector whether
it has submarines in it. If you then choose to pin-bomb ships, each plane
in turn will attempt to find submarines (this ability varies with the plane's
accuracy rating). Each plane can only bomb the subs it can find. (It
is assumed
that planes on anti-sub missions split up to cover the area)
.s1
Planes have differing air-to-air combat abilities, differing ranges,
and load-carrying capacities.
Some airplanes don't need runways, but can operate out of any
sector which has fuel in it.
.s1
When you pin-bomb a land unit, it will fire flak at the plane bombing it,
unless
it has an AA fire rating of 0.
.s1
In the case of pinpoint bombing, see \*Qinfo Hitchance\*U for the formula
determining whether a plane hits its target.
.s1
Note that a plane must be at least 40% efficient before it can leave
the ground.
.s1
.SA "Plane-types, build, fly, paradrop, drop, recon, relations, Combat, Mobility, Damage, Planes"