From d81fbaf49cde09a0e67f145727da7abdaf69e3c4 Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Mon, 15 Feb 2016 14:40:13 -0500 Subject: [PATCH] riohgeroi --- code/modules/surgery/organs/helpers.dm | 8 ++++++++ code/modules/surgery/organs/organ.dm | 17 ++++++++--------- code/modules/surgery/organs/organ_external.dm | 4 ++-- code/modules/surgery/organs/subtypes/diona.dm | 12 ++++++------ code/modules/surgery/organs/subtypes/machine.dm | 4 ++-- 5 files changed, 26 insertions(+), 19 deletions(-) diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index a71e1003fbc..29bd9801b26 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -7,6 +7,9 @@ /mob/proc/get_organ_slot(slot) //is it a brain, is it a brain_tumor? return +/mob/proc/get_int_organ_tag(tag) //is it a brain, is it a brain_tumor? + return + /mob/living/carbon/get_int_organ(typepath) return (locate(typepath) in internal_organs) @@ -31,5 +34,10 @@ if(slot == O.slot) return O +/mob/living/carbon/get_int_organ_tag(tag) + for(var/obj/item/organ/internal/O in internal_organs) + if(tag == O.organ_tag) + return O + /proc/is_int_organ(atom/A) return istype(A, /obj/item/organ/internal) \ No newline at end of file diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index f1a5497a93c..a4fc9e94447 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -296,15 +296,14 @@ var/list/organ_cache = list() if(!istype(owner)) return - //if(is_primary_organ())//Toddo from fethas:Do i need to move ths? - // owner.internal_organs_by_name[organ_tag] = null - // owner.internal_organs_by_name -= organ_tag - // owner.internal_organs_by_name -= null // uh what does this line even do this seems silly - - owner.internal_organs -= src + var/obj/item/organ/internal/O = owner.get_int_organ_tag(organ_tag) + world << "[O]" + if(O) + owner.internal_organs -= O + //O.forceMove(src) var/obj/item/organ/external/affected = owner.get_organ(parent_organ) - if(affected) affected.internal_organs -= src + if(affected) affected.internal_organs -= O loc = get_turf(owner) processing_objects |= src @@ -313,7 +312,7 @@ var/list/organ_cache = list() if(!organ_blood || !organ_blood.data["blood_DNA"]) owner.vessel.trans_to(src, 5, 1, 1) - if(owner && vital && is_primary_organ()) // I'd do another check for species or whatever so that you couldn't "kill" an IPC by removing a human head from them, but it doesn't matter since they'll come right back from the dead + if(owner && vital) // I'd do another check for species or whatever so that you couldn't "kill" an IPC by removing a human head from them, but it doesn't matter since they'll come right back from the dead if(user) user.attack_log += "\[[time_stamp()]\] removed a vital organ ([src]) from [key_name(owner)] (INTENT: [uppertext(user.a_intent)])" owner.attack_log += "\[[time_stamp()]\] had a vital organ ([src]) removed by [key_name(user)] (INTENT: [uppertext(user.a_intent)])" @@ -348,4 +347,4 @@ I use this so that this can be made better once the organ overhaul rolls out -- O = owner if (!istype(owner)) // You're not the primary organ of ANYTHING, bucko return 0 - return src == O.get_int_organ(organ_tag) + return src == O.get_int_organ_tag(organ_tag) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 50d9ffc11a3..46db5226add 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -867,8 +867,8 @@ Note that amputating the affected organ does in fact remove the infection from t O.forceMove(src) // Grab all the internal giblets too. - for(var/obj/item/organ/organ in internal_organs) - organ.removed() + for(var/obj/item/organ/internal/organ in internal_organs) + organ.remove(victim) organ.forceMove(src) release_restraints(victim) diff --git a/code/modules/surgery/organs/subtypes/diona.dm b/code/modules/surgery/organs/subtypes/diona.dm index c319e3d570d..c95c18ba32b 100644 --- a/code/modules/surgery/organs/subtypes/diona.dm +++ b/code/modules/surgery/organs/subtypes/diona.dm @@ -153,7 +153,7 @@ name = "neural strata" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "special" // Turns into a nymph instantly, no transplanting possible. + organ_tag = "heart" // Turns into a nymph instantly, no transplanting possible. origin_tech = "biotech=3" parent_organ = "chest" slot = "heart" @@ -163,7 +163,7 @@ parent_organ = "head" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "special" // Turns into a nymph instantly, no transplanting possible. + organ_tag = "brain" // Turns into a nymph instantly, no transplanting possible. origin_tech = "biotech=3" slot = "brain" @@ -171,7 +171,7 @@ name = "polyp segment" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "special" // Turns into a nymph instantly, no transplanting possible. + organ_tag = "kidneys" // Turns into a nymph instantly, no transplanting possible. origin_tech = "biotech=3" parent_organ = "groin" slot = "kidneys" @@ -180,14 +180,14 @@ name = "anchoring ligament" icon = 'icons/obj/objects.dmi' icon_state = "nymph" - organ_tag = "special" // Turns into a nymph instantly, no transplanting possible. + organ_tag = "appendix" // Turns into a nymph instantly, no transplanting possible. origin_tech = "biotech=3" parent_organ = "groin" slot = "appendix" /obj/item/organ/internal/eyes/diona name = "receptor node" - organ_tag = "receptor node" + organ_tag = "eyes" icon = 'icons/mob/alien.dmi' icon_state = "claw" origin_tech = "biotech=3" @@ -199,7 +199,7 @@ /obj/item/organ/internal/liver/diona name = "nutrient vessel" parent_organ = "chest" - organ_tag = "nutrient vessel" + organ_tag = "liver" icon = 'icons/mob/alien.dmi' icon_state = "claw" slot = "liver" diff --git a/code/modules/surgery/organs/subtypes/machine.dm b/code/modules/surgery/organs/subtypes/machine.dm index c2a750cb905..6300345e1bc 100644 --- a/code/modules/surgery/organs/subtypes/machine.dm +++ b/code/modules/surgery/organs/subtypes/machine.dm @@ -98,7 +98,7 @@ desc = "A small, powerful cell for use in fully prosthetic bodies." icon = 'icons/obj/power.dmi' icon_state = "scell" - organ_tag = "cell" + organ_tag = "heart" parent_organ = "chest" slot = "heart" vital = 1 @@ -117,7 +117,7 @@ /obj/item/organ/internal/optical_sensor name = "optical sensor" - organ_tag = "optics" + organ_tag = "eyes" parent_organ = "head" icon = 'icons/obj/robot_component.dmi' icon_state = "camera"