From f9bfd0d3f0744a64a0057b372ee3565c4b0de75f Mon Sep 17 00:00:00 2001
From: Metis <100518708+sheepishgoat@users.noreply.github.com>
Date: Fri, 13 Sep 2024 16:25:53 -0400
Subject: [PATCH] under 100 now
---
.../game/objects/items/docility_implant.dm | 12 +-
GainStation13/code/machinery/feeding_tube.dm | 9 +-
GainStation13/code/mechanics/calorite.dm | 160 ++++++++++++++++++
GainStation13/code/mechanics/fatness.dm | 7 +-
.../code/mechanics/metal_cruncher.dm | 4 +-
GainStation13/code/mechanics/recipes.dm | 5 +
GainStation13/code/mechanics/web_weaving.dm | 4 +-
GainStation13/code/mobs/cakegolem.dm | 2 +-
.../code/mobs/races/caloritegolem.dm | 5 +-
GainStation13/code/mobs/slugcat.dm | 2 +-
.../code/modules/food_and_drinks/drinks.dm | 3 -
.../code/modules/food_and_drinks/food.dm | 4 +-
.../code}/modules/hud/alert.dm | 30 ++--
.../code/modules/hydroponics/lipoplant.dm | 2 +-
.../code/modules/mob/living/nutribot.dm | 30 ++--
.../code/modules/mob/living/species.dm | 59 +++++--
.../chemistry/reagents/consumable_reagents.dm | 28 +++
.../reagents/chemistry/recipes/fatchem.dm | 7 +
GainStation13/code/obj/items/holy.dm | 4 +-
code/__DEFINES/combat.dm | 4 +
.../mob/living/carbon/human/species.dm | 4 +
hyperstation/code/mobs/hugbot.dm | 6 +-
.../antagonists/wendigo/mob/metabolization.dm | 16 +-
.../antagonists/wendigo/mob/mob_defense.dm | 20 +--
.../code/modules/arousal/arousalhud.dm | 10 +-
.../modules/integrated_electronics/input.dm | 4 +-
hyperstation/code/modules/resize/resizing.dm | 6 +-
hyperstation/code/obj/leash.dm | 12 +-
tgstation.dme | 3 +
29 files changed, 359 insertions(+), 103 deletions(-)
create mode 100644 GainStation13/code/mechanics/calorite.dm
create mode 100644 GainStation13/code/mechanics/recipes.dm
rename {code => GainStation13/code}/modules/hud/alert.dm (80%)
diff --git a/GainStation13/code/game/objects/items/docility_implant.dm b/GainStation13/code/game/objects/items/docility_implant.dm
index 5cedf0645a..6c6b56349b 100644
--- a/GainStation13/code/game/objects/items/docility_implant.dm
+++ b/GainStation13/code/game/objects/items/docility_implant.dm
@@ -99,8 +99,8 @@
balls.fluid_mult = balls.fluid_mult * productivity_mult
balls.fluid_max_volume = balls.fluid_max_volume * productivity_mult
- if(target_human?.getorganslot("breasts"))
- var/obj/item/organ/genital/breasts/boobs = target_human?.getorganslot("breasts")
+ if(target_human?.getorganslot(ORGAN_SLOT_BREASTS))
+ var/obj/item/organ/genital/breasts/boobs = target_human?.getorganslot(ORGAN_SLOT_BREASTS)
boobs.fluid_mult = boobs.fluid_mult * productivity_mult
boobs.fluid_max_volume = boobs.fluid_max_volume * productivity_mult
@@ -109,17 +109,17 @@
if(!.)
return FALSE
- var/mob/living/carbon/human/target_human = source
+ var/mob/living/carbon/human/target_human = source
target_human.real_name = stored_name
- target_human.name = stored_name
+ target_human.name = stored_name
if(target_human?.getorganslot("testicles"))
var/obj/item/organ/genital/testicles/balls = target_human?.getorganslot("testicles")
balls.fluid_mult = balls.fluid_mult / productivity_mult
balls.fluid_max_volume = balls.fluid_max_volume / productivity_mult
- if(target_human?.getorganslot("breasts"))
- var/obj/item/organ/genital/breasts/boobs = target_human?.getorganslot("breasts")
+ if(target_human?.getorganslot(ORGAN_SLOT_BREASTS))
+ var/obj/item/organ/genital/breasts/boobs = target_human?.getorganslot(ORGAN_SLOT_BREASTS)
boobs.fluid_mult = boobs.fluid_mult / productivity_mult
boobs.fluid_max_volume = boobs.fluid_max_volume / productivity_mult
diff --git a/GainStation13/code/machinery/feeding_tube.dm b/GainStation13/code/machinery/feeding_tube.dm
index 498b174ca8..70f67d06b4 100644
--- a/GainStation13/code/machinery/feeding_tube.dm
+++ b/GainStation13/code/machinery/feeding_tube.dm
@@ -1,3 +1,8 @@
+/obj/machinery/iv_drip
+ /// What is the name of the thing being attached to the mob?
+ var/attachment_point = "needle"
+
+
/obj/machinery/iv_drip/feeding_tube
name = "\improper Feeding tube"
desc = "Originally meant to automatically feed cattle and farm animals, this model was repurposed for more... personal usage."
@@ -69,7 +74,7 @@
if(attached)
attached = null
update_icon()
-
+
return PROCESS_KILL
/obj/machinery/iv_drip/feeding_tube/attackby(obj/item/W, mob/user, params)
@@ -89,6 +94,6 @@
return FALSE
-//it sure is a solution.
+//it sure is a solution.
/obj/machinery/iv_drip/feeding_tube/toggle_mode()
return FALSE
diff --git a/GainStation13/code/mechanics/calorite.dm b/GainStation13/code/mechanics/calorite.dm
new file mode 100644
index 0000000000..7981404f56
--- /dev/null
+++ b/GainStation13/code/mechanics/calorite.dm
@@ -0,0 +1,160 @@
+/datum/material/calorite
+ name = "calorite"
+ sheet_type = /obj/item/stack/sheet/mineral/calorite
+
+/obj/item/stack/sheet/mineral/calorite
+ name = "calorite"
+ icon_state = "sheet-calorite"
+ item_state = "sheet-calorite"
+ singular_name = "calorite sheet"
+ sheettype = "calorite"
+ novariants = TRUE
+ grind_results = list(/datum/reagent/consumable/lipoifier = 2)
+ point_value = 40
+ merge_type = /obj/item/stack/sheet/mineral/calorite
+
+GLOBAL_LIST_INIT(calorite_recipes, list ( \
+ new/datum/stack_recipe("Calorite tile", /obj/item/stack/tile/mineral/calorite, 1, 4, 20), \
+ new/datum/stack_recipe("Fatty statue", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1),
+ new/datum/stack_recipe("Calorite doors", /obj/structure/mineral_door/calorite, 5, one_per_turf = 1, on_floor = 1),
+ ))
+
+/obj/item/stack/sheet/mineral/calorite/Initialize(mapload, new_amount, merge = TRUE)
+ recipes = GLOB.calorite_recipes
+ . = ..()
+
+
+/obj/item/stack/tile/mineral/calorite //GS13
+ name = "Calorite tile"
+ singular_name = "Calorite floor tile"
+ desc = "A tile made out of calorite. Bwoomph."
+ icon_state = "tile_calorite"
+ turf_type = /turf/open/floor/mineral/calorite
+ mineralType = "calorite"
+
+/obj/item/stack/tile/mineral/calorite/hide //GS13 - disguised variant
+ name = "Floor tile"
+ singular_name = "calorite floor tile"
+ desc = "A tile totally made out of steel."
+ icon_state = "tile"
+ turf_type = /turf/open/floor/mineral/calorite/hide
+
+/obj/item/stack/tile/mineral/calorite/strong //GS13 - strong variant
+ name = "Infused calorite tile"
+ singular_name = "Infused calorite floor tile"
+ desc = "A tile made out of stronger variant of calorite. Bwuurp."
+ icon_state = "tile_calorite_strong"
+ turf_type = /turf/open/floor/mineral/calorite/strong
+
+/obj/item/stack/tile/mineral/calorite/dance //GS13 - glamourous variant!
+ name = "Calorite dance floor"
+ singular_name = "Calorite dance floor tile"
+ desc = "A dance floor made out of calorite, for a party both you and your waistline will never forget!."
+ icon_state = "tile_calorite_dance"
+ turf_type = /turf/open/floor/mineral/calorite/dance
+
+
+/turf/open/floor/mineral/calorite
+ name = "Calorite floor"
+ icon_state = "calorite"
+ floor_tile = /obj/item/stack/tile/mineral/calorite
+ icons = list("calorite","calorite_dam")
+ var/last_event = 0
+ var/active = null
+ ///How much fatness is added to the user upon crossing?
+ var/fat_to_add = 25
+
+/turf/open/floor/mineral/calorite/Entered(mob/living/carbon/M)
+ if(!istype(M, /mob/living/carbon))
+ return FALSE
+ else
+ M.adjust_fatness(fat_to_add, FATTENING_TYPE_ITEM)
+
+// calorite floor, disguised version - GS13
+
+/turf/open/floor/mineral/calorite/hide
+ name = "Steel floor"
+ icon_state = "calorite_hide"
+ floor_tile = /obj/item/stack/tile/mineral/calorite/hide
+ icons = list("calorite_hide","calorite_dam")
+
+// calorite floor, powerful version - GS13
+
+/turf/open/floor/mineral/calorite/strong
+ name = "Infused calorite floor"
+ icon_state = "calorite_strong"
+ floor_tile = /obj/item/stack/tile/mineral/calorite/strong
+ icons = list("calorite_strong","calorite_dam")
+ fat_to_add = 100
+
+// calorite dance floor, groovy! - GS13
+
+/turf/open/floor/mineral/calorite/dance
+ name = "Calorite dance floor"
+ icon_state = "calorite_dance"
+ floor_tile = /obj/item/stack/tile/mineral/calorite/dance
+ icons = list("calorite_dance","calorite_dam")
+
+
+/obj/structure/statue/calorite
+ max_integrity = 400
+ custom_materials = list(/datum/material/calorite=MINERAL_MATERIAL_AMOUNT*5)
+
+/obj/structure/statue/calorite/fatty
+ name = "Fatty statue"
+ desc = "A statue of a well-rounded fatso."
+ icon_state = "fatty"
+ var/active = null
+ var/last_event = 0
+
+/obj/structure/statue/calorite/fatty/proc/beckon()
+ if(!active)
+ if(world.time > last_event+15)
+ active = 1
+ for(var/mob/living/carbon/human/M in orange(3,src))
+ to_chat(M, "You feel the statue calling to you, urging you to touch it...")
+ last_event = world.time
+ active = null
+ return
+ return
+
+/obj/structure/statue/calorite/fatty/proc/statue_fatten(mob/living/carbon/M)
+ if(!M.adjust_fatness(20, FATTENING_TYPE_ITEM))
+ to_chat(M, "Nothing happens.")
+ return
+
+ if(M.fatness < FATNESS_LEVEL_FATTER)
+ to_chat(M, "The moment your hand meets the statue, you feel a little warmer...")
+ else if(M.fatness < FATNESS_LEVEL_OBESE)
+ to_chat(M, "Upon each poke of the statue, you feel yourself get a little heavier.")
+ else if(M.fatness < FATNESS_LEVEL_EXTREMELY_OBESE)
+ to_chat(M, "With each touch you keep getting fatter... But the fatter you grow, the more enticed you feel to poke the statue.")
+ else if(M.fatness < FATNESS_LEVEL_BARELYMOBILE)
+ to_chat(M, "The world around you blur slightly as you focus on prodding the statue, your waistline widening further...")
+ else if(M.fatness < FATNESS_LEVEL_IMMOBILE)
+ to_chat(M, "A whispering voice gently compliments your massive body, your own mind begging to touch the statue.")
+ else
+ to_chat(M, "You can barely reach the statue past your floor-covering stomach! And yet, it still calls to you...")
+
+/obj/structure/statue/calorite/fatty/Bumped(atom/movable/AM)
+ beckon()
+ ..()
+
+/obj/structure/statue/calorite/fatty/Crossed(var/mob/AM)
+ .=..()
+ if(!.)
+ if(istype(AM))
+ beckon()
+
+/obj/structure/statue/calorite/fatty/Moved(atom/movable/AM)
+ beckon()
+ ..()
+
+/obj/structure/statue/calorite/fatty/attackby(obj/item/W, mob/living/carbon/M, params)
+ statue_fatten(M)
+
+/obj/structure/statue/calorite/fatty/attack_hand(mob/living/carbon/M)
+ statue_fatten(M)
+
+/obj/structure/statue/calorite/fatty/attack_paw(mob/living/carbon/M)
+ statue_fatten(M)
diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm
index 9d70113a23..c2357413cf 100644
--- a/GainStation13/code/mechanics/fatness.dm
+++ b/GainStation13/code/mechanics/fatness.dm
@@ -1,4 +1,4 @@
-GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/maintenance, /area/security/prison, /area/holodeck, /area/vacantoffice, /area/space, /area/ruin, /area/lavaland, /area/awaymission, /area/centcom, /area/fatlab))
+GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/maintenance, /area/security/prison, /area/holodeck, /area/commons/vacant_room/office, /area/space, /area/ruin, /area/lavaland, /area/awaymission, /area/centcom, /area/fatlab))
/mob/living/carbon
//Due to the changes needed to create the system to hide fatness, here's some notes:
@@ -24,7 +24,6 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/maintenance, /a
var/fullness_reduction_timer = 0
var/burpslurring = 0
- var/overeatduration = 0 // How long this guy is overeating //Carbon
var/fullness_reducion_timer = 0 // When was the last time they emoted to reduce their fullness
/**
@@ -248,3 +247,7 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/maintenance, /a
return needed_fatness
+/mob/living/carbon/proc/applyFatnessDamage(amount)
+ var/fat_to_add = ((amount * CONFIG_GET(number/damage_multiplier)) * FAT_DAMAGE_TO_FATNESS)
+ adjust_fatness(fat_to_add, FATTENING_TYPE_WEAPON)
+ return fat_to_add
diff --git a/GainStation13/code/mechanics/metal_cruncher.dm b/GainStation13/code/mechanics/metal_cruncher.dm
index dcf006a37c..ef2d5b9d5e 100644
--- a/GainStation13/code/mechanics/metal_cruncher.dm
+++ b/GainStation13/code/mechanics/metal_cruncher.dm
@@ -19,8 +19,8 @@
playsound(M,'sound/items/eatfood.ogg', rand(10,50), 1)
use(1)
M.nutrition += crunch_value
- if(HAS_TRAIT(M, TRAIT_VORACIOUS))
- M.changeNext_move(CLICK_CD_MELEE * 0.5)
+ //if(HAS_TRAIT(M, TRAIT_VORACIOUS))
+ // M.changeNext_move(CLICK_CD_MELEE * 0.5)
return
. = ..()
diff --git a/GainStation13/code/mechanics/recipes.dm b/GainStation13/code/mechanics/recipes.dm
new file mode 100644
index 0000000000..9ecfd34400
--- /dev/null
+++ b/GainStation13/code/mechanics/recipes.dm
@@ -0,0 +1,5 @@
+/datum/crafting_recipe/caloritedancefloor
+ name = "Calorite dance floor"
+ result = /obj/item/stack/tile/mineral/calorite/dance
+ reqs = list(/obj/item/stack/cable_coil = 3, /obj/item/stack/tile/mineral/calorite = 1)
+ category = CAT_MISC
diff --git a/GainStation13/code/mechanics/web_weaving.dm b/GainStation13/code/mechanics/web_weaving.dm
index 5902a2314e..0163ad277a 100644
--- a/GainStation13/code/mechanics/web_weaving.dm
+++ b/GainStation13/code/mechanics/web_weaving.dm
@@ -79,7 +79,7 @@
name = "web bindings"
desc = "A mesh of sticky web that binds whoever is stuck inside of it"
icon = 'GainStation13/icons/obj/clothing/web.dmi'
- worn_ico = 'GainStation13/icons/mob/web.dmi'
+ worn_icon = 'GainStation13/icons/mob/web.dmi'
icon_state = "web_bindings"
item_state = "web_bindings"
breakouttime = 600 //1 minute is reasonable.
@@ -89,7 +89,7 @@
/obj/item/clothing/suit/straight_jacket/web/equipped(mob/user, slot)
. = ..()
- if((user.get_item_by_slot(SLOT_WEAR_OCLOTHING)) != src && !QDELETED(src))
+ if((user.get_item_by_slot(ITEM_SLOT_OCLOTHING)) != src && !QDELETED(src))
qdel(src)
/obj/structure/spider/cocoon/quirk
diff --git a/GainStation13/code/mobs/cakegolem.dm b/GainStation13/code/mobs/cakegolem.dm
index 1550adf15b..fa8fede5b8 100644
--- a/GainStation13/code/mobs/cakegolem.dm
+++ b/GainStation13/code/mobs/cakegolem.dm
@@ -11,7 +11,7 @@
harm_intent_damage = 10
butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/reagent_containers/food/snacks/cakeslice/birthday = 9, \
/obj/item/reagent_containers/food/snacks/meat/slab = 2)
- response_harm = "takes a bite out of"
+ response_harm_simple = "takes a bite out of"
attacked_sound = 'sound/items/eatfood.ogg'
deathmessage = "loses its false life and collapses!"
death_sound = "bodyfall"
diff --git a/GainStation13/code/mobs/races/caloritegolem.dm b/GainStation13/code/mobs/races/caloritegolem.dm
index 761a89ca07..e8e21a71ed 100644
--- a/GainStation13/code/mobs/races/caloritegolem.dm
+++ b/GainStation13/code/mobs/races/caloritegolem.dm
@@ -18,9 +18,6 @@ var/charges = 3
var/datum/action/innate/unburden/speed
var/datum/action/innate/recharge/power
-
-
-
/datum/species/golem/calorite/on_species_gain(mob/living/carbon/C, datum/species/old_species)
..()
if(ishuman(C))
@@ -101,7 +98,7 @@ var/charges = 3
for(var/mob/living/L in view(3, owner))
if(iscarbon(L))
- if(!HAS_TRAIT(L, TRAIT_GOTTAGOFAST))
+ if(!L.has_movespeed_modifier(/datum/movespeed_modifier/reagent/stimulants))
L.reagents.add_reagent(/datum/reagent/consumable/caloriteblessing, 5)
else
diff --git a/GainStation13/code/mobs/slugcat.dm b/GainStation13/code/mobs/slugcat.dm
index ad47b4d175..8491221b2a 100644
--- a/GainStation13/code/mobs/slugcat.dm
+++ b/GainStation13/code/mobs/slugcat.dm
@@ -47,7 +47,7 @@
AddElement(/datum/element/wuv, "purrs!", EMOTE_AUDIBLE, /datum/mood_event/pet_animal, "hisses!", EMOTE_AUDIBLE)
AddElement(/datum/element/mob_holder, held_icon)
-/mob/living/simple_animal/pet/slugcat/update_canmove()
+/mob/living/simple_animal/pet/slugcat/update_mobility()
..()
if(client && stat != DEAD)
if (resting)
diff --git a/GainStation13/code/modules/food_and_drinks/drinks.dm b/GainStation13/code/modules/food_and_drinks/drinks.dm
index 626e64fbf1..6f1c56e244 100644
--- a/GainStation13/code/modules/food_and_drinks/drinks.dm
+++ b/GainStation13/code/modules/food_and_drinks/drinks.dm
@@ -11,8 +11,6 @@
icon_state = "fizzwiz"
list_reagents = list(/datum/reagent/consumable/space_cola = 25, /datum/reagent/consumable/fizulphite = 15)
foodtype = SUGAR
- price = 3
-
/obj/item/reagent_containers/food/drinks/soda_cans/soothseltz
name = "Soothing Seltzer"
@@ -23,4 +21,3 @@
icon_state = "soothseltz"
list_reagents = list(/datum/reagent/consumable/space_cola = 25, /datum/reagent/consumable/extilphite = 15)
foodtype = SUGAR
- price = 3
diff --git a/GainStation13/code/modules/food_and_drinks/food.dm b/GainStation13/code/modules/food_and_drinks/food.dm
index 7bc7e58a20..5c88169a88 100644
--- a/GainStation13/code/modules/food_and_drinks/food.dm
+++ b/GainStation13/code/modules/food_and_drinks/food.dm
@@ -1,3 +1,6 @@
+/obj/item/reagent_containers/food
+ var/blessed = 0
+
/obj/item/reagent_containers/food/snacks/gbburrito
name = "\improper GATO Gas Giant Burrito"
icon_state = "gbburrito"
@@ -7,7 +10,6 @@
filling_color = "#74291b"
tastes = list("refried beans","grease" = 1)
foodtype = MEAT
- price = 3
//these have been ported from CHOMPstation / Virgo
/obj/item/reagent_containers/food/snacks/doner_kebab
diff --git a/code/modules/hud/alert.dm b/GainStation13/code/modules/hud/alert.dm
similarity index 80%
rename from code/modules/hud/alert.dm
rename to GainStation13/code/modules/hud/alert.dm
index 65d3130fa9..693ffbd65c 100644
--- a/code/modules/hud/alert.dm
+++ b/GainStation13/code/modules/hud/alert.dm
@@ -1,76 +1,76 @@
-/obj/screen/alert/blob
+/atom/movable/screen/alert/gs13/blob
name = "Fatty Blob"
desc = "Every last piece of your corpulent body is now plush and bloated with vast rolls of blubber. Your corpulence is such that you are akin to a gigantic, towering wad of dough."
icon_state = "blob"
-/obj/screen/alert/immobile
+/atom/movable/screen/alert/gs13/immobile
name = "Immobile"
desc = "Fat has taken over your body, now colossal in size and loaded with cumbersome flab. You are having a lot difficulty with moving the bulk that has set upon your body."
icon_state = "immobile"
-/obj/screen/alert/barelymobile
+/atom/movable/screen/alert/gs13/barelymobile
name = "Barely Mobile"
desc = "Your fat legs barely allow you to waddle, continuing to slow your pace with each pound that you gain. If you continue gaining weight, you might find yourself unable to move at all."
icon_state = "barelymobile"
-/obj/screen/alert/extremelyobese
+/atom/movable/screen/alert/gs13/extremelyobese
name = "Extremely Obese"
desc = "In your journey through crossing further borders of obesity, your movement continues to get more and more restricted, body overcome with overwhelming amounts of adipose."
icon_state = "extremelyobese"
-/obj/screen/alert/morbidlyobese
+/atom/movable/screen/alert/gs13/morbidlyobese
name = "Morbidly Obese"
desc = "Every inch of you is beginning to pack away lard, making your movements awkward and clunky. If your weight gain continues, walking might become a real issue."
icon_state = "morbobese"
-/obj/screen/alert/obese
+/atom/movable/screen/alert/gs13/obese
name = "Obese"
desc = "Your body is swollen with lard, and your movement is starting to be slightly hindered by your weight."
icon_state = "obese"
-/obj/screen/alert/veryfat
+/atom/movable/screen/alert/gs13/veryfat
name = "Very fat"
desc = "You're beginning to inch closer and closer to proper obesity. Your body is starting to slightly jiggle when you move around."
icon_state = "veryfat"
-/obj/screen/alert/fatter
+/atom/movable/screen/alert/gs13/fatter
name = "Fat"
desc = "Clothes begin to cling onto your frame tighter and tighter, as your body begins to display first signs of fatness."
icon_state = "fatter"
-/obj/screen/alert/fat
+/atom/movable/screen/alert/gs13/fat
name = "Rounded"
desc = "Your body's beginning to display the first signs of softened curves, though they're barely noticeable."
icon_state = "fat"
//GS13 - fullness alerts
-/obj/screen/alert/bloated
+/atom/movable/screen/alert/gs13/bloated
name = "Bloated"
desc = "Your stomach is starting to feel packed."
icon_state = "Stuffed"
-/obj/screen/alert/stuffed
+/atom/movable/screen/alert/gs13/stuffed
name = "Stuffed"
desc = "Whatever you ate, you ate too much. Your stomach has stretched to accomodate its contents, forming a very obvious stuffed belly."
icon_state = "Bloated"
-/obj/screen/alert/beegbelly
+/atom/movable/screen/alert/gs13/beegbelly
name = "Overfilled"
desc = "You've somehow managed to fit even more in your stomach, barely allowing for any more room inside."
icon_state = "beegbelly"
-/obj/screen/alert/sated
+/atom/movable/screen/alert/gs13/sated
name = "Sated"
desc = "You're perfectly rather sated right now."
icon_state = "sated"
-/obj/screen/alert/full
+/atom/movable/screen/alert/gs13/full
name = "Full"
desc = "You're rather full right now. Eating more food would result in weight gain."
icon_state = "full"
-/obj/screen/alert/hungry
+/atom/movable/screen/alert/gs13/hungry
name = "Hungry"
desc = "Some food would be good right about now."
icon_state = "hungry"
diff --git a/GainStation13/code/modules/hydroponics/lipoplant.dm b/GainStation13/code/modules/hydroponics/lipoplant.dm
index d669a1095b..72c16ca898 100644
--- a/GainStation13/code/modules/hydroponics/lipoplant.dm
+++ b/GainStation13/code/modules/hydroponics/lipoplant.dm
@@ -42,7 +42,7 @@
opened = TRUE
spillable = TRUE
reagent_flags = OPENCONTAINER
- ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
+ reagents.reagents_holder_flags |= OPENCONTAINER
icon_state = "lipo_nutcut_full"
desc = "A foreign fruit with an hard shell, the liquid inside looks very inviting."
playsound(user, W.hitsound, 50, 1, -1)
diff --git a/GainStation13/code/modules/mob/living/nutribot.dm b/GainStation13/code/modules/mob/living/nutribot.dm
index 936f9d9354..2fc37b1f37 100644
--- a/GainStation13/code/modules/mob/living/nutribot.dm
+++ b/GainStation13/code/modules/mob/living/nutribot.dm
@@ -84,7 +84,7 @@
skin = new_skin
update_icon()
-/mob/living/simple_animal/bot/nutribot/update_canmove()
+/mob/living/simple_animal/bot/nutribot/update_mobility()
. = ..()
update_icon()
@@ -113,10 +113,8 @@
/mob/living/simple_animal/bot/nutribot/attack_paw(mob/user)
return attack_hand(user)
-/mob/living/simple_animal/bot/nutribot/get_controls(mob/user)
+/mob/living/simple_animal/bot/nutribot/proc/get_controls(mob/user)
var/dat
- dat += hack(user)
- dat += showpai(user)
dat += "Nutritional Unit Controls v1.1
"
dat += "Status: [on ? "On" : "Off"]
"
dat += "Maintenance panel panel is [open ? "opened" : "closed"]
"
@@ -251,8 +249,7 @@
return
/mob/living/simple_animal/bot/nutribot/proc/tip_over(mob/user)
- canmove = 0
- //mobility_flags &= ~MOBILITY_MOVE
+ mobility_flags &= ~MOBILITY_MOVE
playsound(src, 'sound/machines/warning-buzzer.ogg', 50)
user.visible_message("[user] tips over [src]!", "You tip [src] over!")
mode = BOT_TIPPED
@@ -260,8 +257,7 @@
transform = mat.Turn(180)
/mob/living/simple_animal/bot/nutribot/proc/set_right(mob/user)
- canmove = 1
- //mobility_flags &= MOBILITY_MOVE
+ mobility_flags &= MOBILITY_MOVE
var/list/messagevoice
if(user)
user.visible_message("[user] sets [src] right-side up!", "You set [src] right-side up!")
@@ -564,9 +560,6 @@
soft_reset()
return
- reagent_id = null
- return
-
/mob/living/simple_animal/bot/nutribot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount)
var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id]
if(!R.overdose_threshold) //Some chems do not have an OD threshold
@@ -600,6 +593,21 @@
/obj/machinery/bot_core/nutribot
req_one_access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_ROBOTICS)
+/// Add these for now, until it is upgraded to TGUI.
+/mob/living/simple_animal/bot/nutribot/proc/show_controls(mob/M)
+ users |= M
+ var/dat = ""
+ dat = get_controls(M)
+ var/datum/browser/popup = new(M,window_id,window_name,350,600)
+ popup.set_content(dat)
+ popup.open(use_onclose = 0)
+ onclose(M,window_id,ref=src)
+ return
+
+/mob/living/simple_animal/bot/nutribot/proc/update_controls()
+ for(var/mob/M in users)
+ show_controls(M)
+
#undef NUTRIBOT_PANIC_NONE
#undef NUTRIBOT_PANIC_LOW
#undef NUTRIBOT_PANIC_MED
diff --git a/GainStation13/code/modules/mob/living/species.dm b/GainStation13/code/modules/mob/living/species.dm
index 1a6c19f90b..19e2013197 100644
--- a/GainStation13/code/modules/mob/living/species.dm
+++ b/GainStation13/code/modules/mob/living/species.dm
@@ -1,3 +1,34 @@
+/datum/species/proc/update_body_size(mob/living/carbon/human/H, size_change)
+ if (!H)
+ return
+
+ var/obj/item/organ/genital/butt/anus = H.getorganslot(ORGAN_SLOT_BUTT)
+ var/obj/item/organ/genital/belly/belly = H.getorganslot("belly")
+ var/obj/item/organ/genital/breasts/breasts = H.getorganslot(ORGAN_SLOT_BREASTS)
+
+ update_genital_size(anus, size_change)
+ update_genital_size(belly, size_change)
+ update_breasts_size(breasts, size_change)
+
+ H.genital_override = TRUE
+ H.update_body()
+ H.update_inv_w_uniform()
+ H.update_inv_wear_suit()
+
+/datum/species/proc/update_genital_size(obj/item/organ/genital/G, size_change)
+ if (!G)
+ return
+
+ G.size = G.size + size_change
+ G.update()
+
+/datum/species/proc/update_breasts_size(obj/item/organ/genital/breasts/G, size_change)
+ if (!G)
+ return
+
+ G.cached_size = G.cached_size + size_change
+ G.update()
+
/datum/species/proc/handle_fatness_trait(mob/living/carbon/human/H, trait, trait_lose, trait_gain, fatness_lose, fatness_gain, chat_lose, chat_gain)
if(H.fatness < fatness_lose)
if (chat_lose)
@@ -376,48 +407,48 @@
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)
+ H.throw_alert("nutrition", /atom/movable/screen/alert/hungry)
if(0 to NUTRITION_LEVEL_STARVING)
- H.throw_alert("nutrition", /obj/screen/alert/starving)
+ H.throw_alert("nutrition", /atom/movable/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)
+ H.throw_alert("fullness", /atom/movable/screen/alert/gs13/bloated)
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
- H.throw_alert("fullness", /obj/screen/alert/stuffed)
+ H.throw_alert("fullness", /atom/movable/screen/alert/gs13/stuffed)
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
- H.throw_alert("fullness", /obj/screen/alert/beegbelly)
+ H.throw_alert("fullness", /atom/movable/screen/alert/gs13/beegbelly)
switch(H.fatness)
if(FATNESS_LEVEL_BLOB to INFINITY)
- H.throw_alert("fatness", /obj/screen/alert/blob)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/blob)
if(FATNESS_LEVEL_IMMOBILE to FATNESS_LEVEL_BLOB)
- H.throw_alert("fatness", /obj/screen/alert/immobile)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/immobile)
if(FATNESS_LEVEL_BARELYMOBILE to FATNESS_LEVEL_IMMOBILE)
- H.throw_alert("fatness", /obj/screen/alert/barelymobile)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/barelymobile)
if(FATNESS_LEVEL_EXTREMELY_OBESE to FATNESS_LEVEL_BARELYMOBILE)
- H.throw_alert("fatness", /obj/screen/alert/extremelyobese)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/extremelyobese)
if(FATNESS_LEVEL_MORBIDLY_OBESE to FATNESS_LEVEL_EXTREMELY_OBESE)
- H.throw_alert("fatness", /obj/screen/alert/morbidlyobese)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/morbidlyobese)
if(FATNESS_LEVEL_OBESE to FATNESS_LEVEL_MORBIDLY_OBESE)
- H.throw_alert("fatness", /obj/screen/alert/obese)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/obese)
if(FATNESS_LEVEL_VERYFAT to FATNESS_LEVEL_OBESE)
- H.throw_alert("fatness", /obj/screen/alert/veryfat)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/veryfat)
if(FATNESS_LEVEL_FATTER to FATNESS_LEVEL_VERYFAT)
- H.throw_alert("fatness", /obj/screen/alert/fatter)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/fatter)
if(FATNESS_LEVEL_FAT to FATNESS_LEVEL_FATTER)
- H.throw_alert("fatness", /obj/screen/alert/fat)
+ H.throw_alert("fatness", /atom/movable/screen/alert/gs13/fat)
if(0 to FATNESS_LEVEL_FAT)
H.clear_alert("fatness")
diff --git a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm
index c3fcab5c78..9cef5cb2ab 100644
--- a/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm
+++ b/GainStation13/code/modules/reagents/chemistry/reagents/consumable_reagents.dm
@@ -13,6 +13,34 @@
M.adjust_fatness(15, FATTENING_TYPE_CHEM)
return ..()
+/datum/reagent/medicine/lipolicide
+ name = "Lipolicide"
+ description = "A powerful toxin that will destroy fat cells, massively reducing body weight in a short time. Deadly to those without nutriment in their body."
+ taste_description = "mothballs"
+ reagent_state = LIQUID
+ color = "#F0FFF0"
+ // GS13 tweak
+ metabolization_rate = 0.7 * REAGENTS_METABOLISM
+ overdose_threshold = 105
+
+/datum/reagent/medicine/lipolicide/overdose_process(mob/living/carbon/C)
+ . = ..()
+ if(current_cycle >=41 && prob(10))
+ to_chat(C, "You feel like your organs are on fire!")
+ C.IgniteMob()
+
+/datum/reagent/medicine/lipolicide/on_mob_life(mob/living/carbon/M)
+ if(M.nutrition <= NUTRITION_LEVEL_STARVING)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER, 0)
+ if(M.fatness_real == 0)
+ M.nutrition = max(M.nutrition - 3, 0) // making the chef more valuable, one meme trap at a time
+ if(HAS_TRAIT(M, TRAIT_LIPOLICIDE_TOLERANCE)) //GS13 edit
+ M.adjust_fatness(-0.5, FATTENING_TYPE_WEIGHT_LOSS)
+ else
+ M.adjust_fatness(-10, FATTENING_TYPE_WEIGHT_LOSS)
+
+ M.overeatduration = 0
+ return ..()
//BURPY CHEM
diff --git a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm
index 8523b97448..8605c1b859 100644
--- a/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm
+++ b/GainStation13/code/modules/reagents/chemistry/recipes/fatchem.dm
@@ -7,6 +7,13 @@
results = list(/datum/reagent/consumable/lipoifier = 3)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/cornoil = 1, /datum/reagent/medicine/synthflesh = 1)
+
+/datum/chemical_reaction/lipolicide
+ name = "lipolicide"
+ id = /datum/reagent/medicine/lipolicide
+ results = list(/datum/reagent/medicine/lipolicide = 3)
+ required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/diethylamine = 1, /datum/reagent/medicine/ephedrine = 1)
+
//BURP CHEM
/datum/chemical_reaction/fizulphite
name = "fizulphite"
diff --git a/GainStation13/code/obj/items/holy.dm b/GainStation13/code/obj/items/holy.dm
index c7571bb601..98e45b451e 100644
--- a/GainStation13/code/obj/items/holy.dm
+++ b/GainStation13/code/obj/items/holy.dm
@@ -53,7 +53,7 @@
var/click_delay = 2
slot_flags = ITEM_SLOT_BACK
- sharpness = IS_BLUNT
+ sharpness = SHARP_NONE
w_class = WEIGHT_CLASS_BULKY
attack_verb = list("smashed", "whacked", "smacked", "bonked")
hitsound = "swing_hit"
@@ -66,9 +66,11 @@
. = ..()
set_light(l_range, l_power, light_color)
+/*
/obj/item/nullrod/dream_breaker/attack(mob/living/target, mob/living/user)
. = ..()
user.changeNext_move(CLICK_CD_MELEE * click_delay)
+*/
/obj/item/nullrod/dream_breaker/ui_action_click(mob/user, action)
if(!isliving(user))
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 6dae40ce07..4629c4a954 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -275,3 +275,7 @@
*/
#define FEEBLE_ATTACK_MSG_THRESHOLD 0.5
+// GS13 EDIT
+#define FAT "fat"
+/// What is the rate that one damage is converted to fatness?
+#define FAT_DAMAGE_TO_FATNESS 4
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index e1af109877..75833d5ec1 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -2224,6 +2224,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(BRAIN)
var/damage_amount = forced ? damage : damage * hit_percent * H.physiology.brain_mod
H.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_amount)
+ // GS13 EDIT
+ if(FAT)
+ H.applyFatnessDamage(damage * hit_percent)
+
return TRUE
/datum/species/proc/on_hit(obj/item/projectile/P, mob/living/carbon/human/H)
diff --git a/hyperstation/code/mobs/hugbot.dm b/hyperstation/code/mobs/hugbot.dm
index 148680461a..e31bcdae43 100644
--- a/hyperstation/code/mobs/hugbot.dm
+++ b/hyperstation/code/mobs/hugbot.dm
@@ -52,7 +52,7 @@
update_icon()
-/mob/living/simple_animal/bot/hugbot/update_canmove()
+/mob/living/simple_animal/bot/hugbot/update_mobility()
. = ..()
update_icon()
@@ -253,11 +253,11 @@
C.adjustStaminaLoss(-15)
else if(resting)
C.resting = 0
- C.update_canmove()
+ C.update_mobility()
else
C.Knockdown(100)
C.Stun(100)
- C.update_canmove()
+ C.update_mobility()
playsound(C.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
diff --git a/hyperstation/code/modules/antagonists/wendigo/mob/metabolization.dm b/hyperstation/code/modules/antagonists/wendigo/mob/metabolization.dm
index 547151cc4f..b384518592 100644
--- a/hyperstation/code/modules/antagonists/wendigo/mob/metabolization.dm
+++ b/hyperstation/code/modules/antagonists/wendigo/mob/metabolization.dm
@@ -2,24 +2,24 @@
/mob/living/carbon/wendigo/proc/metabolize_hunger()
if(HAS_TRAIT(src, TRAIT_NOHUNGER))
return
-
+
if(connected_link)
if(connected_link.souls.len > 3)
nutrition = min(800, nutrition + (HUNGER_FACTOR*connected_link.souls.len))
nutrition = max(0, nutrition - (HUNGER_FACTOR / (physiology.hunger_mod / (connected_link.souls.len + 1))))
else
nutrition = max(0, nutrition - (HUNGER_FACTOR / physiology.hunger_mod))
-
+
switch(nutrition)
if(NUTRITION_LEVEL_WELL_FED to INFINITY)
- throw_alert("nutrition", /obj/screen/alert/full)
+ throw_alert("nutrition", /atom/movable/screen/alert/full)
if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED)
- throw_alert("nutrition", /obj/screen/alert/sated)
+ throw_alert("nutrition", /atom/movable/screen/alert/sated)
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
- throw_alert("nutrition", /obj/screen/alert/hungry)
+ throw_alert("nutrition", /atom/movable/screen/alert/hungry)
if(0 to NUTRITION_LEVEL_STARVING)
- throw_alert("nutrition", /obj/screen/alert/starving)
-
+ throw_alert("nutrition", /atom/movable/screen/alert/starving)
+
/mob/living/carbon/wendigo/reagent_check(datum/reagent/R)
if(istype(R, /datum/reagent/fermi))
var/had_changed = FALSE
@@ -35,7 +35,7 @@
if(R.type == /datum/reagent/fermi/BEsmaller)
fake_breast_size = max(0, fake_breast_size - 0.25)
had_changed = "BEsmaller"
-
+
if(had_changed)
R.volume -= R.metabolization_rate
if(round(fake_penis_size, 1) == fake_penis_size && fake_penis_size)
diff --git a/hyperstation/code/modules/antagonists/wendigo/mob/mob_defense.dm b/hyperstation/code/modules/antagonists/wendigo/mob/mob_defense.dm
index d59e4bf479..87928ea8f1 100644
--- a/hyperstation/code/modules/antagonists/wendigo/mob/mob_defense.dm
+++ b/hyperstation/code/modules/antagonists/wendigo/mob/mob_defense.dm
@@ -17,13 +17,13 @@
if(bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !HAS_TRAIT(src, TRAIT_RESISTHEAT))
switch(bodytemperature)
if(280 to 300)
- throw_alert("temp", /obj/screen/alert/hot, 1)
+ throw_alert("temp", /atom/movable/screen/alert/hot, 1)
apply_damage(HEAT_DAMAGE_LEVEL_1*physiology.heat_mod, BURN)
if(300 to 350)
- throw_alert("temp", /obj/screen/alert/hot, 2)
+ throw_alert("temp", /atom/movable/screen/alert/hot, 2)
apply_damage(HEAT_DAMAGE_LEVEL_2*physiology.heat_mod, BURN)
if(350 to INFINITY)
- throw_alert("temp", /obj/screen/alert/hot, 3)
+ throw_alert("temp", /atom/movable/screen/alert/hot, 3)
if(on_fire)
apply_damage(HEAT_DAMAGE_LEVEL_3*physiology.heat_mod, BURN)
else
@@ -33,13 +33,13 @@
if(!istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell))
switch(bodytemperature)
if(200 to 260)
- throw_alert("temp", /obj/screen/alert/cold, 1)
+ throw_alert("temp", /atom/movable/screen/alert/cold, 1)
apply_damage(COLD_DAMAGE_LEVEL_1*physiology.cold_mod, BURN)
if(0 to 120)
- throw_alert("temp", /obj/screen/alert/cold, 2)
+ throw_alert("temp", /atom/movable/screen/alert/cold, 2)
apply_damage(COLD_DAMAGE_LEVEL_2*physiology.cold_mod, BURN)
if(-INFINITY to 0)
- throw_alert("temp", /obj/screen/alert/cold, 3)
+ throw_alert("temp", /atom/movable/screen/alert/cold, 3)
apply_damage(COLD_DAMAGE_LEVEL_3*physiology.cold_mod, BURN)
else
clear_alert("temp")
@@ -54,16 +54,16 @@
switch(adjusted_pressure)
if(HAZARD_HIGH_PRESSURE to INFINITY)
adjustBruteLoss(min((((adjusted_pressure / HAZARD_HIGH_PRESSURE)-1)*PRESSURE_DAMAGE_COEFFICIENT)*physiology.pressure_mod, MAX_HIGH_PRESSURE_DAMAGE))
- throw_alert("pressure", /obj/screen/alert/highpressure, 2)
+ throw_alert("pressure", /atom/movable/screen/alert/highpressure, 2)
if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE)
- throw_alert("pressure", /obj/screen/alert/highpressure, 1)
+ throw_alert("pressure", /atom/movable/screen/alert/highpressure, 1)
if(WARNING_LOW_PRESSURE to WARNING_HIGH_PRESSURE)
clear_alert("pressure")
if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE)
- throw_alert("pressure", /obj/screen/alert/lowpressure, 1)
+ throw_alert("pressure", /atom/movable/screen/alert/lowpressure, 1)
else
adjustBruteLoss( LOW_PRESSURE_DAMAGE*physiology.pressure_mod )
- throw_alert("pressure", /obj/screen/alert/lowpressure, 2)
+ throw_alert("pressure", /atom/movable/screen/alert/lowpressure, 2)
return
diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm
index 5f43568bde..c881d29cba 100644
--- a/hyperstation/code/modules/arousal/arousalhud.dm
+++ b/hyperstation/code/modules/arousal/arousalhud.dm
@@ -130,7 +130,7 @@
V.toggle_visibility(picked_visibility)
if(href_list["hidebreasts"])
- var/obj/item/organ/genital/breasts/B = usr.getorganslot("breasts")
+ var/obj/item/organ/genital/breasts/B = usr.getorganslot(ORGAN_SLOT_BREASTS)
var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden")
B.toggle_visibility(picked_visibility)
@@ -140,7 +140,7 @@
E.toggle_visibility(picked_visibility)
if(href_list["hideanus"])
- var/obj/item/organ/genital/anus/A = usr.getorganslot("anus")
+ var/obj/item/organ/genital/butt/A = usr.getorganslot(ORGAN_SLOT_BUTT)
var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden")
A.toggle_visibility(picked_visibility)
@@ -262,7 +262,7 @@
O.equipment = null
if(href_list["removeequipmentbreasts"])
- var/obj/item/organ/genital/breasts/O = usr.getorganslot("breasts")
+ var/obj/item/organ/genital/breasts/O = usr.getorganslot(ORGAN_SLOT_BREASTS)
var/obj/item/I = O.equipment
usr.put_in_hands(I)
O.equipment = null
@@ -284,7 +284,7 @@
O.equipment = null
if(href_list["removeequipmentanus"])
- var/obj/item/organ/genital/anus/O = usr.getorganslot("anus")
+ var/obj/item/organ/genital/butt/O = usr.getorganslot(ORGAN_SLOT_BUTT)
var/obj/item/I = O.equipment
usr.put_in_hands(I)
O.equipment = null
@@ -630,7 +630,7 @@ obj/screen/arousal/proc/feedyourself()
picked_organ = input(src, "with what?", "Climax", null) as null|obj in genitals_list
else
return
-
+
if(picked_organ)
//Good, got an organ, time to pick a container
if(picked_organ.name == "penis")//if the select organ is a penis
diff --git a/hyperstation/code/modules/integrated_electronics/input.dm b/hyperstation/code/modules/integrated_electronics/input.dm
index 3c229bfe3a..5611b051da 100644
--- a/hyperstation/code/modules/integrated_electronics/input.dm
+++ b/hyperstation/code/modules/integrated_electronics/input.dm
@@ -28,7 +28,7 @@
return
var/obj/item/organ/genital/penis/P = L.getorganslot("penis")
- var/obj/item/organ/genital/breasts/B = L.getorganslot("breasts")
+ var/obj/item/organ/genital/breasts/B = L.getorganslot(ORGAN_SLOT_BREASTS)
var/obj/item/organ/genital/testicles/T = L.getorganslot("testicles")
//reset data, just incase they dont have that genitle
@@ -77,4 +77,4 @@
set_pin_data(IC_OUTPUT, 2, L.breedable)
push_data()
activate_pin(2)
-*/
\ No newline at end of file
+*/
diff --git a/hyperstation/code/modules/resize/resizing.dm b/hyperstation/code/modules/resize/resizing.dm
index 1779c62065..bffdad6d71 100644
--- a/hyperstation/code/modules/resize/resizing.dm
+++ b/hyperstation/code/modules/resize/resizing.dm
@@ -120,7 +120,7 @@
return TRUE
if(abs(get_effective_size()/tmob.get_effective_size()) >= 2)
- if(H.a_intent == "disarm" && H.canmove && !H.buckled)
+ if(H.a_intent == "disarm" && CHECK_MOBILITY(H, MOBILITY_MOVE) && !H.buckled)
now_pushing = 0
H.forceMove(tmob.loc)
sizediffStamLoss(tmob)
@@ -147,7 +147,7 @@
return TRUE
* commenting out for now.*/
- if(H.a_intent == "harm" && H.canmove && !H.buckled)
+ if(H.a_intent == "harm" && CHECK_MOBILITY(H, MOBILITY_MOVE) && !H.buckled)
now_pushing = 0
H.forceMove(tmob.loc)
sizediffStamLoss(tmob)
@@ -177,7 +177,7 @@
commenting out for now */
return TRUE
- // if(H.a_intent == "grab" && H.canmove && !H.buckled)
+ // if(H.a_intent == "grab" && CHECK_MOBILITY(H, MOBILITY_MOVE) && !H.buckled)
// now_pushing = 0
// H.forceMove(tmob.loc)
// sizediffStamLoss(tmob)
diff --git a/hyperstation/code/obj/leash.dm b/hyperstation/code/obj/leash.dm
index ac9f174322..09c9984fdf 100644
--- a/hyperstation/code/obj/leash.dm
+++ b/hyperstation/code/obj/leash.dm
@@ -14,9 +14,9 @@ Icons, maybe?
/datum/status_effect/leash_dom
status_type = STATUS_EFFECT_UNIQUE
- alert_type = /obj/screen/alert/status_effect/leash_dom
+ alert_type = /atom/movable/screen/alert/status_effect/leash_dom
-/obj/screen/alert/status_effect/leash_dom
+/atom/movable/screen/alert/status_effect/leash_dom
name = "Leash Master"
desc = "You've got a leash, and a cute pet on the other end."
icon_state = "leash_master" //These call icons that don't exist, so no icon comes up. Which is good.
@@ -24,9 +24,9 @@ Icons, maybe?
/datum/status_effect/leash_freepet
status_type = STATUS_EFFECT_UNIQUE
- alert_type = /obj/screen/alert/status_effect/leash_freepet
+ alert_type = /atom/movable/screen/alert/status_effect/leash_freepet
-/obj/screen/alert/status_effect/leash_freepet
+/atom/movable/screen/alert/status_effect/leash_freepet
name = "Escaped Pet"
desc = "You're on a leash, but you've no master. If anyone grabs the leash they'll gain control!"
icon_state = "leash_freepet"
@@ -36,9 +36,9 @@ Icons, maybe?
id = "leashed"
status_type = STATUS_EFFECT_UNIQUE
var/mob/redirect_component
- alert_type = /obj/screen/alert/status_effect/leash_pet
+ alert_type = /atom/movable/screen/alert/status_effect/leash_pet
-/obj/screen/alert/status_effect/leash_pet
+/atom/movable/screen/alert/status_effect/leash_pet
name = "Leashed Pet"
desc = "You're on the hook now! Be good for your master."
icon_state = "leash_pet"
diff --git a/tgstation.dme b/tgstation.dme
index 48d544706e..b2ecb3f9a9 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3928,6 +3928,7 @@
#include "GainStation13\code\machinery\fattening_turret.dm"
#include "GainStation13\code\machinery\feeding_tube.dm"
#include "GainStation13\code\machinery\supply_teleporter.dm"
+#include "GainStation13\code\mechanics\calorite.dm"
#include "GainStation13\code\mechanics\fatness.dm"
#include "GainStation13\code\mechanics\fatrousal.dm"
#include "GainStation13\code\mechanics\fattening_trap.dm"
@@ -3945,12 +3946,14 @@
#include "GainStation13\code\mobs\chocoslime.dm"
#include "GainStation13\code\mobs\races\caloritegolem.dm"
#include "GainStation13\code\modules\client\preferences\preferences.dm"
+#include "GainStation13\code\modules\clothing\under\jobs\clothing.dm"
#include "GainStation13\code\modules\clothing\under\jobs\modcivilian.dm"
#include "GainStation13\code\modules\food_and_drinks\drinks.dm"
#include "GainStation13\code\modules\food_and_drinks\food.dm"
#include "GainStation13\code\modules\food_and_drinks\recipes_bigpizza.dm"
#include "GainStation13\code\modules\food_and_drinks\objects\candy_flora.dm"
#include "GainStation13\code\modules\food_and_drinks\recipes\recipes_ported.dm"
+#include "GainStation13\code\modules\hud\alert.dm"
#include "GainStation13\code\modules\gym\gym.dm"
#include "GainStation13\code\modules\hydroponics\lipoplant.dm"
#include "GainStation13\code\modules\hydroponics\munchies_weed.dm"