nutrition adjustment wrapper procs.

This commit is contained in:
Ghommie
2020-05-10 21:41:50 +02:00
parent 602154abe8
commit 667c12d413
40 changed files with 94 additions and 95 deletions

View File

@@ -126,7 +126,7 @@
var/datum/reagent/R = E var/datum/reagent/R = E
M.reagents.remove_reagent(R.type, actual_power) M.reagents.remove_reagent(R.type, actual_power)
if(food_conversion) if(food_conversion)
M.nutrition += 0.3 M.adjust_nutrition(0.3)
if(prob(2)) if(prob(2))
to_chat(M, "<span class='notice'>You feel a mild warmth as your blood purifies itself.</span>") to_chat(M, "<span class='notice'>You feel a mild warmth as your blood purifies itself.</span>")
return 1 return 1
@@ -164,7 +164,7 @@
C.reagents.metabolize(C, can_overdose=TRUE) C.reagents.metabolize(C, can_overdose=TRUE)
C.overeatduration = max(C.overeatduration - 2, 0) C.overeatduration = max(C.overeatduration - 2, 0)
var/lost_nutrition = 9 - (reduced_hunger * 5) var/lost_nutrition = 9 - (reduced_hunger * 5)
C.nutrition = max(C.nutrition - (lost_nutrition * HUNGER_FACTOR), 0) //Hunger depletes at 10x the normal speed C.adjust_nutrition(-lost_nutrition * HUNGER_FACTOR) //Hunger depletes at 10x the normal speed
if(prob(2)) if(prob(2))
to_chat(C, "<span class='notice'>You feel an odd gurgle in your stomach, as if it was working much faster than normal.</span>") to_chat(C, "<span class='notice'>You feel an odd gurgle in your stomach, as if it was working much faster than normal.</span>")
return 1 return 1

View File

@@ -50,4 +50,4 @@ Bonus
else else
to_chat(M, "<span class='warning'><i>[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]</i></span>") to_chat(M, "<span class='warning'><i>[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]</i></span>")
M.overeatduration = max(M.overeatduration - 100, 0) M.overeatduration = max(M.overeatduration - 100, 0)
M.nutrition = max(M.nutrition - 100, 0) M.adjust_nutrition(-100)

View File

@@ -52,7 +52,7 @@
if(prob(3)) if(prob(3))
to_chat(affected_mob, "<span class='warning'><i>[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]</i></span>") to_chat(affected_mob, "<span class='warning'><i>[pick("Your stomach silently rumbles...", "Your stomach seizes up and falls limp, muscles dead and lifeless.", "You could eat a crayon")]</i></span>")
affected_mob.overeatduration = max(affected_mob.overeatduration - 100, 0) affected_mob.overeatduration = max(affected_mob.overeatduration - 100, 0)
affected_mob.nutrition = max(affected_mob.nutrition - 100, 0) affected_mob.adjust_nutrition(-100)
if(prob(15)) if(prob(15))
to_chat(affected_mob, "<span class='danger'>[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]</span>") to_chat(affected_mob, "<span class='danger'>[pick("You feel uncomfortably hot...", "You feel like unzipping your jumpsuit", "You feel like taking off some clothes...")]</span>")
affected_mob.adjust_bodytemperature(40) affected_mob.adjust_bodytemperature(40)

View File

@@ -117,7 +117,7 @@
if(food <= 0) if(food <= 0)
dat += "<br>You ran out of food and starved." dat += "<br>You ran out of food and starved."
if(obj_flags & EMAGGED) if(obj_flags & EMAGGED)
user.nutrition = 0 //yeah you pretty hongry user.set_nutrition(0) //yeah you pretty hongry
to_chat(user, "<span class='userdanger'>Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.</span>") to_chat(user, "<span class='userdanger'>Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.</span>")
if(fuel <= 0) if(fuel <= 0)
dat += "<br>You ran out of fuel, and drift, slowly, into a star." dat += "<br>You ran out of fuel, and drift, slowly, into a star."

View File

@@ -133,7 +133,7 @@
if(reagents) if(reagents)
for(var/datum/reagent/consumable/R in reagents.reagent_list) for(var/datum/reagent/consumable/R in reagents.reagent_list)
if(R.nutriment_factor > 0) if(R.nutriment_factor > 0)
H.nutrition += R.nutriment_factor * R.volume H.adjust_nutrition(R.nutriment_factor * R.volume)
reagents.del_reagent(R.type) reagents.del_reagent(R.type)
reagents.trans_to(H, reagents.total_volume) reagents.trans_to(H, reagents.total_volume)
qdel(src) qdel(src)

View File

@@ -249,10 +249,8 @@
/obj/item/book/granter/spell/smoke/recoil(mob/user) /obj/item/book/granter/spell/smoke/recoil(mob/user)
..() ..()
to_chat(user,"<span class='caution'>Your stomach rumbles...</span>") to_chat(user,"<span class='caution'>Your stomach rumbles...</span>")
if(user.nutrition) if(user.nutrition > NUTRITION_LEVEL_STARVING + 50)
user.nutrition = 200 user.set_nutrition(NUTRITION_LEVEL_STARVING + 50)
if(user.nutrition <= 0)
user.nutrition = 0
/obj/item/book/granter/spell/blind /obj/item/book/granter/spell/blind
spell = /obj/effect/proc_holder/spell/targeted/trigger/blind spell = /obj/effect/proc_holder/spell/targeted/trigger/blind

View File

