[MIRROR] You can now revive dead fishes, bees and mice with a lazarus injector [MDB IGNORE] (#22088)

* You can now revive dead fishes, bees and mice with a lazarus injector (#76252)

## About The Pull Request
This PR introduces a signal sent to the target when a lazarus injector
is being used on them, hence read the title.
EDIT: I've forgotten to add that Tom no longer counts toward the mice
population cap now, being unique.

## Why It's Good For The Game
Being items rather than simple/basic mobs, dead mice (without a mind
datum), bees and fishes cannot be revived by the lazarus injector. While
I agree that spending one for this may be an egregious waste of mining
points, it's still fleshing out the feature a bit.

## Changelog

🆑
add: You can now revive dead fishes, bees and (mindless) mice with a
lazarus injector.
balance: Tom, the mouse, no longer counts toward the mice population
cap.
/🆑

* You can now revive dead fishes, bees and mice with a lazarus injector

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-07-01 12:38:19 -07:00
committed by GitHub
co-authored by Ghom lessthanthree
parent 7b09a5dfd4
commit e046a865df
5 changed files with 91 additions and 20 deletions
@@ -27,7 +27,13 @@
/obj/item/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag)
. = ..()
if(!loaded || !(isliving(target) && proximity_flag) )
if(!loaded || !proximity_flag)
return
if(SEND_SIGNAL(target, COMSIG_ATOM_ON_LAZARUS_INJECTOR, src, user) & LAZARUS_INJECTOR_USED)
return
if(!isliving(target))
return
var/mob/living/target_animal = target
@@ -39,9 +45,12 @@
return
target_animal.lazarus_revive(user, malfunctioning)
expend(target_animal, user)
/obj/item/lazarus_injector/proc/expend(atom/revived_target, mob/user)
user.visible_message(span_notice("[user] injects [revived_target] with [src], reviving it."))
SSblackbox.record_feedback("tally", "lazarus_injector", 1, revived_target.type)
loaded = FALSE
user.visible_message(span_notice("[user] injects [target_animal] with [src], reviving it."))
SSblackbox.record_feedback("tally", "lazarus_injector", 1, target_animal.type)
playsound(src,'sound/effects/refill.ogg',50,TRUE)
icon_state = "lazarus_empty"