You can use a fishing rod to snatch organs during organ manipulation surgery (feat organs sanity fix) (#87774)

## About The Pull Request
This allows you to use a fishing rod during the "manipulate organs" step
of the aforementioned surgery to snatch organs from a target.

Unlike other fish sources, this one has a negative fishing difficulty of
-20, which when summed with the default minigame difficulty should still
result in a negative difficulty. In layman terms, this means the
minigame is skipped here (unless you're wearing some clunky stuff like
insulated or boxing gloves). It also has a wait time of 8 to 13 seconds
versus the more random standard 3 to 25 seconds.

A small side-effect of this is that explosions during the "manipulate
organs" step will basically disembowel you, but it kinda fits anyway.

By the by, because of this, there is a tiny chance bluespace fishing
rods can yield you random organs. Worry not, they're newly generated, so
you won't be snatching it from another player by accident (at least for
now).

## Why It's Good For The Game
It adds more possible weird and rare shenanigans involving surgery.

## Changelog

🆑
Add: You can use a fishing rod to snatch organs during organ
manipulation surgery
/🆑
This commit is contained in:
Ghom
2024-11-20 22:13:18 +00:00
committed by GitHub
parent 538463ffbc
commit 6272b3680c
57 changed files with 286 additions and 215 deletions
+6 -13
View File
@@ -23,26 +23,19 @@
GLOB.zombie_infection_list -= src
. = ..()
/obj/item/organ/zombie_infection/on_mob_insert(mob/living/carbon/M, special = FALSE, movement_flags)
/obj/item/organ/zombie_infection/on_mob_insert(mob/living/carbon/new_owner, special = FALSE, movement_flags)
. = ..()
RegisterSignal(new_owner, COMSIG_LIVING_DEATH, PROC_REF(organ_owner_died))
START_PROCESSING(SSobj, src)
/obj/item/organ/zombie_infection/on_mob_remove(mob/living/carbon/M, special = FALSE)
/obj/item/organ/zombie_infection/on_mob_remove(mob/living/carbon/new_owner, special = FALSE, movement_flags)
. = ..()
STOP_PROCESSING(SSobj, src)
if(iszombie(M) && old_species && !special)
M.set_species(old_species)
if(iszombie(new_owner) && old_species && !special)
new_owner.set_species(old_species)
if(timer_id)
deltimer(timer_id)
/obj/item/organ/zombie_infection/on_mob_insert(mob/living/carbon/organ_owner, special)
. = ..()
RegisterSignal(organ_owner, COMSIG_LIVING_DEATH, PROC_REF(organ_owner_died))
/obj/item/organ/zombie_infection/on_mob_remove(mob/living/carbon/organ_owner, special)
. = ..()
UnregisterSignal(organ_owner, COMSIG_LIVING_DEATH)
UnregisterSignal(new_owner, COMSIG_LIVING_DEATH)
/obj/item/organ/zombie_infection/proc/organ_owner_died(mob/living/carbon/source, gibbed)
SIGNAL_HANDLER