Merge branch 'bluespace_belts_changes' of https://github.com/Phantastic-Swan/GS13-Citadel into bluespace_belts_changes

This commit is contained in:
Phantastic-Swan
2025-04-28 15:26:46 +02:00
43 changed files with 501 additions and 33 deletions
+9
View File
@@ -148,3 +148,12 @@
species.liked_food |= MEAT
else
species.disliked_food &= ~MEAT
/datum/quirk/biofuel
name = "Biofuel Processor"
desc = "Your robotic body is equipped to eat and digest food the same way organic crew can."
value = 0
mob_trait = TRAIT_BIOFUEL
/datum/quirk/biofuel/post_add()
REMOVE_TRAIT(quirk_holder, TRAIT_NO_PROCESS_FOOD, SPECIES_TRAIT)
@@ -0,0 +1,3 @@
/obj/effect/landmark/start/psychologist //GS13: Psychology job
name = "Psychologist"
icon_state = "Medical Doctor"
@@ -0,0 +1,24 @@
//GS13: Psych Pillbottles for Psychologist
/obj/item/storage/pill_bottle/happinesspsych
name = "happiness pill bottle"
desc = "Contains pills used as a last resort means to temporarily stabilize depression and anxiety. WARNING: side effects may include slurred speech, drooling, and severe addiction."
/obj/item/storage/pill_bottle/happinesspsych/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/reagent_containers/pill/happinesspsych(src)
/obj/item/storage/pill_bottle/lsdpsych
name = "mindbreaker toxin pill bottle"
desc = "!FOR THERAPEUTIC USE ONLY! Contains pills used to alleviate the symptoms of Reality Dissociation Syndrome."
/obj/item/storage/pill_bottle/lsdpsych/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/reagent_containers/pill/lsdpsych(src)
/obj/item/storage/pill_bottle/paxpsych
name = "pacification pill"
desc = "Contains pills used to temporarily pacify patients that are deemed a harm to themselves or others."
/obj/item/storage/pill_bottle/paxpsych/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/reagent_containers/pill/paxpsych(src)
@@ -0,0 +1,17 @@
/obj/structure/closet/secure_closet/psychology //GS13: Psychologist job equip locker
name = "psychology locker"
req_access = list(ACCESS_PSYCH)
icon_state = "cabinet"
/obj/structure/closet/secure_closet/psychology/PopulateContents()
. = ..()
new /obj/item/clothing/under/suit/black(src)
new /obj/item/clothing/under/suit/black/skirt(src)
new /obj/item/clothing/shoes/laceup/(src)
new /obj/item/storage/backpack/medic(src)
new /obj/item/radio/headset/headset_med(src)
new /obj/item/clipboard(src)
new /obj/item/clothing/suit/straight_jacket(src)
new /obj/item/clothing/ears/earmuffs(src)
new /obj/item/clothing/mask/muzzle(src)
new /obj/item/clothing/glasses/sunglasses/blindfold(src)
+15
View File
@@ -31,9 +31,24 @@
crate_name = "strange seeds crate"
crate_type = /obj/structure/closet/crate/hydroponics
/datum/supply_pack/misc/stripperpole //oldcode port
name = "Stripper Pole Crate"
desc = "No private bar is complete without a stripper pole, show off the goods! Comes with a ready-to-assemble stripper pole, and a complementary wrench to get things set up!"
cost = 3550
contains = list(/obj/item/polepack,
/obj/item/wrench)
crate_name = "stripper pole crate"
/datum/supply_pack/critter/fennec //ported from CHOMPstation2
name = "Fennec Crate"
desc = "Why so ears?"
cost = 5000
contains = list(/mob/living/simple_animal/pet/fox/fennec)
crate_name = "fennec crate"
/datum/supply_pack/vending/wardrobes/clothing //existing game item not in cargo for some reason
name = "ClothesMate Supply Crate"
desc = "ClothesMate missing your favorite outfit? Solve that issue today with this autodrobe refill."
cost = 1500
contains = list(/obj/item/vending_refill/clothing)
crate_name = "clothesmate supply crate"
@@ -0,0 +1,43 @@
/datum/job/psychologist
title = "Psychologist"
flag = MED_PSYCH
department_head = list("Chief Medical Officer", "Head of Personnel")
department_flag = MEDSCI
faction = "Station"
total_positions = 1
spawn_positions = 1
minimal_player_age = 1
supervisors = "the chief medical officer, and head of personnel"
selection_color = "#74b5e0"
exp_requirements = 240
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/psychologist
departments = DEPARTMENT_BITFLAG_MEDICAL
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM, ACCESS_PSYCH)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM, ACCESS_PSYCH)
paycheck = PAYCHECK_MEDIUM
paycheck_department = ACCOUNT_MED
bounty_types = CIV_JOB_MED
display_order = JOB_DISPLAY_ORDER_PSYCH
threat = 0.5
/datum/outfit/job/psychologist
name = "Psychologist"
jobtype = /datum/job/psychologist
belt = /obj/item/pda/medical
ears = /obj/item/radio/headset/headset_med
uniform = /obj/item/clothing/under/suit/black
shoes = /obj/item/clothing/shoes/laceup
l_hand = /obj/item/clipboard
backpack = /obj/item/storage/backpack/medic
satchel = /obj/item/storage/backpack/satchel/med
duffelbag = /obj/item/storage/backpack/duffelbag/med
backpack_contents = list(/obj/item/storage/pill_bottle/mannitol, /obj/item/storage/pill_bottle/psicodine, /obj/item/storage/pill_bottle/paxpsych, /obj/item/storage/pill_bottle/happinesspsych, /obj/item/storage/pill_bottle/lsdpsych)
chameleon_extras = /obj/item/gun/syringe
@@ -5,6 +5,7 @@
var/obj/item/organ/genital/butt/butt = H.getorganslot(ORGAN_SLOT_BUTT)
var/obj/item/organ/genital/belly/belly = H.getorganslot(ORGAN_SLOT_BELLY)
var/obj/item/organ/genital/breasts/breasts = H.getorganslot(ORGAN_SLOT_BREASTS)
var/obj/item/organ/genital/taur_belly/tbelly = H.getorganslot(ORGAN_SLOT_TAUR_BELLY) //GS13 TAUR BELLY EDIT
if(butt)
if(butt.max_size > 0)
@@ -18,6 +19,12 @@
belly.modify_size(size_change)
else
belly.modify_size(size_change)
if(tbelly) //GS13 TAUR BELLY EDIT
if(tbelly.max_size > 0)
if((tbelly.size + size_change) <= tbelly.max_size)
tbelly.modify_size(size_change)
else
tbelly.modify_size(size_change)
if(breasts)
if(breasts.max_size > 0)
if((breasts.cached_size + size_change) <= breasts.max_size)
@@ -0,0 +1,77 @@
/obj/item/organ/genital/taur_belly //I know, I know a this is just a copy of belly.dm code.
name = "taur belly"
desc = "You see a belly on their taur body."
icon_state = "belly"
icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi' //drake belly as placeholder
zone = BODY_ZONE_CHEST // ugh... I think this is a target on a health doll
slot = ORGAN_SLOT_TAUR_BELLY
w_class = 3
size = 0
var/max_size = 0
shape = TAUR_BELLY_SHAPE_DEF//"taur_belly"
var/statuscheck = FALSE
genital_flags = UPDATE_OWNER_APPEARANCE|GENITAL_CAN_TAUR
masturbation_verb = "massage"
var/sent_full_message = TRUE //defaults to 1 since they're full to start
var/inflatable = FALSE
var/size_cached = 0
var/prev_size = 0
layer_index = TAUR_BELLY_LAYER_INDEX
/obj/item/organ/genital/taur_belly/modify_size(modifier, min = TAUR_BELLY_SIZE_DEF, max = TAUR_BELLY_SIZE_MAX)
var/new_value = clamp(size_cached + modifier, starting_size, max)
if(new_value == size_cached)
return
prev_size = size_cached
size_cached = new_value
size = round(size_cached)
update()
..()
/obj/item/organ/genital/taur_belly/update_appearance()
//GS13
// Default settings
var/datum/sprite_accessory/S = GLOB.taur_belly_shapes_list[shape] //GS13 - get belly shape
var/icon_shape_state = S ? S.icon_state : "belly"
icon_state = "[icon_shape_state]_[size]"
//var/icon_shape = S ? S.icon : "hyperstation/icons/obj/genitals/belly.dmi" //fallback to default belly in case we cant find a shape
//icon = icon_shape
// Fullnes not implemented yet
/*
switch(owner.fullness)
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' //We use round belly to represent stuffedness
icon_state = "belly_round_[size]"
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
icon_state = "belly_round_[size+1]"
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
icon_state = "belly_round_[size+2]"
*/
if(owner)
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow...
var/mob/living/carbon/human/H = owner // only human mobs have skin_tone, which we need.
color = SKINTONE2HEX(H.skin_tone)
if(!H.dna.skin_tone_override)
icon_state += "_s"
else
color = "#[owner.dna.features["taur_belly_color"]]"
/obj/item/organ/genital/taur_belly/get_features(mob/living/carbon/human/H)
var/datum/dna/D = H.dna
if(D.species.use_skintones && D.features["genitals_use_skintone"])
color = SKINTONE2HEX(H.skin_tone)
else
color = "#[D.features["taur_belly_color"]]"
size = D.features["taur_belly_size"]
max_size = D.features["max_taur_belly_size"]
starting_size = D.features["belly_size"]
shape = D.features["taur_belly_shape"]
inflatable = D.features["taur_inflatable_belly"]
toggle_visibility(D.features["taur_belly_visibility"], FALSE)
@@ -8,6 +8,7 @@
reagent_state = LIQUID
color = "#e2e1b1"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS
/datum/reagent/consumable/lipoifier/on_mob_life(mob/living/carbon/M)
M.adjust_fatness(15, FATTENING_TYPE_CHEM)
@@ -22,6 +23,7 @@
// GS13 tweak
metabolization_rate = 0.7 * REAGENTS_METABOLISM
overdose_threshold = 105
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS
/datum/reagent/medicine/lipolicide/overdose_process(mob/living/carbon/C)
. = ..()
@@ -51,6 +53,7 @@
reagent_state = LIQUID
taste_description = "fizziness"
metabolization_rate = 2 * REAGENTS_METABOLISM
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS
/datum/reagent/consumable/fizulphite/on_mob_life(mob/living/carbon/M)
if(M && M?.client?.prefs.weight_gain_chems)
@@ -69,6 +72,7 @@
reagent_state = LIQUID
taste_description = "smoothness"
metabolization_rate = 0.8 * REAGENTS_METABOLISM
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS
/datum/reagent/consumable/extilphite/on_mob_life(mob/living/carbon/M)
if(M && M?.client?.prefs.weight_gain_chems)
@@ -91,6 +95,7 @@
reagent_state = LIQUID
taste_description = "sulfury sweetness"
metabolization_rate = 0.5 * REAGENTS_METABOLISM //Done by Zestyspy, Jan 2023
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS
/datum/reagent/consumable/flatulose/on_mob_life(mob/living/carbon/M)
if(M && M?.client?.prefs.weight_gain_chems)
@@ -136,6 +141,7 @@
taste_description = "blueberry pie"
var/no_mob_color = FALSE
value = 10 //it sells. Make that berry factory
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS //screw it let robots have juice why not
/datum/reagent/blueberry_juice/on_mob_life(mob/living/carbon/M)
if(M?.client)
@@ -8,6 +8,7 @@
overdose_threshold = 50
metabolization_rate = REAGENTS_METABOLISM / 4
can_synth = FALSE //DO NOT MAKE THIS SNYTHESIZABLE, THESE CHEMS ARE SUPPOSED TO NOT BE USED COMMONLY
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS
overdose_threshold = 50
addiction_threshold = 100
@@ -150,6 +151,7 @@
pH = 7
metabolization_rate = REAGENTS_METABOLISM / 4
can_synth = FALSE
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS
overdose_threshold = 50
@@ -0,0 +1,18 @@
//GS13: Pysch pills
/obj/item/reagent_containers/pill/lsdpsych
name = "antipsychotic pill"
desc = "Talk to your healthcare provider immediately if hallucinations worsen or new hallucinations emerge."
icon_state = "pill14"
list_reagents = list(/datum/reagent/toxin/mindbreaker = 5)
/obj/item/reagent_containers/pill/happinesspsych
name = "mood stabilizer pill"
desc = "Used to temporarily alleviate anxiety and depression, take only as prescribed."
icon_state = "pill_happy"
list_reagents = list(/datum/reagent/drug/happiness = 5)
/obj/item/reagent_containers/pill/paxpsych
name = "pacification pill"
desc = "Used to temporarily suppress violent, homicidal, or suicidal behavior in patients."
icon_state = "pill12"
list_reagents = list(/datum/reagent/pax = 5)
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

