mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-11 07:59:08 +01:00
Merged the old gs code with the new Hyper code
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 .
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user