Fix limb targeted explosive implant (#19750)

The removed `qdel` seemed extraneous from what I could gather. There may
be a niche instance that the `qdel` caught, but from what I read of the
code and testing it, the `qdel`s in `activate()` and `small_countdown()`
are sufficient. I could have put it behind an if statement, and still
could, but it looked messy and seemed unnecessary.

I have some small gripe with `DROPLIMB_BLUNT` somehow not causing injury
or a bleeding wound. If someone gets their hand hit so hard with a
baseball bat that they no longer have their hand, I doubt it would be
bloodless. I struggle to think of a scenario where the loss of a limb
does not involve heavy bleeding.

Anyway, I settled for changing it to a `DROPLIMB_EDGE.` I was
considering adding an instant bloodloss (5-10% depending on which limb
was exploded), but that felt a bit much.

Additionally, I would like to make the change from `_BLUNT` to `_EDGE`
for [Greimorian egg-bursting limb
loss](https://github.com/Aurorastation/Aurora.3/blob/5e69bf50bc9fd3c27284029bfd0eff8f4fbfc138/code/game/objects/effects/spiders.dm#L322),
but I worried it would muddle this PR too much.

Below image shows what a health analyzer scan prints with the new
`_EDGE` limb loss. When `_BLUNT` there is simply no wound, bleeding, or
pain.


![image](https://github.com/user-attachments/assets/c6a43744-cc94-49c0-9c34-51c342318204)
This commit is contained in:
AlaunusLux
2024-08-11 09:42:29 +00:00
committed by GitHub
parent db8d0918e6
commit ee460b3167
2 changed files with 13 additions and 2 deletions
@@ -123,7 +123,6 @@
return
if(findtext(sanitizePhrase(msg),phrase))
activate()
qdel(src)
/obj/item/implant/explosive/exposed()
if(warning_message)
@@ -187,7 +186,7 @@
SPAN_DANGER("Your [part.name] bursts open with a horrible ripping noise!"),
SPAN_WARNING("You hear a horrible ripping noise."))
else
part.droplimb(0,DROPLIMB_BLUNT)
part.droplimb(0,DROPLIMB_EDGE)
playsound(get_turf(imp_in), BP_IS_ROBOTIC(part) ? 'sound/effects/meteorimpact.ogg' : 'sound/effects/splat.ogg', 70)
else if(ismob(imp_in))
var/mob/M = imp_in