@@ -177,7 +177,7 @@
if(owner.current.blood_volume < BLOOD_VOLUME_BAD / 2) if(owner.current.blood_volume < BLOOD_VOLUME_BAD / 2)
owner.current.blur_eyes(8 - 8 * (owner.current.blood_volume / BLOOD_VOLUME_BAD)) owner.current.blur_eyes(8 - 8 * (owner.current.blood_volume / BLOOD_VOLUME_BAD))
// Nutrition // Nutrition
owner.current.nutrition = clamp(owner.current.blood_volume, 545, 0) //The amount of blood is how full we are. owner.current.set_nutrition(min(owner.current.blood_volume, NUTRITION_LEVEL_FULL)) //The amount of blood is how full we are.
//A bit higher regeneration based on blood volume //A bit higher regeneration based on blood volume
if(owner.current.blood_volume < 700) if(owner.current.blood_volume < 700)
additional_regen = 0.4 additional_regen = 0.4
@@ -331,7 +331,7 @@
return return
var/mob/living/carbon/C = owner.current var/mob/living/carbon/C = owner.current
// Remove Nutrition, Give Bad Food // Remove Nutrition, Give Bad Food
C.nutrition -= food_nutrition C.adjust_nutrition(-food_nutrition)
foodInGut += food_nutrition foodInGut += food_nutrition
// Already ate some bad clams? Then we can back out, because we're already sick from it. // Already ate some bad clams? Then we can back out, because we're already sick from it.
if(foodInGut != food_nutrition) if(foodInGut != food_nutrition)

View File

@@ -59,7 +59,7 @@
changeling.trueabsorbs++ changeling.trueabsorbs++
if(user.nutrition < NUTRITION_LEVEL_WELL_FED) if(user.nutrition < NUTRITION_LEVEL_WELL_FED)
user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED) user.adjust_nutrition(target.nutrition, NUTRITION_LEVEL_WELL_FED)
if(target.mind)//if the victim has got a mind if(target.mind)//if the victim has got a mind
// Absorb a lizard, speak Draconic. // Absorb a lizard, speak Draconic.

View File

@@ -183,7 +183,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
if(soulsOwned.Find(soul)) if(soulsOwned.Find(soul))
return return
soulsOwned += soul soulsOwned += soul
owner.current.nutrition = NUTRITION_LEVEL_FULL owner.current.set_nutrition(NUTRITION_LEVEL_FULL)
to_chat(owner.current, "<span class='warning'>You feel satiated as you received a new soul.</span>") to_chat(owner.current, "<span class='warning'>You feel satiated as you received a new soul.</span>")
update_hud() update_hud()
switch(SOULVALUE) switch(SOULVALUE)

View File

@@ -59,7 +59,7 @@
nutrition_ratio *= 1.2 nutrition_ratio *= 1.2
if(satiety > 80) if(satiety > 80)
nutrition_ratio *= 1.25 nutrition_ratio *= 1.25
nutrition = max(0, nutrition - nutrition_ratio * HUNGER_FACTOR) adjust_nutrition(-nutrition_ratio * HUNGER_FACTOR)
blood_volume = min((BLOOD_VOLUME_NORMAL * blood_ratio), blood_volume + 0.5 * nutrition_ratio) blood_volume = min((BLOOD_VOLUME_NORMAL * blood_ratio), blood_volume + 0.5 * nutrition_ratio)
//Effects of bloodloss //Effects of bloodloss

View File

@@ -520,7 +520,7 @@
playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1) playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1)
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
if(!blood) if(!blood)
nutrition -= lost_nutrition adjust_nutrition(-lost_nutrition)
adjustToxLoss(-3) adjustToxLoss(-3)
for(var/i=0 to distance) for(var/i=0 to distance)
if(blood) if(blood)

View File

@@ -24,11 +24,12 @@
. = ..() . = ..()
if(. && (movement_type & FLOATING)) //floating is easy if(. && (movement_type & FLOATING)) //floating is easy
if(HAS_TRAIT(src, TRAIT_NOHUNGER)) if(HAS_TRAIT(src, TRAIT_NOHUNGER))
nutrition = NUTRITION_LEVEL_FED - 1 //just less than feeling vigorous set_nutrition(NUTRITION_LEVEL_FED - 1) //just less than feeling vigorous
else if(nutrition && stat != DEAD) else if(nutrition && stat != DEAD)
nutrition -= HUNGER_FACTOR/10 var/loss = HUNGER_FACTOR/10
if(m_intent == MOVE_INTENT_RUN) if(m_intent == MOVE_INTENT_RUN)
nutrition -= HUNGER_FACTOR/10 loss *= 2
adjust_nutrition(loss)
/mob/living/carbon/can_move_under_living(mob/living/other) /mob/living/carbon/can_move_under_living(mob/living/other)
. = ..() . = ..()

View File

@@ -1287,7 +1287,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.Jitter(5) H.Jitter(5)
hunger_rate = 3 * HUNGER_FACTOR hunger_rate = 3 * HUNGER_FACTOR
hunger_rate *= H.physiology.hunger_mod hunger_rate *= H.physiology.hunger_mod
H.nutrition = max(0, H.nutrition - hunger_rate) H.adjust_nutrition(-hunger_rate)
if (H.nutrition > NUTRITION_LEVEL_FULL) if (H.nutrition > NUTRITION_LEVEL_FULL)

View File

@@ -293,9 +293,7 @@
if(isturf(H.loc)) //else, there's considered to be no light if(isturf(H.loc)) //else, there's considered to be no light
var/turf/T = H.loc var/turf/T = H.loc
light_amount = min(1,T.get_lumcount()) - 0.5 light_amount = min(1,T.get_lumcount()) - 0.5
H.nutrition += light_amount * 10 H.adjust_nutrition(light_amount * 10, NUTRITION_LEVEL_FULL)
if(H.nutrition > NUTRITION_LEVEL_FULL)
H.nutrition = NUTRITION_LEVEL_FULL
if(light_amount > 0.2) //if there's enough light, heal if(light_amount > 0.2) //if there's enough light, heal
H.heal_overall_damage(1,1) H.heal_overall_damage(1,1)
H.adjustToxLoss(-1) H.adjustToxLoss(-1)

View File

