diff --git a/src/lib/commands/bomb.c b/src/lib/commands/bomb.c index d44d7d7d..39f1aa17 100644 --- a/src/lib/commands/bomb.c +++ b/src/lib/commands/bomb.c @@ -480,11 +480,11 @@ ship_bomb(struct emp_qelem *list, struct sctstr *target) pr("%s at %s sunk!\n", prship(&ship), xyas(target->sct_x, target->sct_y, player->cnum)); - putship(ship.shp_uid, &ship); if (dam && (ship.shp_rflags & RET_INJURED)) retreat_ship(&ship, ship.shp_own, 'i'); else if (ship.shp_rflags & RET_BOMBED) retreat_ship(&ship, ship.shp_own, 'b'); + putship(ship.shp_uid, &ship); collateral_damage(target->sct_x, target->sct_y, dam / 2); } out: @@ -670,12 +670,12 @@ land_bomb(struct emp_qelem *list, struct sctstr *target) cname(player->cnum), dam, prland(&land), xyas(target->sct_x, target->sct_y, own)); landdamage(&land, dam); - putland(land.lnd_uid, &land); if (dam && (land.lnd_rflags & RET_INJURED)) retreat_land(&land, own, 'i'); else if (land.lnd_rflags & RET_BOMBED) retreat_land(&land, own, 'b'); nreport(player->cnum, N_UNIT_BOMB, own, 1); + putland(land.lnd_uid, &land); collateral_damage(target->sct_x, target->sct_y, dam); } } diff --git a/src/lib/commands/laun.c b/src/lib/commands/laun.c index 21f4c244..04900bac 100644 --- a/src/lib/commands/laun.c +++ b/src/lib/commands/laun.c @@ -276,9 +276,9 @@ launch_missile(struct plnstr *pp) shipdamage(&target_ship, dam); if (target_ship.shp_effic < SHIP_MINEFF) pr("%s sunk!\n", prship(&target_ship)); - putship(target_ship.shp_uid, &target_ship); if (dam && (target_ship.shp_rflags & RET_INJURED)) retreat_ship(&target_ship, target_ship.shp_own, 'i'); + putship(target_ship.shp_uid, &target_ship); } return RET_OK; } diff --git a/src/lib/commands/mfir.c b/src/lib/commands/mfir.c index 57c41623..69646fc8 100644 --- a/src/lib/commands/mfir.c +++ b/src/lib/commands/mfir.c @@ -397,13 +397,13 @@ multifire(void) shipdamage(&vship, dam); if (vship.shp_effic < SHIP_MINEFF) pr("%s sunk!\n", prsub(&vship)); - putship(vship.shp_uid, &vship); if (dam && (vship.shp_rflags & RET_INJURED)) retreat_ship(&vship, vict, 'i'); else if (target == targ_sub && (vship.shp_rflags & RET_DCHRGED)) retreat_ship(&vship, vict, 'd'); else if (totaldefdam == 0 && (vship.shp_rflags & RET_HELPLESS)) retreat_ship(&vship, vict, 'h'); + putship(vship.shp_uid, &vship); break; } switch (attgp->ef_type) { diff --git a/src/lib/commands/torp.c b/src/lib/commands/torp.c index f042f92b..fc6b99ab 100644 --- a/src/lib/commands/torp.c +++ b/src/lib/commands/torp.c @@ -190,9 +190,9 @@ torp(void) shipdamage(&vship, dam); if (vship.shp_effic < SHIP_MINEFF) pr("%s sunk!\n", prsub(&vship)); - putship(vship.shp_uid, &vship); if (vship.shp_rflags & RET_TORPED) retreat_ship(&vship, vshipown, 't'); + putship(vship.shp_uid, &vship); } else { pr("Missed\n"); if (vshipown != 0 && vshipown != player->cnum)