diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm
index 3c1be97566..95e980243f 100644
--- a/code/__defines/chemistry.dm
+++ b/code/__defines/chemistry.dm
@@ -1,4 +1,4 @@
-#define HUNGER_FACTOR 0.05 // Factor of how fast mob nutrition decreases
+#define DEFAULT_HUNGER_FACTOR 0.05 // Factor of how fast mob nutrition decreases
#define REM 0.2 // Means 'Reagent Effect Multiplier'. This is how many units of reagent are consumed per tick
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 55ac30cd5d..db56d680a4 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -256,7 +256,7 @@
var/list/occupant_data = list(
"stationtime" = worldtime2text(),
"stat" = H.stat,
- "health" = H.health,
+ "health" = round(H.health/H.maxHealth)*100,
"virus_present" = H.virus2.len,
"bruteloss" = H.getBruteLoss(),
"fireloss" = H.getFireLoss(),
@@ -273,7 +273,7 @@
"stoxin_amount" = H.reagents.get_reagent_amount("stoxin"),
"bicaridine_amount" = H.reagents.get_reagent_amount("bicaridine"),
"dermaline_amount" = H.reagents.get_reagent_amount("dermaline"),
- "blood_amount" = H.vessel.get_reagent_amount("blood"),
+ "blood_amount" = round(H.vessel.get_reagent_amount("blood") / H.species.blood_volume)*100,
"disabilities" = H.sdisabilities,
"lung_ruptured" = H.is_lung_ruptured(),
"external_organs" = H.organs.Copy(),
@@ -311,7 +311,7 @@
if(occ["borer_present"])
dat += "Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.
"
- dat += text("[]\tBlood Level %: [] ([] units)
", (""), occ["blood_amount"]*100 / 560, occ["blood_amount"])
+ dat += text("[]\tBlood Level %: [] ([] units)
", (""), occ["blood_amount"], occ["blood_amount"])
dat += text("Inaprovaline: [] units
", occ["inaprovaline_amount"])
dat += text("Soporific: [] units
", occ["stoxin_amount"])
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index b50e1268c9..63df3158dc 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -159,12 +159,11 @@ REAGENT SCANNER
break
if(M:vessel)
var/blood_volume = round(M:vessel.get_reagent_amount("blood"))
- var/blood_percent = blood_volume / 560
+ var/blood_percent = round(blood_volume / H.species.blood_volume)*100
var/blood_type = M.dna.b_type
- blood_percent *= 100
- if(blood_volume <= 500 && blood_volume > 336)
+ if(blood_percent <= BLOOD_VOLUME_SAFE && blood_percent > BLOOD_VOLUME_BAD)
user.show_message("Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]")
- else if(blood_volume <= 336)
+ else if(blood_percent <= BLOOD_VOLUME_BAD)
user.show_message("Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]")
else
user.show_message("Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]")
diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm
index 6312137156..7b82c1662c 100644
--- a/code/modules/economy/economy_misc.dm
+++ b/code/modules/economy/economy_misc.dm
@@ -50,9 +50,9 @@
/var/list/economic_species_modifier = list(
/datum/species/human = 10,
/datum/species/skrell = 12,
+ /datum/species/teshari = 9, // Skrell sponsored!
/datum/species/tajaran = 7,
/datum/species/unathi = 7,
- /datum/species/teshari = 9, // Skrell sponsored!
/datum/species/vox = 1
)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 1b09c1b1e1..c799eabf95 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -36,9 +36,9 @@
. = ..()
if(.)
if(src.nutrition && src.stat != 2)
- src.nutrition -= HUNGER_FACTOR/10
+ src.nutrition -= DEFAULT_HUNGER_FACTOR/10
if(src.m_intent == "run")
- src.nutrition -= HUNGER_FACTOR/10
+ src.nutrition -= DEFAULT_HUNGER_FACTOR/10
if((FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360)
src.bodytemperature += 2
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 4a8e099a72..8006d41331 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -896,7 +896,7 @@
// nutrition decrease
if (nutrition > 0 && stat != 2)
- nutrition = max (0, nutrition - HUNGER_FACTOR)
+ nutrition = max (0, nutrition - species.hunger_factor)
if (nutrition > 450)
if(overeatduration < 600) //capped so people don't take forever to unfat
@@ -1303,7 +1303,7 @@
var/base_temperature = species.body_temperature
if(base_temperature == null) //some species don't have a set metabolic temperature
base_temperature = (species.heat_level_1 + species.cold_level_1)/2
-
+
var/temp_step
if (bodytemperature >= base_temperature)
temp_step = (species.heat_level_1 - base_temperature)/4
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 0677171f05..6451d84700 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -30,7 +30,9 @@
var/mob_size = MOB_MEDIUM
var/show_ssd = "fast asleep"
var/virus_immune
- var/short_sighted
+ var/short_sighted // Permanent weldervision.
+ var/blood_volume = 500 // Initial blood volume.
+ var/hunger_factor = 0.05 // Multiplier for hunger.
// Language/culture vars.
var/default_language = "Galactic Common" // Default language is used when 'say' is used without modifiers.
diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm
index 40fd5c63b8..54a7f37f0f 100644
--- a/code/modules/mob/living/carbon/human/species/station/seromi.dm
+++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm
@@ -30,6 +30,8 @@
holder_type = /obj/item/weapon/holder/human
short_sighted = 1
gluttonous = 1
+ blood_volume = 300
+ hunger_factor = 1.2
spawn_flags = CAN_JOIN | IS_WHITELISTED
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index 8fa5c1247a..b7a66b6842 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -385,4 +385,4 @@
/mob/living/carbon/slime/cannot_use_vents()
if(Victim)
return "You cannot ventcrawl while feeding."
- ..()
+ ..()
diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm
index 798fbe52c1..25831b2433 100644
--- a/code/modules/organs/blood.dm
+++ b/code/modules/organs/blood.dm
@@ -2,13 +2,13 @@
BLOOD SYSTEM
****************************************************/
//Blood levels
-var/const/BLOOD_VOLUME_SAFE = 501
-var/const/BLOOD_VOLUME_OKAY = 336
-var/const/BLOOD_VOLUME_BAD = 224
-var/const/BLOOD_VOLUME_SURVIVE = 122
+var/const/BLOOD_VOLUME_SAFE = 85
+var/const/BLOOD_VOLUME_OKAY = 75
+var/const/BLOOD_VOLUME_BAD = 60
+var/const/BLOOD_VOLUME_SURVIVE = 40
-/mob/living/carbon/human/var/datum/reagents/vessel //Container for blood and BLOOD ONLY. Do not transfer other chems here.
-/mob/living/carbon/human/var/var/pale = 0 //Should affect how mob sprite is drawn, but currently doesn't.
+/mob/living/carbon/human/var/datum/reagents/vessel // Container for blood and BLOOD ONLY. Do not transfer other chems here.
+/mob/living/carbon/human/var/var/pale = 0 // Should affect how mob sprite is drawn, but currently doesn't.
//Initializes blood vessels
/mob/living/carbon/human/proc/make_blood()
@@ -16,13 +16,13 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
if(vessel)
return
- vessel = new/datum/reagents(600)
+ vessel = new/datum/reagents(species.blood_volume)
vessel.my_atom = src
if(!should_have_organ(O_HEART)) //We want the var for safety but we can do without the actual blood.
return
- vessel.add_reagent("blood",560)
+ vessel.add_reagent("blood",(species.blood_volume * 0.95))
spawn(1)
fixblood()
@@ -44,10 +44,10 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
if(stat != DEAD && bodytemperature >= 170) //Dead or cryosleep people do not pump the blood.
- var/blood_volume = round(vessel.get_reagent_amount("blood"))
+ var/blood_volume = round(vessel.get_reagent_amount("blood")/species.blood_volume)*100 // Percentage.
//Blood regeneration if there is some space
- if(blood_volume < 560 && blood_volume)
+ if(blood_volume < species.blood_volume && blood_volume)
var/datum/reagent/blood/B = locate() in vessel.reagent_list //Grab some blood
if(B) // Make sure there's some blood at all
if(B.data["donor"] != src) //If it's not theirs, then we look for theirs
@@ -205,7 +205,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
var/list/chems = list()
chems = params2list(injected.data["trace_chem"])
for(var/C in chems)
- src.reagents.add_reagent(C, (text2num(chems[C]) / 560) * amount)//adds trace chemicals to owner's blood
+ src.reagents.add_reagent(C, (text2num(chems[C]) / species.blood_volume) * amount)//adds trace chemicals to owner's blood
reagents.update_total()
//Transfers blood from reagents to vessel, respecting blood types compatability.