diff --git a/src/lib/commands/torp.c b/src/lib/commands/torp.c index 7c0902da..ee215ff0 100644 --- a/src/lib/commands/torp.c +++ b/src/lib/commands/torp.c @@ -161,19 +161,16 @@ torp(void) if (range <= erange) { pr("Hitchance = %d%%\n", (int)(hitchance * 100)); } - /* Now, can the torpedo even get there? */ - if (!line_of_sight(NULL, sub.shp_x, sub.shp_y, - vship.shp_x, vship.shp_y)) { + if (range > erange) + pr("Out of range\n"); + else if (!line_of_sight(NULL, sub.shp_x, sub.shp_y, + vship.shp_x, vship.shp_y)) { pr("BOOM!... Torpedo slams into land before reaching target.\n"); /* We only tell the victim if we were within range. */ - if (range <= erange) { - if (vshipown != 0) - wu(0, vshipown, "Torpedo sighted @ %s by %s\n", - xyas(sub.shp_x, sub.shp_y, vshipown), - prship(&vship)); - } - } else if (range > erange) { - pr("Out of range\n"); + if (vshipown != 0) + wu(0, vshipown, "Torpedo sighted @ %s by %s\n", + xyas(sub.shp_x, sub.shp_y, vshipown), + prship(&vship)); } else if (chance(hitchance)) { pr("BOOM!...\n"); if (vshipown != 0) diff --git a/tests/torpedo/journal.log b/tests/torpedo/journal.log index 0a5a2e54..b9022167 100644 --- a/tests/torpedo/journal.log +++ b/tests/torpedo/journal.log @@ -95,7 +95,7 @@ Play#1 command torpedo Play#1 output Play#1 1 1 ships are eligible to torpedo Play#1 output Play#1 1 Effective torpedo range is 3.0 - Play#1 output Play#1 1 Whooosh... BOOM!... Torpedo slams into land before reaching target. + Play#1 output Play#1 1 Whooosh... Out of range Play#1 output Play#1 6 0 595 Play#1 input torp 0 45 Play#1 command torpedo