diff --git a/.travis.yml b/.travis.yml index 84f728239d3..9eeff2acda9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ sudo: false env: global: BYOND_MAJOR="512" - BYOND_MINOR="1438" + BYOND_MINOR="1453" MACRO_COUNT=77 FLYWAY_BUILD="5.1.4" NODE_VERSION=10 diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 26ca3242ad6..95423996e98 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -123,16 +123,16 @@ #define MOB_MINISCULE 1 #define BASE_MAX_NUTRITION 400 -#define HUNGER_FACTOR 0.025 // Factor of how fast mob nutrition decreases. Moved here from chemistry define +#define HUNGER_FACTOR 0.04 // Factor of how fast mob nutrition decreases over time. #define BASE_MAX_HYDRATION 600 -#define THIRST_FACTOR 0.05 // Factor of how fast mob hydration decreases. Moved here from chemistry define +#define THIRST_FACTOR 0.02 // Factor of how fast mob hydration decreases over time. -#define CREW_MINIMUM_HYDRATION 50 // The minimum amount of nutrition a crewmember will spawn with. -#define CREW_MAXIMUM_HYDRATION 100 // Same as above, but maximum. +#define CREW_MINIMUM_HYDRATION BASE_MAX_HYDRATION * CREW_HYDRATION_SLIGHTLYTHIRSTY // The minimum amount of nutrition a crewmember will spawn with. +#define CREW_MAXIMUM_HYDRATION BASE_MAX_HYDRATION * CREW_HYDRATION_HYDRATED // Same as above, but maximum. -#define CREW_MINIMUM_NUTRITION 50 // The minimum amount of nutrition a crewmember will spawn with. -#define CREW_MAXIMUM_NUTRITION 100 // Same as above, but maximum. +#define CREW_MINIMUM_NUTRITION BASE_MAX_NUTRITION * CREW_NUTRITION_SLIGHTLYHUNGRY // The minimum amount of nutrition a crewmember will spawn with. +#define CREW_MAXIMUM_NUTRITION BASE_MAX_NUTRITION * CREW_NUTRITION_FULL // Same as above, but maximum. //Note that all of this is relative to nutrition/max nutrition #define CREW_NUTRITION_OVEREATEN 0.95 diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index 7da06207b00..49463c32764 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -30,7 +30,7 @@ /proc/game_log(category, text) diary << "\[[time_stamp()]] [game_id] [category]: [text][log_end]" -/proc/log_admin(text,level=5,ckey="",admin_key="",ckey_target="") +/proc/log_admin(text,level=SEVERITY_NOTICE,ckey="",admin_key="",ckey_target="") admin_log.Add(text) if (config.log_admin) game_log("ADMIN", text) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 50c708880cd..a764d9ed094 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -478,8 +478,9 @@ var/list/admin_verbs_cciaa = list( var/mob/abstract/observer/ghost = mob if(ghost.can_reenter_corpse) ghost.reenter_corpse() + log_admin("[src] reentered their corpose using aghost.",admin_key=key_name(src)) else - ghost << "Error: Aghost: Can't reenter corpse, mentors that use adminHUD while aghosting are not permitted to enter their corpse again" + ghost << "Error: Aghost: Can't reenter corpse." return feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -496,7 +497,7 @@ var/list/admin_verbs_cciaa = list( if(!body.key) body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - + log_admin("[src] aghosted.",admin_key=key_name(src)) /client/proc/invisimin() set name = "Invisimin" @@ -660,6 +661,7 @@ var/list/admin_verbs_cciaa = list( var/list/traumas = subtypesof(/datum/brain_trauma) var/result = input(usr, "Choose the brain trauma to apply","Traumatize") as null|anything in traumas + if(!result) return var/permanent = alert("Do you want to make the trauma unhealable?", "Permanently Traumatize", "Yes", "No") if(permanent == "Yes") permanent = TRUE diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 5b2e251bc6d..3f5ec0a2d58 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -34,8 +34,8 @@ /mob/living/carbon/Move(NewLoc, direct) . = ..() - if(.) + if(.) if(src.stat != 2) if(src.nutrition) adjustNutritionLoss(nutrition_loss*0.1) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 34bae1a3693..c6ffffefdba 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1685,7 +1685,7 @@ var/regen = stamina_recovery * (1 - min(((oxyloss) / exhaust_threshold) + ((halloss) / exhaust_threshold), 1)) if (regen > 0) stamina = min(max_stamina, stamina+regen) - adjustNutritionLoss(stamina_recovery*0.9) + adjustNutritionLoss(stamina_recovery*0.09) adjustHydrationLoss(stamina_recovery*0.18) if (client) hud_used.move_intent.update_move_icon(src) diff --git a/code/modules/mob/living/carbon/human/species/species_hud.dm b/code/modules/mob/living/carbon/human/species/species_hud.dm index 1c9a6e03f04..ba0252168cf 100644 --- a/code/modules/mob/living/carbon/human/species/species_hud.dm +++ b/code/modules/mob/living/carbon/human/species/species_hud.dm @@ -55,6 +55,7 @@ equip_slots |= slot_legcuffed /datum/hud_data/diona + has_hydration = 0 has_internals = 0 gear = list( "i_clothing" = list("loc" = ui_iclothing, "name" = "Uniform", "slot" = slot_w_uniform, "state" = "center", "toggle" = 1), diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index c7258bfef4c..bd90a4c06fe 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -335,6 +335,8 @@ sprint_cost_factor = 0.8 climb_coeff = 1.3 + max_hydration_factor = -1 + /datum/species/diona/handle_sprint_cost(var/mob/living/carbon/H, var/cost) var/datum/dionastats/DS = H.get_dionastats() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 03026f58edd..fe33f805454 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -1237,7 +1237,8 @@ proc/is_blind(A) return TRUE /mob/proc/adjustHydrationLoss(var/amount) - if(max_nutrition <= 0) + + if(max_hydration <= 0) return FALSE hydration = max(0,min(max_hydration,hydration - amount)) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index e24352e0553..e201f5bd733 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -119,9 +119,9 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 death() // Without enough blood you slowly go hungry and thirsty - if(blood_volume < BLOOD_VOLUME_SAFE) - adjustNutritionLoss(get_nutrition_mul(1,20)) - adjustHydrationLoss(get_hydration_mul(1,10)) + if(blood_volume <= BLOOD_VOLUME_SAFE) + adjustNutritionLoss(get_nutrition_mul(1,5)) + adjustHydrationLoss(get_hydration_mul(1,13)) //Bleeding out var/blood_max = 0 diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index 3f618ed9ece..ad119ac4441 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -117,6 +117,8 @@ glass_name = "glass of coder fuckups" glass_desc = "A glass of distilled maintainer tears." + var/blood_to_ingest_scale = 2 + /datum/reagent/alcohol/Destroy() if (caffeine_mod) QDEL_NULL(caffeine_mod) @@ -128,8 +130,8 @@ L.adjust_fire_stacks((amount / (flammability_divisor || 1)) * (strength / 100)) /datum/reagent/alcohol/affect_blood(mob/living/carbon/M, alien, removed) - M.adjustToxLoss(removed * 2) - affect_ingest(M,alien,removed * 2) + M.adjustToxLoss(removed * blood_to_ingest_scale * (strength/100) ) + affect_ingest(M,alien,removed * blood_to_ingest_scale) return /datum/reagent/alcohol/affect_ingest(mob/living/carbon/M, alien, removed) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index dc36636f4e5..f8413474082 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -701,6 +701,7 @@ var/caffeine = 0 // strength of stimulant effect, since so many drinks use it var/datum/modifier/modifier = null unaffected_species = IS_MACHINE + var/blood_to_ingest_scale = 2 /datum/reagent/drink/Destroy() if (modifier) @@ -708,8 +709,8 @@ return ..() /datum/reagent/drink/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) - M.adjustToxLoss(removed) // Probably not a good idea; not very deadly though - digest(M,alien,removed * 2, FALSE) + M.adjustToxLoss(removed * blood_to_ingest_scale) // Probably not a good idea; not very deadly though + digest(M,alien,removed * blood_to_ingest_scale, FALSE) /datum/reagent/drink/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) digest(M,alien,removed) @@ -1434,6 +1435,8 @@ glass_desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place." glass_center_of_mass = list("x"=16, "y"=8) + blood_to_ingest_scale = 1 + /datum/reagent/drink/doctor_delight/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() if(alien != IS_DIONA) @@ -1450,6 +1453,7 @@ description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water." reagent_state = SOLID nutrition = 1 + hydration = 0 color = "#302000" taste_description = "dry and cheap noodles" @@ -1460,6 +1464,7 @@ reagent_state = LIQUID color = "#302000" nutrition = 5 + hydration = 5 adj_temp = 5 taste_description = "wet and cheap noodles" @@ -1470,6 +1475,7 @@ reagent_state = LIQUID color = "#302000" nutrition = 5 + hydration = 5 taste_description = "wet and cheap noodles on fire" /datum/reagent/drink/hell_ramen/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) @@ -1485,6 +1491,7 @@ adj_temp = -5 taste_description = "ice" taste_mult = 1.5 + hydration = 8 glass_icon_state = "iceglass" glass_name = "glass of ice" @@ -2463,6 +2470,9 @@ glass_desc = "A drink that is guaranteed to knock you silly." glass_center_of_mass = list("x"=16, "y"=8) + blood_to_ingest_scale = 1 + metabolism = REM * 5 + /datum/reagent/alcohol/ethanol/neurotoxin/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() if(alien != IS_DIONA) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 3173acebf90..3d98e416b23 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -128,7 +128,7 @@ return reagents.trans_to_mob(target, min(reagents.total_volume,bitesize), CHEM_INGEST) else - if(!user.can_force_feed(target, src)) + if(!target.can_force_feed(user, src)) return if(is_full) to_chat(user,span("warning","\The [target] can't stomach any more food!")) diff --git a/html/changelog.html b/html/changelog.html index 6c0bedcc5c1..4abac4d94e4 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,28 @@ -->