Make anti-sat launch consistent with interception
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 4 Oct 2009 22:42:15 +0000 (18:42 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 12 Dec 2009 15:28:52 +0000 (16:28 +0100)
When a manually launched anti-sat hits, it now always destroys the
satellite.  This matches what it does when it intercepts
automatically.  Before, it only damaged the satellite.

info/Mobility.t
src/lib/commands/laun.c

index ab7b89b44c6f0d52992b2d0ebf6b7af839d573f3..d529900f97dfb26765f3f7b0c0349fae841b9870 100644 (file)
@@ -106,8 +106,8 @@ For all other flights, the flight cost is:
   20 / (plane efficiency)
 For planes flying on an air defense mission, this cost is cut in half.
 
-4. Land mine, pin-bombing, a-sat, and nuclear damage
-A land mine, pinpoint bomb, anti-sat missile or nuclear detonation
+4. Land mine, pin-bombing, and nuclear damage
+A land mine, pinpoint bomb or nuclear detonation
 will damage the mobility of the plane in exactly the same way that the
 efficiency of the plane is damaged (see "info Damage").
 
index ead42de464df43259275b50296e976c7e030120c..3de06c22fa40bdc77c8c8153f83a56f2aefdc332 100644 (file)
@@ -138,8 +138,6 @@ launch_as(struct plnstr *pp)
 {
     char *cp, buf[1024];
     struct plnstr plane;
-    int dam, nukedam;
-    natid oldown;
 
     cp = getstarg(player->argp[2], "Target satellite? ", buf);
     if (!check_plane_ok(pp))
@@ -158,23 +156,18 @@ launch_as(struct plnstr *pp)
        pr("Range too great!\n");
        return RET_FAIL;
     }
-    if (msl_equip(pp, 'p') < 0) {
+    if (msl_equip(pp, 'i') < 0) {
        pr("%s not enough petrol or shells!\n", prplane(pp));
        return RET_FAIL;
     }
     if (msl_hit(pp, pln_def(&plane), EF_PLANE, N_SAT_KILL, N_SAT_KILL,
                prplane(&plane), plane.pln_x, plane.pln_y, plane.pln_own)) {
-       dam = pln_damage(pp, plane.pln_x, plane.pln_y, 'p', &nukedam, 1);
-       CANT_HAPPEN(nukedam);
-       oldown = plane.pln_own;
-       planedamage(&plane, dam);
-       pr("Hit satellite for %d%% damage!\n", dam);
-       mpr(oldown, "%s anti-sat did %d%% damage to %s over %s\n",
-           cname(player->cnum), dam, prplane(&plane),
+       pr("Satellite shot down\n");
+       mpr(plane.pln_own, "%s anti-sat destroyed %s over %s\n",
+           cname(player->cnum), prplane(&plane),
            xyas(plane.pln_x, plane.pln_y, plane.pln_own));
+       plane.pln_effic = 0;
        putplane(plane.pln_uid, &plane);
-       if (!plane.pln_own)
-           mpr(oldown, "Satellite shot down\n");
     }
     return RET_OK;
 }