@@ -35,9 +35,7 @@
if(isturf(H.loc)) //else, there's considered to be no light if(isturf(H.loc)) //else, there's considered to be no light
var/turf/T = H.loc var/turf/T = H.loc
light_amount = min(1,T.get_lumcount()) - 0.5 light_amount = min(1,T.get_lumcount()) - 0.5
H.nutrition += light_amount * light_nutrition_gain_factor H.adjust_nutrition(light_amount * light_nutrition_gain_factor, NUTRITION_LEVEL_FULL)
if(H.nutrition >= NUTRITION_LEVEL_FULL)
H.nutrition = NUTRITION_LEVEL_FULL - 1
if(light_amount > 0.2) //if there's enough light, heal if(light_amount > 0.2) //if there's enough light, heal
H.heal_overall_damage(light_bruteheal, light_burnheal) H.heal_overall_damage(light_bruteheal, light_burnheal)
H.adjustToxLoss(-light_toxheal) H.adjustToxLoss(-light_toxheal)
@@ -69,8 +67,7 @@
H.adjustFireLoss(rand(5,15)) H.adjustFireLoss(rand(5,15))
H.show_message("<span class='userdanger'>The radiation beam singes you!</span>") H.show_message("<span class='userdanger'>The radiation beam singes you!</span>")
if(/obj/item/projectile/energy/florayield) if(/obj/item/projectile/energy/florayield)
H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) H.adjust_nutrition(30, NUTRITION_LEVEL_FULL)
/datum/species/pod/pseudo_weak /datum/species/pod/pseudo_weak
name = "Anthromorphic Plant" name = "Anthromorphic Plant"

View File

