From b3075f07042be591527ac05484dbaec00dba0b43 Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 13 Jan 2015 17:33:46 +0100 Subject: [PATCH] Simplify and cleanup IPC/defib revival after messy fixes --- code/game/objects/items/weapons/defib.dm | 5 +--- .../mob/living/carbon/human/human_damage.dm | 30 ++++++++----------- maps/cyberiad.dmm | 4 +-- 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index aeb5ab87ce0..5813139b69d 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -330,13 +330,10 @@ user.visible_message("[defib] pings: Resuscitation successful.") playsound(get_turf(src), 'sound/machines/ping.ogg', 50, 0) H.stat = 1 - if(H in dead_mob_list) - dead_mob_list -= H - living_mob_list += H + H.revive() H.emote("gasp") if(tplus > tloss) H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100)))) - H.updatehealth() defib.deductcharge(revivecost) add_logs(user, M, "revived", object="defibrillator") else diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 60b7f58c605..4016ad7bb13 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -16,26 +16,20 @@ if (species.flags & IS_SYNTHETIC) var/datum/organ/external/H = organs_by_name["head"] if (!H.amputated) - if ((health >= (config.health_threshold_dead/100*75)) && stat == DEAD) //need to get them 25% away from death point before reviving them - living_mob_list -= src - mob_list -= src - dead_mob_list -= src - living_mob_list += src - mob_list += src - stat = CONSCIOUS - ear_deaf = 0 - tod = 0 - timeofdeath = 0 + if ((health >= (config.health_threshold_dead/100*75)) && stat == DEAD) //need to get them 25% away from death point before reviving synthetics + revive() if (stat == CONSCIOUS && (src in dead_mob_list)) //Defib fix - living_mob_list -= src - mob_list -= src - dead_mob_list -= src - living_mob_list += src - mob_list += src - ear_deaf = 0 - tod = 0 - timeofdeath = 0 + revive() return + +/mob/living/carbon/human/revive() // handles revival through other means that cloning (defib, IPC repair) + stat = CONSCIOUS + dead_mob_list -= src + living_mob_list |= src + mob_list |= src + ear_deaf = 0 + tod = 0 + timeofdeath = 0 /mob/living/carbon/human/getBrainLoss() if(species && species.flags & NO_INTORGANS) return diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index db31e273a09..a05e8168026 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -3943,6 +3943,7 @@ "bxQ" = (/obj/machinery/computer/ordercomp,/turf/simulated/floor,/area/quartermaster/office) "bxR" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/quartermaster/office) "bxS" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/firealarm{pixel_y = 27},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor,/area/quartermaster/office) +"bxT" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/engine/reactor_core) "bxU" = (/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) "bxV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/central/sw) "bxW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/central/sw) @@ -6786,7 +6787,6 @@ "cAE" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.5; name = "Engineering Firelock"},/obj/machinery/door/airlock/maintenance_hatch{name = "Supermatter SMES"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/reactor_core) "cAF" = (/obj/machinery/alarm{pixel_x = 0; pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/reactor_core) "cAG" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/camera{c_tag = "Engineering Supermatter Hallway"; network = list("SS13")},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/reactor_core) -"cAH" = (/obj/machinery/atmospherics/unary/vent_scrubber,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/engine/reactor_core) "cAI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/reactor_core) "cAJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/reactor_core) "cAK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/reactor_core) @@ -12689,7 +12689,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaactaaaaabaaaaabaabcxdaabaaaaabcxdaabaaaaabcxdaabaaaaaaaaaaaaaaaaaaaaaaaacuObChcxecxfcxgcxhaaicxibYscxjcuVcuVcuVcuVcuVcuVcxkaaicxlcxmcxncxocxpcxqcxrcxscxtcxucxvcxwcxxcxycxzcxAcxBctTctUcxCcxDctXctXcxEclCcxFcxGcvhcxHcsVcxIaaqcxJcxKcxLcxMcxNcxOcxNcxPaabctgctgctgctgctgaabaabaabcqycxQcvtcwPaaqcxRcxScxTcxUcxVabtabYabYcxWabYcxXaAzaaqabnaaaaaaaaicoRcoRcoRcvDcxYcxZcyacqNcybctwctwctwcyccydcyecyfaaaaaacqPaabctActBctBctBctBctCctDctEctFctFctFctFcygaabcqPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaactactafgaabaabcqccyhcqeaaacqccyhcqeaaacqccyhcqeaabaaaaaaaaaaaaaaaaaaaaaaabaabcyiaaiaaiaaiaaiaaicfEcyjbYscykbYsbYsbYscylcymcyncyocypcypcyqcyrcyscytcyucyvcywcyxcyycyzcyAcyBcyCcyDcyEcyFcyGcyHcyIcyJcyKcyLcyMcwCcyNcyOcyPcyQcyRcyScyTcyUcyVcyWcyXcyYcyZcuncuoczaczbczbctgaaaaaaaabafbczccvtczdaaqczeczfczfczgaaqczhcziczjczkczlczmcznczkcswaaacusaaiaaqaaqaaqaaqczocoVczpcnUczqcnUczrcnUczscnUcztczuaaaaaacqPaabcuMcuMcuMcuMcuMaaacsFaabcuMcuMcuMcuMcuMaaacqPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaaaaaaaaaaaaaaaacqccyhcqeaabcqccyhcqeaaacqccyhcqeaaaaaaaaaaabaaaaaaaaaaabaabaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiczvaaiczwcxncxncxnczxczyczzczAczBaaiczCczDcwrczEczFaaiczGctXczHczIczJczKcyJczLczMczNczOczPczQczRczSczTczUczVczWcvhczXczYczZcvoaabcvpcAacAbcAcctgaaaaaaaaaafbaaqcAdaolaaqcAecAfcAgcAhcAicvtcAjcAkczkcAlcAmcAncAocApaabaaaaaaaaaaaaaaaaaicAqcArcAscAtcAucAvcAwcAxcAucAvcAyaaiaaaaabcobaaaaabaaaaabaaaaabaaacAzaaaaabaaaaabaabaabaabcqPaaaaaaaaaaaaaaaaaaaaaaaacAAaaaaaaaaacAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMVaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaaaaaaaaaaafgaabcqccyhcqeaaacqccyhcqeaaacqccyhcqeaabaaaaaaaaaaaaaaaaaaaabaabaaicABcACcADcAEcADcADcADcAFcAGcAHcADcAIcAJcAJcAKcALcAMcAMcAMcAMcAMcANcxncxncxnaaicAOcAPcAQcARcASceqanYcATcercAUcAVcAWcdjaubcAXcAYcAZcBacxHcsVcBbcBccBdcBecBfcvhczXcBgcBhcBicwMcuocBjczbczbctgaabaaaaaacqycBkcBlcBmcBncBocBpcBocBocBqcBrcBscBtcBtcBucBvcBwcBxcByaabaabaaaaaaaaaaaaaaicBzcBAcBBaaqcBCcBDcBEaaqcBFcBGcBHaaiaaaaaacqPaaacsEcsEcsEcsEcsEaabcqQaabcsEcsEcsEcsEcsEaabcqPaaaaaaaaaaaaaaaaaaaaaaaacAAcAAcAAcAAcAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaaaaaaaaaaafgaabcqccyhcqeaaacqccyhcqeaaacqccyhcqeaabaaaaaaaaaaaaaaaaaaaabaabaaicABcACcADcAEcADcADcADcAFcAGbxTcADcAIcAJcAJcAKcALcAMcAMcAMcAMcAMcANcxncxncxnaaicAOcAPcAQcARcASceqanYcATcercAUcAVcAWcdjaubcAXcAYcAZcBacxHcsVcBbcBccBdcBecBfcvhczXcBgcBhcBicwMcuocBjczbczbctgaabaaaaaacqycBkcBlcBmcBncBocBpcBocBocBqcBrcBscBtcBtcBucBvcBwcBxcByaabaabaaaaaaaaaaaaaaicBzcBAcBBaaqcBCcBDcBEaaqcBFcBGcBHaaiaaaaaacqPaaacsEcsEcsEcsEcsEaabcqQaabcsEcsEcsEcsEcsEaabcqPaaaaaaaaaaaaaaaaaaaaaaaacAAcAAcAAcAAcAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaaaaaaaaaaafgaabcqccyhcqeaaacqccyhcqeaabcqccyhcqeaabaabaabaaaaaaaaaaaaaabaaaaaicBIcBJcBKaaicBLcBMcBNcBNcBNcBOcBNcBNcBNcBNcBPacFcBQcBRcBScBTcBUcBVcBWcBXcBXcBXcBYcBZcxncxncxncCacCbcCcaaqcCdcCecCfcCgcChaaiaaiaaicCicxHcsVcCjcCkcClcCmcCncvhcCocCpcCqcCrcCsctgctgctgctgctgaaaaaaaaaafbcCtcCucCvcCwcCxcCycCxcCxcCzcCAcCBcCCcBxcCDcCEcAnczkcCFaabaabaaaaaaaaaaaaaaicCGcoRcoRaaqcCHcoRcoRaaqcCHcoRcoRaaiaaaaaacqPaabctActBctBctBctBcCIcCJcCIctFctFctFctFcygaabcqPaaacAAaaaaaacAAaaaaaacAAcAAcAAcAAcAAcAAcAAaaaaaacAAaaaaaacAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaaaaaaaaaaafOaabcqccCKcqeaaacqccCKcqeaaacqccCKcqeaabafgaabaabaaaaaaaaaaaaaaaaaicCLcBJcCMaaiaaicCNaaiaaiaaicCOaaiaaiaaiaaiaubaaiaaiaaiaaicCPcCQcCRcCScAMcAMcAMcCTcCUcCVcAMcAMcAMcCUcCWcCXcCYcCecCZcDacChcDbcDcacFcDdcDecDfcDgcDhcBfcDicDjcDkcDlcDmcDncyZcDocuocDpcDqcDqctgaaaaaaaaaafbcDrcDscDtcDucDvcDwcDxczkcDycDzcDAcDBcDCcDDcDEcDFcDGcDHaaaaaaaaaaaaaaaaaaaaicDIcoRcoRaaqcDJcoRcoRaaqcDJcoRcoRaaiaaaaaacqPaabcuMcuMcuMcuMcuMaaacqQaaacuMcuMcuMcuMcuMaaacqPaaacAAcAAcAAcAAaaacAAcAAcAAcAAcAAcAAcAAcAAcAAaaacAAcAAcAAcAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoZcoZcoZcoZcoZcoZcoZcoZcoZaaaaaaaaaaaaaaaaaaafgaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaafgaabaabaaaaaaaaaaaaaaaaaicDKcBJcCMaaicDLcDMcDNcDOcDPcDQcDRcDSaaicDTcDUcDVcDWcDXaaicDYcDZcEacEbcxncxncEccEdcEecEfcEgcEhcEicEjaaicEkcCYcCecElcEmcChaaicEnaaicEocEpcvhcDgcDhcEqcvhcDjcDkczXczYcErcvocEscvpcEtcEucEvctgaaaaaaaaabgLcEwcExcExcEyacgacgarncEzcEAcEBcEBcEBcECaaiaaiabnaveaaiaaaaaaaaaaaaaaaaaaaaicoRcoRcoRaaqcEDcoRcoRaaqcEDcoRcoRaaiaaaaabcqPaaaaaaaabaabaabaaaaaacqQaabaaaaaaaabaabaaaaaacqPaaacAAcAAcAAcAAaaacAAcAAcAAcAAcAAcAAcAAcAAcAAaaacAAcAAcAAcAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa