whole lotta stuff
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
/obj/machinery/door
|
||||
var/fatness_to_check = 0
|
||||
|
||||
var/check_fatness = FALSE
|
||||
var/check_fatness_below = FALSE
|
||||
|
||||
/obj/machinery/door/proc/change_fatness_to_check(mob/user)
|
||||
var/fatness_type = input(usr,
|
||||
"What level of fatness do you wish to alert above/under at?",
|
||||
src, "None") as null|anything in list(
|
||||
"None", "Fat", "Fatter", "Very Fat", "Obese", "Morbidly Obese", "Extremely Obese", "Barely Mobile", "Immobile", "Blob")
|
||||
if(!fatness_type)
|
||||
return FALSE
|
||||
|
||||
var/fatness_amount = 0
|
||||
switch(fatness_type)
|
||||
if("Fat")
|
||||
fatness_amount = FATNESS_LEVEL_FAT
|
||||
if("Fatter")
|
||||
fatness_amount = FATNESS_LEVEL_FATTER
|
||||
if("Very Fat")
|
||||
fatness_amount = FATNESS_LEVEL_VERYFAT
|
||||
if("Obese")
|
||||
fatness_amount = FATNESS_LEVEL_OBESE
|
||||
if("Morbidly Obese")
|
||||
fatness_amount = FATNESS_LEVEL_MORBIDLY_OBESE
|
||||
if("Extremely Obese")
|
||||
fatness_amount = FATNESS_LEVEL_EXTREMELY_OBESE
|
||||
if("Barely Mobile")
|
||||
fatness_amount = FATNESS_LEVEL_BARELYMOBILE
|
||||
if("Immobile")
|
||||
fatness_amount = FATNESS_LEVEL_IMMOBILE
|
||||
if("Blob")
|
||||
fatness_amount = FATNESS_LEVEL_BLOB
|
||||
|
||||
fatness_to_check = fatness_amount
|
||||
return TRUE
|
||||
@@ -0,0 +1,18 @@
|
||||
/obj/structure/mineral_door/calorite //GS13
|
||||
name = "calorite door"
|
||||
icon = 'GainStation13/icons/obj/structure/calorite_door.dmi'
|
||||
icon_state = "calorite"
|
||||
sheetType = /obj/item/stack/sheet/mineral/calorite
|
||||
max_integrity = 200
|
||||
light_range = 1
|
||||
// Sets it open by default
|
||||
state = TRUE
|
||||
density = FALSE
|
||||
|
||||
// If you ever want to make any door like this, just simply add the component like this :3
|
||||
/obj/structure/mineral_door/calorite/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/fattening_door)
|
||||
|
||||
update_icon() // Updates the sprite when spawned in cause it's closed by default.
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
/obj/structure/tree/candylight //GS13
|
||||
name = "Peppermint Light"
|
||||
desc = "A light source that's made out of a peppermint tree."
|
||||
icon = 'GainStation13/icons/obj/gslight.dmi'
|
||||
icon_state = "candylight"
|
||||
max_integrity = 500
|
||||
light_color = "#a5cfc5" //testing out my copy cat skills. -Metussi
|
||||
light_range = 3
|
||||
anchored = 1
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
/obj/structure/cursedfatfountain
|
||||
name = "Strange fountain"
|
||||
desc = "An odd fountain, sparking with foreign magic."
|
||||
icon = 'GainStation13/icons/obj/cursed_fountain.dmi'
|
||||
icon_state = "full"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
var/curse_given = 0
|
||||
|
||||
/mob/living
|
||||
var/cursed_fat = 0 //decides whether the user is cursed at all (also makes for a fun admin switch)
|
||||
var/fattening_steps_left = 0 //decides on the lenght of the curse
|
||||
|
||||
/obj/structure/cursedfatfountain/attack_hand(mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
if(curse_given == 1)
|
||||
to_chat(user, "<span class='notice'>The fountain has dried up.</span>")
|
||||
icon_state = "empty"
|
||||
return
|
||||
if (ishuman(user) && user.has_dna())
|
||||
user.cursed_fat = 1
|
||||
user.fattening_steps_left += 2000
|
||||
icon_state = "empty"
|
||||
to_chat(user, "<span class='notice'>The glittering orange liquid disappears instantly as you touch it. You feel a strange, warm sensation inside, growing stronger the more you move...</span>")
|
||||
curse_given = 1
|
||||
|
||||
// /obj/structure/cursedfatfountain/update_icon()
|
||||
// if(last_process + time_between_uses > world.time)
|
||||
// icon_state = "full"
|
||||
// else
|
||||
// icon_state = "empty"
|
||||
|
||||
/mob/living/carbon/Move(NewLoc, direct)
|
||||
. = ..()
|
||||
if(cursed_fat == 1)
|
||||
fattening_steps_left -= 1
|
||||
adjust_fatness(20, FATTENING_TYPE_MAGIC)
|
||||
|
||||
if(fattening_steps_left <= 0)
|
||||
cursed_fat = 0
|
||||
@@ -0,0 +1,6 @@
|
||||
/obj/structure/statue/fatso
|
||||
name = "statue of a forgotten god"
|
||||
desc = "A statue of a long forgotten god, at least on earth."
|
||||
icon = 'GainStation13/icons/obj/structure/statues.dmi'
|
||||
icon_state = "fattha_statue"
|
||||
anchored = TRUE
|
||||
@@ -0,0 +1,81 @@
|
||||
/obj/structure/scale
|
||||
name = "weighing scale"
|
||||
desc = "You can weigh yourself with this."
|
||||
icon = 'GainStation13/icons/obj/scale.dmi'
|
||||
icon_state = "scale"
|
||||
anchored = TRUE
|
||||
resistance_flags = NONE
|
||||
max_integrity = 250
|
||||
integrity_failure = 25
|
||||
var/buildstacktype = /obj/item/stack/sheet/metal
|
||||
var/buildstackamount = 3
|
||||
layer = OBJ_LAYER
|
||||
//stores the weight of the last person to step on in Lbs
|
||||
var/lastreading = 0
|
||||
//the conversion ratio for how much a point of fatness weighs on a 6' person
|
||||
var/fatnessToWeight = 0.25
|
||||
|
||||
/obj/structure/scale/deconstruct()
|
||||
// If we have materials, and don't have the NOCONSTRUCT flag
|
||||
if(buildstacktype && (!(flags_1 & NODECONSTRUCT_1)))
|
||||
new buildstacktype(loc,buildstackamount)
|
||||
..()
|
||||
|
||||
/obj/structure/scale/attackby(obj/item/W, mob/user, params)
|
||||
if(W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1))
|
||||
W.play_tool_sound(src)
|
||||
deconstruct()
|
||||
else if(istype(W, /obj/item/assembly/shock_kit))
|
||||
if(!user.temporarilyRemoveItemFromInventory(W))
|
||||
return
|
||||
var/obj/item/assembly/shock_kit/SK = W
|
||||
var/obj/structure/chair/e_chair/E = new /obj/structure/chair/e_chair(src.loc)
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
E.setDir(dir)
|
||||
E.part = SK
|
||||
SK.forceMove(E)
|
||||
SK.master = E
|
||||
qdel(src)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/scale/examine(mob/user)
|
||||
. = ..()
|
||||
. += "Its last reading was: [src.lastreading]Lbs"
|
||||
. += "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>"
|
||||
|
||||
/obj/structure/scale/proc/weighEffect(mob/living/carbon/human/fatty)
|
||||
to_chat(fatty, "<span class='notice'>You weigh yourself.</span>")
|
||||
to_chat(fatty, "<span class='notice'>The numbers on the screen tick up and eventually settle on:</span>")
|
||||
//The appearance of the numbers changes with the fat level of the character
|
||||
if (HAS_TRAIT(fatty, TRAIT_BLOB))
|
||||
to_chat(fatty, "<span class='userdanger'><span class='big'>[round(src.lastreading/2000, 0.01)]TONS!!!</span></span>")
|
||||
|
||||
else if (HAS_TRAIT(fatty, TRAIT_IMMOBILE))
|
||||
to_chat(fatty, "<span class='boldannounce'>[src.lastreading]Lbs!</span>")
|
||||
|
||||
else if(HAS_TRAIT(fatty, TRAIT_OBESE) || HAS_TRAIT(fatty, TRAIT_MORBIDLYOBESE))
|
||||
to_chat(fatty, "<span class='alert'>[src.lastreading]Lbs!</span>")
|
||||
|
||||
else
|
||||
to_chat(fatty, "<span class='notice'>[src.lastreading]Lbs.</span>")
|
||||
|
||||
visible_message("<span class='notice'>The numbers on the screen read out: [fatty] has a BFI of [fatty.fatness].</span>")
|
||||
|
||||
/obj/structure/scale/Crossed(AM as mob|obj)
|
||||
if(isturf(loc))
|
||||
//need to be sure the thing that just crossed the scale is human
|
||||
if(ishuman(AM))
|
||||
var/mob/living/carbon/human/HM = AM
|
||||
if(!(HM.movement_type & FLYING))
|
||||
weighperson(HM)
|
||||
|
||||
/obj/structure/scale/proc/weighperson(mob/living/carbon/human/fatty)
|
||||
src.lastreading = fatty.calculate_weight_in_pounds()
|
||||
weighEffect(fatty)
|
||||
visible_message("<span class='notice'>[fatty] weighs themselves.</span>")
|
||||
visible_message("<span class='notice'>The numbers on the screen settle on: [src.lastreading]Lbs.</span>")
|
||||
visible_message("<span class='notice'>The numbers on the screen read out: [fatty] has a BFI of [fatty.fatness].</span>")
|
||||
|
||||
/mob/living/carbon/proc/calculate_weight_in_pounds()
|
||||
return round((140 + (fatness*FATNESS_TO_WEIGHT_RATIO))*(size_multiplier**2)*((dna.features["taur"] != "None") ? 2.5: 1))
|
||||
Reference in New Issue
Block a user