From: Markus Armbruster Date: Sun, 4 Oct 2009 22:42:15 +0000 (-0400) Subject: Make anti-sat launch consistent with interception X-Git-Tag: v4.3.23~25 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=cf960a573ca3132735b888a48416ee37d123f734 Make anti-sat launch consistent with interception 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. --- diff --git a/info/Mobility.t b/info/Mobility.t index ab7b89b44..d529900f9 100644 --- a/info/Mobility.t +++ b/info/Mobility.t @@ -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"). diff --git a/src/lib/commands/laun.c b/src/lib/commands/laun.c index ead42de46..3de06c22f 100644 --- a/src/lib/commands/laun.c +++ b/src/lib/commands/laun.c @@ -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; }