"
if(nutrition < 100)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 78546ceea22..58c0f09373c 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1218,3 +1218,36 @@ mob/living/carbon/human/yank_out_object()
organ.status |= ORGAN_BLEEDING
organ.take_damage(rand(1,3), 0, 0)
src.adjustToxLoss(rand(1,3))
+
+/mob/living/carbon/human/verb/check_pulse()
+ set category = "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
+
+ 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 [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.l_move_time >= time) //checks if our mob has moved during the sleep()
+ usr << "You moved while counting. Try again."
+ else
+ usr << "\blue [self ? "My" : "[src]'s"] pulse is [src.get_pulse(GETPULSE_HAND)]."
+
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 366ea5e02b3..1806bf17000 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -113,6 +113,8 @@
handle_regular_hud_updates()
+ pulse = handle_pulse()
+
// Grabbing
for(var/obj/item/weapon/grab/G in src)
G.process()
@@ -1414,5 +1416,34 @@
if (shock_stage > 80)
Paralyse(rand(15,28))
+ proc/handle_pulse()
+ //if(life_tick % 100) return pulse //update pulse every 100 life ticks
+
+ if(stat == DEAD)
+ return PULSE_NONE //that's it, you're dead, nothing can influence your pulse
+
+ var/temp = PULSE_NORM
+
+ if(round(vessel.get_reagent_amount("blood")) <= BLOOD_VOLUME_BAD) //how much blood do we have
+ temp = PULSE_THREADY //not enough :(
+
+ if(reagents.get_reagent_amount("zombiepowder"))
+ temp = PULSE_NONE //pretend that we're dead. unlike actual death, can be inflienced by meds
+
+ for(var/R in bradycardics)
+ if(reagents.get_reagent_amount(R))
+ if(temp <= PULSE_THREADY && temp >= PULSE_NORM)
+ temp--
+ break //one reagent is enough
+ //comment out the breaks to make med effects stack
+ for(var/R in tachycardics) //handles different chems' influence on pulse
+ if(reagents.get_reagent_amount(R))
+ if(temp <= PULSE_FAST && temp >= PULSE_NONE)
+ temp++
+ break
+
+ return temp
+
+
#undef HUMAN_MAX_OXYLOSS
#undef HUMAN_CRIT_MAX_OXYLOSS
diff --git a/code/setup.dm b/code/setup.dm
index f4b8d35e2ff..046ba2a189e 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -678,3 +678,18 @@ var/list/be_special_flags = list(
#define IMPLOYAL_HUD 5 // loyality implant
#define IMPCHEM_HUD 6 // chemical implant
#define IMPTRACK_HUD 7 // tracking implant
+
+//Pulse levels, very simplified
+#define PULSE_NONE 0 //so !M.pulse checks would be possible
+#define PULSE_SLOW 1 //<60 bpm
+#define PULSE_NORM 2 //60-90 bpm
+#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
+
+//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
diff --git a/html/changelog.html b/html/changelog.html
index 83de3037b73..4e37e06ec64 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -57,6 +57,13 @@ Stuff which is in development and not yet visible to players or just code relate
(ie. code improvements for expandability, etc.) should not be listed here. They
should be listed in the changelog upon commit though. Thanks. -->
+
+
05.07.2013
+
Spamcat updated:
+
+ - Pulse! Humans now have hearbeat rate, which can be measured by right-clicking someone - Check pulse or by health analyzer. Medical machinery also has heartbeat monitors. Certain meds and conditions can influence it.
+
+
03.07.2013
Segrain updated: