Merge remote-tracking branch 'citadel/master' into tgsync
This commit is contained in:
@@ -304,10 +304,16 @@
|
||||
emote("wag")
|
||||
|
||||
else if(check_zone(M.zone_selected) == BODY_ZONE_R_ARM || check_zone(M.zone_selected) == BODY_ZONE_L_ARM)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] shakes [src]'s hand.</span>", \
|
||||
"<span class='notice'>You shake [src]'s hand.</span>", target = src,
|
||||
target_message = "<span class='notice'>[M] shakes your hand.</span>")
|
||||
if((pulling == M) && (grab_state == GRAB_PASSIVE))
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] squeezes [src]'s hand.</span>", \
|
||||
"<span class='notice'>You squeeze [src]'s hand.</span>", target = src,
|
||||
target_message = "<span class='notice'>[M] squeezes your hand.</span>")
|
||||
else
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] shakes [src]'s hand.</span>", \
|
||||
"<span class='notice'>You shake [src]'s hand.</span>", target = src,
|
||||
target_message = "<span class='notice'>[M] shakes your hand.</span>")
|
||||
|
||||
else
|
||||
M.visible_message("<span class='notice'>[M] hugs [src] to make [p_them()] feel better!</span>", \
|
||||
|
||||
@@ -80,10 +80,11 @@
|
||||
if("shortlimbdisable")
|
||||
var/disabled_type = pick(list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM, TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG))
|
||||
ADD_TRAIT(src, disabled_type, CORRUPTED_SYSTEM)
|
||||
update_disabled_bodyparts()
|
||||
addtimer(CALLBACK(src, .proc/reenable_limb, disabled_type), 5 SECONDS)
|
||||
to_chat(src, "<span class='warning'>Error - Limb control subsystem partially shutdown, rebooting.</span>")
|
||||
if("shortblind")
|
||||
ADD_TRAIT(src, TRAIT_BLIND, CORRUPTED_SYSTEM)
|
||||
become_blind(CORRUPTED_SYSTEM)
|
||||
addtimer(CALLBACK(src, .proc/reenable_vision), 5 SECONDS)
|
||||
to_chat(src, "<span class='warning'>Visual receptor shutdown detected - Initiating reboot.</span>")
|
||||
if("shortstun")
|
||||
@@ -105,10 +106,11 @@
|
||||
if("longlimbdisable")
|
||||
var/disabled_type = pick(list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM, TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG))
|
||||
ADD_TRAIT(src, disabled_type, CORRUPTED_SYSTEM)
|
||||
update_disabled_bodyparts()
|
||||
addtimer(CALLBACK(src, .proc/reenable_limb, disabled_type), 25 SECONDS)
|
||||
to_chat(src, "<span class='warning'>Fatal error in limb control subsystem - rebooting.</span>")
|
||||
if("blindmutedeaf")
|
||||
ADD_TRAIT(src, TRAIT_BLIND, CORRUPTED_SYSTEM)
|
||||
become_blind(CORRUPTED_SYSTEM)
|
||||
addtimer(CALLBACK(src, .proc/reenable_vision), (rand(10, 25)) SECONDS)
|
||||
ADD_TRAIT(src, TRAIT_DEAF, CORRUPTED_SYSTEM)
|
||||
addtimer(CALLBACK(src, .proc/reenable_hearing), (rand(15, 35)) SECONDS)
|
||||
@@ -140,6 +142,7 @@
|
||||
|
||||
/mob/living/carbon/proc/reenable_limb(disabled_limb)
|
||||
REMOVE_TRAIT(src, disabled_limb, CORRUPTED_SYSTEM)
|
||||
update_disabled_bodyparts()
|
||||
to_chat(src, "<span class='notice'>Limb control subsystem successfully rebooted.</span>")
|
||||
|
||||
/mob/living/carbon/proc/reenable_hearing()
|
||||
@@ -147,7 +150,7 @@
|
||||
to_chat(src, "<span class='notice'>Hearing restored.</span>")
|
||||
|
||||
/mob/living/carbon/proc/reenable_vision()
|
||||
REMOVE_TRAIT(src, TRAIT_BLIND, CORRUPTED_SYSTEM)
|
||||
cure_blind(CORRUPTED_SYSTEM)
|
||||
to_chat(src, "<span class='notice'>Visual receptors back online.</span>")
|
||||
|
||||
/mob/living/carbon/proc/reenable_speech()
|
||||
|
||||
@@ -411,15 +411,18 @@
|
||||
if(isrobotic(src))
|
||||
apply_status_effect(/datum/status_effect/no_combat_mode/robotic_emp, severity / 20)
|
||||
severity *= 0.5
|
||||
var/do_not_stun = FALSE
|
||||
if(HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))
|
||||
severity *= 0.5 //Robotpeople take less limb damage, but instead suffer system corruption (see carbon emp_act)
|
||||
do_not_stun = TRUE
|
||||
for(var/obj/item/bodypart/L in src.bodyparts)
|
||||
if(L.is_robotic_limb())
|
||||
if(!informed)
|
||||
to_chat(src, "<span class='userdanger'>You feel a sharp pain as your robotic limbs overload.</span>")
|
||||
informed = TRUE
|
||||
L.receive_damage(0,severity/10)
|
||||
Stun(severity*2)
|
||||
if(!do_not_stun) //Tiny bit better than checking for the trait another six times in succession
|
||||
Stun(severity*2)
|
||||
|
||||
/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit)
|
||||
var/list/damaged = list()
|
||||
|
||||
Reference in New Issue
Block a user