diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index 5a880549b8a..ef787f76dc8 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -96593,10 +96593,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) -"dgF" = ( -/obj/structure/reagent_dispensers/oil, -/turf/simulated/floor/plasteel, -/area/assembly/robotics) "dgG" = ( /obj/structure/rack, /obj/item/stack/sheet/cardboard, @@ -126709,7 +126705,7 @@ cIx cJn cMj cLo -dgF +cLo cLo cQv cOX diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 7cf27593f6f..cecaf12cbf6 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -46257,7 +46257,6 @@ dir = 2; network = list("Research","SS13") }, -/obj/structure/reagent_dispensers/oil, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whiteredcorner" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 1cb0ee3baad..e84d12b85fe 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -239,7 +239,7 @@ /atom/proc/HasProximity(atom/movable/AM as mob|obj) return -/atom/proc/emp_act(var/severity) +/atom/proc/emp_act(severity) return /atom/proc/bullet_act(obj/item/projectile/P, def_zone) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index fd67afcf797..311bc4a38c7 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -45,8 +45,6 @@ new /obj/item/clothing/suit/storage/labcoat(src) new /obj/item/radio/headset/headset_sci(src) new /obj/item/radio/headset/headset_sci(src) - new /obj/item/reagent_containers/food/drinks/oilcan(src) - new /obj/item/reagent_containers/food/drinks/oilcan(src) /obj/structure/closet/secure_closet/RD name = "research director's locker" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index de9a9209925..b144b418956 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -298,14 +298,13 @@ else msg += "[p_they(TRUE)] [p_are()] quite chubby.\n" - if(!isSynthetic() && blood_volume < BLOOD_VOLUME_SAFE) + if(blood_volume < BLOOD_VOLUME_SAFE) msg += "[p_they(TRUE)] [p_have()] pale skin.\n" if(bleedsuppress) msg += "[p_they(TRUE)] [p_are()] bandaged with something.\n" else if(bleed_rate) - var/bleed_message = !isSynthetic() ? "bleeding" : "leaking" - msg += "[p_they(TRUE)] [p_are()] [bleed_message]!\n" + msg += "[p_they(TRUE)] [p_are()] bleeding!\n" if(reagents.has_reagent("teslium")) msg += "[p_they(TRUE)] [p_are()] emitting a gentle blue glow!\n" diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm index fdc7c6c4c46..3676e8395bc 100644 --- a/code/modules/mob/living/carbon/human/species/machine.dm +++ b/code/modules/mob/living/carbon/human/species/machine.dm @@ -22,7 +22,7 @@ death_message = "gives a short series of shrill beeps, their chassis shuddering before falling limp, nonfunctional." death_sounds = list('sound/voice/borg_deathsound.ogg') //I've made this a list in the event we add more sounds for dead robots. - species_traits = list(IS_WHITELISTED, NO_BREATHE, NO_SCAN, NO_INTORGANS, NO_PAIN, NO_DNA, RADIMMUNE, VIRUSIMMUNE, NO_GERMS, NO_DECAY, NOTRANSSTING) //Computers that don't decay? What a lie! + species_traits = list(IS_WHITELISTED, NO_BREATHE, NO_BLOOD, NO_SCAN, NO_INTORGANS, NO_PAIN, NO_DNA, RADIMMUNE, VIRUSIMMUNE, NO_GERMS, NO_DECAY, NOTRANSSTING) //Computers that don't decay? What a lie! clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS bodyflags = HAS_SKIN_COLOR | HAS_HEAD_MARKINGS | HAS_HEAD_ACCESSORY | ALL_RPARTS dietflags = 0 //IPCs can't eat, so no diet @@ -30,10 +30,6 @@ blood_color = "#1F181F" flesh_color = "#AAAAAA" - blood_color = "#3C3C3C" - exotic_blood = "oil" - blood_damage_type = STAMINA - //Default styles for created mobs. default_hair = "Blue IPC Screen" dies_at_threshold = TRUE diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index 26b5683d1a3..d8f5b665eb7 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -312,8 +312,3 @@ proc/robot_healthscan(mob/user, mob/living/M) to_chat(user, "[capitalize(O.name)]: [O.damage]") if(!organ_found) to_chat(user, "No prosthetics located.") - - if(H.isSynthetic()) - to_chat(user, "Internal Fluid Level:[H.blood_volume]/[H.max_blood]") - if(H.bleed_rate) - to_chat(user, "Warning:External component leak detected!") diff --git a/code/modules/surgery/organs/blood.dm b/code/modules/surgery/organs/blood.dm index 63a7f8a3590..cfd9b761f83 100644 --- a/code/modules/surgery/organs/blood.dm +++ b/code/modules/surgery/organs/blood.dm @@ -54,7 +54,7 @@ var/obj/item/organ/external/BP = X var/brutedamage = BP.brute_dam - if(BP.is_robotic() && !isSynthetic()) + if(BP.is_robotic()) continue //We want an accurate reading of .len diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index a06cbf9456b..b1df136f695 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -253,35 +253,6 @@ status &= ~ORGAN_SPLINTED status |= ORGAN_ROBOT -/obj/item/organ/external/emp_act(severity) - if(!is_robotic() || emp_proof) - return - if(tough) - switch(severity) - if(1) - receive_damage(0, 5.5) - if(owner) - owner.Stun(10) - if(2) - receive_damage(0, 2.8) - if(owner) - owner.Stun(5) - else - switch(severity) - if(1) - receive_damage(0, 20) - if(2) - receive_damage(0, 7) - -/obj/item/organ/internal/emp_act(severity) - if(!is_robotic() || emp_proof) - return - switch(severity) - if(1) - receive_damage(20, 1) - if(2) - receive_damage(7, 1) - /obj/item/organ/proc/shock_organ(intensity) return diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 1813a73cee1..542b7803aeb 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -41,6 +41,9 @@ var/list/obj/item/organ/external/children var/list/convertable_children = list() + // Does the organ take reduce damage from EMPs? IPC limbs get this by default + var/emp_resistant = FALSE + // Internal organs of this body part var/list/internal_organs = list() @@ -256,6 +259,34 @@ return update_icon() +/obj/item/organ/external/emp_act(severity) + if(!is_robotic() || emp_proof) + return + if(tough) // Augmented limbs + switch(severity) + if(1) + receive_damage(0, 5.5) + if(owner) + owner.Stun(10) + if(2) + receive_damage(0, 2.8) + if(owner) + owner.Stun(5) + else if(emp_resistant) // IPC limbs + switch(severity) + if(1) + // 5.28 (9 * 0.66 burn_mod) burn damage, 65.34 damage with 11 limbs. + receive_damage(0, 9) + if(2) + // 3.63 (5 * 0.66 burn_mod) burn damage, 39.93 damage with 11 limbs. + receive_damage(0, 5.5) + else // Basic prosthetic limbs + switch(severity) + if(1) + receive_damage(0, 20) + if(2) + receive_damage(0, 7) + /* This function completely restores a damaged organ to perfect condition. */ diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 5cab4dfafd8..730d2aacee0 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -73,6 +73,15 @@ A.Remove(M) return src +/obj/item/organ/internal/emp_act(severity) + if(!is_robotic() || emp_proof) + return + switch(severity) + if(1) + receive_damage(20, 1) + if(2) + receive_damage(7, 1) + /obj/item/organ/internal/replaced(var/mob/living/carbon/human/target) insert(target) diff --git a/code/modules/surgery/organs/subtypes/machine.dm b/code/modules/surgery/organs/subtypes/machine.dm index 52cad684e11..415cdb7875d 100644 --- a/code/modules/surgery/organs/subtypes/machine.dm +++ b/code/modules/surgery/organs/subtypes/machine.dm @@ -5,6 +5,7 @@ min_broken_damage = 30 encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/head/ipc/New(mob/living/carbon/holder, datum/species/species_override = null) ..(holder, /datum/species/machine) // IPC heads need to be explicitly set to this since you can print them @@ -13,6 +14,7 @@ /obj/item/organ/external/chest/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/chest/ipc/New() ..() @@ -21,6 +23,7 @@ /obj/item/organ/external/groin/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/groin/ipc/New() ..() @@ -29,6 +32,7 @@ /obj/item/organ/external/arm/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/arm/ipc/New() ..() @@ -37,6 +41,7 @@ /obj/item/organ/external/arm/right/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/arm/right/ipc/New() ..() @@ -45,6 +50,7 @@ /obj/item/organ/external/leg/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/leg/ipc/New() ..() @@ -53,6 +59,7 @@ /obj/item/organ/external/leg/right/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/leg/right/ipc/New() ..() @@ -61,6 +68,7 @@ /obj/item/organ/external/foot/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/foot/ipc/New() ..() @@ -69,6 +77,7 @@ /obj/item/organ/external/foot/right/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/foot/right/ipc/New() ..() @@ -77,6 +86,7 @@ /obj/item/organ/external/hand/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/hand/ipc/New() ..() @@ -85,6 +95,7 @@ /obj/item/organ/external/hand/right/ipc encased = null status = ORGAN_ROBOT + emp_resistant = TRUE /obj/item/organ/external/hand/right/ipc/New() ..()