under 100 now
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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, "<span class='warning'>You feel the statue calling to you, urging you to touch it...</span>")
|
||||
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, "<span class='warning'>Nothing happens.</span>")
|
||||
return
|
||||
|
||||
if(M.fatness < FATNESS_LEVEL_FATTER)
|
||||
to_chat(M, "<span class='warning'>The moment your hand meets the statue, you feel a little warmer...</span>")
|
||||
else if(M.fatness < FATNESS_LEVEL_OBESE)
|
||||
to_chat(M, "<span class='warning'>Upon each poke of the statue, you feel yourself get a little heavier.</span>")
|
||||
else if(M.fatness < FATNESS_LEVEL_EXTREMELY_OBESE)
|
||||
to_chat(M, "<span class='warning'>With each touch you keep getting fatter... But the fatter you grow, the more enticed you feel to poke the statue.</span>")
|
||||
else if(M.fatness < FATNESS_LEVEL_BARELYMOBILE)
|
||||
to_chat(M, "<span class='warning'>The world around you blur slightly as you focus on prodding the statue, your waistline widening further...</span>")
|
||||
else if(M.fatness < FATNESS_LEVEL_IMMOBILE)
|
||||
to_chat(M, "<span class='warning'>A whispering voice gently compliments your massive body, your own mind begging to touch the statue.</span>")
|
||||
else
|
||||
to_chat(M, "<span class='warning'>You can barely reach the statue past your floor-covering stomach! And yet, it still calls to you...</span>")
|
||||
|
||||
/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)
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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)
|
||||
|
||||
@@ -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 += "<TT><B>Nutritional Unit Controls v1.1</B></TT><BR><BR>"
|
||||
dat += "Status: <A href='?src=[REF(src)];power=1'>[on ? "On" : "Off"]</A><BR>"
|
||||
dat += "Maintenance panel panel is [open ? "opened" : "closed"]<BR>"
|
||||
@@ -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("<span class='danger'>[user] tips over [src]!</span>", "<span class='danger'>You tip [src] over!</span>")
|
||||
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("<span class='notice'>[user] sets [src] right-side up!</span>", "<span class='green'>You set [src] right-side up!</span>")
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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, "<span class='userdanger'>You feel like your organs are on fire!</span>")
|
||||
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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user