mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 05:27:01 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into OrganRefactor
This commit is contained in:
@@ -79,24 +79,28 @@
|
||||
switch(stage)
|
||||
if(0)
|
||||
if(istype(W,/obj/item/weapon/scalpel))
|
||||
spread_germs_to_organ(src,user)
|
||||
user.visible_message("<span class='danger'><b>[user]</b> cuts [src] open with [W]!")
|
||||
stage++
|
||||
return
|
||||
if(1)
|
||||
if(istype(W,/obj/item/weapon/retractor))
|
||||
spread_germs_to_organ(src,user)
|
||||
user.visible_message("<span class='danger'><b>[user]</b> cracks [src] open like an egg with [W]!")
|
||||
stage++
|
||||
return
|
||||
if(2)
|
||||
if(istype(W,/obj/item/weapon/hemostat))
|
||||
spread_germs_to_organ(src,user)
|
||||
if(contents.len)
|
||||
var/obj/item/removing = pick(contents)
|
||||
removing.loc = get_turf(user.loc)
|
||||
var/obj/item/organ/O = removing
|
||||
if(istype(O))
|
||||
O.status |= ORGAN_CUT_AWAY
|
||||
spread_germs_to_organ(O,user) // This wouldn't be any cleaner than the actual surgery
|
||||
O.removed(user)
|
||||
else if(!(user.l_hand && user.r_hand))
|
||||
if(!(user.l_hand && user.r_hand))
|
||||
user.put_in_hands(removing)
|
||||
user.visible_message("<span class='danger'><b>[user]</b> extracts [removing] from [src] with [W]!")
|
||||
else
|
||||
@@ -855,7 +859,8 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
|
||||
release_restraints(victim)
|
||||
victim.organs -= src
|
||||
victim.organs_by_name[limb_name] = null // Remove from owner's vars.
|
||||
if(is_primary_organ(victim))
|
||||
victim.organs_by_name[limb_name] = null // Remove from owner's vars.
|
||||
|
||||
//Robotic limbs explode if sabotaged.
|
||||
if(is_robotic && sabotaged)
|
||||
@@ -885,3 +890,10 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
"\red <b>Your [name] melts away!</b>", \
|
||||
"\red You hear a sickening sizzle.")
|
||||
disfigured = 1
|
||||
|
||||
/obj/item/organ/external/is_primary_organ(var/mob/living/carbon/human/O = null)
|
||||
if (isnull(O))
|
||||
O = owner
|
||||
if (!istype(O)) // You're not the primary organ of ANYTHING, bucko
|
||||
return 0
|
||||
return src == O.organs_by_name[limb_name]
|
||||
|
||||
@@ -137,7 +137,9 @@
|
||||
|
||||
/obj/item/organ/external/head/removed()
|
||||
if(owner)
|
||||
name = "[owner.real_name]'s head"
|
||||
if(!istype(dna))
|
||||
dna = owner.dna.Clone()
|
||||
name = "[dna.real_name]'s head"
|
||||
owner.unEquip(owner.glasses)
|
||||
owner.unEquip(owner.head)
|
||||
owner.unEquip(owner.l_ear)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
/datum/surgery_step/proc/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
return null
|
||||
|
||||
/proc/spread_germs_to_organ(obj/item/organ/external/E, mob/living/carbon/human/user)
|
||||
/proc/spread_germs_to_organ(obj/item/organ/E, mob/living/carbon/human/user)
|
||||
if(!istype(user) || !istype(E)) return
|
||||
|
||||
var/germ_level = user.germ_level
|
||||
@@ -131,4 +131,5 @@
|
||||
var/ribcage = 0
|
||||
var/head_reattach = 0
|
||||
var/current_organ = "organ"
|
||||
var/obj/item/organ/organ_ref = null
|
||||
var/list/in_progress = list()
|
||||
Reference in New Issue
Block a user