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.