diff --git a/code/modules/mob/living/carbon/human/species/species_vr.dm b/code/modules/mob/living/carbon/human/species/species_vr.dm index 653af17a1b..558924a784 100644 --- a/code/modules/mob/living/carbon/human/species/species_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_vr.dm @@ -20,6 +20,17 @@ var/wikilink = null //link to wiki page for species var/icon_height = 32 var/agility = 20 //prob() to do agile things + + var/organic_food_coeff = 1 + var/synthetic_food_coeff = 0 + //var/vore_numbing = 0 + var/metabolism = 0.0015 + var/lightweight = FALSE //Oof! Nonhelpful bump stumbles. + var/trashcan = FALSE //It's always sunny in the wrestling ring. + var/eat_minerals = FALSE //HEAVY METAL DIET + var/base_species = null // Unused outside of a few species + var/selects_bodytype = FALSE // Allows the species to choose from body types like custom species can, affecting suit fitting and etcetera as you would expect. + var/is_weaver = FALSE var/silk_production = FALSE var/silk_reserve = 100 diff --git a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm index 6133a025b1..9a418e271b 100644 --- a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm @@ -1,14 +1,3 @@ - -/datum/species - //var/vore_numbing = 0 - var/gets_food_nutrition = TRUE // If this is set to 0, the person can't get nutrition from food. - var/metabolism = 0.0015 - var/lightweight = FALSE //Oof! Nonhelpful bump stumbles. - var/trashcan = FALSE //It's always sunny in the wrestling ring. - var/eat_minerals = FALSE //HEAVY METAL DIET - var/base_species = null //Used in every UpdateAppearance call. - var/selects_bodytype = FALSE // Allows the species to choose from body types intead of being forced to be just one. - /datum/species/New() if(!base_species) base_species = name diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 6dbb7cafef..73cad51f4a 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -132,8 +132,8 @@ YW change end */ desc = "Makes you unable to gain nutrition from anything but blood. To compensate, you get fangs that can be used to drain blood from prey." cost = 0 custom_only = FALSE - var_changes = list("gets_food_nutrition" = 0) //The verb is given in human.dm - excludes = list(/datum/trait/bloodsucker_plus) + var_changes = list("organic_food_coeff" = 0) //The verb is given in human.dm + excludes = list(/datum/trait/bloodsucker_plus) //YW edit /datum/trait/bloodsucker/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) @@ -187,11 +187,19 @@ YW change end */ desc = "You only gain nutrition from raw ore and refined minerals. There's nothing that sates the appetite better than precious gems, exotic or rare minerals and you have damn fine taste. Anything else is beneath you." cost = 0 custom_only = FALSE - var_changes = list("gets_food_nutrition" = 0, "eat_minerals" = 1) + var_changes = list("organic_food_coeff" = 0, "eat_minerals" = 1) /datum/trait/gem_eater/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) H.verbs |= /mob/living/proc/eat_minerals + +/datum/trait/synth_chemfurnace + name = "Biofuel Processor" + desc = "You are able to gain energy through consuming and processing normal food. Energy-dense foods such as protein bars and survival food will yield the best results." + cost = 0 + custom_only = FALSE + can_take = SYNTHETICS + var_changes = list("organic_food_coeff" = 0, "synthetic_food_coeff" = 0.25) /datum/trait/glowing_eyes name = "Glowing Eyes" diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index c455542746..407cd327de 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -234,7 +234,7 @@ name = "Evolved Bloodsucker" desc = "Makes you able to gain nutrition by draining blood as well as eating food. To compensate, you get fangs that can be used to drain blood from prey." cost = 1 - var_changes = list("gets_food_nutrition" = 0.5) // Hopefully this works??? + var_changes = list("organic_food_coeff" = 0.5) // Hopefully this works??? excludes = list(/datum/trait/bloodsucker) /datum/trait/bloodsucker_plus/apply(var/datum/species/S,var/mob/living/carbon/human/H) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index e636a28d0a..4b2744c823 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -46,7 +46,7 @@ var/is_vampire = 0 //VOREStation Edit START if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.species.gets_food_nutrition == 0) + if(H.species.organic_food_coeff == 0) H.adjust_nutrition(removed) is_vampire = 1 //VOREStation Edit END if(alien == IS_SLIME) // Treat it like nutriment for the jello, but not equivalent. 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 5ba0b23c45..cc0b4a65b5 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -11,6 +11,7 @@ var/nutriment_factor = 30 // Per unit var/injectable = 0 color = "#664330" + affects_robots = 1 //VOREStation Edit /datum/reagent/nutriment/mix_data(var/list/newdata, var/newamount) @@ -37,10 +38,14 @@ data -= taste /datum/reagent/nutriment/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) - if(!injectable && alien != IS_SLIME && alien != IS_CHIMERA) //VOREStation Edit + if(!injectable && alien != IS_SLIME && alien != IS_CHIMERA && !M.isSynthetic()) //VOREStation Edit M.adjustToxLoss(0.1 * removed) return affect_ingest(M, alien, removed) + //VOREStation Edits Start + if(M.isSynthetic() && M.nutrition < 500) + M.adjust_nutrition((nutriment_factor * removed) * M.species.synthetic_food_coeff) + //VOREStation Edits End /datum/reagent/nutriment/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) switch(alien) @@ -48,10 +53,11 @@ if(IS_UNATHI) removed *= 0.5 if(IS_CHIMERA) removed *= 0.25 //VOREStation Edit if(issmall(M)) removed *= 2 // Small bodymass, more effect from lower volume. - M.heal_organ_damage(0.5 * removed, 0) - if(M.species.gets_food_nutrition) //VOREStation edit. If this is set to 0, they don't get nutrition from food. - M.adjust_nutrition(nutriment_factor * removed) // For hunger and fatness - M.add_chemical_effect(CE_BLOODRESTORE, 4 * removed) + //VOREStation Edits Start + if(!M.isSynthetic()) + M.adjust_nutrition((nutriment_factor * removed) * M.species.organic_food_coeff) + M.heal_organ_damage(0.5 * removed, 0) + M.add_chemical_effect(CE_BLOODRESTORE, 4 * removed) // Aurora Cooking Port Insertion Begin @@ -878,7 +884,7 @@ if(adj_temp < 0 && M.bodytemperature > 310) M.bodytemperature = min(310, M.bodytemperature - (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) if(issmall(M)) removed *= 2 //CHOMP Station addition Small bodymass, more effect from lower volume. - if(M.species.gets_food_nutrition) //CHOMPStation addition. If this is set to 0, they don't get nutrition from food. + if(M.species.organic_food_coeff) //CHOMPStation addition. If this is set to 0, they don't get nutrition from food. M.nutrition += nutriment_factor * removed //CHOMPStation addition For hunger and fatness /* VOREStation Removal if(alien == IS_SLIME && water_based) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm index d1a165af09..28084273ed 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks_vr.dm @@ -125,7 +125,7 @@ /datum/reagent/ethanol/monstertamer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(M.species.gets_food_nutrition) //it's still food! + if(M.species.organic_food_coeff) //it's still food! switch(alien) if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. if(IS_SKRELL) @@ -151,7 +151,7 @@ ..() if(alien == IS_SKRELL) M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein. - if(M.species.gets_food_nutrition) + if(M.species.organic_food_coeff) if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein M.adjust_nutrition(alt_nutriment_factor * removed) @@ -429,7 +429,7 @@ /datum/reagent/ethanol/hairoftherat/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(M.species.gets_food_nutrition) //it's still food! + if(M.species.organic_food_coeff) //it's still food! switch(alien) if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. if(IS_SKRELL) @@ -455,6 +455,6 @@ ..() if(alien == IS_SKRELL) M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein. - if(M.species.gets_food_nutrition) + if(M.species.organic_food_coeff) if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein - M.nutrition += (alt_nutriment_factor * removed) + M.nutrition += (alt_nutriment_factor * removed) \ No newline at end of file