Attacking planets
Attacking planets is the colony-combat system used by classic Galactic Empire and standard ge-next. A ship in orbit commits troops or fighters with the ATTACK command. The battle is resolved immediately against the planet's stored defenders; it is not the same as firing ship weapons at a planet. The casualty percentages below use the shipped configuration, which a sysop may change. ge-arena does not use this conquest system.
Before an attack
The ship must orbit an ordinary planet outside the neutral zone, carry the force it sends, and not already own the planet. A fighter attack also requires fighter-launch capability. Classic checks that capability before either type of attack, incorrectly preventing some ships from launching troops; ge-next permits any ship to send troops while retaining the launcher requirement for fighters. Classic requires a numeric amount; ge-next also accepts ALL. See Attack command for exact syntax and command errors.
An accepted attack removes the requested force from the ship temporarily, marks the ship hostile to that planet, and begins the usual post-fire delay. The surviving units, if any, return after resolution unless a surrender rule consumes them. A hostile ship can draw fire from the planet's ion cannon, including after leaving orbit. The attacker need not be strong enough to conquer for these consequences to occur. Before committing, scan the planet and consider its fighters, troops, and ion cannons; an infiltrator can give imperfect advance intelligence, but not a live complete inventory. See Spies.
Reading the combat ratios
Each attack compares the number sent, A, with the number of defenders of the same type initially on the planet, D. The percentage ratio is truncated to an integer before threshold tests. Troop attacks use integer arithmetic in the published classic code; classic fighter attacks calculate a floating-point percentage and then store its integer part. The normal threshold results are the same: troop attacks can damage defending troops at 3% or more (ratio > 2), and fighter attacks can damage defending fighters at 2% or more (ratio > 1). A ratio of 0 is used when D is zero to avoid division by zero. These thresholds affect damage and some notifications, not every other part of the battle.
The casualty formulas multiply one force by a randomly selected percentage and discard any fractional casualty. Losses are capped by the number actually present. Their ranges include the stated upper endpoint only in the rare case that the random generator returns its maximum value. References to a 20%-120% range, for example, should be read as an approximate continuous selection, not as a fixed percentage or a separate die roll for every unit.
Fighter assault
A fighter assault is the usual way to remove planetary fighters. The original classic 3.2d notes discuss the small-attack protection; an assault below 2% of the defending fighter force cannot kill defenders and will ordinarily lose all attackers to the defenders' fire.[1][2] The battle proceeds in this order:
- Planetary troops may fire first. If the planet has more than 500 troops, the chance of a troop-fire event is 80% in the classic 16-bit source. The apparent intent was 60%; ge-next 0.3.3 made it 60%. If it activates, the planet calculates losses of approximately 5%-23% of the attacking fighters and announces that the fighters are under fire. The troop losses are added to later fighter-versus-fighter losses; they do not reduce the original A used to calculate damage to defenders.[3]
- Defending fighters fire. They destroy approximately 20%-120% of D attackers, plus any losses already calculated from troop fire. At least five times as many defending fighters as attacking fighters guarantees the attackers are wiped out at the stock minimum, before considering troop fire.[4]
- Attackers hit the defending fighters only when the truncated ratio is greater than 1. Their damage is approximately 20%-75% of the original A, capped at the defending fighter count. Thus surviving attacking fighters may return to the ship even if they destroy many defenders, and an attack can damage defenders even if the attackers are all lost in the same resolution.[5]
- Collateral damage is rolled when the truncated ratio exceeds 5, meaning A is at least 6% of D. Each stocked item other than fighters can lose a separately rolled 0-14 units, capped by its inventory. This can include men, food, troops, and equipment. The defending fighter total is settled by the fighter battle instead.[6]
If no defending fighters remain, at least one attacking fighter survives, and fewer than five defending troops remain, the planet is conquered. Five or more defending troops prevent this fighter-only victory; the attacker normally needs a troop assault to finish the conquest.[7] The defender's troops can still shoot down fighters even when the planet has no fighters. Classic calculates and announces those troop-fire losses in that situation but fails to apply them; ge-next 0.3.3 corrected this separate defect. See Classic bug: Planetary troop fire requires defending fighters.
Troop assault
Troops attack the defenders on the ground. A force below 3% of the defending troop count cannot kill any defenders and is lost to the defenders' minimum fire; the code tests the truncated ratio against 2, not the unrounded percentage.[8] The resolution is:
- Defending fighters shoot at troop transports. If the planet has at least two fighters, each fighter can destroy 9-43 attacking troops. These losses are capped by the number sent, and are added to subsequent defending-troop fire. They do not lower the original A used to calculate damage to the defenders.[9]
- Defending troops fire. They destroy approximately 25%-150% of D attackers, capped at A, in addition to any fighter-inflicted losses. At four times as many defending troops as attacking troops, the stock minimum is enough to lose every attacker even without fighters.[10]
- Attacking troops hit defenders only if the truncated ratio is greater than 2. They destroy approximately 10%-45% of the original A defending troops, capped at D.[11]
- Surrender and collateral rules then examine the surviving forces. If some defenders remain but number less than one quarter of the surviving attackers, they surrender and the planet is conquered; this path can win even if planetary fighters remain.[12] If the surviving attackers instead number less than one quarter of the remaining defenders, they surrender and do not return to the ship.[13] Otherwise the survivors return. If the ratio exceeds 2 and the surviving attackers exceed half of the remaining defending troops, each item except men may lose 0-14 units of collateral stock, capped by its quantity.[14]
Troops can also conquer when at least one attacker survives, no defending troops remain, and the planet has no fighters.[15] Classic has two important accounting errors here. First, it says surrendered attackers have joined the planetary garrison, but a later assignment overwrites that addition; the same assignment can undo troop collateral losses that were reported to the player. ge-next 0.3.3 applies both to the final defending count. See Classic bug: Attacking troop surrender overwrite.[16] Second, a troop attack on a planet with zero defending troops and no fighters can print the victory message without transferring ownership, because the classic ownership-transfer block is gated on a ratio that is zero in this case. ge-next 0.3 corrected this. See Classic bug: Empty-planet troop conquest.[17]
Worked troop examples
These six cases use stock casualty settings, no defending fighters, no special ownership-limit condition, and approximate probabilities where random outcomes are involved. All casualty counts are whole numbers. The 10%-45% defender-loss calculation for 500 attackers normally produces 50-224 casualties; the exact upper endpoint can produce 225.
| Attackers / defenders | What happens |
|---|---|
| 500 / 35,000 | The truncated ratio is 1%, below the 3% troop-damage threshold. The defenders lose no troops. Their minimum return fire exceeds 500, so every attacker is lost. |
| 500 / 2,000 | The minimum defending fire is 500, so all 500 attackers are lost. They can still kill roughly 50-225 defending troops during that same assault. |
| 500 / 1,000 | Defending fire before the cap ranges from 250 to 1,500. Roughly 80% of such rolls wipe out the attackers; in the other roughly 20%, at most 250 survive. The defenders lose roughly 50-225. Even the maximum surviving force is too small to cause collateral damage against the minimum 775 defenders still present. A very small surviving force can surrender instead of returning to the ship. |
| 500 / 500 | Defending fire ranges from 125 to 750 before the cap, giving about a 40% chance that every attacker is lost. The defenders lose roughly 50-225, leaving roughly 275-450. Sufficiently many surviving attackers can trigger collateral damage; very few survivors can surrender. |
| 500 / 200 | The defenders kill roughly 50-300 attackers, so some always survive. The attackers kill roughly 50-225 defenders, capped at 200. The chance of eliminating all 200 is approximately 1 in 7 (14.3%). With at least about 200 attackers surviving and at most 150 defenders left, the collateral condition is always met. Eliminating every defender wins if the planet has no fighters. |
| 5,000 / 200 | The defenders kill roughly 50-300 attackers, but the attackers' minimum calculated damage is 500, enough to eliminate every defending troop. With no defending fighters, this conquers the planet; the collateral condition is also met. |
Alerts and intelligence
Significant attacks can notify the owner in GE, in another BBS area, or by in-game mail depending on whether the owner is online and the result. The notification paths use the initial attack ratio, with different thresholds for troops and fighters; a conquest is also important enough for its own result message. A spy planted by another player can receive an attack report when the owner is not reached through the earlier notification path. For a qualifying failed attack, the spy-report path has an additional one-in-six roll; a qualifying conquest does not. In classic, the text for the failed and successful spy reports was reversed, so a spy could misreport the outcome even though the actual ownership was correct. ge-next 0.02 corrected the messages. See Classic bug: Planet spy attack result inversion and Spies.
An infiltrator's reserve reports are a different kind of intelligence from attack alerts. Each such report chooses a displayed confidence of approximately 50%-98%. The estimated item quantity is the true count minus one random portion of the error range plus another; at 75% confidence it can lie roughly between 75% and 125% of the real count, but the two deviations may cancel.[18][19] See Spies for the rest of the infiltration rules.
Conquest and aftermath
On a valid conquest the planet changes commander. ge-next decrements the previous owner's planet count when that record exists, increments the winner's count, clears the winner's hostility to the planet, and clears a previous team trade password and team code. Classic's ownership transfer is much simpler: it assigns the new owner and increments the attacker without immediately fixing the previous owner's planet total. Classic also lets a player at the configured MAXPLNTS limit acquire further planets by attacking; ge-next 0.3 enforces the limit on conquest as well as peaceful claims. See Classic bug: Planet conquest bypasses ownership limit.
An attacker who wins inherits a damaged colony, not a freshly generated one. Rename it if desired, inspect the tax and operating banks, check the tax rate (particularly on a **Free** revolt planet), adjust production and pricing, and replace or remove any old trade password. Rebuild troops, fighters, and ion cannons by transferring supplies or allocating production. The former owner may still know an ordinary password and may use it on other planets, so changing it is prudent. See Planet administration, Ion cannons, and Colonizing planets.
Configuration and source notes
The five stock casualty parameters are PLATTRF1, PLATTRF2, PLATTRF3, PLATTRT1, and PLATTRT2 in classic and ge-next configuration. They change the random casualty ranges, not the separate ratio thresholds or capture conditions. Casualties and conquest are handled by attack_fig(), attack_men(), and wonplnt() in GECMDS.C; attack alerts use call_4_help().
See also
References
- ↑ Classic
GECMDS.C,attack_fig(), around line 3855. - ↑ Classic 3.2d release notes.
- ↑ Classic
GECMDS.C,attack_fig(), lines 3834-3839. See Classic bug: Planet troop anti-fighter probability. - ↑ Classic
GECMDS.C,attack_fig(), lines 3848-3849. - ↑ Classic
GECMDS.C,attack_fig(), lines 3857-3858. - ↑ Classic
GECMDS.C,attack_fig(), lines 3881-3897. - ↑ Classic
GECMDS.C,attack_fig(), lines 3899-3903. - ↑ Classic
GECMDS.C,attack_men(), around line 3674. - ↑ Classic
GECMDS.C,attack_men(), lines 3659-3668. - ↑ Classic
GECMDS.C,attack_men(), around line 3671. - ↑ Classic
GECMDS.C,attack_men(), around line 3676. - ↑ Classic
GECMDS.C,attack_men(), lines 3698-3703. - ↑ Classic
GECMDS.C,attack_men(), lines 3705-3711. - ↑ Classic
GECMDS.C,attack_men(), around line 3715. - ↑ Classic
GECMDS.C,attack_men(), lines 3740-3743. - ↑ Classic
GECMDS.C,attack_men(), around line 3745. - ↑ Classic
GECMDS.C,attack_men(), lines 3760-3769. - ↑ Classic
GEPLANET.C, around line 168; displayed confidence calculation. - ↑ Classic
GEPLANET.C, around line 176; two-sided quantity deviation.
Home · Play · Reference · Versions & history · Sysop · Development · Classic bugs