diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index 2022dc79da7..accd7b7a683 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -55,6 +55,7 @@
Fire Damage: [src.victim.getFireLoss()]
Suffocation Damage: [src.victim.getOxyLoss()]
Patient Status: [src.victim.stat ? "Non-Responsive" : "Stable"]
+Heartbeat rate: [victim.get_pulse(GETPULSE_TOOL)]
"}
else
src.victim = null
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index f86f38cc83a..37f4a80937b 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -174,6 +174,8 @@ MASS SPECTROMETER
user.show_message("\red Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl")
else
user.show_message("\blue Blood Level Normal: [blood_percent]% [blood_volume]cl")
+ if(H.pulse)
+ user.show_message("\blue Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.")
src.add_fingerprint(user)
return
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index c929d5e952b..dbb721afa91 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -223,6 +223,7 @@
else
usr << "[t_He] has no pulse..."
+
msg += ""
if(nutrition < 100)
@@ -440,7 +441,6 @@
if( findtext(pose,".",lentext(pose)) == 0 && findtext(pose,"!",lentext(pose)) == 0 && findtext(pose,"?",lentext(pose)) == 0 )
pose = addtext(pose,".") //Makes sure all emotes end with a period.
msg += "\n[t_He] is [pose]"
- msg += "\n\red pulse:[src.pulse]"
usr << msg
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index ea98ee5631e..e841bb27184 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1224,20 +1224,32 @@ mob/living/carbon/human/yank_out_object()
set name = "Check pulse"
set desc = "Approximately count somebody's pulse. Requires you to stand still at least 6 seconds."
set src in view(1)
+ var/self = 0
if(usr.stat == 1 || usr.restrained() || !isliving(usr)) return
- usr.visible_message("\blue [usr] kneels down, puts \his hand on [src]'s wrist and begins counting their pulse.",\
- "\blue Don't move until counting is finished.")
+ if(usr == src)
+ self = 1
+ if(!self)
+ usr.visible_message("\blue [usr] kneels down, puts \his hand on [src]'s wrist and begins counting their pulse.",\
+ "You begin counting [src]'s pulse")
+ else
+ usr.visible_message("\blue [usr] begins counting their pulse.",\
+ "You begin counting your pulse.")
+
if(src.pulse)
- usr << "\blue [src] has pulse! Counting..."
+ usr << "\blue [self ? "I have" : "[src] has"] pulse! Counting..."
else
usr << "\red [src] has no pulse!"
return
+ usr << "Don't move until counting is finished."
+ var/time = world.timeofday
sleep(60)
- if(usr.move_speed >= 60)
- usr << "\blue [src]'s pulse is [src.get_pulse(0)]."
+ if(usr.l_move_time >= time) //checks if our mob has moved during the sleep()
+ usr << "You moved while counting. Try again."
+ else
+ usr << "\blue [src]'s pulse is [src.get_pulse(GETPULSE_HAND)]."
/mob/living/carbon/human/proc/get_pulse(var/method) //method 0 is for hands, 1 is for machines, more accurate
var/temp = 0
@@ -1246,15 +1258,16 @@ mob/living/carbon/human/yank_out_object()
return "0"
if(PULSE_SLOW)
temp = rand(40, 60)
- return method ? num2text(temp) : temp + rand(-10, 10)
+ return num2text(method ? temp : temp + rand(-10, 10))
if(PULSE_NORM)
temp = rand(60, 90)
- return method ? num2text(temp) : temp + rand(-10, 10)
+ return num2text(method ? temp : temp + rand(-10, 10))
if(PULSE_FAST)
temp = rand(90, 120)
- return method ? num2text(temp) : temp + rand(-10, 10)
+ return num2text(method ? temp : temp + rand(-10, 10))
if(PULSE_2FAST)
temp = rand(120, 160)
- return method ? num2text(temp) : temp + rand(-10, 10)
+ return num2text(method ? temp : temp + rand(-10, 10))
if(PULSE_THREADY)
- return method ? ">250" : "extremely weak and fast, patient's artery feels like a thread"
\ No newline at end of file
+ return method ? ">250" : "extremely weak and fast, patient's artery feels like a thread"
+// output for machines^ ^^^^^^^output for people^^^^^^^^^
\ No newline at end of file
diff --git a/code/setup.dm b/code/setup.dm
index d817150d909..046ba2a189e 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -686,10 +686,10 @@ var/list/be_special_flags = list(
#define PULSE_FAST 3 //90-120 bpm
#define PULSE_2FAST 4 //>120 bpm
#define PULSE_THREADY 5 //occurs during hypovolemic shock
-
+//feel free to add shit to lists below
var/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine") //increase heart rate
-var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_drugs", "stoxin") //decrease heart rate
+var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_drugs", "stoxin") //decrease heart rate
-//get_pulse methods
+//proc/get_pulse methods
#define GETPULSE_HAND 0 //less accurate (hand)
#define GETPULSE_TOOL 1 //more accurate (med scanner, sleeper, etc)
\ No newline at end of file