diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index d4912b47..52267774 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -271,6 +271,34 @@
mineral = /obj/item/stack/sheet/mineral/calorite
walltype = /turf/closed/wall/mineral/calorite
canSmoothWith = list(/obj/structure/falsewall/calorite, /turf/closed/wall/mineral/calorite)
+ var/active = null
+ var/last_event = 0
+
+/obj/structure/falsewall/calorite/proc/fatten()
+ if(!active)
+ if(world.time > last_event+15)
+ active = 1
+ for(var/mob/living/carbon/human/M in orange(3,src))
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ return
+ else
+ M.fatness = M.fatness + 50
+ last_event = world.time
+ active = null
+ return
+ return
+
+/obj/structure/falsewall/calorite/Bumped(atom/movable/AM)
+ fatten()
+ ..()
+
+/obj/structure/falsewall/calorite/attackby(obj/item/W, mob/user, params)
+ fatten()
+ return ..()
+
+/obj/structure/falsewall/calorite/attack_hand(mob/user)
+ fatten()
+ . = ..()
/obj/structure/falsewall/sandstone
diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm
index 9e081207..9d9305bc 100644
--- a/code/game/objects/structures/statues.dm
+++ b/code/game/objects/structures/statues.dm
@@ -330,3 +330,98 @@
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/beacon()
+ 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/Bumped(atom/movable/AM)
+ beacon()
+ ..()
+
+/obj/structure/statue/calorite/fatty/Crossed(var/mob/AM)
+ .=..()
+ if(!.)
+ if(istype(AM))
+ beacon()
+
+/obj/structure/statue/calorite/fatty/Moved(atom/movable/AM)
+ beacon()
+ ..()
+
+/obj/structure/statue/calorite/fatty/Bumped(atom/movable/AM)
+ beacon()
+ ..()
+
+/obj/structure/statue/calorite/fatty/Uncross(atom/movable/AM)
+ beacon()
+ ..()
+
+/obj/structure/statue/calorite/fatty/Uncrossed(atom/movable/AM)
+ beacon()
+ ..()
+
+/obj/structure/statue/calorite/fatty/attackby(obj/item/W, mob/living/carbon/M, params)
+
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ to_chat(M, "Nothing happens.")
+ else
+ M.fatness = M.fatness + 20
+ if(M.fatness < 200)
+ to_chat(M, "The moment your hand meets the statue, you feel a little warmer...")
+ if(HAS_TRAIT(M, TRAIT_FAT))
+ to_chat(M, "Upon each poke of the statue, you feel yourself get a little heavier.")
+ if(HAS_TRAIT(M, TRAIT_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.")
+ if(HAS_TRAIT(M, TRAIT_MORBIDLYOBESE))
+ to_chat(M, "The world around you blurs as you focus on prodding the statue, your waistline widening further...")
+ if(HAS_TRAIT(M, TRAIT_IMMOBILE))
+ to_chat(M, "A whispering voice gently compliments your massive body, your own mind begging to touch the statue more.")
+ if(HAS_TRAIT(M, TRAIT_BLOB))
+ 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/attack_hand(mob/living/carbon/M)
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ to_chat(M, "Nothing happens.")
+ else
+ M.fatness = M.fatness + 20
+ if(M.fatness < 200)
+ to_chat(M, "The moment your hand meets the statue, you feel a little warmer...")
+ if(HAS_TRAIT(M, TRAIT_FAT))
+ to_chat(M, "Upon each poke of the statue, you feel yourself get a little heavier.")
+ if(HAS_TRAIT(M, TRAIT_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.")
+ if(HAS_TRAIT(M, TRAIT_MORBIDLYOBESE))
+ to_chat(M, "The world around you blurs as you focus on prodding the statue, your waistline widening further...")
+ if(HAS_TRAIT(M, TRAIT_IMMOBILE))
+ to_chat(M, "A whispering voice gently compliments your massive body, your own mind begging to touch the statue more.")
+ if(HAS_TRAIT(M, TRAIT_BLOB))
+ 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/attack_paw(mob/living/carbon/M)
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ to_chat(M, "Nothing happens.")
+ else
+ M.fatness = M.fatness + 20
+ if(M.fatness < 200)
+ to_chat(M, "The moment your hand meets the statue, you feel a little warmer...")
+ if(HAS_TRAIT(M, TRAIT_FAT))
+ to_chat(M, "Upon each poke of the statue, you feel yourself get a little heavier.")
+ if(HAS_TRAIT(M, TRAIT_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.")
+ if(HAS_TRAIT(M, TRAIT_MORBIDLYOBESE))
+ to_chat(M, "The world around you blurs as you focus on prodding the statue, your waistline widening further...")
+ if(HAS_TRAIT(M, TRAIT_IMMOBILE))
+ to_chat(M, "A whispering voice gently compliments your massive body, your own mind begging to touch the statue more.")
+ if(HAS_TRAIT(M, TRAIT_BLOB))
+ to_chat(M, "You can barely reach the statue past your floor-covering stomach! And yet, it still calls to you...")
+
\ No newline at end of file
diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm
index 0cd73d10..fd25bb60 100644
--- a/code/game/turfs/simulated/floor/mineral_floor.dm
+++ b/code/game/turfs/simulated/floor/mineral_floor.dm
@@ -216,18 +216,10 @@
var/active = null
/turf/open/floor/mineral/calorite/Entered(mob/living/carbon/M)
- M.fatness = M.fatness + 20
-
-// /turf/open/floor/mineral/calorite/proc/fatten(mob/living/carbon/M)
-// if(!active)
-// if(world.time > last_event+15)
-// active = 1
-// M.fatness = M.fatness + 30
-// for(var/turf/open/floor/mineral/calorite/T in orange(1,src))
-// T.fatten()
-// last_event = world.time
-// active = 0
-// return
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ return
+ else
+ M.fatness = M.fatness + 50
// calorite floor, disguised version - GS13
@@ -238,7 +230,10 @@
icons = list("calorite_hide","calorite_hide_dam")
/turf/open/floor/mineral/calorite_hide/Entered(mob/living/carbon/M)
- M.fatness = M.fatness + 50
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ return
+ else
+ M.fatness = M.fatness + 50
// calorite floor, powerful version - GS13
@@ -249,8 +244,10 @@
icons = list("calorite_strong","calorite_strong_dam")
/turf/open/floor/mineral/calorite_strong/Entered(mob/living/carbon/M)
- M.fatness = M.fatness + 200
-
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ return
+ else
+ M.fatness = M.fatness + 50
//DIAMOND
diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm
index 4fa82191..d96d68d9 100644
--- a/code/game/turfs/simulated/wall/mineral_walls.dm
+++ b/code/game/turfs/simulated/wall/mineral_walls.dm
@@ -50,6 +50,34 @@
sheet_type = /obj/item/stack/sheet/mineral/calorite
canSmoothWith = list(/turf/closed/wall/mineral/calorite, /obj/structure/falsewall/calorite)
+/turf/closed/wall/mineral/calorite/proc/fatten()
+ if(!active)
+ if(world.time > last_event+15)
+ active = 1
+ for(var/mob/living/carbon/human/M in orange(3,src))
+ if(HAS_TRAIT(M, TRAIT_LIPOIFIER_IMMUNE))
+ return
+ else
+ M.fatness = M.fatness + 50
+ last_event = world.time
+ active = null
+ return
+ return
+
+/turf/closed/wall/mineral/calorite/Bumped(atom/movable/AM)
+ fatten()
+ ..()
+
+/turf/closed/wall/mineral/calorite/attackby(obj/item/W, mob/user, params)
+ fatten()
+ return ..()
+
+/turf/closed/wall/mineral/calorite/attack_hand(mob/user)
+ fatten()
+ . = ..()
+
+
+
/turf/closed/wall/mineral/sandstone
name = "sandstone wall"
desc = "A wall with sandstone plating. Rough."
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 9476356b..5600490b 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -614,3 +614,55 @@
shoes = /obj/item/clothing/shoes/sneakers/black
suit = /obj/item/clothing/suit/armor/vest
glasses = /obj/item/clothing/glasses/sunglasses/reagent
+
+
+
+// GS13 stuff!
+
+// Restaurant Worker: Basically just a bunch of wagies who are supposed to lure people into their restaurant
+
+
+/obj/effect/mob_spawn/human/fastfood
+ name = "Corporate Cryostasis Pod"
+ desc = "On the grease-stained cryopod glass, you can see someone sleeping inside..."
+ mob_name = "fastfood_worker"
+ job_description = "Restaurant Worker"
+ icon = 'icons/obj/machines/sleeper.dmi'
+ icon_state = "sleeper"
+ roundstart = FALSE
+ death = FALSE
+ mob_species = /datum/species/human
+ short_desc = "It's the grand opening day!"
+ flavour_text = "After you've sold your soul to corporate overlords, your contract obliged you to enter cryostasis. \
+ Finally, after God knows how long, the cryopod system have awakened you with only a single sentence of information - welcome and lure in new guests into the freshly opened restaurant!"
+ assignedrole = "Free villager"
+ mirrorcanloadappearance = TRUE
+
+/obj/effect/mob_spawn/human/fastfood/Initialize(mapload)
+ . = ..()
+ var/arrpee = rand(1,3)
+ switch(arrpee)
+ if(1)
+ flavour_text += "You are this restaurant's manager, taking care of all the necessary paperwork, overseeing all the workers...\
+ But most importantly, you always have to make sure that the restaurant prospers and remains in good shape! "
+ outfit.head = /obj/item/clothing/head/pharaoh
+ outfit.uniform = /obj/item/clothing/under/tunic
+ outfit.shoes = /obj/item/clothing/shoes/sneakers/black
+ outfit.back = /obj/item/storage/backpack/satchel/leather
+ if(2)
+ flavour_text += "You are this restaurant's cook, using up the plethora of ingredients to cook up deliciously greasy and caloric foods.\
+ The kitchen and the bar is your turf! Make sure the guests stay fed."
+ outfit.head = /obj/item/clothing/head/rice_hat
+ outfit.uniform = /obj/item/clothing/under/tunic
+ outfit.shoes = /obj/item/clothing/shoes/sneakers/black
+ outfit.back = /obj/item/storage/backpack
+ if(3)
+ flavour_text += "You are this restaurant's waiter, responsible not only for tending to the guests, but also fixing and taking care of station's shape, power and looks.\
+ Make sure everything looks squeaky clean and that the restaurant remains powered!"
+ outfit.uniform = /obj/item/clothing/under/mummy
+ outfit.uniform = /obj/item/clothing/under/tunic
+ outfit.shoes = /obj/item/clothing/shoes/sneakers/black
+ outfit.back = /obj/item/storage/backpack
+
+/obj/effect/mob_spawn/human/fastfood/special(mob/living/carbon/human/new_spawn)
+ ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi
index c306616f..ddad1194 100644
Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ
diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi
index a5ca84a7..b7ee1c3b 100644
Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ
diff --git a/icons/obj/statue.dmi b/icons/obj/statue.dmi
index 0979c9f2..09eb41fc 100644
Binary files a/icons/obj/statue.dmi and b/icons/obj/statue.dmi differ