From db63e7b8fe05109ead71b0ceaa67585a16020a21 Mon Sep 17 00:00:00 2001 From: "daelith.rhedynfre" Date: Sun, 23 Jan 2011 20:26:22 +0000 Subject: [PATCH] Added eye surgery as a start to the surgical procedures. Performed by targeting eyes while patient is on an operating table. Steps are scalpel > retractor > hemostat > cautery. These steps will change in the future, when surgery becomes a little more complicated. Really this is just an excuse for me to make the operating room which will follow this update shortly. Included sterilizine, which is going to be part of future surgical updates. Also fixed that thing where all the tools were named the same. Changed a sprite that isn't in use yet for surgery git-svn-id: http://tgstation13.googlecode.com/svn/trunk@905 316c924e-a436-60f5-8080-3fe189b3f50e --- code/WorkInProgress/Chemistry-Reagents.dm | 23 ++- code/WorkInProgress/Chemistry-Recipes.dm | 7 + code/defines/mob/living/carbon/carbon.dm | 1 + code/defines/obj/weapon.dm | 6 +- .../objects/items/weapons/surgery_tools.dm | 192 +++++++++++++++++- icons/obj/surgery.dmi | Bin 12837 -> 7855 bytes 6 files changed, 219 insertions(+), 10 deletions(-) diff --git a/code/WorkInProgress/Chemistry-Reagents.dm b/code/WorkInProgress/Chemistry-Reagents.dm index 8fa80ebf625..936ed486665 100644 --- a/code/WorkInProgress/Chemistry-Reagents.dm +++ b/code/WorkInProgress/Chemistry-Reagents.dm @@ -627,6 +627,27 @@ datum ..() return + sterilizine + name = "Sterilizine" + id = "sterilizine" + description = "Sterilizes wounds in preparation for surgery." + reagent_state = LIQUID + /* reaction_mob(var/mob/M, var/method=TOUCH, var/volume) + src = null + if (method==TOUCH) + if(istype(M, /mob/living/carbon/human)) + if(M.health >= -100 && M.health <= 0) + M.crit_op_stage = 0.0 + if (method==INGEST) + usr << "Well, that was stupid." + M:toxloss += 3 + return + on_mob_life(var/mob/M) + if(!M) M = holder.my_atom + M.radiation += 3 + ..() + return + */ iron name = "Iron" id = "iron" @@ -925,7 +946,7 @@ datum M:eye_blurry = max(M:eye_blurry-5 , 0) M:eye_blind = max(M:eye_blind-5 , 0) M:disabilities &= ~1 - M:sdisabilities &= ~1 +// M:sdisabilities &= ~1 Replaced by eye surgery ..() return diff --git a/code/WorkInProgress/Chemistry-Recipes.dm b/code/WorkInProgress/Chemistry-Recipes.dm index ae733edff3b..d4320077258 100644 --- a/code/WorkInProgress/Chemistry-Recipes.dm +++ b/code/WorkInProgress/Chemistry-Recipes.dm @@ -42,6 +42,13 @@ datum required_reagents = list("aluminium" = 1, "silicon" = 1, "oxygen" = 1) result_amount = 3 + sterilizine + name = "Sterilizine" + id = "sterilizine" + result = "sterilizine" + required_reagents = list("ethanol" = 1, "anti-toxin" = 1, "chlorine" = 1) + result_amount = 3 + mutagen name = "Unstable mutagen" id = "mutagen" diff --git a/code/defines/mob/living/carbon/carbon.dm b/code/defines/mob/living/carbon/carbon.dm index f5132fa5e2d..51e5867312b 100644 --- a/code/defines/mob/living/carbon/carbon.dm +++ b/code/defines/mob/living/carbon/carbon.dm @@ -3,3 +3,4 @@ var/list/stomach_contents = list() var/brain_op_stage = 0.0 + var/eye_op_stage = 0.0 \ No newline at end of file diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 28941c9ad76..f22ae9c712b 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -1359,21 +1359,21 @@ Total SMES charging rate should not exceed total power generation rate, or an ov w_class = 1.0 /obj/item/weapon/hemostat - name = "retractor" + name = "hemostat" icon = 'surgery.dmi' icon_state = "hemostat" flags = FPRINT | TABLEPASS | CONDUCT w_class = 1.0 /obj/item/weapon/cautery - name = "retractor" + name = "cautery" icon = 'surgery.dmi' icon_state = "cautery" flags = FPRINT | TABLEPASS | CONDUCT w_class = 1.0 /obj/item/weapon/surgicaldrill - name = "retractor" + name = "surgical drill" icon = 'surgery.dmi' icon_state = "drill" flags = FPRINT | TABLEPASS | CONDUCT diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 62019b1e199..2d859233c39 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -1,10 +1,160 @@ /* CONTAINS: +RETRACTOR +HEMOSTAT +CAUTERY +SURGICAL DRILL SCALPEL CIRCULAR SAW */ +///////////// +//RETRACTOR// +///////////// +/obj/item/weapon/retractor/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(!(locate(/obj/machinery/optable, M.loc) && M.resting)) + return ..() + + if (user.zone_sel.selecting == "eyes") + + var/mob/living/carbon/human/H = M + if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))) + // Eye surgery cannot be performed unless the head is clear + user << "\blue You're going to need to remove that mask/helmet/glasses first." + return + + switch(M.eye_op_stage) + if(1.0) + for(var/mob/O in viewers(M, null)) + if(O == (user || M)) + continue + if(M == user) + O.show_message(text("\red [user] begins to have his eyes retracted."), 1) + else + O.show_message(text("\red [M] is having his eyes retracted by [user]."), 1) + + if(M != user) + M << "\red [user] begins to seperate your eyes with [src]!" + user << "\red You seperate [M]'s eyes with [src]!" + else + user << "\red You begin to pry open your eyes with [src]!" + if(prob(25)) + user << "\red You mess up!" + M.bruteloss += 15 + + M.updatehealth() + M:eye_op_stage = 2.0 + + else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human)))) + return ..() + + return + +//////////// +//Hemostat// +//////////// + +/obj/item/weapon/hemostat/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(!(locate(/obj/machinery/optable, M.loc) && M.resting)) + return ..() + + if (user.zone_sel.selecting == "eyes") + + var/mob/living/carbon/human/H = M + if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))) + // Eye surgery cannot be performed unless the head is clear + user << "\blue You're going to need to remove that mask/helmet/glasses first." + return + + switch(M.eye_op_stage) + if(2.0) + for(var/mob/O in viewers(M, null)) + if(O == (user || M)) + continue + if(M == user) + O.show_message(text("\red [user] begins to have his eyes mended."), 1) + else + O.show_message(text("\red [M] is having his eyes mended by [user]."), 1) + + if(M != user) + M << "\red [user] begins to mend your eyes with [src]!" + user << "\red You mend [M]'s eyes with [src]!" + else + user << "\red You begin to mend your eyes with [src]!" + if(prob(25)) + user << "\red You mess up!" + M.bruteloss += 15 + + M.updatehealth() + M:eye_op_stage = 3.0 + + else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human)))) + return ..() + + return + +/////////// +//Cautery// +/////////// + +/obj/item/weapon/cautery/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(!(locate(/obj/machinery/optable, M.loc) && M.resting)) + return ..() + + if (user.zone_sel.selecting == "eyes") + + var/mob/living/carbon/human/H = M + if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))) + // Eye surgery cannot be performed unless the head is clear + user << "\blue You're going to need to remove that mask/helmet/glasses first." + return + + switch(M.eye_op_stage) + if(3.0) + for(var/mob/O in viewers(M, null)) + if(O == (user || M)) + continue + if(M == user) + O.show_message(text("\red [user] begins to have his eyes cauterized."), 1) + else + O.show_message(text("\red [M] is having his eyes cauterized by [user]."), 1) + + if(M != user) + M << "\red [user] begins to cauterize your eyes!" + user << "\red You cauterize [M]'s eyes with [src]!" + else + user << "\red You begin to cauterize your eyes!" + if(prob(25)) + user << "\red You mess up!" + M.bruteloss += 15 + + + M.updatehealth() + M.sdisabilities &= ~1 + M:eye_op_stage = 0.0 + + else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human)))) + return ..() + + return + + +//obj/item/weapon/surgicaldrill + + +/////////// +//SCALPEL// +/////////// /obj/item/weapon/scalpel/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) if(!istype(M, /mob)) return @@ -85,18 +235,48 @@ CIRCULAR SAW ..() return + else if(user.zone_sel.selecting == "eyes") + user << "\blue So far so good." + + var/mob/living/carbon/human/H = M + if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES))) + // Eye surgery cannot be performed unless the head is clear + user << "\blue You're going to need to remove that mask/helmet/glasses first." + return + + switch(M:eye_op_stage) + if(0.0) + for(var/mob/O in viewers(M, null)) + if(O == (user || M)) + continue + if(M == user) + O.show_message(text("\red [user] begins to cut around his eyes with [src]!"), 1) + else + O.show_message(text("\red [M] is beginning to have his eyes incised with [src] by [user]."), 1) + + if(M != user) + M << "\red [user] begins to cut open your eyes with [src]!" + user << "\red You make an incision around [M]'s eyes with [src]!" + else + user << "\red You begin to cut open your eyes with [src]!" + if(prob(25)) + user << "\red You mess up!" + M.bruteloss += 15 + + user << "\blue So far so good before." + M.updatehealth() + M:eye_op_stage = 1.0 + user << "\blue So far so good after." + else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human)))) return ..() return - - - - -// CIRCULAR SAW - +//////////////// +//CIRCULAR SAW// +//////////////// /obj/item/weapon/circular_saw/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) if(!istype(M, /mob)) return diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 80dba086f85f98f76ff96543ced6f84d5c8db345..20cfa608463c442ae6041c3e0d4a78c352c25b1e 100644 GIT binary patch delta 7629 zcmZ8mcQ{cwJ{wdLkVa{}-Y#bH6$N*%}hYM35$1w!KMW zumwF^xRC7aIXXAyxpz*hGh(gx2YS_<)J&}2NgPEyRZ8SAtg-r4J-qq;atph?cqH`_ z3mx(B-Upgr`S^&?f9#-N+M!Z;giyRIyE3gpq;h%J9`w=lAvN29V@O~&!N(rsSFc`$ z*-Jiq_QrkP$R6}dIJ8}spNHp$PO)aaMDMMe_%ZXn*>`7d#V!&`y?8NS$Lln*M~$Dv z@bl--k*Z0Y?{G4&Ibm0%Ef2pCJYsnuAu(GRjG_Q+M{S*$!WJ5 zKw5lqsNWkXQy4ZAfe8}$D995M5D*B72vcQ)?U?92RRo6MBC9FxJVnr!%5P?9Damym`}=uMjav%5eL322ykjqicdtx3YQ^ z92^W{7WW9dFX>a|k8$wu^i)+NOiCh16LG!^(t)cJn9Vo23keIG+l}Sb<#0fz$fE$vrr9`B z*qnkRyzh_CZixc!b3)rpJ%tl9tYiilWece5<1H9?xXB zPWd()x1C?Sx)XLeo+m>l{t}osn)URoIM!%8nRV2?wvN z(4J{5r%?s2lEa@Wq<-%{NUzH_oK8_u(M*65G}G$KkHKJe7uz#8Hf%~uOGoX5);2dM z#>V7ybZ%;8jUHv|DaZ?L96cr9-(9=tfJU8cj*EMV4ZJet;ZZt00A!l>Gc7FcW}H11 z8ePSz;b;>5*;rmilL_!coOiJ|n^=lC9RZ-0oI%azLH@0Nl zuM2~#Mqw;C^jPxaQlML5%uc9%Tjn;MdbA$e9SSQng%WoD8GuZPCweD_lG2XO%*eif z&s1Gqy|xi#9pvofw6yz25T9eXx3_ox^v(@=GdeJpe=r?5jBbk>%&CaL z1{V|*{7CU0oI7$QT$(A4Xc{kC=Xxo9T#Dd$|Ngy=f@Yck5R7oRcJu~OiGZ6{<0L_1 zm~(<{29-47=!4Zh9U~(rY0g&Y@xmN zSV5+^|FI(okUleOoN~k`cFhQzuoQ66%$0o6Y8c$;YT93|MVpX`RU-_Z zgN?Mr-{Xb`=)QfMZfZN6Wq-;z!FFsw9R#voY^1eVxr=_G@2U%~^Mq?m?JUVY+#FR}h~+~C9& zN5rmOMw-Xip=EEFy=G{b(xYuc@Sb4Ta%gJ0%3Uo+a-_bGgF-p}^1Ayz&w4LX!WCri zO$wOqs4-hoTpk{JXlrYOm6kHyra>FeV3nbR(^&ex @IjZdCD`4}C2WbX1JI*W!E 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 delta 12650 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 ATmS$7