From 3c0280d17b0c4956326c68c65b486c909939ea18 Mon Sep 17 00:00:00 2001 From: SomeguyManperson Date: Fri, 9 Aug 2024 18:38:59 -0400 Subject: [PATCH 1/7] im gonna.... kim gonnae..... --- code/__DEFINES/traits.dm | 1 + code/datums/brain_damage/special.dm | 2 + .../chemistry/reagents/medicine_reagents.dm | 7 ++++ .../reagents/reagent_containers/borghydro.dm | 2 +- code/modules/surgery/bone_repair.dm | 1 + code/modules/surgery/brain_surgery.dm | 1 + code/modules/surgery/coronary_bypass.dm | 2 + code/modules/surgery/gastrectomy.dm | 1 + code/modules/surgery/healing.dm | 1 + code/modules/surgery/hepatectomy.dm | 1 + code/modules/surgery/lobectomy.dm | 1 + code/modules/surgery/organic_steps.dm | 3 ++ code/modules/surgery/organs/lungs.dm | 2 + .../modules/surgery/remove_embedded_object.dm | 1 + code/modules/surgery/surgery_step.dm | 40 +++++++++++++++++-- 15 files changed, 62 insertions(+), 4 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 6a85a5c82fde..9b6cceb4b58e 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -221,6 +221,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_ABDUCTOR_TRAINING "abductor-training" #define TRAIT_ABDUCTOR_SCIENTIST_TRAINING "abductor-scientist-training" #define TRAIT_SURGEON "surgeon" +#define TRAIT_SURGERY_PREPARED "surgery_prepared" #define TRAIT_STRONG_GRABBER "strong_grabber" #define TRAIT_MAGIC_CHOKE "magic_choke" #define TRAIT_SOOTHED_THROAT "soothed-throat" diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 9c447f4ab10a..565f9387033b 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -234,11 +234,13 @@ /datum/brain_trauma/special/tenacity/on_gain() ADD_TRAIT(owner, TRAIT_NOSOFTCRIT, TRAUMA_TRAIT) ADD_TRAIT(owner, TRAIT_NOHARDCRIT, TRAUMA_TRAIT) + ADD_TRAIT(owner, TRAIT_SURGERY_PREPARED, TRAUMA_TRAIT) ..() /datum/brain_trauma/special/tenacity/on_lose() REMOVE_TRAIT(owner, TRAIT_NOSOFTCRIT, TRAUMA_TRAIT) REMOVE_TRAIT(owner, TRAIT_NOHARDCRIT, TRAUMA_TRAIT) + REMOVE_TRAIT(owner, TRAIT_SURGERY_PREPARED, TRAUMA_TRAIT) ..() /datum/brain_trauma/special/death_whispers diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index d42fc60057f1..8b81248bd3a9 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -400,10 +400,15 @@ to_chat(M, "You feel your wounds fade away to nothing!" ) ..() +/datum/reagent/medicine/mine_salve/on_mob_metabolize(mob/living/L) + ..() + ADD_TRAIT(L, TRAIT_SURGERY_PREPARED, type) + /datum/reagent/medicine/mine_salve/on_mob_end_metabolize(mob/living/M) if(iscarbon(M)) var/mob/living/carbon/N = M N.hal_screwyhud = SCREWYHUD_NONE + REMOVE_TRAIT(M, TRAIT_SURGERY_PREPARED, type) ..() /datum/reagent/medicine/synthflesh @@ -753,9 +758,11 @@ /datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L) ..() L.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) + ADD_TRAIT(L, TRAIT_SURGERY_PREPARED, type) /datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L) L.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) + REMOVE_TRAIT(L, TRAIT_SURGERY_PREPARED, type) ..() /datum/reagent/medicine/morphine/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 149743c47e3c..ac9e20e07f08 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -26,7 +26,7 @@ Borg Hypospray var/bypass_protection = 0 //If the hypospray can go through armor or thick material var/list/datum/reagents/reagent_list = list() - var/list/reagent_ids = list(/datum/reagent/medicine/dexalin, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/antitoxin, /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution) + var/list/reagent_ids = list(/datum/reagent/medicine/dexalin, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/antitoxin, /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/medicine/morphine) var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed. var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. //Used as list for input() in shakers. diff --git a/code/modules/surgery/bone_repair.dm b/code/modules/surgery/bone_repair.dm index 9f933d8f49c3..aed51de32387 100644 --- a/code/modules/surgery/bone_repair.dm +++ b/code/modules/surgery/bone_repair.dm @@ -20,6 +20,7 @@ TOOL_WRENCH = 40) preop_sound = 'sound/surgery/bone1.ogg' success_sound = 'sound/surgery/bone3.ogg' + fuckup_damage = 20 //meowzers /datum/surgery_step/set_bone/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(target_zone == BODY_ZONE_HEAD) diff --git a/code/modules/surgery/brain_surgery.dm b/code/modules/surgery/brain_surgery.dm index 0b1d8610889f..866784695db0 100644 --- a/code/modules/surgery/brain_surgery.dm +++ b/code/modules/surgery/brain_surgery.dm @@ -24,6 +24,7 @@ success_sound = 'sound/surgery/hemostat1.ogg' failure_sound = 'sound/surgery/organ2.ogg' experience_given = 0 // per_trauma + fuckup_damage = 20 /datum/surgery/brain_surgery/can_start(mob/user, mob/living/carbon/target) var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index a4628d19efff..64552d7e31dd 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -28,6 +28,7 @@ preop_sound = 'sound/surgery/scalpel1.ogg' success_sound = 'sound/surgery/scalpel2.ogg' failure_sound = 'sound/surgery/organ2.ogg' + fuckup_damage = 20 /datum/surgery_step/incise_heart/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to make an incision in [target]'s heart...", @@ -69,6 +70,7 @@ success_sound = 'sound/surgery/hemostat1.ogg' failure_sound = 'sound/surgery/organ2.ogg' experience_given = MEDICAL_SKILL_ORGAN_FIX + fuckup_damage = 20 /datum/surgery_step/coronary_bypass/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to graft a bypass onto [target]'s heart...", diff --git a/code/modules/surgery/gastrectomy.dm b/code/modules/surgery/gastrectomy.dm index f4bd48c4729d..a4c796ca397d 100644 --- a/code/modules/surgery/gastrectomy.dm +++ b/code/modules/surgery/gastrectomy.dm @@ -29,6 +29,7 @@ /obj/item/shard = 10) time = 52 experience_given = (MEDICAL_SKILL_ORGAN_FIX*0.8) //for consistency across organ surgeries + fuckup_damage = 15 /datum/surgery_step/gastrectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to cut out a damaged piece of [target]'s stomach...", diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm index 8d3eecb3ead3..0d1aec65dfee 100644 --- a/code/modules/surgery/healing.dm +++ b/code/modules/surgery/healing.dm @@ -35,6 +35,7 @@ var/brutehealing = 0 var/burnhealing = 0 var/missinghpbonus = 0 //heals an extra point of damager per X missing damage of type (burn damage for burn healing, brute for brute). Smaller Number = More Healing! + fuckup_damage = 0 //When the reckoning is not postponed indefinitely /datum/surgery_step/heal/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) var/woundtype diff --git a/code/modules/surgery/hepatectomy.dm b/code/modules/surgery/hepatectomy.dm index e612b6fa18c5..9478810413df 100644 --- a/code/modules/surgery/hepatectomy.dm +++ b/code/modules/surgery/hepatectomy.dm @@ -28,6 +28,7 @@ /obj/item/shard = 25) time = 52 experience_given = (MEDICAL_SKILL_ORGAN_FIX*0.8) //repeatable so not as much xp + fuckup_damage = 20 /datum/surgery_step/hepatectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to cut out a damaged peice of [target]'s liver...", diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index 09ef68f03e18..11bf7317b06a 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -30,6 +30,7 @@ success_sound = 'sound/surgery/organ1.ogg' failure_sound = 'sound/surgery/organ2.ogg' experience_given = MEDICAL_SKILL_ORGAN_FIX + fuckup_damage = 20 /datum/surgery_step/lobectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to make an incision in [target]'s lungs...", diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 42018e6c1d87..cc289a98cf6e 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -124,6 +124,7 @@ time = 2.4 SECONDS preop_sound = 'sound/surgery/cautery1.ogg' success_sound = 'sound/surgery/cautery2.ogg' + fuckup_damage_type = BURN /datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to mend the incision in [target]'s [parse_zone(target_zone)]...", @@ -166,6 +167,7 @@ /obj/item = 'sound/surgery/scalpel1.ogg', ) success_sound = 'sound/surgery/bone3.ogg' + fuckup_damage = 20 /datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to saw through the bone in [target]'s [parse_zone(target_zone)]...", @@ -203,6 +205,7 @@ TOOL_SCREWDRIVER = 33, /obj/item/kitchen/spoon = 4.13) //i made this as awful as possible. time = 30 + fuckup_damage = 15 /datum/surgery_step/drill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to drill into the bone in [target]'s [parse_zone(target_zone)]...", diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index f6af39b201c0..f32513dcc1cf 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -231,8 +231,10 @@ if(prob(20)) H.emote(pick("giggle", "laugh")) SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "chemical_euphoria", /datum/mood_event/chemical_euphoria) + ADD_TRAIT(owner, TRAIT_SURGERY_PREPARED, GAS_NITROUS) else SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "chemical_euphoria") + REMOVE_TRAIT(owner, TRAIT_SURGERY_PREPARED, GAS_NITROUS) // BZ diff --git a/code/modules/surgery/remove_embedded_object.dm b/code/modules/surgery/remove_embedded_object.dm index ac23b468044e..089e4e9de184 100644 --- a/code/modules/surgery/remove_embedded_object.dm +++ b/code/modules/surgery/remove_embedded_object.dm @@ -8,6 +8,7 @@ time = 32 accept_hand = 1 experience_given = MEDICAL_SKILL_MEDIUM + fuckup_damage = 0 // unrealistic but the alternatives are yanking the thing out or waiting for it to fall out which are both less intensive var/obj/item/bodypart/L = null /datum/surgery_step/remove_object/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index b7bdd777ae40..73230c52c21c 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -1,3 +1,6 @@ +#define SURGERY_FUCKUP_CHANCE 50 +#define SURGERY_DRUNK_MOD 50 + /datum/surgery_step var/name /// What tools can be used in this surgery, format is path = probability of success. @@ -16,6 +19,11 @@ var/list/chems_needed = list() /// If *chems_needed* requires all chems in the list or one chem in the list. var/require_all_chems = TRUE + /// Base damage dealt on a surgery being done without anesthetics on SURGERY_FUCKUP_CHANCE percent chance + var/fuckup_damage = 10 + /// Damage type fuckup_damage is dealt as + var/fuckup_damage_type = BRUTE + /// If cyborgs autopass success chance var/silicons_obey_prob = FALSE /// Sound played when the step is started var/preop_sound @@ -116,8 +124,15 @@ if(failure(user, target, target_zone, tool, surgery, fail_prob)) play_failure_sound(user, target, target_zone, tool, surgery) advance = TRUE - if(chem_check_result) - return .(user, target, target_zone, tool, surgery, try_to_fail) //automatically re-attempt if failed for reason other than lack of required chemical + if(!HAS_TRAIT(target, TRAIT_SURGERY_PREPARED) && target.stat != DEAD && !IS_IN_STASIS(target) && fuckup_damage) //not under the effects of anaesthetics or a strong painkiller + if(!HAS_TRAIT(user, TRAIT_SURGEON)) // The patient needs more mouse bites + var/obj/item/bodypart/operated_bodypart = target.get_bodypart(target_zone) ? target.get_bodypart(target_zone) : target.get_bodypart(BODY_ZONE_CHEST) + if(operated_bodypart?.bodytype & BODYPART_ORGANIC) //robot limbs are built to be opened and stuff + commit_malpractice(user, target, target_zone, tool, surgery, advance) + + if(chem_check_result && !advance) + return .(user, target, target_zone, tool, surgery, try_to_fail) //automatically re-attempt if failed for reason other than lack of required chemical + if(advance && !repeatable) surgery.status++ if(surgery.status > surgery.steps.len) @@ -225,10 +240,29 @@ chems += chemname return english_list(chems, and_text = require_all_chems ? " and " : " or ") -//Replaces visible_message during operations so only people looking over the surgeon can tell what they're doing, allowing for shenanigans. +/// Replaces visible_message during operations so only people looking over the surgeon can tell what they're doing, allowing for shenanigans. /datum/surgery_step/proc/display_results(mob/user, mob/living/carbon/target, self_message, detailed_message, vague_message, target_detailed = FALSE) var/list/detailed_mobs = get_hearers_in_view(1, user) //Only the surgeon and people looking over his shoulder can see the operation clearly if(!target_detailed) detailed_mobs -= target //The patient can't see well what's going on, unless it's something like getting cut user.visible_message(detailed_message, self_message, vision_distance = 1, ignored_mobs = target_detailed ? null : target) user.visible_message(vague_message, "", ignored_mobs = detailed_mobs) + +/// Lacking anesthetic, a surgery has a chance to cause Complications, which this handles +/datum/surgery_step/proc/commit_malpractice(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, success) + var/ouchie_mod = 1 + ouchie_mod *= clamp(1-target.drunkenness/SURGERY_DRUNK_MOD, 0, 1) //Drunkenness up to 50% (points? idk) will improve chances of avoiding horrible pain and suffering + if(target.stat == UNCONSCIOUS) //Being "normally" asleep (or getting choked out) will SLIGHTLY improve your chances since it's intuitive behavior barring access to anything else + ouchie_mod *= 0.8 + if(!success) //Failing the surgery increases the chance of causing harm significantly + ouchie_mod *= 1.5 + var/final_ouchie_chance = SURGERY_FUCKUP_CHANCE * ouchie_mod + if(!prob(final_ouchie_chance)) + return + . = TRUE + user.visible_message("[target] flinches, bumping [user]'s [tool ? tool.name : "hand"] into something important!", "[target] flinches, bumping your [tool ? tool.name : "hand"] into something important!") + target.apply_damage(fuckup_damage, fuckup_damage_type, target_zone) + if(istype(target) && fuckup_damage_type == BRUTE) + var/obj/item/bodypart/BP = target.get_bodypart(check_zone(surgery.location)) + if(BP) + BP.adjust_bleeding(min(fuckup_damage * BLOOD_LOSS_DAMAGE_BASE, BLOOD_LOSS_DAMAGE_MAXIMUM)) //Increased bleeding because you are getting stabbed on the inside From 4b720cd266ed1663fda3e8bc129ad999748630fe Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 9 Aug 2024 19:10:31 -0400 Subject: [PATCH 2/7] Update traits.dm Signed-off-by: Theos --- code/__DEFINES/traits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 9b6cceb4b58e..7167d7faeca2 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -221,7 +221,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_ABDUCTOR_TRAINING "abductor-training" #define TRAIT_ABDUCTOR_SCIENTIST_TRAINING "abductor-scientist-training" #define TRAIT_SURGEON "surgeon" -#define TRAIT_SURGERY_PREPARED "surgery_prepared" +#define TRAIT_SURGERY_PREPARED "surgery_prepared" #define TRAIT_STRONG_GRABBER "strong_grabber" #define TRAIT_MAGIC_CHOKE "magic_choke" #define TRAIT_SOOTHED_THROAT "soothed-throat" From 67a31dce70a871dd30f481b95a017f2406552240 Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 9 Aug 2024 20:21:28 -0400 Subject: [PATCH 3/7] Update surgery_step.dm Signed-off-by: Theos --- code/modules/surgery/surgery_step.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 73230c52c21c..0c422cc4ccca 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -260,7 +260,7 @@ if(!prob(final_ouchie_chance)) return . = TRUE - user.visible_message("[target] flinches, bumping [user]'s [tool ? tool.name : "hand"] into something important!", "[target] flinches, bumping your [tool ? tool.name : "hand"] into something important!") + user.visible_message(span_boldwarning([target] flinches, bumping [user]'s [tool ? tool.name : "hand"] into something important!"), span_boldwarning("[target] flinches, bumping your [tool ? tool.name : "hand"] into something important!")) target.apply_damage(fuckup_damage, fuckup_damage_type, target_zone) if(istype(target) && fuckup_damage_type == BRUTE) var/obj/item/bodypart/BP = target.get_bodypart(check_zone(surgery.location)) From 1a09ccd0c1ef2e3b59931fa753a48ec7d089334c Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 9 Aug 2024 20:32:13 -0400 Subject: [PATCH 4/7] Update surgery_step.dm Signed-off-by: Theos --- code/modules/surgery/surgery_step.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 0c422cc4ccca..0e54ac2afe16 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -260,7 +260,7 @@ if(!prob(final_ouchie_chance)) return . = TRUE - user.visible_message(span_boldwarning([target] flinches, bumping [user]'s [tool ? tool.name : "hand"] into something important!"), span_boldwarning("[target] flinches, bumping your [tool ? tool.name : "hand"] into something important!")) + user.visible_message(span_boldwarning("[target] flinches, bumping [user]'s [tool ? tool.name : "hand"] into something important!"), span_boldwarning("[target] flinches, bumping your [tool ? tool.name : "hand"] into something important!")) target.apply_damage(fuckup_damage, fuckup_damage_type, target_zone) if(istype(target) && fuckup_damage_type == BRUTE) var/obj/item/bodypart/BP = target.get_bodypart(check_zone(surgery.location)) From 1a36aedc3e64c5a432c3f7e66a13817d9576ba96 Mon Sep 17 00:00:00 2001 From: Theos Date: Sun, 11 Aug 2024 22:19:43 -0400 Subject: [PATCH 5/7] Update lungs.dm Signed-off-by: Theos --- code/modules/surgery/organs/lungs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index f32513dcc1cf..bb2e9ff351d6 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -227,11 +227,11 @@ H.Unconscious(60) // 60 gives them one second to wake up and run away a bit! if(SA_pp > SA_sleep_min) // Enough to make us sleep as well H.Sleeping(200) + ADD_TRAIT(owner, TRAIT_SURGERY_PREPARED, GAS_NITROUS) else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning if(prob(20)) H.emote(pick("giggle", "laugh")) SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "chemical_euphoria", /datum/mood_event/chemical_euphoria) - ADD_TRAIT(owner, TRAIT_SURGERY_PREPARED, GAS_NITROUS) else SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "chemical_euphoria") REMOVE_TRAIT(owner, TRAIT_SURGERY_PREPARED, GAS_NITROUS) From 00f7f342682c7161a0bdea6a4830c9223bef0cc6 Mon Sep 17 00:00:00 2001 From: Theos Date: Sun, 11 Aug 2024 22:22:15 -0400 Subject: [PATCH 6/7] Drunkenness flinch reduction caps at 40 points rather than 50 Signed-off-by: Theos --- code/modules/surgery/surgery_step.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 0e54ac2afe16..96349f0ad861 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -1,5 +1,5 @@ #define SURGERY_FUCKUP_CHANCE 50 -#define SURGERY_DRUNK_MOD 50 +#define SURGERY_DRUNK_MOD 40 /datum/surgery_step var/name From dba910fca3f8d746fd26c165d114502c7f73e7a1 Mon Sep 17 00:00:00 2001 From: Theos Date: Thu, 15 Aug 2024 12:38:17 -0400 Subject: [PATCH 7/7] Update organic_steps.dm Signed-off-by: Theos --- code/modules/surgery/organic_steps.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index cc289a98cf6e..257f53b38cae 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -45,6 +45,7 @@ /datum/surgery_step/incise/nobleed //silly friendly! experience_given = 1 //safer so not as much XP + fuckup_damage = 0 /datum/surgery_step/incise/nobleed/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You begin to carefully make an incision in [target]'s [parse_zone(target_zone)]...",