@@ -476,7 +476,7 @@
if(SSmobs.times_fired%3==1) if(SSmobs.times_fired%3==1)
if(!(M.status_flags & GODMODE)) if(!(M.status_flags & GODMODE))
M.adjustBruteLoss(5) M.adjustBruteLoss(5)
nutrition += 10 adjust_nutrition(10)
/* /*

View File

@@ -563,7 +563,7 @@
SetAllImmobility(0, FALSE) SetAllImmobility(0, FALSE)
SetSleeping(0, FALSE) SetSleeping(0, FALSE)
radiation = 0 radiation = 0
nutrition = NUTRITION_LEVEL_FED + 50 set_nutrition(NUTRITION_LEVEL_FED + 50)
bodytemperature = BODYTEMP_NORMAL bodytemperature = BODYTEMP_NORMAL
set_blindness(0) set_blindness(0)
set_blurriness(0) set_blurriness(0)

View File

@@ -232,7 +232,7 @@
Feedstop(0, 0) Feedstop(0, 0)
return return
add_nutrition((rand(7, 15) * CONFIG_GET(number/damage_multiplier))) adjust_nutrition((rand(7, 15) * CONFIG_GET(number/damage_multiplier)), get_max_nutrition(), TRUE)
//Heal yourself. //Heal yourself.
adjustBruteLoss(-3) adjustBruteLoss(-3)
@@ -244,15 +244,13 @@
return return
if(prob(15)) if(prob(15))
nutrition -= 1 + is_adult adjust_nutrition(-1 - is_adult)
if(nutrition <= 0) if(nutrition <= 0 && prob(75))
nutrition = 0
if(prob(75))
adjustBruteLoss(rand(0,5)) adjustBruteLoss(rand(0,5))
else if (nutrition >= get_grow_nutrition() && amount_grown < SLIME_EVOLUTION_THRESHOLD) else if (nutrition >= get_grow_nutrition() && amount_grown < SLIME_EVOLUTION_THRESHOLD)
nutrition -= 20 adjust_nutrition(-20)
amount_grown++ amount_grown++
update_action_buttons_icon() update_action_buttons_icon()
@@ -262,9 +260,11 @@
else else
Evolve() Evolve()
/mob/living/simple_animal/slime/proc/add_nutrition(nutrition_to_add = 0) /mob/living/simple_animal/slime/adjust_nutrition(change, max = INFINITY, slime_check = FALSE)
nutrition = min((nutrition + nutrition_to_add), get_max_nutrition()) . = ..()
if(nutrition >= get_grow_nutrition()) if(!slime_check)
return
if(nutrition == max)
if(powerlevel<10) if(powerlevel<10)
if(prob(30-powerlevel*2)) if(prob(30-powerlevel*2))
powerlevel++ powerlevel++

View File

@@ -184,7 +184,7 @@
var/mob/living/simple_animal/slime/M var/mob/living/simple_animal/slime/M
M = new(loc, child_colour) M = new(loc, child_colour)
if(ckey) if(ckey)
M.nutrition = new_nutrition //Player slimes are more robust at spliting. Once an oversight of poor copypasta, now a feature! M.set_nutrition(new_nutrition) //Player slimes are more robust at spliting. Once an oversight of poor copypasta, now a feature!
M.powerlevel = new_powerlevel M.powerlevel = new_powerlevel
if(i != 1) if(i != 1)
step_away(M,src) step_away(M,src)

View File

@@ -27,6 +27,7 @@
healable = 0 healable = 0
gender = NEUTER gender = NEUTER
blood_volume = 0 //Until someome reworks for them to have slime jelly blood_volume = 0 //Until someome reworks for them to have slime jelly
nutrition = 700
see_in_dark = 8 see_in_dark = 8
@@ -102,7 +103,6 @@
create_reagents(100, NONE, NO_REAGENTS_VALUE) create_reagents(100, NONE, NO_REAGENTS_VALUE)
set_colour(new_colour) set_colour(new_colour)
. = ..() . = ..()
nutrition = 700
/mob/living/simple_animal/slime/Destroy() /mob/living/simple_animal/slime/Destroy()
for (var/A in actions) for (var/A in actions)
@@ -267,8 +267,8 @@
return return
attacked += 5 attacked += 5
if(nutrition >= 100) //steal some nutrition. negval handled in life() if(nutrition >= 100) //steal some nutrition. negval handled in life()
nutrition -= (50 + (40 * M.is_adult)) adjust_nutrition(-50 - (40 * M.is_adult))
M.add_nutrition(50 + (40 * M.is_adult)) M.adjust_nutrition(50 + (40 * M.is_adult), get_max_nutrition(), TRUE)
if(health > 0) if(health > 0)
M.adjustBruteLoss(-10 + (-10 * M.is_adult)) M.adjustBruteLoss(-10 + (-10 * M.is_adult))
M.updatehealth() M.updatehealth()

View File

@@ -35,7 +35,7 @@
continue continue
var/datum/atom_hud/alternate_appearance/AA = v var/datum/atom_hud/alternate_appearance/AA = v
AA.onNewMob(src) AA.onNewMob(src)
nutrition = rand(NUTRITION_LEVEL_START_MIN, NUTRITION_LEVEL_START_MAX) set_nutrition(rand(NUTRITION_LEVEL_START_MIN, NUTRITION_LEVEL_START_MAX))
. = ..() . = ..()
update_config_movespeed() update_config_movespeed()
update_movespeed(TRUE) update_movespeed(TRUE)
@@ -1023,6 +1023,14 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
var/datum/language_holder/H = get_language_holder() var/datum/language_holder/H = get_language_holder()
H.open_language_menu(usr) H.open_language_menu(usr)
///Adjust the nutrition of a mob
/mob/proc/adjust_nutrition(change, max = INFINITY) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks
nutrition = clamp(0, nutrition + change, max)
///Force set the mob nutrition
/mob/proc/set_nutrition(var/change) //Seriously fuck you oldcoders.
nutrition = max(0, change)
/mob/setMovetype(newval) /mob/setMovetype(newval)
. = ..() . = ..()
update_movespeed(FALSE) update_movespeed(FALSE)

View File

@@ -449,7 +449,7 @@
var/list/babies = list() var/list/babies = list()
for(var/i=1,i<=number,i++) for(var/i=1,i<=number,i++)
var/mob/living/simple_animal/slime/M = new/mob/living/simple_animal/slime(loc) var/mob/living/simple_animal/slime/M = new/mob/living/simple_animal/slime(loc)
M.nutrition = round(nutrition/number) M.set_nutrition(round(nutrition/number))
step_away(M,src) step_away(M,src)
babies += M babies += M
new_slime = pick(babies) new_slime = pick(babies)

View File

@@ -1834,7 +1834,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M) /datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING) if(M.nutrition <= NUTRITION_LEVEL_STARVING)
M.adjustToxLoss(1*REM, 0) M.adjustToxLoss(1*REM, 0)
M.nutrition = max(M.nutrition - 5, 0) M.adjust_nutrition(-5)
M.overeatduration = 0 M.overeatduration = 0
return ..() return ..()
@@ -1852,7 +1852,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M) /datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING) if(M.nutrition <= NUTRITION_LEVEL_STARVING)
M.adjustToxLoss(0.5*REM, 0) M.adjustToxLoss(0.5*REM, 0)
M.nutrition = max(M.nutrition - 3, 0) M.adjust_nutrition(-3)
M.overeatduration = 0 M.overeatduration = 0
return ..() return ..()
@@ -1868,7 +1868,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "A glass of Fanciulli. It's just Manhattan with Fernet." glass_desc = "A glass of Fanciulli. It's just Manhattan with Fernet."
/datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/M) /datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/M)
M.nutrition = max(M.nutrition - 5, 0) M.adjust_nutrition(-5)
M.overeatduration = 0 M.overeatduration = 0
return ..() return ..()

View File

@@ -692,9 +692,8 @@
M.adjustFireLoss(-0.5, 0) M.adjustFireLoss(-0.5, 0)
M.adjustToxLoss(-0.5, 0) M.adjustToxLoss(-0.5, 0)
M.adjustOxyLoss(-0.5, 0) M.adjustOxyLoss(-0.5, 0)
if(M.nutrition && (M.nutrition - 2 > 0))
if(!(M.mind && M.mind.assigned_role == "Medical Doctor")) //Drains the nutrition of the holder. Not medical doctors though, since it's the Doctor's Delight! if(!(M.mind && M.mind.assigned_role == "Medical Doctor")) //Drains the nutrition of the holder. Not medical doctors though, since it's the Doctor's Delight!
M.nutrition -= 2 M.adjust_nutrition(-2)
..() ..()
. = 1 . = 1

View File

@@ -13,11 +13,12 @@
taste_mult = 4 taste_mult = 4
value = REAGENT_VALUE_VERY_COMMON value = REAGENT_VALUE_VERY_COMMON
var/nutriment_factor = 1 * REAGENTS_METABOLISM var/nutriment_factor = 1 * REAGENTS_METABOLISM
var/max_nutrition = INFINITY
var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes
/datum/reagent/consumable/on_mob_life(mob/living/carbon/M) /datum/reagent/consumable/on_mob_life(mob/living/carbon/M)
current_cycle++ current_cycle++
M.nutrition += nutriment_factor M.adjust_nutrition(nutriment_factor, max_nutrition)
M.CheckBloodsuckerEatFood(nutriment_factor) M.CheckBloodsuckerEatFood(nutriment_factor)
holder.remove_reagent(type, metabolization_rate) holder.remove_reagent(type, metabolization_rate)
@@ -694,13 +695,10 @@
description = "A bioengineered protien-nutrient structure designed to decompose in high saturation. In layman's terms, it won't get you fat." description = "A bioengineered protien-nutrient structure designed to decompose in high saturation. In layman's terms, it won't get you fat."
reagent_state = SOLID reagent_state = SOLID
nutriment_factor = 12 * REAGENTS_METABOLISM nutriment_factor = 12 * REAGENTS_METABOLISM
max_nutrition = NUTRITION_LEVEL_FULL - 25
color = "#664330" // rgb: 102, 67, 48 color = "#664330" // rgb: 102, 67, 48
value = REAGENT_VALUE_RARE value = REAGENT_VALUE_RARE
/datum/reagent/consumable/nutriment/stabilized/on_mob_life(mob/living/carbon/M)
if(M.nutrition > NUTRITION_LEVEL_FULL - 25)
M.nutrition -= 3*nutriment_factor
..()
////Lavaland Flora Reagents//// ////Lavaland Flora Reagents////

View File

@@ -413,7 +413,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/mine_salve/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) /datum/reagent/medicine/mine_salve/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M) && M.stat != DEAD) if(iscarbon(M) && M.stat != DEAD)
if(method in list(INGEST, VAPOR, INJECT)) if(method in list(INGEST, VAPOR, INJECT))
M.nutrition -= 5 M.adjust_nutrition(-5)
if(show_message) if(show_message)
to_chat(M, "<span class='warning'>Your stomach feels empty and cramps!</span>") to_chat(M, "<span class='warning'>Your stomach feels empty and cramps!</span>")
else else

View File

@@ -675,7 +675,7 @@
/datum/reagent/toxin/lipolicide/on_mob_life(mob/living/carbon/M) /datum/reagent/toxin/lipolicide/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING) if(M.nutrition <= NUTRITION_LEVEL_STARVING)
M.adjustToxLoss(1*REM, 0) M.adjustToxLoss(1*REM, 0)
M.nutrition = max(M.nutrition - 3, 0) // making the chef more valuable, one meme trap at a time M.adjust_nutrition(-3) // making the chef more valuable, one meme trap at a time
M.overeatduration = 0 M.overeatduration = 0
return ..() return ..()

View File

@@ -144,7 +144,7 @@
return ..() return ..()
/datum/nanite_program/metabolic_synthesis/active_effect() /datum/nanite_program/metabolic_synthesis/active_effect()
host_mob.nutrition -= 0.5 host_mob.adjust_nutrition(-0.5)
nanites.adjust_nanites(src, 0.5) nanites.adjust_nanites(src, 0.5)
/datum/nanite_program/research /datum/nanite_program/research

View File

@@ -917,7 +917,7 @@ datum/status_effect/stabilized/blue/on_remove()
healing_types += CLONE healing_types += CLONE
if(length(healing_types)) if(length(healing_types))
owner.apply_damage_type(-heal_amount, damagetype=pick(healing_types)) owner.apply_damage_type(-heal_amount, damagetype=pick(healing_types))
owner.nutrition += 3 owner.adjust_nutrition(3)
M.adjustCloneLoss(heal_amount * 1.2) //This way, two people can't just convert each other's damage away. M.adjustCloneLoss(heal_amount * 1.2) //This way, two people can't just convert each other's damage away.
else else
messagedelivered = FALSE messagedelivered = FALSE

View File

@@ -35,7 +35,7 @@ Burning extracts:
S.visible_message("<span class='danger'>A baby slime emerges from [src], and it nuzzles [user] before burbling hungrily!</span>") S.visible_message("<span class='danger'>A baby slime emerges from [src], and it nuzzles [user] before burbling hungrily!</span>")
S.Friends[user] = 20 //Gas, gas, gas S.Friends[user] = 20 //Gas, gas, gas
S.bodytemperature = T0C + 400 //We gonna step on the gas. S.bodytemperature = T0C + 400 //We gonna step on the gas.
S.nutrition = S.get_hunger_nutrition() //Tonight, we fight! S.set_nutrition(S.get_hunger_nutrition()) //Tonight, we fight!
..() ..()
/obj/item/slimecross/burning/orange /obj/item/slimecross/burning/orange

View File

@@ -128,7 +128,7 @@ Regenerative extracts:
colour = "silver" colour = "silver"
/obj/item/slimecross/regenerative/silver/core_effect(mob/living/target, mob/user) /obj/item/slimecross/regenerative/silver/core_effect(mob/living/target, mob/user)
target.nutrition = NUTRITION_LEVEL_FULL - 1 target.set_nutrition(NUTRITION_LEVEL_FULL - 1)
to_chat(target, "<span class='notice'>You feel satiated.</span>") to_chat(target, "<span class='notice'>You feel satiated.</span>")
/obj/item/slimecross/regenerative/bluespace /obj/item/slimecross/regenerative/bluespace

View File

@@ -186,7 +186,7 @@
/obj/item/slime_extract/purple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type) /obj/item/slime_extract/purple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type) switch(activation_type)
if(SLIME_ACTIVATE_MINOR) if(SLIME_ACTIVATE_MINOR)
user.nutrition += 50 user.adjust_nutrition(50)
user.blood_volume += 50 user.blood_volume += 50
to_chat(user, "<span class='notice'>You activate [src], and your body is refilled with fresh slime jelly!</span>") to_chat(user, "<span class='notice'>You activate [src], and your body is refilled with fresh slime jelly!</span>")
return 150 return 150
@@ -636,7 +636,7 @@
qdel(src) qdel(src)
return return
M.docile = 1 M.docile = 1
M.nutrition = 700 M.set_nutrition(700)
to_chat(M, "<span class='warning'>You absorb the potion and feel your intense desire to feed melt away.</span>") to_chat(M, "<span class='warning'>You absorb the potion and feel your intense desire to feed melt away.</span>")
to_chat(user, "<span class='notice'>You feed the slime the potion, removing its hunger and calming it.</span>") to_chat(user, "<span class='notice'>You feed the slime the potion, removing its hunger and calming it.</span>")
var/newname = reject_bad_name(stripped_input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime", MAX_NAME_LEN), TRUE) var/newname = reject_bad_name(stripped_input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime", MAX_NAME_LEN), TRUE)

View File

@@ -40,7 +40,7 @@
"[user] extracts [target]'s fat!") "[user] extracts [target]'s fat!")
target.overeatduration = 0 //patient is unfatted target.overeatduration = 0 //patient is unfatted
var/removednutriment = target.nutrition var/removednutriment = target.nutrition
target.nutrition = NUTRITION_LEVEL_WELL_FED target.set_nutrition(NUTRITION_LEVEL_WELL_FED)
removednutriment -= 450 //whatever was removed goes into the meat removednutriment -= 450 //whatever was removed goes into the meat
var/mob/living/carbon/human/H = target var/mob/living/carbon/human/H = target
var/typeofmeat = /obj/item/reagent_containers/food/snacks/meat/slab/human var/typeofmeat = /obj/item/reagent_containers/food/snacks/meat/slab/human

View File

@@ -23,7 +23,7 @@
if(owner.nutrition <= hunger_threshold) if(owner.nutrition <= hunger_threshold)
synthesizing = TRUE synthesizing = TRUE
to_chat(owner, "<span class='notice'>You feel less hungry...</span>") to_chat(owner, "<span class='notice'>You feel less hungry...</span>")
owner.nutrition += 50 owner.adjust_nutrition(50)
addtimer(CALLBACK(src, .proc/synth_cool), 50) addtimer(CALLBACK(src, .proc/synth_cool), 50)
/obj/item/organ/cyberimp/chest/nutriment/proc/synth_cool() /obj/item/organ/cyberimp/chest/nutriment/proc/synth_cool()

View File

@@ -221,7 +221,7 @@ obj/item/organ/heart/cybernetic/upgraded/on_life()
used_dose() used_dose()
if(ramount < 10) //eats your nutrition to regen epinephrine if(ramount < 10) //eats your nutrition to regen epinephrine
var/regen_amount = owner.nutrition/2000 var/regen_amount = owner.nutrition/2000
owner.nutrition -= regen_amount owner.adjust_nutrition(-regen_amount)
ramount += regen_amount ramount += regen_amount
/obj/item/organ/heart/cybernetic/upgraded/proc/used_dose() /obj/item/organ/heart/cybernetic/upgraded/proc/used_dose()

View File

@@ -512,7 +512,7 @@
if(!digested) if(!digested)
items_preserved |= item items_preserved |= item
else else
// owner.nutrition += (5 * digested) // haha no. // owner.adjust_nutrition(5 * digested) // haha no.
if(iscyborg(owner)) if(iscyborg(owner))
var/mob/living/silicon/robot/R = owner var/mob/living/silicon/robot/R = owner
R.cell.charge += (50 * digested) R.cell.charge += (50 * digested)

View File

@@ -98,7 +98,7 @@
to_chat(M, "<span class='warning'>[digest_alert_prey]</span>") to_chat(M, "<span class='warning'>[digest_alert_prey]</span>")
M.visible_message("<span class='notice'>You watch as [owner]'s form loses its additions.</span>") M.visible_message("<span class='notice'>You watch as [owner]'s form loses its additions.</span>")
owner.nutrition += 400 // so eating dead mobs gives you *something*. owner.adjust_nutrition(400) // so eating dead mobs gives you *something*.
play_sound = pick(pred_death) play_sound = pick(pred_death)
if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES)
SEND_SOUND(M,prey_death) SEND_SOUND(M,prey_death)
@@ -112,7 +112,7 @@
// Deal digestion damage (and feed the pred) // Deal digestion damage (and feed the pred)
if(!(M.status_flags & GODMODE)) if(!(M.status_flags & GODMODE))
M.adjustFireLoss(digest_burn) M.adjustFireLoss(digest_burn)
owner.nutrition += 1 owner.adjust_nutrition(1)
//Contaminate or gurgle items //Contaminate or gurgle items
var/obj/item/T = pick(touchable_items) var/obj/item/T = pick(touchable_items)
@@ -130,7 +130,7 @@
if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth)) if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth))
M.adjustBruteLoss(-3) M.adjustBruteLoss(-3)
M.adjustFireLoss(-3) M.adjustFireLoss(-3)
owner.nutrition -= 5 owner.adjust_nutrition(-5)
//for when you just want people to squelch around //for when you just want people to squelch around
if(DM_NOISY) if(DM_NOISY)
@@ -155,8 +155,8 @@
if(M.nutrition >= 100) //Drain them until there's no nutrients left. Slowly "absorb" them. if(M.nutrition >= 100) //Drain them until there's no nutrients left. Slowly "absorb" them.
var/oldnutrition = (M.nutrition * 0.05) var/oldnutrition = (M.nutrition * 0.05)
M.nutrition = (M.nutrition * 0.95) M.set_nutrition(M.nutrition * 0.95)
owner.nutrition += oldnutrition owner.adjust_nutrition(oldnutrition)
else if(M.nutrition < 100) //When they're finally drained. else if(M.nutrition < 100) //When they're finally drained.
absorb_living(M) absorb_living(M)
to_update = TRUE to_update = TRUE
@@ -168,7 +168,7 @@
DISABLE_BITFIELD(M.vore_flags, ABSORBED) DISABLE_BITFIELD(M.vore_flags, ABSORBED)
to_chat(M,"<span class='notice'>You suddenly feel solid again </span>") to_chat(M,"<span class='notice'>You suddenly feel solid again </span>")
to_chat(owner,"<span class='notice'>You feel like a part of you is missing.</span>") to_chat(owner,"<span class='notice'>You feel like a part of you is missing.</span>")
owner.nutrition -= 100 owner.adjust_nutrition(-100)
to_update = TRUE to_update = TRUE
//because dragons need snowflake guts //because dragons need snowflake guts

View File

@@ -74,4 +74,4 @@
user.adjustCloneLoss(-hp_gained, 0) user.adjustCloneLoss(-hp_gained, 0)
user.updatehealth() user.updatehealth()
user.adjustOrganLoss(ORGAN_SLOT_BRAIN, -hp_gained) // Zom Bee gibbers "BRAAAAISNSs!1!" user.adjustOrganLoss(ORGAN_SLOT_BRAIN, -hp_gained) // Zom Bee gibbers "BRAAAAISNSs!1!"
user.nutrition = min(user.nutrition + hp_gained, NUTRITION_LEVEL_FULL) user.adjust_nutrition(hp_gained, NUTRITION_LEVEL_FULL)

View File

@@ -113,13 +113,13 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
SM.copy_known_languages_from(M, FALSE) SM.copy_known_languages_from(M, FALSE)
playerClone = TRUE playerClone = TRUE
M.next_move_modifier = 1 M.next_move_modifier = 1
M.nutrition -= 500 M.adjust_nutrition(-500)
//Damage the clone //Damage the clone
SM.blood_volume = (BLOOD_VOLUME_NORMAL*SM.blood_ratio)/2 SM.blood_volume = (BLOOD_VOLUME_NORMAL*SM.blood_ratio)/2
SM.adjustCloneLoss(60, 0) SM.adjustCloneLoss(60, 0)
SM.setOrganLoss(ORGAN_SLOT_BRAIN, 40) SM.setOrganLoss(ORGAN_SLOT_BRAIN, 40)
SM.nutrition = startHunger/2 SM.set_nutrition(startHunger/2)
//Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger. //Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger.
SM.reagents.add_reagent(/datum/reagent/fermi/SDGFheal, volume) SM.reagents.add_reagent(/datum/reagent/fermi/SDGFheal, volume)
@@ -147,23 +147,23 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(21) if(21)
to_chat(M, "<span class='notice'>You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.</span>") to_chat(M, "<span class='notice'>You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.</span>")
if(22 to 29) if(22 to 29)
M.nutrition = M.nutrition + (M.nutrition/10) M.adjust_nutrition(M.nutrition/10)
if(30) if(30)
to_chat(M, "<span class='notice'>You feel the synethic cells grow and expand within yourself, bloating your body outwards.</span>") to_chat(M, "<span class='notice'>You feel the synethic cells grow and expand within yourself, bloating your body outwards.</span>")
if(31 to 49) if(31 to 49)
M.nutrition = M.nutrition + (M.nutrition/5) M.adjust_nutrition(M.nutrition/5)
if(50) if(50)
to_chat(M, "<span class='notice'>The synthetic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.</span>") to_chat(M, "<span class='notice'>The synthetic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.</span>")
M.next_move_modifier += 4//If this makes you fast then please fix it, it should make you slow!! M.next_move_modifier += 4//If this makes you fast then please fix it, it should make you slow!!
//candidates = pollGhostCandidates("Do you want to play as a clone of [M.name] and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies //candidates = pollGhostCandidates("Do you want to play as a clone of [M.name] and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies
if(51 to 79) if(51 to 79)
M.nutrition = M.nutrition + (M.nutrition/2) M.adjust_nutrition(M.nutrition/2)
if(80) if(80)
to_chat(M, "<span class='notice'>The cells begin to precipitate outwards of your body, you feel like you'll split soon...</span>") to_chat(M, "<span class='notice'>The cells begin to precipitate outwards of your body, you feel like you'll split soon...</span>")
if (M.nutrition < 20000) if (M.nutrition < 20000)
M.nutrition = 20000 //https://www.youtube.com/watch?v=Bj_YLenOlZI M.set_nutrition(20000) //https://www.youtube.com/watch?v=Bj_YLenOlZI
if(86)//Upon splitting, you get really hungry and are capable again. Deletes the chem after you're done. if(86)//Upon splitting, you get really hungry and are capable again. Deletes the chem after you're done.
M.nutrition = 15//YOU BEST BE EATTING AFTER THIS YOU CUTIE M.set_nutrition(15)//YOU BEST BE EATTING AFTER THIS YOU CUTIE
M.next_move_modifier -= 4 M.next_move_modifier -= 4
to_chat(M, "<span class='notice'>Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.</span>") to_chat(M, "<span class='notice'>Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.</span>")
@@ -204,7 +204,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.heal_bodypart_damage(1,1) M.heal_bodypart_damage(1,1)
M.next_move_modifier = 1 M.next_move_modifier = 1
if (M.nutrition < 1500) if (M.nutrition < 1500)
M.nutrition += 250 M.adjust_nutrition(250)
else if (unitCheck == TRUE && !M.has_status_effect(/datum/status_effect/chem/SGDF))// If they're ingested a little bit (10u minimum), then give them a little healing. else if (unitCheck == TRUE && !M.has_status_effect(/datum/status_effect/chem/SGDF))// If they're ingested a little bit (10u minimum), then give them a little healing.
unitCheck = FALSE unitCheck = FALSE
to_chat(M, "<span class='notice'>the cells fail to hold enough mass to generate a clone, instead diffusing into your system.</span>") to_chat(M, "<span class='notice'>the cells fail to hold enough mass to generate a clone, instead diffusing into your system.</span>")
@@ -213,7 +213,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.blood_volume += 100 M.blood_volume += 100
M.next_move_modifier = 1 M.next_move_modifier = 1
if (M.nutrition < 1500) if (M.nutrition < 1500)
M.nutrition += 500 M.adjust_nutrition(500)
/datum/reagent/fermi/SDGF/reaction_mob(mob/living/carbon/human/M, method=TOUCH, reac_volume) /datum/reagent/fermi/SDGF/reaction_mob(mob/living/carbon/human/M, method=TOUCH, reac_volume)
if(volume<5) if(volume<5)
@@ -245,7 +245,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
SM.blood_volume = (BLOOD_VOLUME_NORMAL*SM.blood_ratio)/1.5 SM.blood_volume = (BLOOD_VOLUME_NORMAL*SM.blood_ratio)/1.5
SM.adjustCloneLoss((bodydamage/10), 0) SM.adjustCloneLoss((bodydamage/10), 0)
SM.setOrganLoss(ORGAN_SLOT_BRAIN, (bodydamage/10)) SM.setOrganLoss(ORGAN_SLOT_BRAIN, (bodydamage/10))
SM.nutrition = 400 SM.adjust_nutrition(400)
if(bodydamage>200) if(bodydamage>200)
SM.gain_trauma_type(BRAIN_TRAUMA_MILD) SM.gain_trauma_type(BRAIN_TRAUMA_MILD)
if(bodydamage>300) if(bodydamage>300)
@@ -285,7 +285,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.blood_volume += 10 M.blood_volume += 10
M.adjustCloneLoss(-2, 0) M.adjustCloneLoss(-2, 0)
M.setOrganLoss(ORGAN_SLOT_BRAIN, -1) M.setOrganLoss(ORGAN_SLOT_BRAIN, -1)
M.nutrition += 10 M.adjust_nutrition(10)
..() ..()
//Unobtainable, used if SDGF is impure but not too impure //Unobtainable, used if SDGF is impure but not too impure
@@ -318,27 +318,27 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
to_chat(M, "<span class='notice'>You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.</span>") to_chat(M, "<span class='notice'>You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.</span>")
startHunger = M.nutrition startHunger = M.nutrition
if(21 to 29) if(21 to 29)
M.nutrition = M.nutrition + (M.nutrition/10) M.adjust_nutrition(M.nutrition/10)
if(30) if(30)
to_chat(M, "<span class='notice'>You feel the synethic cells grow and expand within yourself, bloating your body outwards.</span>") to_chat(M, "<span class='notice'>You feel the synethic cells grow and expand within yourself, bloating your body outwards.</span>")
if(31 to 49) if(31 to 49)
M.nutrition = M.nutrition + (M.nutrition/5) M.adjust_nutrition(M.nutrition/5)
if(50) if(50)
to_chat(M, "<span class='notice'>The synethic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.</span>") to_chat(M, "<span class='notice'>The synethic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.</span>")
M.next_move_modifier = 4//If this makes you fast then please fix it, it should make you slow!! M.next_move_modifier = 4//If this makes you fast then please fix it, it should make you slow!!
if(51 to 73) if(51 to 73)
M.nutrition = M.nutrition + (M.nutrition/2) M.adjust_nutrition(M.nutrition/2)
if(74) if(74)
to_chat(M, "<span class='notice'>The cells begin to precipitate outwards of your body, but... something is wrong, the sythetic cells are beginnning to rot...</span>") to_chat(M, "<span class='notice'>The cells begin to precipitate outwards of your body, but... something is wrong, the sythetic cells are beginnning to rot...</span>")
if (M.nutrition < 20000) //whoever knows the maxcap, please let me know, this seems a bit low. if (M.nutrition < 20000) //whoever knows the maxcap, please let me know, this seems a bit low.
M.nutrition = 20000 //https://www.youtube.com/watch?v=Bj_YLenOlZI M.set_nutrition(20000) //https://www.youtube.com/watch?v=Bj_YLenOlZI
if(75 to 85) if(75 to 85)
M.adjustToxLoss(1, 0)// the warning! M.adjustToxLoss(1, 0)// the warning!
if(86)//mean clone time! if(86)//mean clone time!
if (!M.reagents.has_reagent(/datum/reagent/medicine/pen_acid))//Counterplay is pent.) if (!M.reagents.has_reagent(/datum/reagent/medicine/pen_acid))//Counterplay is pent.)
message_admins("(non-infectious) SDZF: Zombie spawned at [M] [COORD(M)]!") message_admins("(non-infectious) SDZF: Zombie spawned at [M] [COORD(M)]!")
M.nutrition = startHunger - 500//YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE M.set_nutrition(startHunger - 500) //YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE
M.next_move_modifier = 1 M.next_move_modifier = 1
to_chat(M, "<span class='warning'>Your body splits away from the cell clone of yourself, your attempted clone birthing itself violently from you as it begins to shamble around, a terrifying abomination of science.</span>") to_chat(M, "<span class='warning'>Your body splits away from the cell clone of yourself, your attempted clone birthing itself violently from you as it begins to shamble around, a terrifying abomination of science.</span>")
M.visible_message("[M] suddenly shudders, and splits into a funky smelling copy of themselves!") M.visible_message("[M] suddenly shudders, and splits into a funky smelling copy of themselves!")
@@ -354,7 +354,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
else//easier to deal with else//easier to deal with
to_chat(M, "<span class='notice'>The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour!</span>") to_chat(M, "<span class='notice'>The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour!</span>")
M.nutrition = startHunger - 500 M.set_nutrition(startHunger - 500)
var/mob/living/simple_animal/slime/S = new(get_turf(M.loc),"grey") //TODO: replace slime as own simplemob/add tumour slime cores for science/chemistry interplay var/mob/living/simple_animal/slime/S = new(get_turf(M.loc),"grey") //TODO: replace slime as own simplemob/add tumour slime cores for science/chemistry interplay
S.damage_coeff = list(BRUTE = ((1 / volume)**0.1) , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) S.damage_coeff = list(BRUTE = ((1 / volume)**0.1) , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
S.name = "Living teratoma" S.name = "Living teratoma"

View File

@@ -94,7 +94,7 @@
to_chat(M, "<span class='userdanger'>Your wavefunction feels like it's been ripped in half. You feel empty inside.</span>") to_chat(M, "<span class='userdanger'>Your wavefunction feels like it's been ripped in half. You feel empty inside.</span>")
log_game("FERMICHEM: [M] ckey: [M.key] has become addicted to eigenstasium") log_game("FERMICHEM: [M] ckey: [M.key] has become addicted to eigenstasium")
M.Jitter(10) M.Jitter(10)
M.nutrition = M.nutrition - (M.nutrition/15) M.adjust_nutrition(-M.nutrition/15)
..() ..()
/datum/reagent/fermi/eigenstate/addiction_act_stage2(mob/living/M) /datum/reagent/fermi/eigenstate/addiction_act_stage2(mob/living/M)