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