+2
View File
@@ -190,6 +190,8 @@
#define ORGAN_SLOT_BUTT "butt"
// GS13 EDIT
#define ORGAN_SLOT_BELLY "belly"
// GS13 EDIT
#define ORGAN_SLOT_TAUR_BELLY "taur_belly"
////organ defines
#define STANDARD_ORGAN_THRESHOLD 100
+1
View File
@@ -66,6 +66,7 @@
#define ACCESS_CLONING 68 //Cloning room and clone pod ejection
#define ACCESS_ENTER_GENPOP 69
#define ACCESS_LEAVE_GENPOP 70
#define ACCESS_PSYCH 71 //GS13: Psychology room doors
//BEGIN CENTCOM ACCESS
/*Should leave plenty of room if we need to add more access levels.
+10 -4
View File
@@ -9,11 +9,12 @@
#define BUTT_LAYER_INDEX 1
#define VAGINA_LAYER_INDEX 2
#define TESTICLES_LAYER_INDEX 3
#define BELLY_LAYER_INDEX 4
#define GENITAL_LAYER_INDEX 5
#define PENIS_LAYER_INDEX 6
#define TAUR_BELLY_LAYER_INDEX 4
#define BELLY_LAYER_INDEX 5
#define GENITAL_LAYER_INDEX 6
#define PENIS_LAYER_INDEX 7
#define GENITAL_LAYER_INDEX_LENGTH 6 //keep it updated with each new index added, thanks.
#define GENITAL_LAYER_INDEX_LENGTH 7 //keep it updated with each new index added, thanks.
//genital flags
#define GENITAL_BLACKLISTED (1<<0) //for genitals that shouldn't be added to GLOB.genitals_list.
@@ -72,6 +73,11 @@
#define DEF_BELLY_SHAPE "Soft Belly" //GS13 - More belly types
//GS13 EDIT TAUR BELLIES
#define TAUR_BELLY_SIZE_DEF 1
#define TAUR_BELLY_SIZE_MAX 10
#define TAUR_BELLY_SHAPE_DEF "Drake Belly" // GS13 - for future taur bodies...
//GS13 Port - Add back Arousal
#define AROUSAL_MINIMUM_DEFAULT 0
#define AROUSAL_MAXIMUM_DEFAULT 100
+10 -8
View File
@@ -28,6 +28,7 @@
#define PARAMEDIC (1<<7)
#define JR_DOCTOR (1<<8)
#define JR_SCIENTIST (1<<9)
#define MED_PSYCH (1<<10)
#define CIVILIAN (1<<2)
@@ -87,14 +88,15 @@
#define JOB_DISPLAY_ORDER_CHEMIST 24
#define JOB_DISPLAY_ORDER_VIROLOGIST 25
#define JOB_DISPLAY_ORDER_GENETICIST 26
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 27
#define JOB_DISPLAY_ORDER_SCIENTIST 28
#define JOB_DISPLAY_ORDER_ROBOTICIST 29
#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 30
#define JOB_DISPLAY_ORDER_WARDEN 31
#define JOB_DISPLAY_ORDER_DETECTIVE 32
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 33
#define JOB_DISPLAY_ORDER_PRISONER 34
#define JOB_DISPLAY_ORDER_PSYCH 27 //GS13: Psychologist
#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 28
#define JOB_DISPLAY_ORDER_SCIENTIST 29
#define JOB_DISPLAY_ORDER_ROBOTICIST 30
#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 31
#define JOB_DISPLAY_ORDER_WARDEN 32
#define JOB_DISPLAY_ORDER_DETECTIVE 33
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 34
#define JOB_DISPLAY_ORDER_PRISONER 35
#define DEPARTMENT_UNASSIGNED "No department assigned"
+2
View File
@@ -77,6 +77,8 @@
#define REAGENT_SPLITRETAINVOL (1<<7) //Retains initial volume of chem when splitting
#define REAGENT_ORGANIC_PROCESS (1<<8) //Can be processed by organic carbons - will otherwise slowly dissipate
#define REAGENT_ROBOTIC_PROCESS (1<<9) //Can be processed by robotic carbons - will otherwise slowly dissipate
//GS13 edit
#define REAGENT_BIOFUEL_PROCESS (1<<10) //Can be processed by robotic carbons with biofuel processor trait - should be on nutriment-type reagents and fatchems only
#define REAGENT_ALL_PROCESS (REAGENT_ORGANIC_PROCESS | REAGENT_ROBOTIC_PROCESS) //expand this if you for some reason add more process flags
+1
View File
@@ -290,6 +290,7 @@
#define TRAIT_METAL_CRUNCHER "metal_cruncher"
#define TRAIT_WATER_SPONGE "water_sponge"
#define TRAIT_FATROUSAL "fatrousal"
#define TRAIT_BIOFUEL "biofuel_processor"
//GS13 Port
#define TRAIT_HEADPAT_SLUT "headpat_slut"
+6
View File
@@ -58,6 +58,7 @@ GLOBAL_LIST_EMPTY(cock_shapes_list)
GLOBAL_LIST_EMPTY(balls_shapes_list)
GLOBAL_LIST_EMPTY(butt_shapes_list)
GLOBAL_LIST_EMPTY(belly_shapes_list)
GLOBAL_LIST_EMPTY(taur_belly_shapes_list) // GS13 TAUR BELLY EDIT
GLOBAL_LIST_EMPTY(breasts_shapes_list)
GLOBAL_LIST_EMPTY(vagina_shapes_list)
//longcat memes.
@@ -136,6 +137,11 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE)
return TRUE
return FALSE
/mob/living/carbon/proc/has_taur_belly() //GS13 EDIT TAUR BELLY
if(getorganslot(ORGAN_SLOT_TAUR_BELLY))
return TRUE
return FALSE
/mob/living/carbon/proc/is_groin_exposed(list/L)
if(!L)
L = get_equipped_items()
+1
View File
@@ -58,6 +58,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/butt, GLOB.butt_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/belly, GLOB.belly_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur_belly, GLOB.taur_belly_shapes_list) //GS13 EDIT TAUR BELLY
for(var/gpath in subtypesof(/obj/item/organ/genital))
var/obj/item/organ/genital/G = gpath
+11
View File
@@ -106,6 +106,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
if(!GLOB.mam_snouts_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts/mam_snouts, GLOB.mam_snouts_list)
if(!GLOB.taur_belly_shapes_list.len) //GS13 EDIT TAUR BELLY
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur_belly, GLOB.taur_belly_shapes_list)
//snowflake check so people's ckey features don't get randomly put on unmonkeys/spawns
var/list/snowflake_mam_tails_list = list()
@@ -222,6 +224,15 @@
"inflatable_belly" = FALSE,
"belly_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
// GS13 EDIT END
// GS13 EDIT START - TAUR BELLY
"has_taur_belly" = FALSE,
"taur_belly_size" = TAUR_BELLY_SIZE_DEF,
"taur_belly_shape" = TAUR_BELLY_SHAPE_DEF,
"hide_taur_belly" = FALSE,
"taur_inflatable_belly" = FALSE,
"taur_belly_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
"taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES,
// GS13 EDIT END
"balls_visibility" = GEN_VISIBLE_NO_UNDIES,
"breasts_visibility"= GEN_VISIBLE_NO_UNDIES,
+4
View File
@@ -106,4 +106,8 @@
/proc/is_reagent_processing_invalid(datum/reagent/R, mob/living/owner)
if(!R || !owner)
return TRUE
//GS13 edit start
if(HAS_TRAIT(owner, TRAIT_BIOFUEL) && (R.chemical_flags & REAGENT_BIOFUEL_PROCESS))
return FALSE
//GS13 edit end
return ((HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM) && !(R.chemical_flags & REAGENT_ROBOTIC_PROCESS)) || (!HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM) && !(R.chemical_flags & REAGENT_ORGANIC_PROCESS)))
+1
View File
@@ -100,6 +100,7 @@ DEFINE_BITFIELD(chemical_flags, list(
"REAGENT_ONMOBMERGE" = REAGENT_ONMOBMERGE,
"REAGENT_ORGANIC_PROCESS" = REAGENT_ORGANIC_PROCESS,
"REAGENT_ROBOTIC_PROCESS" = REAGENT_ROBOTIC_PROCESS,
"REAGENT_BIOFUEL_PROCESS" = REAGENT_BIOFUEL_PROCESS,
"REAGENT_SNEAKYNAME" = REAGENT_SNEAKYNAME,
"REAGENT_SPLITRETAINVOL" = REAGENT_SPLITRETAINVOL,
))
+1 -1
View File
@@ -15,7 +15,7 @@
/obj/machinery/computer/crew/syndie
icon_keyboard = "syndie_key"
/obj/machinery/computer/crew/interact(mob/user)
/obj/machinery/computer/crew/ui_interact(mob/user) //GS13: Ghost crew monitor fix
GLOB.crewmonitor.show(user,src)
GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
+14
View File
@@ -261,6 +261,8 @@
give_genital(/obj/item/organ/genital/butt)
if(dna.features["has_belly"])
give_genital(/obj/item/organ/genital/belly)
if(dna.features["has_taur_belly"]) //GS13 EDIT TAUR BELLY
give_genital(/obj/item/organ/genital/taur_belly)
/mob/living/carbon/human/proc/give_genital(obj/item/organ/genital/G)
if(!dna || (NOGENITALS in dna.species.species_traits) || getorganslot(initial(G.slot)))
@@ -322,6 +324,8 @@
S = GLOB.butt_shapes_list[G.shape]
if(/obj/item/organ/genital/belly)
S = GLOB.belly_shapes_list[G.shape]
if(/obj/item/organ/genital/taur_belly) //GS13 EDIT TAUR BELLY
S = GLOB.taur_belly_shapes_list[G.shape]
if(!S || S.icon_state == "none")
continue
@@ -358,6 +362,8 @@
genital_overlay.color = "#[dna.features["butt_color"]]"
if("belly_color")
genital_overlay.color = "#[dna.features["belly_color"]]"
if("taur_belly_color") //GS13 EDIT TAUR BELLY
genital_overlay.color = "#[dna.features["taur_belly_color"]]"
//GS13 - Because each genital's file has different naming schemes for their icon_states,
// I've made it so each type is checked and the icon_state built based on which genital it is
@@ -365,6 +371,9 @@
if("belly")
genital_overlay.icon = G.icon
genital_overlay.icon_state = "[G.icon_state]_[aroused_state]_[layertext]"
if("taur_belly") //GS13 EDIT TAUR BELLY
//genital_overlay.icon = G.icon
genital_overlay.icon_state = "[G.icon_state]_[aroused_state]_[layertext]"
if("breasts")
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][(dna.species.use_skintones && !dna.skin_tone_override) ? "-s" : ""]_[aroused_state]_[layertext]"
if("penis")
@@ -405,6 +414,7 @@
var/buttCheck = getorganslot(ORGAN_SLOT_BUTT)
var/ballCheck = getorganslot(ORGAN_SLOT_TESTICLES)
var/bellyCheck = getorganslot(ORGAN_SLOT_BELLY)
var/taurbellyCheck = getorganslot(ORGAN_SLOT_TAUR_BELLY) //GS13 EDIT TAUR BELLY
if(organCheck == FALSE)
if(ishuman(src) && dna.species.use_skintones)
@@ -415,6 +425,7 @@
dna.features["butt_color"] = "[dna.species.fixed_mut_color]"
dna.features["belly_color"] = "[dna.species.fixed_mut_color]"
dna.features["testicles_color"] = "[dna.species.fixed_mut_color]"
dna.features["taur_belly_color"] = "[dna.species.fixed_mut_color]" //GS13 EDIT TAUR BELLY
return
//So people who haven't set stuff up don't get rainbow surprises.
dna.features["cock_color"] = "[dna.features["mcolor"]]"
@@ -422,6 +433,7 @@
dna.features["butt_color"] = "[dna.features["mcolor"]]"
dna.features["belly_color"] = "[dna.features["mcolor"]]"
dna.features["testicles_color"] = "[dna.features["mcolor"]]"
dna.features["taur_belly_color"] = "[dna.features["mcolor"]]" //GS13 EDIT TAUR BELLY
else //If there's a new organ, make it the same colour.
if(breastCheck == FALSE)
dna.features["breasts_color"] = dna.features["cock_color"]
@@ -433,4 +445,6 @@
dna.features["belly_color"] = dna.features["belly_color"]
else if (ballCheck == FALSE)
dna.features["testicles_color"] = dna.features["testicles_color"]
else if (taurbellyCheck == FALSE)
dna.features["taur_belly_color"] = dna.features["taur_belly_color"] //GS13 EDIT TAUR BELLY
return TRUE
@@ -152,3 +152,19 @@
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
icon_state = "round"
name = "Round Belly"
//GS13 EDIT TAUR BELLY
/datum/sprite_accessory/taur_belly // Generic taur belly
icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi'
icon_state = "drake"
name = "generic taur belly"
color_src = "taur_belly_color"
//taur_dimension_x = 64
feat_taur = "belly_taur"
center = TRUE
dimension_x = 64
/datum/sprite_accessory/taur_belly/drake
taur_icon = 'GainStation13/icons/obj/genitals/taur_belly/taur_belly_drake.dmi'
icon_state = "drake"
name = "Drake Belly"
+60 -3
View File
@@ -134,7 +134,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/eye_type = DEFAULT_EYES_TYPE //Eye type
var/split_eye_colors = FALSE
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_fluid" = /datum/reagent/consumable/milk, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "belly_visibility" = GEN_VISIBLE_NO_UNDIES)
var/list/features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = list(), "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_fluid" = /datum/reagent/consumable/milk, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "taur_belly_size" = TAUR_BELLY_SIZE_DEF, "taur_belly_shape" = TAUR_BELLY_SHAPE_DEF, "taur_inflatable_belly" = FALSE, "taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES)
var/custom_speech_verb = "default" //if your say_mod is to be something other than your races
var/custom_tongue = "default" //if your tongue is to be something other than your races
@@ -871,10 +871,27 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=belly_visibility;task=input'>[features["belly_visibility"]]</a>"
// GS13: tweak inflation description
dat += "<b>Inflation (climax with and manual belly size change in arousal menu):</b><a style='display:block;width:50px' href='?_src_=prefs;preference=inflatable_belly'>[features["inflatable_belly"] == 1 ? "Yes" : "No"]</a>"
dat += "</td>"
dat += "</tr></table>"
// GS13 EDIT TAUR BELLY START
if(features["taur"] != "None")
dat += APPEARANCE_CATEGORY_COLUMN
dat += "<h3>Taur Belly</h3>"
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=has_taur_belly'>[features["has_taur_belly"] == TRUE ? "Yes" : "No"]</a>"
if(features["has_taur_belly"])
dat += "<b>Color:</b></a><BR>"
if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE)
dat += "<span style='border: 1px solid #161616; background-color: [SKINTONE2HEX(skin_tone)];'><font color='[color_hex2num(SKINTONE2HEX(skin_tone)) < 200 ? "FFFFFF" : "000000"]'>[SKINTONE2HEX(skin_tone)]</font></span>(Skin tone overriding)<br>"
else
dat += "<span style='border: 1px solid #161616; background-color: #[features["taur_belly_color"]];'><font color='[color_hex2num(features["taur_belly_color"]) < 200 ? "FFFFFF" : "000000"]'>#[features["taur_belly_color"]]</font></span> <a href='?_src_=prefs;preference=taur_belly_color;task=input'>Change</a><br>"
dat += "<b>Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=taur_belly_size;task=input'>[features["taur_belly_size"]]</a>"
dat += "<b>Max Fat Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=max_taur_belly_size;task=input'>[features["max_taur_belly_size"]]</a>"
dat += "<b>Belly Shape:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=taur_belly_shape;task=input'>[features["taur_belly_shape"]]</a>"
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=taur_belly_visibility;task=input'>[features["taur_belly_visibility"]]</a>"
dat += "<b>Inflation (climax with and manual belly size change in arousal menu):</b><a style='display:block;width:50px' href='?_src_=prefs;preference=taur_inflatable_belly'>[features["taur_inflatable_belly"] == 1 ? "Yes" : "No"]</a>"
dat += "</td>"
dat += "</tr></table>"
//Markings
if(MARKINGS_CHAR_TAB)
@@ -2547,6 +2564,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["tail_human"] = "None"
features["tail_lizard"] = "None"
features["arachnid_spinneret"] = "None"
else
features["has_taur_belly"] = FALSE
if("ears")
var/list/snowflake_ears_list = list()
@@ -2843,7 +2862,40 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/n_vis = input(user, "Belly Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
if(n_vis)
features["belly_visibility"] = n_vis
//GS13 TAUR BELLY START
if("taur_belly_color")
var/new_bellycolor = input(user, "Belly Color:", "Character Preference", "#"+features["taur_belly_color"]) as color|null
if(new_bellycolor)
var/temp_hsv = RGBtoHSV(new_bellycolor)
if(new_bellycolor == "#000000")
features["taur_belly_color"] = pref_species.default_color
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
features["taur_belly_color"] = sanitize_hexcolor(new_bellycolor, 6)
else
to_chat(user,"<span class='danger'>Invalid color. Your color is not bright enough.</span>")
if("taur_belly_size") //GS13 Edit here if we add more belly sprites
// GS13: Adjust sprite ranges in char setup
var/new_bellysize = input(user, "Belly size :\n(1-10)", "Character Preference") as num|null
if(new_bellysize)
features["taur_belly_size"] = clamp(round(new_bellysize), 1, 10)
if("max_taur_belly_size")
var/new_bellymax = input(user, "Max belly fat size :\n(0-9)", "Character Preference") as num|null
if(new_bellymax)
features["max_taur_belly_size"] = clamp(round(new_bellymax), 0, 10)
if("taur_belly_shape") //GS13 - belly shapes
var/new_shape
new_shape = input(user, "Belly Type", "Character Preference") as null|anything in GLOB.taur_belly_shapes_list
if(new_shape)
features["taur_belly_shape"] = new_shape
if("taur_belly_visibility")
var/n_vis = input(user, "Belly Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
if(n_vis)
features["taur_belly_visibility"] = n_vis
//GS13 TAUR BELLY END
if("ooccolor")
var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null
@@ -3160,6 +3212,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["has_belly"] = !features["has_belly"]
if("inflatable_belly")
features["inflatable_belly"] = !features["inflatable_belly"]
//GS13 TAUR BELLY EDIT
if("has_taur_belly")
features["has_taur_belly"] = !features["has_taur_belly"]
if("taur_inflatable_belly")
features["taur_inflatable_belly"] = !features["taur_inflatable_belly"]
if("widescreenpref")
widescreenpref = !widescreenpref
user.client.view_size.setDefault(getScreenSize(widescreenpref))
+26 -1
View File
@@ -704,7 +704,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/savefile/S = new /savefile(path)
if(!S)
return FALSE
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING)
features = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF", "mcolor3" = "FFFFFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "horns_color" = "85615a", "ears" = "None", "wings" = "None", "wings_color" = "FFF", "frills" = "None", "deco_wings" = "None", "spines" = "None", "legs" = "Plantigrade", "insect_wings" = "Plain", "insect_fluff" = "None", "insect_markings" = "None", "arachnid_legs" = "Plain", "arachnid_spinneret" = "Plain", "arachnid_mandibles" = "Plain", "mam_body_markings" = "Plain", "mam_ears" = "None", "mam_snouts" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", "xenotail" = "Xenomorph Tail", "taur" = "None", "genitals_use_skintone" = FALSE, "has_cock" = FALSE, "cock_shape" = DEF_COCK_SHAPE, "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "ffffff", "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "ffffff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, "balls_cum_rate" = CUM_RATE, "balls_cum_mult" = CUM_RATE_MULT, "balls_efficiency" = CUM_EFFICIENCY, "has_breasts" = FALSE, "breasts_color" = "ffffff", "breasts_size" = BREASTS_SIZE_DEF, "breasts_shape" = DEF_BREASTS_SHAPE, "breasts_producing" = FALSE, "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "ffffff", "has_womb" = FALSE, "has_butt" = FALSE, "butt_color" = "ffffff", "butt_size" = BUTT_SIZE_DEF, "balls_visibility" = GEN_VISIBLE_NO_UNDIES, "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, "cock_visibility" = GEN_VISIBLE_NO_UNDIES, "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "butt_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_visibility" = GEN_VISIBLE_NO_UNDIES, "belly_size" = BELLY_SIZE_DEF, "belly_shape" = DEF_BELLY_SHAPE, "inflatable_belly" = FALSE, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE, "color_scheme" = OLD_CHARACTER_COLORING, "taur_belly_size" = TAUR_BELLY_SIZE_DEF, "taur_belly_shape" = TAUR_BELLY_SHAPE_DEF, "taur_inflatable_belly" = FALSE, "taur_belly_visibility" = GEN_VISIBLE_NO_UNDIES)
S.cd = "/"
if(!slot)
@@ -901,6 +901,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_hide_belly"] >> features["hide_belly"]
S["feature_inflatable_belly"] >> features["inflatable_belly"]
//GS13 EDIT TAUR BELLY features
S["feature_has_taur_belly"] >> features["has_taur_belly"]
S["feature_taur_belly_size"] >> features["taur_belly_size"]
S["feature_max_taur_belly_size"] >> features["max_taur_belly_size"]
S["feature_taur_belly_shape"] >> features["taur_belly_shape"]
S["feature_taur_belly_color"] >> features["taur_belly_color"]
S["feature_hide_taur_belly"] >> features["hide_taur_belly"]
S["feature_taur_inflatable_belly"] >> features["taur_inflatable_belly"]
S["feature_taur_belly_visibility"] >> features["feature_taur_belly_visibility"]
// Flavor texts, Made into a standard.
S["feature_flavor_text"] >> features["flavor_text"]
S["feature_silicon_flavor_text"] >> features["silicon_flavor_text"]
@@ -1087,6 +1097,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["butt_visibility"] = sanitize_inlist(features["butt_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
features["belly_visibility"] = sanitize_inlist(features["belly_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
//GS13 TAUR BELLY EDIT START
features["taur_belly_shape"] = sanitize_inlist(features["taur_belly_shape"], GLOB.taur_belly_shapes_list, TAUR_BELLY_SHAPE_DEF)
features["taur_belly_visibility"] = sanitize_inlist(features["taur_belly_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES)
//GS13 TAUR BELLY EDIT END
custom_speech_verb = sanitize_inlist(custom_speech_verb, GLOB.speech_verbs, "default")
custom_tongue = sanitize_inlist(custom_tongue, GLOB.roundstart_tongues, "default")
additional_language = sanitize_inlist(additional_language, GLOB.roundstart_languages, "None")
@@ -1326,6 +1341,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["feature_inflatable_belly"], features["inflatable_belly"])
WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences)
//GS13 TAUR BELLY EDIT START
WRITE_FILE(S["feature_has_taur_belly"], features["has_taur_belly"])
WRITE_FILE(S["feature_taur_belly_size"], features["taur_belly_size"])
WRITE_FILE(S["feature_max_taur_belly_size"], features["max_taur_belly_size"])
WRITE_FILE(S["feature_taur_belly_shape"], features["taur_belly_shape"])
WRITE_FILE(S["feature_taur_belly_color"], features["taur_belly_color"])
WRITE_FILE(S["feature_hide_taur_belly"], features["hide_taur_belly"])
WRITE_FILE(S["feature_taur_inflatable_belly"], features["taur_inflatable_belly"])
//GS13 TAUR BELLY EDIT START END
WRITE_FILE(S["feature_ooc_notes"], features["ooc_notes"])
WRITE_FILE(S["feature_color_scheme"], features["color_scheme"])
@@ -20,7 +20,7 @@
jobs_to_revolt = list("Assistant")
nation_name = pick("Assa", "Mainte", "Tunnel", "Gris", "Grey", "Liath", "Grigio", "Ass", "Assi")
if("white")
jobs_to_revolt = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Virologist")
jobs_to_revolt = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Psychologist", "Virologist") //GS13 edit: Psychologist job
nation_name = pick("Mede", "Healtha", "Recova", "Chemi", "Geneti", "Viro", "Psych")
if("yellow")
jobs_to_revolt = list("Chief Engineer", "Station Engineer", "Atmospheric Technician")
+6 -4
View File
@@ -134,7 +134,7 @@
ACCESS_HYDROPONICS, ACCESS_LIBRARY, ACCESS_LAWYER, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_QM, ACCESS_SURGERY,
ACCESS_THEATRE, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_WEAPONS,
ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING)
ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING, ACCESS_PSYCH) //GS13: Psychologist job
/proc/get_all_centcom_access()
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN)
@@ -162,7 +162,7 @@
if(2) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,)
if(3) //medbay
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_CMO)
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_CMO, ACCESS_PSYCH) //GS13: Psychologist job
if(4) //research
return list(ACCESS_RESEARCH, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_GENETICS, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_MINISAT, ACCESS_RD, ACCESS_NETWORK)
if(5) //engineering and maintenance
@@ -329,6 +329,8 @@
return "Network Access"
if(ACCESS_CLONING)
return "Cloning Room"
if(ACCESS_PSYCH)
return "Psychology Office" //GS13: Psychologist job
/proc/get_centcom_access_desc(A)
switch(A)
@@ -354,8 +356,8 @@
/proc/get_all_jobs()
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician",
"Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Engineering Intern",
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic", "Medical Resident",
"Research Director", "Scientist", "Roboticist", "Research Student", "Head of Security", "Warden", "Detective", "Security Officer", "Security Cadet", "Prisoner") //Rookie roles
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic", "Psychologist", "Medical Resident",
"Research Director", "Scientist", "Roboticist", "Research Student", "Head of Security", "Warden", "Detective", "Security Officer", "Security Cadet", "Prisoner") //Rookie + Psychologist roles
/proc/get_all_job_icons() //For all existing HUD icons
return get_all_jobs() + list("Prisoner")
+3
View File
@@ -76,6 +76,9 @@
/datum/job/paramedic
alt_titles = list ("Emergency Medical Technician", "Search and Rescue Technician", "Trauma Team Responder")
/datum/job/psychologist
alt_titles = list("Therapist", "Psychiatrist")
/datum/job/junior_doctor
alt_titles = list("Medical Student", "Fellow", "Trainee Pharmacy Technician", "Trainee Pharmacist", "Junior Pathologist")
@@ -23,10 +23,10 @@
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM,
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS)
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS, ACCESS_PSYCH) //GS13 edit: Psychologist job
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_HEADS, ACCESS_MINERAL_STOREROOM,
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS)
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS, ACCESS_PSYCH) //GS13 edit: Psychologist job
paycheck = PAYCHECK_COMMAND
paycheck_department = ACCOUNT_MED
bounty_types = CIV_JOB_MED
@@ -25,13 +25,13 @@
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER,
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_VAULT,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY)
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_PSYCH) //GS13 edit: Psychologist job
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS,
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS,
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER,
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_VAULT,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY)
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_PSYCH) //GS13 edit: Psychologist job
paycheck = PAYCHECK_COMMAND
paycheck_department = ACCOUNT_SRV
bounty_types = CIV_JOB_RANDOM
+2 -1
View File
@@ -6,7 +6,7 @@ GLOBAL_LIST_INIT(command_positions, list(
"Research Director",
"Chief Medical Officer",
"Quartermaster"))
//GS13 edit: Trainee roles
//GS13 edit: Trainee roles + Psychologist
GLOBAL_LIST_INIT(engineering_positions, list(
"Chief Engineer",
"Station Engineer",
@@ -21,6 +21,7 @@ GLOBAL_LIST_INIT(medical_positions, list(
"Virologist",
"Paramedic",
"Chemist",
"Psychologist",
"Medical Resident"))
@@ -8,6 +8,7 @@
name = "proto-kinetic crusher"
desc = "An early design of the proto-kinetic accelerator, it is little more than an combination of various mining tools cobbled together, forming a high-tech club. \
While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna."
resistance_flags = FIRE_PROOF //GS13: Fireproof miner equipment
force = 0 //You can't hit stuff unless wielded
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
@@ -7,6 +7,7 @@
cell_type = /obj/item/stock_parts/cell/emproof
item_flags = NONE
obj_flags = UNIQUE_RENAME
resistance_flags = FIRE_PROOF //GS13: Fireproof miner equipment
weapon_weight = WEAPON_LIGHT
recoil = 0.5
can_flashlight = 1
@@ -12,6 +12,7 @@
taste_description = "generic food"
taste_mult = 4
value = REAGENT_VALUE_VERY_COMMON
chemical_flags = REAGENT_ORGANIC_PROCESS | REAGENT_BIOFUEL_PROCESS // GS13 edit; lets robots with the biofuel trait process foodchems
var/nutriment_factor = 1 * REAGENTS_METABOLISM
var/max_nutrition = INFINITY
var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes
+34 -6
View File
@@ -360,6 +360,13 @@
/obj/item/apc_powercord/proc/apc_powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H)
H.visible_message("<span class='notice'>[H] inserts a power connector into [A].</span>", "<span class='notice'>You begin to draw power from [A].</span>")
//GS13 EDIT START
var/overcharge = FALSE
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
overcharge = TRUE
//GS13 EDIT END
while(do_after(H, 10, target = A))
if(loc != H)
to_chat(H, "<span class='warning'>You must keep your connector out while charging!</span>")
@@ -378,14 +385,28 @@
A.cell.use(A.cell.charge)
to_chat(H, "<span class='notice'>You siphon off as much as [A] can spare.</span>")
break
if(H.nutrition > NUTRITION_LEVEL_WELL_FED)
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
//GS13 EDIT START
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
if(!overcharge) //GS13 edit
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
else
if(H.nutrition >= NUTRITION_LEVEL_FAT)
to_chat(H, "<span class='notice'>You've packed as much extra power into your battery as it can handle.</span>")
break
//GS13 EDIT END
in_use = FALSE
H.visible_message("<span class='notice'>[H] unplugs from [A].</span>", "<span class='notice'>You unplug from [A].</span>")
/obj/item/apc_powercord/proc/cell_powerdraw_loop(obj/item/stock_parts/cell/C, mob/living/carbon/human/H)
H.visible_message("<span class='notice'>[H] connects a power cord to [C]</span>", "<span class='notice'>You begin to draw power from [C].</span>")
//GS13 EDIT START
var/overcharge = FALSE
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
overcharge = TRUE
//GS13 EDIT END
while(do_after(H, 10, target = C))
if(loc != H)
to_chat(H, "<span class='warning'>You must keep your connector out while charging!</span>")
@@ -397,8 +418,15 @@
C.use(siphoned_charge)
do_sparks(1, FALSE, C)
H.adjust_nutrition(siphoned_charge / 100) //Less efficient on a pure power basis than APC recharge. Still a very viable way of gaining nutrition. (100 nutrition / base 10k cell)
if(H.nutrition > NUTRITION_LEVEL_WELL_FED)
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
// GS13 EDIT START
if(H.nutrition >= NUTRITION_LEVEL_WELL_FED)
if(!overcharge)
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
break
else
if(H.nutrition >= NUTRITION_LEVEL_FAT)
to_chat(H, "<span class='notice'>You've packed as much extra power into your battery as it can handle.</span>")
break
//GS13 EDIT END
in_use = FALSE
H.visible_message("<span class='notice'>[H] disconnects [src] from [C].</span>", "<span class='notice'>You disconnect from [C].</span>")
@@ -251,6 +251,8 @@
var/static/regex/dab_words = regex("dab|mood") //CITADEL CHANGE
var/static/regex/snap_words = regex("snap") //CITADEL CHANGE
var/static/regex/bwoink_words = regex("what the fuck are you doing|bwoink|hey you got a moment?") //CITADEL CHANGE
var/static/regex/gain_words = regex("gain|fatten|widen|get fatter|get fat") //GS13
var/static/regex/inflate_words = regex("blimp|balloon|inflate|bloat") //GS13
var/i = 0
//STUN
@@ -581,6 +583,24 @@
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(user), 'sound/effects/adminhelp.ogg', 300, 1), 25)
//END CITADEL CHANGES
//GS13 STUFF
else if((findtext(message, inflate_words)))
cooldown = COOLDOWN_MEME
for(var/mob/living/carbon/gainer in listeners)
if(gainer.check_weight_prefs(FATTENING_TYPE_MAGIC)) //Make sure the listener(s) have magical wg enabled
gainer.fullness += 20 //We want fullness but not too much
to_chat(gainer, "<span class= 'warning'>As the great voice fills your ears, you start to feel more bloated...</span>") //Can only be seen by those with the appropriate pref toggled
//GAIN
else if((findtext(message, gain_words)))
cooldown = COOLDOWN_MEME
for(var/mob/living/carbon/gainer in listeners)
if(gainer.check_weight_prefs(FATTENING_TYPE_MAGIC)) //Make sure the listener(s) have magical wg enabled
gainer.adjust_fatness(250, FATTENING_TYPE_MAGIC) //Nerfed down from 500 in oldcode
to_chat(gainer, "<span class= 'warning'>As the great voice fills your ears, you suddenly grow heavier!</span>") //Can only be seen by those with the appropriate pref toggled
//END GS13 CHANGES
else
cooldown = COOLDOWN_NONE
@@ -55,6 +55,14 @@
dat += "(Shrink your belly down a size)<BR>"
dat += "<a href='byond://?src=[REF(src)];inflate_belly=1'>Increase belly size</A>"
dat += "(Bloat your belly up a size)<BR>"
//GS13 EDIT TAUR BELLY
var/obj/item/organ/genital/taur_belly/TBelly = user.getorganslot("taur_belly")
if(TBelly)
if(TBelly.inflatable)
dat += "<a href='byond://?src=[REF(src)];taur_shrink_belly=1'>Decrease taur belly size</A>"
dat += "(Shrink your taur belly down a size)<BR>"
dat += "<a href='byond://?src=[REF(src)];taur_inflate_belly=1'>Increase taur belly size</A>"
dat += "(Bloat your taur belly up a size)<BR>"
if(user.pulling)
dat += "<a href='byond://?src=[REF(src)];climaxover=1'>Climax over [user.pulling]</A>" //you can cum on objects if you really want...
@@ -129,6 +137,11 @@
var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden")
E.toggle_visibility(picked_visibility)
if(href_list["hidetaur belly"])
var/obj/item/organ/genital/taur_belly/X = usr.getorganslot("taur_belly")
var/picked_visibility = input(usr, "Choose visibility", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by Undies", "Hidden by clothes", "Always hidden")
X.toggle_visibility(picked_visibility)
if(href_list["hidebutt"])
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 Undies", "Hidden by clothes", "Always hidden")
@@ -238,6 +251,26 @@
else
to_chat(usr, "<span class='warning'>Your belly is already at the maximum size! </span>")
//GS13 EDIT TAUR BELLY START
if(href_list["taur_shrink_belly"])
var/obj/item/organ/genital/taur_belly/X = usr.getorganslot("taur_belly")
if(X.size > 0)
to_chat(usr, "<span class='userlove'>You feel your taur belly diminish.</span>")
X.modify_size(-1)
H.update_genitals()
else
to_chat(usr, "<span class='warning'>Your taur belly is already at the minimum size! </span>")
if(href_list["taur_inflate_belly"])
var/obj/item/organ/genital/taur_belly/X = usr.getorganslot("taur_belly")
if(X.size < 11)
to_chat(usr, "<span class='userlove'>You feel your taur belly bloat out..</span>")
X.modify_size(1)
H.update_genitals()
else
to_chat(usr, "<span class='warning'>Your taur belly is already at the maximum size! </span>")
//GS13 EDIT TAUR BELLY END
if(href_list["removeequipmentpenis"])
var/obj/item/organ/genital/penis/O = usr.getorganslot("penis")
var/obj/item/I = O.equipment
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

+1
View File
@@ -333,6 +333,7 @@
"CHIEF MEDICAL OFFICERS",
"MEDICAL DOCTORS",
"PARAMEDICS",
"PSYCHOLOGISTS",
"CHEMISTS",
"GENETICISTS",
"VIROLOGISTS",
+7
View File
@@ -3965,6 +3965,7 @@
#include "GainStation13\code\game\area\ruins.dm"
#include "GainStation13\code\game\objects\tiles.dm"
#include "GainStation13\code\game\objects\turfs.dm"
#include "GainStation13\code\game\objects\effects\landmarks.dm"
#include "GainStation13\code\game\objects\effects\posters.dm"
#include "GainStation13\code\game\objects\effects\decals\cleanable\misc.dm"
#include "GainStation13\code\game\objects\effects\spawners\choco_slime_delivery.dm"
@@ -3973,11 +3974,13 @@
#include "GainStation13\code\game\objects\items\RCD.dm"
#include "GainStation13\code\game\objects\items\toys.dm"
#include "GainStation13\code\game\objects\items\storage\bags.dm"
#include "GainStation13\code\game\objects\items\storage\firstaid.dm"
#include "GainStation13\code\game\objects\structures\barsigns.dm"
#include "GainStation13\code\game\objects\structures\crate.dm"
#include "GainStation13\code\game\objects\structures\medikit.dm"
#include "GainStation13\code\game\objects\structures\sofa.dm"
#include "GainStation13\code\game\objects\structures\statues.dm"
#include "GainStation13\code\game\objects\structures\crates_lockers\closets\secure\psychology.dm"
#include "GainStation13\code\game\turfs\closed.dm"
#include "GainStation13\code\game\turfs\open.dm"
#include "GainStation13\code\machinery\adipoelectric_generator.dm"
@@ -4042,6 +4045,7 @@
#include "GainStation13\code\modules\hydroponics\lipoplant.dm"
#include "GainStation13\code\modules\hydroponics\munchies_weed.dm"
#include "GainStation13\code\modules\hydroponics\grown\berries.dm"
#include "GainStation13\code\modules\jobs\job_types\psychologist.dm"
#include "GainStation13\code\modules\loadout\backpack.dm"
#include "GainStation13\code\modules\loadout\gloves.dm"
#include "GainStation13\code\modules\loadout\neck.dm"
@@ -4067,6 +4071,7 @@
#include "GainStation13\code\modules\mob\living\fullness.dm"
#include "GainStation13\code\modules\mob\living\nutribot.dm"
#include "GainStation13\code\modules\mob\living\species.dm"
#include "GainStation13\code\modules\mob\living\taur_belly.dm"
#include "GainStation13\code\modules\mob\living\vore\eating\trasheat_lists.dm"
#include "GainStation13\code\modules\mod\modules\modules_fat.dm"
#include "GainStation13\code\modules\power\energy_harvester.dm"
@@ -4080,6 +4085,7 @@
#include "GainStation13\code\modules\reagents\chemistry\recipes\others.dm"
#include "GainStation13\code\modules\reagents\chemistry\recipes\ROCKANDSTONEdrinks.dm"
#include "GainStation13\code\modules\reagents\reagent_containers\barrel_tank.dm"
#include "GainStation13\code\modules\reagents\reagent_containers\pill.dm"
#include "GainStation13\code\modules\research\designs\autolathe.dm"
#include "GainStation13\code\modules\research\designs\biogen.dm"
#include "GainStation13\code\modules\research\designs\borg.dm"
@@ -4158,6 +4164,7 @@
#include "hyperstation\code\obj\decal.dm"
#include "hyperstation\code\obj\fleshlight.dm"
#include "hyperstation\code\obj\kinkyclothes.dm"
#include "hyperstation\code\obj\pole.dm"
#include "hyperstation\code\obj\sizeitems.dm"
#include "hyperstation\code\obj\stargate_clothing.dm"
#include "hyperstation\code\obj\ZaoCorp\hat.dm"