From 1267ad92f0cc321af04f1a1517c9e933c61ce8f7 Mon Sep 17 00:00:00 2001 From: BiancaWilkson <42818125+BiancaWilkson@users.noreply.github.com> Date: Sat, 6 Jan 2024 16:42:02 -0500 Subject: [PATCH] Antag contractees no longer have an increased timer, contractees now are guaranteed to get injured. (#23533) * everyone gets more injured always! * this is why i leave myself notes * no escaping the beating * jail for 1000 years Co-authored-by: Nathan Winters <100448493+CinnamonSnowball@users.noreply.github.com> * gone * cleans uo the default_damage procs a bit --------- Co-authored-by: Nathan Winters <100448493+CinnamonSnowball@users.noreply.github.com> --- .../contractor/datums/syndicate_contract.dm | 78 ++++++++----------- 1 file changed, 33 insertions(+), 45 deletions(-) diff --git a/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm b/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm index 11bb20bc511..032518e4eba 100644 --- a/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm @@ -3,10 +3,7 @@ #define EXTRACTION_PHASE_PREPARE 5 SECONDS #define EXTRACTION_PHASE_PORTAL 5 SECONDS #define COMPLETION_NOTIFY_DELAY 5 SECONDS -#define RETURN_INJURY_CHANCE 85 #define RETURN_SOUVENIR_CHANCE 10 -/// How long an antagonist target remains in the Syndicate jail. -#define ANTAG_CONTRACT_TIME 10 MINUTES /** * # Syndicate Contract @@ -335,9 +332,6 @@ var/mob/living/carbon/human/H = M // Prepare their return - if(M.mind.special_role && !(M.mind.special_role in list(SPECIAL_ROLE_ERT, SPECIAL_ROLE_DEATHSQUAD))) - prison_time = ANTAG_CONTRACT_TIME - prisoner_timer_handle = addtimer(CALLBACK(src, PROC_REF(handle_target_return), M, T), prison_time, TIMER_STOPPABLE) LAZYSET(GLOB.prisoner_belongings.prisoners, M, src) @@ -496,44 +490,40 @@ * * M - The target mob. */ /datum/syndicate_contract/proc/injure_target(mob/living/M) - if(!prob(RETURN_INJURY_CHANCE) || M.health < 50) - return - var/obj/item/organ/external/injury_target - if(prob(20)) //remove a limb - if(prob(50)) - injury_target = M.get_organ(pick(BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT)) - if(!injury_target) - default_damage(M) - return - injury_target.droplimb() - to_chat(M, "You were interrogated by your captors before being sent back! Oh god something's missing!") - else //fracture - if(ismachineperson(M)) - M.emp_act(EMP_HEAVY) - M.adjustBrainLoss(30) - to_chat(M, "You were interrogated by your captors before being sent back! You feel like some of your components are loose!") - - else if(isslimeperson(M)) - injury_target = M.get_organ(pick(BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT)) - if(!injury_target) - default_damage(M) - return - injury_target.cause_internal_bleeding() - - injury_target = M.get_organ(BODY_ZONE_CHEST) - injury_target.cause_internal_bleeding() - to_chat(M, "You were interrogated by your captors before being sent back! You feel like your inner membrane has been punctured!") - - if(prob(25)) - injury_target = M.get_organ(BODY_ZONE_CHEST) - injury_target.fracture() - else - injury_target = M.get_organ(pick(BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_R_LEG, BODY_ZONE_R_LEG)) - if(!injury_target) - default_damage(M) - return - injury_target.fracture() + if(prob(20)) //See if they're !!!lucky!!! enough to just chop a hand or foot off first, or even !!LUCKIER!! that it chose an already amputated limb + injury_target = M.get_organ(pick(BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT)) + if(!injury_target) + return + default_damage(M) + injury_target.droplimb() + to_chat(M, "You were interrogated by your captors before being sent back! Oh god, something's missing!") + return + //Species specific punishments first + if(ismachineperson(M)) + M.emp_act(EMP_HEAVY) + M.adjustBrainLoss(30) + to_chat(M, "You were interrogated by your captors before being sent back! You feel like some of your components are loose!") + return + default_damage(M) //Now that we won't accidentally kill an IPC we can make everyone take damage + if(isslimeperson(M)) + injury_target = M.get_organ(pick(BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT)) + if(!injury_target) + return + injury_target.cause_internal_bleeding() + injury_target = M.get_organ(BODY_ZONE_CHEST) + injury_target.cause_internal_bleeding() + to_chat(M, "You were interrogated by your captors before being sent back! You feel like your inner membrane has been punctured!") + return + if(prob(25)) //You either get broken ribs, or a broken limb and IB if you made it this far + injury_target = M.get_organ(BODY_ZONE_CHEST) + injury_target.fracture() + else + injury_target = M.get_organ(pick(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_R_LEG)) + if(!injury_target) + return + injury_target.fracture() + injury_target.cause_internal_bleeding() /** * Handles the target's return to station. @@ -638,6 +628,4 @@ #undef EXTRACTION_PHASE_PREPARE #undef EXTRACTION_PHASE_PORTAL #undef COMPLETION_NOTIFY_DELAY -#undef RETURN_INJURY_CHANCE #undef RETURN_SOUVENIR_CHANCE -#undef ANTAG_CONTRACT_TIME