From a653dfd69dfd59b5826a575c334e24423e30bd3f Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Sat, 12 Mar 2016 00:49:36 -0500 Subject: [PATCH 01/18] god its late --- code/game/gamemodes/changeling/powers/augmented_eyesight.dm | 3 +++ code/modules/surgery/organs/augments_eyes.dm | 2 ++ code/modules/surgery/organs/organ.dm | 2 +- code/modules/surgery/organs/organ_external.dm | 3 ++- code/modules/surgery/organs/organ_internal.dm | 6 ++++++ 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm index 832973d4ce6..21d703b9a83 100644 --- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm +++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm @@ -43,6 +43,7 @@ origin_tech = "biotech=4" slot = "eye_ling" status = 0 + aug_message = "We feel a minute twitch in our eyes, our eyes feel more durable." /obj/item/organ/internal/cyberimp/eyes/shield/ling/on_life() ..() @@ -64,6 +65,8 @@ implant_overlay = null origin_tech = "biotech=5;magnets=5" slot = "eye_ling" + darkness_view = 8 + see_darkness = 0 status = 0 aug_message = "We feel a minute twitch in our eyes, and darkness creeps away." diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 6dcd76bedfa..f3cf645f3a0 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -8,6 +8,8 @@ w_class = 1 var/vision_flags = 0 + var/darkness_view = 0 + var/see_darkness = 1 var/list/eye_colour = list(0,0,0) var/list/old_eye_colour = list(0,0,0) var/flash_protect = 0 diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index fee4aaa1eb6..eceb5d03737 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -81,7 +81,7 @@ var/list/organ_cache = list() return //Process infections - if ((status & ORGAN_ROBOT) || (sterile) ||(owner && owner.species && (owner.species.flags & IS_PLANT))) + if ((status & ORGAN_ROBOT) || sterile == 1 ||(owner && owner.species && (owner.species.flags & IS_PLANT))) germ_level = 0 return diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index c020b873354..f7c51acc6d7 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -312,7 +312,8 @@ This function completely restores a damaged organ to perfect condition. // handle internal organs for(var/obj/item/organ/internal/current_organ in internal_organs) - current_organ.rejuvenate() + if(!istype(current_organ,/obj/item/organ/internal/cyberimp)) + current_organ.rejuvenate() // remove embedded objects and drop them on the floor diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 48b97ed4c88..33dd362f81b 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -15,6 +15,12 @@ insert(holder) ..() + +/obj/item/organ/internal/process() + + ..() + + /obj/item/organ/internal/proc/insert(mob/living/carbon/M, special = 0) if(!iscarbon(M) || owner == M) return From 2eaff84f42aba91458cd05fdbb3fe73eeca66a1e Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Sun, 13 Mar 2016 08:08:15 -0400 Subject: [PATCH 02/18] mogjtbosdopm ues --- .../changeling/powers/augmented_eyesight.dm | 6 ++--- code/modules/surgery/organs/augments_eyes.dm | 2 -- code/modules/surgery/organs/organ.dm | 2 +- code/modules/surgery/organs/organ_external.dm | 2 +- code/modules/surgery/organs/organ_internal.dm | 13 +++++------ code/modules/surgery/other.dm | 22 +++++++++++++------ 6 files changed, 26 insertions(+), 21 deletions(-) diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm index 21d703b9a83..c7a858d7be7 100644 --- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm +++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm @@ -13,7 +13,6 @@ if(!istype(user)) return if(user.get_int_organ(/obj/item/organ/internal/cyberimp/eyes/thermals/ling)) - user << "Our eyes are protected from flashes." var/obj/item/organ/internal/cyberimp/eyes/O = new /obj/item/organ/internal/cyberimp/eyes/shield/ling() O.insert(user) @@ -65,8 +64,6 @@ implant_overlay = null origin_tech = "biotech=5;magnets=5" slot = "eye_ling" - darkness_view = 8 - see_darkness = 0 status = 0 aug_message = "We feel a minute twitch in our eyes, and darkness creeps away." @@ -78,9 +75,12 @@ if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.weakeyes = 1 + if(!H.vision_type) + H.vision_type = new /datum/vision_override/nightvision /obj/item/organ/internal/cyberimp/eyes/thermals/ling/remove(mob/living/carbon/M, special = 0) if(ishuman(owner)) var/mob/living/carbon/human/H = owner H.weakeyes = 0 + H.vision_type = null ..() \ No newline at end of file diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index f3cf645f3a0..6dcd76bedfa 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -8,8 +8,6 @@ w_class = 1 var/vision_flags = 0 - var/darkness_view = 0 - var/see_darkness = 1 var/list/eye_colour = list(0,0,0) var/list/old_eye_colour = list(0,0,0) var/flash_protect = 0 diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index eceb5d03737..5209237339f 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -81,7 +81,7 @@ var/list/organ_cache = list() return //Process infections - if ((status & ORGAN_ROBOT) || sterile == 1 ||(owner && owner.species && (owner.species.flags & IS_PLANT))) + if ((status & ORGAN_ROBOT) || sterile ||(owner && owner.species && (owner.species.flags & IS_PLANT))) germ_level = 0 return diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index f7c51acc6d7..7060cfa034f 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -312,7 +312,7 @@ This function completely restores a damaged organ to perfect condition. // handle internal organs for(var/obj/item/organ/internal/current_organ in internal_organs) - if(!istype(current_organ,/obj/item/organ/internal/cyberimp)) + if(!istype(current_organ,/obj/item/organ/internal/cyberimp)|| !istype(current_organ,/obj/item/organ/internal/xenos) || !istype(current_organ,/obj/item/organ/internal/hivelord_core)) current_organ.rejuvenate() diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 33dd362f81b..bff48e21bc4 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -16,15 +16,12 @@ ..() -/obj/item/organ/internal/process() - - ..() - - /obj/item/organ/internal/proc/insert(mob/living/carbon/M, special = 0) if(!iscarbon(M) || owner == M) return + processing_objects -= src + var/obj/item/organ/internal/replaced = M.get_organ_slot(slot) if(replaced) replaced.remove(M, special = 1) @@ -48,6 +45,8 @@ /obj/item/organ/internal/remove(mob/living/carbon/M, special = 0) owner = null + + processing_objects |= src if(M) M.internal_organs -= src if(vital && !special) @@ -350,7 +349,7 @@ /obj/item/organ/internal/shadowtumor/New() ..() - processing_objects.Add(src) + processing_objects |= src /obj/item/organ/internal/shadowtumor/Destroy() processing_objects.Remove(src) @@ -383,7 +382,7 @@ /obj/item/organ/internal/honktumor/New() ..() - processing_objects.Add(src) + processing_objects |= src /obj/item/organ/internal/honktumor/insert(mob/living/carbon/M, special = 0) ..() diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index 004cea35e59..f5859bd6541 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -2,10 +2,16 @@ ////////////////////////////////////////////////////////////////// // INTERNAL WOUND PATCHING // ////////////////////////////////////////////////////////////////// + +/datum/surgery/infection + name = "external infection treatment/autopsy" + steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/generic/cauterize) + possible_locs = list("chest","head","groin", "l_arm", "r_arm", "l_leg", "r_leg") + /datum/surgery/bleeding name = "internal bleeding" steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders,/datum/surgery_step/generic/retract_skin,/datum/surgery_step/fix_vein,/datum/surgery_step/generic/cauterize) - possible_locs = list("chest","head","groin") + possible_locs = list("chest","head","groin", "l_arm", "r_arm", "l_leg", "r_leg") /datum/surgery/bleeding/can_start(mob/user, mob/living/carbon/target) if(ishuman(target)) @@ -14,9 +20,10 @@ if(!affected) return 0 var/internal_bleeding = 0 - for(var/datum/wound/W in affected.wounds) if(W.internal) - internal_bleeding = 1 - break + for(var/datum/wound/W in affected.wounds) + if(W.internal) + internal_bleeding = 1 + break if(internal_bleeding) return 1 return 0 @@ -37,9 +44,10 @@ if(!affected) return 0 var/internal_bleeding = 0 - for(var/datum/wound/W in affected.wounds) if(W.internal) - internal_bleeding = 1 - break + for(var/datum/wound/W in affected.wounds) + if(W.internal) + internal_bleeding = 1 + break return affected.open == 2 && internal_bleeding From 84caa73a3c01a8dca86618f2aa7a3ce6a183f5e5 Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Mon, 14 Mar 2016 23:45:47 -0400 Subject: [PATCH 03/18] rrollback --- code/modules/mob/living/living.dm | 1 - code/modules/surgery/organs/organ_external.dm | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index dd37b374fd1..5e1614f3cff 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -363,7 +363,6 @@ var/mob/living/carbon/C = src C.handcuffed = initial(C.handcuffed) C.heart_attack = 0 - C.brain_op_stage = 0 // restore all of the human's blood and reset their shock stage if(ishuman(src)) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 7060cfa034f..c020b873354 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -312,8 +312,7 @@ This function completely restores a damaged organ to perfect condition. // handle internal organs for(var/obj/item/organ/internal/current_organ in internal_organs) - if(!istype(current_organ,/obj/item/organ/internal/cyberimp)|| !istype(current_organ,/obj/item/organ/internal/xenos) || !istype(current_organ,/obj/item/organ/internal/hivelord_core)) - current_organ.rejuvenate() + current_organ.rejuvenate() // remove embedded objects and drop them on the floor From 13184b27e7a1955ffeea92306ec0e04e535a1f0f Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Tue, 15 Mar 2016 02:26:50 -0400 Subject: [PATCH 04/18] fixesd an issue with some eyes --- code/modules/surgery/organs/subtypes/diona.dm | 18 +++++++++++++++++ .../surgery/organs/subtypes/machine.dm | 20 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/code/modules/surgery/organs/subtypes/diona.dm b/code/modules/surgery/organs/subtypes/diona.dm index 170f93ecddc..0447cbff139 100644 --- a/code/modules/surgery/organs/subtypes/diona.dm +++ b/code/modules/surgery/organs/subtypes/diona.dm @@ -194,6 +194,24 @@ parent_organ = "head" slot = "eyes" + +/obj/item/organ/internal/diona_receptor/remove(var/mob/living/user,special = 0) + if(!special) + owner.disabilities |= NEARSIGHTED + owner.sdisabilities |= BLIND + owner.eye_blind = 20 + owner.eye_blurry = 40 + ..() + +/obj/item/organ/internal/diona_receptor/surgeryize() + if(!owner) + return + owner.disabilities &= ~NEARSIGHTED + owner.sdisabilities &= ~BLIND + owner.eye_blurry = 0 + owner.eye_blind = 0 + + //TODO:Make absorb rads on insert /obj/item/organ/internal/liver/diona diff --git a/code/modules/surgery/organs/subtypes/machine.dm b/code/modules/surgery/organs/subtypes/machine.dm index 6ba6f5055db..12b3d8aded1 100644 --- a/code/modules/surgery/organs/subtypes/machine.dm +++ b/code/modules/surgery/organs/subtypes/machine.dm @@ -129,6 +129,26 @@ robotize() ..() + +/obj/item/organ/internal/optical_sensor/remove(var/mob/living/user,special = 0) + if(!special) + owner.disabilities |= NEARSIGHTED + owner.sdisabilities |= BLIND + owner.eye_blind = 20 + owner.eye_blurry = 40 + owner << "Error 404:Optical Sensors not found." + + ..() + +/obj/item/organ/internal/optical_sensor/surgeryize() + if(!owner) + return + owner.disabilities &= ~NEARSIGHTED + owner.sdisabilities &= ~BLIND + owner.eye_blurry = 0 + owner.eye_blind = 0 + + // Used for an MMI or posibrain being installed into a human. /obj/item/organ/internal/brain/mmi_holder name = "brain" From 7dbc03555afc2119a7edde61da48d7ef17c540e8 Mon Sep 17 00:00:00 2001 From: taukausanake Date: Tue, 15 Mar 2016 23:37:21 -0500 Subject: [PATCH 05/18] Held mice sprite fix FoS made notice that dead mice don't have a sprite when held. An oversight on my part but I fixed it. Shouldn't cause anymore problems --- code/modules/mob/holder.dm | 1 + icons/obj/objects.dmi | Bin 144613 -> 143638 bytes 2 files changed, 1 insertion(+) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 10ea0c752c7..64ad7a2417c 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -91,4 +91,5 @@ /obj/item/weapon/holder/mouse name = "mouse" desc = "It's a small, disease-ridden rodent." + icon = 'icons/mob/animal.dmi' icon_state = "mouse_gray" diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 225f1b19ed31d8f13c3e298d34f914dc04625799..3ec5db973f520828b0c324d330719ba548a2f1f5 100644 GIT binary patch delta 4739 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 COHR%J delta 5751 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 V$I&xn^%)2Qs60%rSk^f3{{R?pFyR0I From 4a2bd5cc1675f3ea54348495f178c72934a63161 Mon Sep 17 00:00:00 2001 From: Aurorablade Date: Thu, 17 Mar 2016 02:09:41 -0400 Subject: [PATCH 06/18] infection surgery edit --- code/modules/surgery/other.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index f5859bd6541..37192dbdc72 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -5,7 +5,7 @@ /datum/surgery/infection name = "external infection treatment/autopsy" - steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/generic/cauterize) + steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/cauterize) possible_locs = list("chest","head","groin", "l_arm", "r_arm", "l_leg", "r_leg") /datum/surgery/bleeding From d748ef23b88fd0bfb377ab778f5ef5dd7b679141 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Thu, 17 Mar 2016 23:07:45 -0700 Subject: [PATCH 07/18] Makes DNA swapping methods more reliable - Makes heads keep hair on removal - Amputated limbs from a DNA-injected individual now will keep their appearance of the DNA-injected person - Wounds will now vanish on their own now - Admins now have an "incarnate" option on the player panel when viewing ghosts for quick player instantiation - Fixes a runtime regarding failing a limb reconnection surgery - Copying a client's preferences now overrides the previous mob's DNA --- code/datums/datumvars.dm | 3 -- .../objects/items/weapons/dna_injector.dm | 15 ++++++-- .../objects/items/weapons/dnascrambler.dm | 2 +- code/modules/admin/admin.dm | 3 ++ code/modules/admin/topic.dm | 8 +++++ code/modules/client/preferences.dm | 5 +-- code/modules/mob/dead/observer/observer.dm | 10 ++++++ .../mob/living/carbon/human/human_organs.dm | 7 ++-- code/modules/surgery/limb_reattach.dm | 2 +- code/modules/surgery/organs/organ.dm | 2 +- code/modules/surgery/organs/organ_external.dm | 35 ++++++++++++++----- code/modules/surgery/organs/organ_icon.dm | 18 +++++++--- 12 files changed, 84 insertions(+), 26 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 2088a50d748..01963850559 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -219,9 +219,6 @@ body += "
Refresh" - //if(ismob(D)) - // body += "
Show player panel

" - body += {"