From 95095a0f4668c49e2a73ae4ae137bbccf997e104 Mon Sep 17 00:00:00 2001 From: Duck- Date: Mon, 29 Dec 2014 18:23:11 -0500 Subject: [PATCH] ipc fixes turns out robolimbs pop off from burn damage without any protection checking so you can get shot in the chest by lasers and turn into braces the chestless ipc. changed to allow robolimbs to fall off just like any other-- from brute. bug was causing issues also because two shots from a laser to an ipc head or groin would cause those vital organs to detach, causing the ipc to instant die. fixes robots/painlessflaggeds being able to take toxloss and halloss because new flags. painlessflags can take toxloss still. --- .../mob/living/carbon/human/human_damage.dm | 18 ++++++++++++++++++ .../modules/mob/living/carbon/human/species.dm | 2 +- code/modules/mob/living/carbon/species.dm | 2 +- code/modules/organs/organ_external.dm | 6 +++--- data/investigate/gravity.html | 18 ++++++------------ 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 6ba4396d..bd3ee6f3 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -218,6 +218,24 @@ else ..() +/mob/living/carbon/human/getHalLoss() + if(species.flags & NO_PAIN) + halloss = 0 + return ..() + +/mob/living/carbon/human/adjustHalLoss(var/amount) + if(species.flags & NO_PAIN) + halloss = 0 + else + ..() + +/mob/living/carbon/human/setHalLoss(var/amount) + if(species.flags & NO_PAIN) + halloss = 0 + else + ..() + + //////////////////////////////////////////// //Returns a list of damaged organs diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 9566470b..cbe16637 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -463,7 +463,7 @@ synth_temp_gain = 10 //this should cause IPCs to stabilize at ~80 C in a 20 C environment. - flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | IS_SYNTHETIC + flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | IS_SYNTHETIC | NO_POISON blood_color = "#1F181F" flesh_color = "#575757" diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 46edc0c8..f8132cf6 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -324,7 +324,7 @@ synth_temp_gain = 10 //this should cause IPCs to stabilize at ~80 C in a 20 C environment. - flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | IS_SYNTHETIC + flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | IS_SYNTHETIC | NO_POISON blood_color = "#1F181F" flesh_color = "#575757" diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index ce0577ef..831aa4d7 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -138,9 +138,9 @@ burn = max(0, burn - can_inflict) //If there are still hurties to dispense if (burn || brute) - if (status & ORGAN_ROBOT) - droplimb(1) //Robot limbs just kinda fail at full damage. - else +// if (status & ORGAN_ROBOT) +// droplimb(1) //Robot limbs just kinda fail at full damage. //this is breaking things okay + if (burn || brute)//else this was formerly an else. double iffing because nobody wants to fix that much spacing //List organs we can pass it to var/list/datum/organ/external/possible_points = list() if(parent) diff --git a/data/investigate/gravity.html b/data/investigate/gravity.html index 910da3fa..07be59af 100644 --- a/data/investigate/gravity.html +++ b/data/investigate/gravity.html @@ -1,12 +1,6 @@ -09:20 [0x20078ce] (92,152,1) || the gravitational generator has regained power.
-09:20 [0x20078ce] (92,152,1) || the gravitational generator is now charging.
-09:21 [0x20078ce] (92,152,1) || the gravitational generator has regained power.
-09:21 [0x20078ce] (92,152,1) || the gravitational generator is now charging.
-09:21 [0x20078ce] (92,152,1) || the gravitational generator has regained power.
-09:21 [0x20078ce] (92,152,1) || the gravitational generator is now charging.
-09:26 [0x20078ce] (92,152,1) || the gravitational generator has regained power.
-09:26 [0x20078ce] (92,152,1) || the gravitational generator is now charging.
-09:31 [0x20078ce] (92,152,1) || the gravitational generator has regained power.
-09:31 [0x20078ce] (92,152,1) || the gravitational generator is now charging.
-09:36 [0x20078ce] (92,152,1) || the gravitational generator has regained power.
-09:36 [0x20078ce] (92,152,1) || the gravitational generator is now charging.
+17:52 [0x20078f9] (92,152,1) || the gravitational generator has regained power.
+17:52 [0x20078f9] (92,152,1) || the gravitational generator is now charging.
+17:54 [0x20078f9] (92,152,1) || the gravitational generator has regained power.
+17:54 [0x20078f9] (92,152,1) || the gravitational generator is now charging.
+17:54 [0x20078f9] (92,152,1) || the gravitational generator has regained power.
+17:54 [0x20078f9] (92,152,1) || the gravitational generator is now charging.