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