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>
This commit is contained in:
BiancaWilkson
2024-01-06 21:42:02 +00:00
committed by GitHub
co-authored by Nathan Winters
parent 5627b5bbc9
commit 1267ad92f0
@@ -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, "<span class='warning'>You were interrogated by your captors before being sent back! Oh god something's missing!</span>")
else //fracture
if(ismachineperson(M))
M.emp_act(EMP_HEAVY)
M.adjustBrainLoss(30)
to_chat(M, "<span class='warning'>You were interrogated by your captors before being sent back! You feel like some of your components are loose!</span>")
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, "<span class='warning'>You were interrogated by your captors before being sent back! You feel like your inner membrane has been punctured!</span>")
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, "<span class='warning'>You were interrogated by your captors before being sent back! Oh god, something's missing!</span>")
return
//Species specific punishments first
if(ismachineperson(M))
M.emp_act(EMP_HEAVY)
M.adjustBrainLoss(30)
to_chat(M, "<span class='warning'>You were interrogated by your captors before being sent back! You feel like some of your components are loose!</span>")
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, "<span class='warning'>You were interrogated by your captors before being sent back! You feel like your inner membrane has been punctured!</span>")
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