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