Merged the old gs code with the new Hyper code

This commit is contained in:
KabKebab
2021-10-16 18:45:58 +02:00
parent 1c37b0652a
commit d1eda326c8
87 changed files with 940 additions and 54 deletions
+15 -1
View File
@@ -148,8 +148,22 @@
#define SANITY_CRAZY 25
#define SANITY_INSANE 0
//Fullness levels, no more infinite eating my dudes!
#define FULLNESS_LEVEL_NOMOREPLZ 70
#define FULLNESS_LEVEL_BEEG 35
#define FULLNESS_LEVEL_BLOATED 20
#define FULLNESS_LEVEL_FILLED 10
#define FULLNESS_LEVEL_HALF_FULL 5
#define FULLNESS_LEVEL_EMPTY 0
//Fatness levels, Here we go!
#define FATNESS_LEVEL_BLOB 1671
#define FATNESS_LEVEL_IMMOBILE 950
#define FATNESS_LEVEL_MORBIDLY_OBESE 650
#define FATNESS_LEVEL_OBESE 350
#define FATNESS_LEVEL_FAT 100
//Nutrition levels for humans
#define NUTRITION_LEVEL_FAT 600
#define NUTRITION_LEVEL_FULL 550
#define NUTRITION_LEVEL_WELL_FED 450
#define NUTRITION_LEVEL_FED 350
+4
View File
@@ -64,6 +64,10 @@
#define TRAIT_DEAF "deaf"
#define TRAIT_NEARSIGHT "nearsighted"
#define TRAIT_FAT "fat"
#define TRAIT_OBESE "obese"
#define TRAIT_MORBIDLYOBESE "morbildyobese"
#define TRAIT_IMMOBILE "immobile"
#define TRAIT_BLOB "blobweight"
#define TRAIT_HUSK "husk"
#define TRAIT_NOCLONE "noclone"
#define TRAIT_CLUMSY "clumsy"
+3 -1
View File
@@ -36,6 +36,7 @@ GLOBAL_VAR_INIT(vending_m_choices, list(
"NanoMed Plus" = image(icon = 'icons/obj/vending.dmi', icon_state = "med"),
"NanoMed" = image(icon = 'icons/obj/vending.dmi', icon_state = "wallmed"),
"KinkMate" = image(icon = 'icons/obj/citvending.dmi', icon_state = "kink"),
"Meal Vendor" = image(icon = 'icons/obj/vending.dmi', icon_state = "mealdor"),
))
// This GLOBAL list is just here to be here.
GLOBAL_VAR_INIT(vending_machines, list(
@@ -74,5 +75,6 @@ GLOBAL_VAR_INIT(vending_machines, list(
/obj/machinery/vending/clothing,
/obj/machinery/vending/medical,
/obj/machinery/vending/wallmed,
/obj/machinery/vending/kink
/obj/machinery/vending/kink,
/obj/machinery/vending/mealdor
))
+37 -1
View File
@@ -151,12 +151,48 @@
icon_state = "too_much_tox"
//End gas alerts
//GS13 fat alerts
/obj/screen/alert/blob
name = "Fatty blob"
desc = "Every last piece of your corpulent body is now flush and bloated with vast globs of blubber. Your corpulence is such that you are akin to a gigantic, towering wad of dough. Your thoughts are scattered, and the only thing in your mind is that you want to eat more and more"
icon_state = "blob"
/obj/screen/alert/immobile
name = "Immobile"
desc = "Fat has taken over your body, now colossal in size and loaded with cumbersome flab. You are completely unable to move the bulk that has set upon your body. But for whatever reason, you can't help but blush with strange fascination at every moment you're aware of your tremendous size..."
icon_state = "immobile"
/obj/screen/alert/morbidlyobese
name = "Morbidly Obese"
desc = "Every inch of you is stuffed with copious amounts of fat, you feel yourself struggling to haul the heft of your body. Your thoughts wander to strange, fleeting fantasies of growing bigger yet..."
icon_state = "morbobese"
/obj/screen/alert/obese
name = "Obese"
desc = "Your body is swollen with lard, and it's challenging to move. Despite this, there's something... pleasing about being so large."
icon_state = "obese"
/obj/screen/alert/fat
name = "Fat"
desc = "You ate too much food, lardass. Run around the station and lose some weight."
desc = "You ate too much food, and now your body has plumped up, let's hope your clothes don't rip."
icon_state = "fat"
/obj/screen/alert/bloated
name = "Bloated stomach"
desc = "Your stomach is a bit too full"
icon_state = "fat"
/obj/screen/alert/stuffed
name = "Completely stuffed"
desc = "Whatever you ate, you ate too much. Your stomach has stretched to accomodate its contents, forming a very obvious belly"
icon_state = "fat"
/obj/screen/alert/beegbelly
name = "Walking belly"
desc = "You've somehow managed to fit even more in your stomach. Can you even stand?"
icon_state = "obese"
/obj/screen/alert/hungry
name = "Hungry"
desc = "Some food would be good right about now."
+1
View File
@@ -255,6 +255,7 @@ SUBSYSTEM_DEF(mapping)
if(config.minetype == "lavaland")
INIT_ANNOUNCE("Loading Mining...")
LoadGroup(FailedZs, "Lavaland_Lower", "map_files/Mining", "Lavaland_Lower.dmm", default_traits = ZTRAITS_LAVALAND_UNDERRGOUND)
LoadGroup(FailedZs, "Lavaland_Demone", "map_files/Mining", "Lavaland_Demone.dmm", default_traits = ZTRAITS_LAVALAND_UNDERRGOUND)
LoadGroup(FailedZs, "Lavaland", "map_files/Mining", "Lavaland.dmm", default_traits = ZTRAITS_LAVALAND)
LoadGroup(FailedZs, "Diner", "map_files/hyper", "Diner.dmm", default_traits = ZTRAITS_DINER)
else if (!isnull(config.minetype))
+7 -3
View File
@@ -163,6 +163,7 @@
holdmyinsanityeffect = insanity_effect
HandleNutrition(owner)
HandleFatness(owner)
HandleThirst(owner)
/datum/component/mood/proc/setSanity(amount, minimum=SANITY_INSANE, maximum=SANITY_NEUTRAL)//I'm sure bunging this in here will have no negative repercussions.
@@ -290,11 +291,14 @@
/datum/component/mood/proc/hud_click(datum/source, location, control, params, mob/user)
print_mood(user)
/datum/component/mood/proc/HandleFatness(mob/living/L)
switch(L.fatness)
if(FATNESS_LEVEL_FAT to INFINITY)
add_event(null, "fatness", /datum/mood_event/fat)
/datum/component/mood/proc/HandleNutrition(mob/living/L)
switch(L.nutrition)
if(NUTRITION_LEVEL_FULL to INFINITY)
add_event(null, "nutrition", /datum/mood_event/fat)
if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL)
if(NUTRITION_LEVEL_WELL_FED to INFINITY)
add_event(null, "nutrition", /datum/mood_event/wellfed)
if( NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED)
add_event(null, "nutrition", /datum/mood_event/fed)
+10
View File
@@ -308,3 +308,13 @@
name = "snowman"
desc = "Several lumps of snow put together to form a snowman."
icon_state = "snowman"
/////////////////////V Statues from GS13 V/////////////////////////////////////////
/obj/structure/statue/blueberry
max_integrity = 500
/obj/structure/statue/blueberry
name = "blueberry statue"
desc = "A statue resembling a poor humanoid creature shaped like a ball."
icon_state = "blueberry"
+15 -1
View File
@@ -100,6 +100,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/body_size = 100 //Body Size in percent
var/can_get_preg = 0 //if they can get preggers
//GS13
var/starting_weight = 0 //how thicc you wanna be at start
//HS13 jobs
var/sillyroles = FALSE //for clown and mime
var/roleplayroles = FALSE //for the roleplay roles
@@ -315,6 +318,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
//H13 make body size compatable with the current save.
if (body_size == null)
body_size = 100
if (starting_weight == null)
starting_weight = 0
dat += "</center>"
@@ -467,6 +472,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if (body_size == null)
dat += "<b>Sprite Size:</b> <a href='?_src_=prefs;preference=bodysize;task=input'>[body_size]%</a><br>"
mutant_colors = TRUE
//GS13 fatness
dat += "<b>Starting weight :</b> <a href='?_src_=prefs;preference=fatness;task=input'>[starting_weight]</a><br>"
if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits))
@@ -2465,7 +2472,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if (new_bodysize)
body_size = max(min( round(text2num(new_bodysize)), MAX_BODYSIZE),MIN_BODYSIZE)
//GS13 fatness
if("fatness")
var/new_fatness = input(user, "Choose your amount of fat at start :\n(0-2000), Fat changes appearance and move speed. \nThresholds are 100, 350, 650, 950 and 1671. Fair warning : being too fat will make you immobile", "Character Preference") as num|null
if (new_fatness)
starting_weight = max(min( round(text2num(new_fatness)), 2000),0)
if("ui")
var/pickedui = input(user, "Choose your UI style.", "Character Preference", UI_style) as null|anything in GLOB.available_ui_styles
@@ -2804,6 +2816,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
character.custom_body_size = body_size
character.breedable = 0
character.fatness = starting_weight
character.gender = gender
character.age = age
@@ -53,6 +53,7 @@
checkLiked(fraction, M)
reagents.reaction(M, INGEST, fraction)
reagents.trans_to(M, gulp_size)
M.fullness += min(gulp_size, reagents.total_volume) // GS13 drinks will fill your stomach
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
+12 -9
View File
@@ -35,6 +35,7 @@ All foods are distributed among various categories. Use common sense.
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
obj_flags = UNIQUE_RENAME
grind_results = list() //To let them be ground up to transfer their reagents
var/bitevolume = 1 //GS13 how much space in the stomach this food takes.
var/bitesize = 2
var/bitecount = 0
var/trash = null
@@ -93,30 +94,31 @@ All foods are distributed among various categories. Use common sense.
if(!canconsume(M, user))
return 0
var/fullness = M.nutrition + 10
for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
fullness += C.nutriment_factor * C.volume / C.metabolization_rate
// GS13 Changed fullness mechanic
//var/fullness = M.nutrition + 10
//for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
// fullness += C.nutriment_factor * C.volume / C.metabolization_rate
if(M == user) //If you're eating it yourself.
if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
to_chat(M, "<span class='notice'>You don't feel like eating any more junk food at the moment.</span>")
return 0
else if(fullness <= 50)
else if(M.fullness < FULLNESS_LEVEL_HALF_FULL)
user.visible_message("<span class='notice'>[user] hungrily takes a [eatverb] from \the [src], gobbling it down!</span>", "<span class='notice'>You hungrily take a [eatverb] from \the [src], gobbling it down!</span>")
else if(fullness > 50 && fullness < 150)
else if(M.fullness >= FULLNESS_LEVEL_HALF_FULL && M.fullness < FULLNESS_LEVEL_FILLED)
user.visible_message("<span class='notice'>[user] hungrily takes a [eatverb] from \the [src].</span>", "<span class='notice'>You hungrily take a [eatverb] from \the [src].</span>")
else if(fullness > 150 && fullness < 500)
else if(M.fullness >= FULLNESS_LEVEL_FILLED && M.fullness < FULLNESS_LEVEL_BLOATED)
user.visible_message("<span class='notice'>[user] takes a [eatverb] from \the [src].</span>", "<span class='notice'>You take a [eatverb] from \the [src].</span>")
else if(fullness > 500 && fullness < 600)
else if(M.fullness >= FULLNESS_LEVEL_BLOATED && M.fullness < FULLNESS_LEVEL_BEEG)
user.visible_message("<span class='notice'>[user] unwillingly takes a [eatverb] of a bit of \the [src].</span>", "<span class='warning'>You unwillingly take a [eatverb] of a bit of \the [src].</span>")
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
else if(M.fullness >= (FULLNESS_LEVEL_BEEG * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
user.visible_message("<span class='warning'>[user] cannot force any more of \the [src] to go down [user.p_their()] throat!</span>", "<span class='danger'>You cannot force any more of \the [src] to go down your throat!</span>")
return 0
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
M.changeNext_move(CLICK_CD_MELEE * 0.5) //nom nom nom
else
if(!isbrain(M)) //If you're feeding it to someone else.
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
if(M.fullness <= (FULLNESS_LEVEL_NOMOREPLZ * (1 + M.overeatduration / 1000)))
M.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>", \
"<span class='userdanger'>[user] attempts to feed [M] [src].</span>")
else
@@ -138,6 +140,7 @@ All foods are distributed among various categories. Use common sense.
if(M.satiety > -200)
M.satiety -= junkiness
playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
M.fullness += bitevolume;
if(reagents.total_volume)
SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user)
var/fraction = min(bitesize / reagents.total_volume, 1)
@@ -77,6 +77,7 @@
trash = /obj/item/trash/popcorn
list_reagents = list(/datum/reagent/consumable/nutriment = 2)
bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0
bitevolume = 0.1
filling_color = "#FFEFD5"
tastes = list("popcorn" = 3, "butter" = 1)
foodtype = JUNKFOOD
@@ -144,6 +144,14 @@
is_decorated = TRUE
filling_color = "#879630"
/obj/item/reagent_containers/food/snacks/donut/purefat //DEBUG DONUT THAT MAKES YOU FAT
name = "Donut-that-makes-you-fat"
desc = "Careful, it'll go to your hips"
bitesize = 9999
list_reagents = list("nutriment" = 9999)
icon_state = "donut1"
foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR
/obj/item/reagent_containers/food/snacks/donut/semen
name = "\"cream\" donut"
desc = "That cream looks a little runny..."
@@ -399,10 +399,7 @@
if(!arrivals_docked)
var/obj/screen/splash/Spl = new(character.client, TRUE)
Spl.Fade(TRUE)
if(!prob(1))
character.playsound_local(get_turf(character), 'sound/voice/Approaching.ogg', 25)
else
character.playsound_local(get_turf(character), 'sound/voice/boat.ogg', 35) //boatbomber easter egg. (love your videos man, thanks for visiting!)
character.playsound_local(get_turf(character), 'sound/voice/Approaching.ogg', 25)
character.update_parallax_teleport()
@@ -39,10 +39,15 @@
if(. && mob_has_gravity()) //floating is easy
if(HAS_TRAIT(src, TRAIT_NOHUNGER))
nutrition = NUTRITION_LEVEL_FED - 1 //just less than feeling vigorous
else if(nutrition && stat != DEAD)
nutrition -= HUNGER_FACTOR/12
if(m_intent == MOVE_INTENT_RUN)
nutrition -= HUNGER_FACTOR/5
else if(nutrition && stat != DEAD) // GS13 : one fourth of the consumed energy comes from fat
var/fat_burned = min(HUNGER_FACTOR/40, fatness)
var/nutrition_lost_divider = 12
if(m_intent == MOVE_INTENT_RUN) // GS13 : running will burn more fat (you'll get more tired tho)
fat_burned = min(HUNGER_FACTOR/20, fatness)
nutrition_lost_divider = 5
nutrition -= (HUNGER_FACTOR/nutrition_lost_divider - fat_burned)
fatness -= fat_burned
if(HAS_TRAIT(src, TRAIT_NOTHIRST))
thirst = THIRST_LEVEL_QUENCHED - 1
@@ -25,7 +25,7 @@
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if(skipface || get_visible_name() == "Unknown")
. += "You can't make out what species they are."
else
@@ -245,9 +245,24 @@
if(pulledby && pulledby.grab_state)
msg += "[t_He] [t_is] restrained by [pulledby]'s grip.\n"
//GS13 fat examine
switch(fullness)
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
msg += "[t_He] look[p_s()] like [t_He] ate a bit too much.\n"
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
msg += "[t_His] stomach looks very round and very full.\n"
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
msg += "[t_His] stomach has been stretched to enormous proportions.\n"
if(nutrition < NUTRITION_LEVEL_STARVING - 50)
msg += "[t_He] [t_is] severely malnourished.\n"
else if(nutrition >= NUTRITION_LEVEL_FAT)
if(fatness >= FATNESS_LEVEL_IMMOBILE)
msg += "[t_His] body is buried in an overflowing surplus of adipose, and [t_His] legs are completely buried beneath layers of meaty, obese flesh.\n"
else if(fatness >= FATNESS_LEVEL_MORBIDLY_OBESE)
msg += "[t_He] [t_is] utterly stuffed with abundant lard, [t_He] doesn't seem to be able to move much.\n"
else if(fatness >= FATNESS_LEVEL_OBESE)
msg += "[t_He] [t_is] engorged with fat, [t_His] body laden in rolls of fattened flesh.\n"
else if(fatness >= FATNESS_LEVEL_FAT)
if(user.nutrition < NUTRITION_LEVEL_STARVING - 50)
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
else
+108 -9
View File
@@ -1233,15 +1233,77 @@ GLOBAL_LIST_EMPTY(roundstart_races)
//The fucking TRAIT_FAT mutation is the dumbest shit ever. It makes the code so difficult to work with
if(HAS_TRAIT(H, TRAIT_FAT))//I share your pain, past coder.
if(H.overeatduration < 100)
to_chat(H, "<span class='notice'>You feel fit again!</span>")
if(H.fatness < FATNESS_LEVEL_FAT)//this is a mess, indeed.
to_chat(H, "<span class='notice'>You feel fit again!</span>")//GS13 Added a whole bunch of new fatness traits. Truly I am a masochist
REMOVE_TRAIT(H, TRAIT_FAT, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_OBESE)
to_chat(H, "<span class='danger'>You feel even plumper!</span>")
REMOVE_TRAIT(H, TRAIT_FAT, OBESITY)
ADD_TRAIT(H, TRAIT_OBESE, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_OBESE))
if(H.fatness < FATNESS_LEVEL_OBESE)
to_chat(H, "<span class='notice'>You feel like you've lost weight!</span>")
REMOVE_TRAIT(H, TRAIT_OBESE, OBESITY)
ADD_TRAIT(H, TRAIT_FAT, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_MORBIDLY_OBESE)
to_chat(H, "<span class='danger'>You feel a lot fatter than before</span>")
REMOVE_TRAIT(H, TRAIT_OBESE, OBESITY)
ADD_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_MORBIDLYOBESE))
if(H.fatness < FATNESS_LEVEL_MORBIDLY_OBESE)
to_chat(H, "<span class='notice'>You feel a bit less fat!</span>")
REMOVE_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
ADD_TRAIT(H, TRAIT_OBESE, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_IMMOBILE)
to_chat(H, "<span class='danger'>You feel your fat belly rubbing on the floor!</span>")
REMOVE_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
ADD_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_IMMOBILE))
if(H.fatness < FATNESS_LEVEL_IMMOBILE)
to_chat(H, "<span class='notice'>You feel less restrained by your fat!</span>")
REMOVE_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
ADD_TRAIT(H, TRAIT_MORBIDLYOBESE, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(H.fatness >= FATNESS_LEVEL_BLOB)
to_chat(H, "<span class='danger'>You feel like you've become a mountain of fat!</span>")
REMOVE_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
ADD_TRAIT(H, TRAIT_BLOB, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else if(HAS_TRAIT(H, TRAIT_BLOB))
if(H.fatness < FATNESS_LEVEL_BLOB)
to_chat(H, "<span class='notice'>You feel like you've regained some mobility!</span>")
REMOVE_TRAIT(H, TRAIT_BLOB, OBESITY)
ADD_TRAIT(H, TRAIT_IMMOBILE, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
else
if(H.overeatduration >= 100)
if(H.fatness >= FATNESS_LEVEL_FAT)
to_chat(H, "<span class='danger'>You suddenly feel blubbery!</span>")
ADD_TRAIT(H, TRAIT_FAT, OBESITY)
H.update_body()
H.update_inv_w_uniform()
H.update_inv_wear_suit()
@@ -1270,14 +1332,22 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if (H.nutrition > NUTRITION_LEVEL_FULL)
if(H.overeatduration < 600) //capped so people don't take forever to unfat
var/fatConversionRate = 100 //GS13 what percentage of the excess nutrition should go to fat (total nutrition to transfer can't be under 1)
var/nutritionThatBecomesFat = max((H.nutrition - NUTRITION_LEVEL_FULL)*(fatConversionRate / 100),1)
H.nutrition -= nutritionThatBecomesFat
H.fatness += nutritionThatBecomesFat
if(H.fullness > FULLNESS_LEVEL_EMPTY)//GS13 stomach-emptying routine
var/ticksToEmptyStomach = 20 // GS13 how many ticks it takes to decrease the fullness by 1
H.fullness -= 1/ticksToEmptyStomach
if (H.fullness > FULLNESS_LEVEL_BLOATED) //GS13 overeating depends on fullness now
if(H.overeatduration < 5000) //capped so people don't take forever to unfat
H.overeatduration++
else
if(H.overeatduration > 1)
H.overeatduration -= 2 //doubled the unfat rate
H.overeatduration -= 1 //doubled the unfat rate -- GS13 Nah, put it back
//metabolism change
if(H.nutrition > NUTRITION_LEVEL_FAT)
if(H.nutrition > NUTRITION_LEVEL_FULL +100)
H.metabolism_efficiency = 1
else if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80)
if(H.metabolism_efficiency != 1.25 && !HAS_TRAIT(H, TRAIT_NOHUNGER))
@@ -1293,14 +1363,37 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.metabolism_efficiency = 1
switch(H.nutrition)
if(NUTRITION_LEVEL_FULL to INFINITY)
H.throw_alert("nutrition", /obj/screen/alert/fat)
if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL)
H.clear_alert("nutrition")
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
H.throw_alert("nutrition", /obj/screen/alert/hungry)
if(0 to NUTRITION_LEVEL_STARVING)
H.throw_alert("nutrition", /obj/screen/alert/starving)
switch(H.fullness)
if(0 to FULLNESS_LEVEL_BLOATED)
H.clear_alert("fullness")
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
H.throw_alert("fullness", /obj/screen/alert/bloated)
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
H.throw_alert("fullness", /obj/screen/alert/stuffed)
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
H.throw_alert("fullness", /obj/screen/alert/beegbelly)
switch(H.fatness)
if(FATNESS_LEVEL_BLOB to INFINITY)
H.throw_alert("fatness", /obj/screen/alert/blob)
if(FATNESS_LEVEL_IMMOBILE to FATNESS_LEVEL_BLOB)
H.throw_alert("fatness", /obj/screen/alert/immobile)
if(FATNESS_LEVEL_MORBIDLY_OBESE to FATNESS_LEVEL_IMMOBILE)
H.throw_alert("fatness", /obj/screen/alert/morbidlyobese)
if(FATNESS_LEVEL_OBESE to FATNESS_LEVEL_MORBIDLY_OBESE)
H.throw_alert("fatness", /obj/screen/alert/obese)
if(FATNESS_LEVEL_FAT to FATNESS_LEVEL_OBESE)
H.throw_alert("fatness", /obj/screen/alert/fat)
if(0 to FATNESS_LEVEL_FAT)
H.clear_alert("fatness")
/datum/species/proc/handle_thirst(mob/living/carbon/human/H)
if(HAS_TRAIT(src, TRAIT_NOTHIRST))
@@ -1440,7 +1533,13 @@ GLOBAL_LIST_EMPTY(roundstart_races)
. += 0.5
*/
if(HAS_TRAIT(H, TRAIT_FAT))
. += (1.2 - flight)
. += (1.5 - flight)
if(HAS_TRAIT(H, TRAIT_OBESE))//GS13 fat levels move speed decrease
. += (3 - flight)
if(HAS_TRAIT(H, TRAIT_MORBIDLYOBESE))
. += (6 - flight)
if(HAS_TRAIT(H, TRAIT_IMMOBILE))
. += 10 // No wings are going to lift that much off the ground
if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTCOLD))
. += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR
return .
+2
View File
@@ -516,6 +516,8 @@
SetSleeping(0, FALSE)
radiation = 0
nutrition = NUTRITION_LEVEL_FED + 50
fullness = FULLNESS_LEVEL_HALF_FULL // GS13
fatness = 0 // GS13
thirst = THIRST_LEVEL_QUENCHED + 50
bodytemperature = BODYTEMP_NORMAL
set_blindness(0)
+2
View File
@@ -60,6 +60,8 @@
var/drowsyness = 0//Carbon
var/dizziness = 0//Carbon
var/jitteriness = 0//Carbon
var/fatness = 0//Carbon, GS13 addition
var/fullness = FULLNESS_LEVEL_HALF_FULL//Carbon, GS13 addition
var/nutrition = NUTRITION_LEVEL_START_MIN // randomised in Initialize
var/thirst = THIRST_LEVEL_START_MIN //same for this
var/satiety = 0//Carbon
+3
View File
@@ -84,6 +84,9 @@
if(!mob.Process_Spacemove(direct))
return FALSE
if(HAS_TRAIT(mob,TRAIT_BLOB)) // GS13 are we too fat to move?
return FALSE
//We are now going to move
var/add_delay = mob.movement_delay()
mob.set_glide_size(DELAY_TO_GLIDE_SIZE(add_delay * (((direct & 3) && (direct & 12)) ? 2 : 1))) // set it now in case of pulled objects
@@ -83,7 +83,7 @@
/obj/effect/gluttony/CanPass(atom/movable/mover, turf/target)//So bullets will fly over and stuff.
if(ishuman(mover))
var/mob/living/carbon/human/H = mover
if(H.nutrition >= NUTRITION_LEVEL_FAT)
if(H.nutrition >= FATNESS_LEVEL_FAT)
H.visible_message("<span class='warning'>[H] pushes through [src]!</span>", "<span class='notice'>You've seen and eaten worse than this.</span>")
return TRUE
else
@@ -294,4 +294,4 @@
to_chat(user, "<span class='userdanger'>You feel overpowering pleasure surge through your entire body.</span>")
var/A = new /obj/item/reagent_containers/chalice/lust
user.put_in_hands(A)
chalice_taken = 1
chalice_taken = 1