mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
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:
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
|
||||
|
||||
Reference in New Issue
Block a user