mirror of
https://github.com/evilew/GS13-Citadel.git
synced 2026-08-31 01:01:14 +01:00
Merge branch 'bluespace_belts_changes' of https://github.com/Phantastic-Swan/GS13-Citadel into bluespace_belts_changes
This commit is contained in:
@@ -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)
|
||||
+17
@@ -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)
|
||||
@@ -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 |
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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,
|
||||
))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@@ -333,6 +333,7 @@
|
||||
"CHIEF MEDICAL OFFICERS",
|
||||
"MEDICAL DOCTORS",
|
||||
"PARAMEDICS",
|
||||
"PSYCHOLOGISTS",
|
||||
"CHEMISTS",
|
||||
"GENETICISTS",
|
||||
"VIROLOGISTS",
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user