From b55a497ffcbb1629bb16af0197b04b1869591831 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Mon, 15 Jan 2018 01:02:35 -0500 Subject: [PATCH] IT WORKS! its testmergable, just gotta add in a ckey whitelist system and add casual friday, then its good --- code/controllers/subsystem/job.dm | 7 ++- code/game/world.dm | 2 + code/modules/client/preferences.dm | 44 +++++++------- code/modules/client/preferences_savefile.dm | 52 +--------------- modular_citadel/code/__HELPERS/lists.dm | 9 +++ modular_citadel/code/__HELPERS/mobs.dm | 28 +++++++++ .../code/controllers/subsystem/job.dm | 23 +++++++ modular_citadel/code/init.dm | 4 ++ .../code/modules/client/loadout/hands.dm | 14 ++--- .../code/modules/client/loadout/loadout.dm | 1 + .../code/modules/client/loadout/mask.dm | 5 +- .../code/modules/client/loadout/neck.dm | 5 ++ .../code/modules/client/loadout/shoes.dm | 35 +++++++++++ .../code/modules/client/loadout/uniform.dm | 49 +++++++++++++++ .../code/modules/client/preferences.dm | 60 ------------------- .../modules/client/preferences_savefile.dm | 55 ++++++++++++++++- modular_citadel/dresscode_values.dm | 8 +++ tgstation.dme | 15 +++++ 18 files changed, 274 insertions(+), 142 deletions(-) create mode 100644 modular_citadel/code/__HELPERS/lists.dm create mode 100644 modular_citadel/code/__HELPERS/mobs.dm create mode 100644 modular_citadel/code/controllers/subsystem/job.dm create mode 100644 modular_citadel/code/init.dm create mode 100644 modular_citadel/code/modules/client/loadout/uniform.dm create mode 100644 modular_citadel/dresscode_values.dm diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 65d5f4befb..f319e8ec47 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -394,6 +394,8 @@ SUBSYSTEM_DEF(job) H.mind.assigned_role = rank if(job) + if(!job.dresscodecompliant)// CIT CHANGE - dress code compliance + equip_loadout(N, H) // CIT CHANGE - allows players to spawn with loadout items var/new_mob = job.equip(H) if(ismob(new_mob)) H = new_mob @@ -411,8 +413,11 @@ SUBSYSTEM_DEF(job) to_chat(M, "As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.") if(job && H) + if(job.dresscodecompliant)// CIT CHANGE - dress code compliance + equip_loadout(N, H) // CIT CHANGE - allows players to spawn with loadout items job.after_spawn(H, M) - handle_roundstart_items(H, M.ckey, H.mind.assigned_role, H.mind.special_role) //CIT CHANGE - makes donators spawn with their items + + handle_roundstart_items(H, M.ckey, H.mind.assigned_role, H.mind.special_role) //CIT CHANGE - makes donators spawn with their items. This can safely be commented out when all of the donator items are migrated to the loadout system return H diff --git a/code/game/world.dm b/code/game/world.dm index b1174b3386..e18406ae7d 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -41,6 +41,8 @@ GLOBAL_PROTECT(security_mode) if("no-init" in params) return + cit_initialize() + Master.Initialize(10, FALSE) /world/proc/SetupExternalRSC() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a28cbd1768..469318b0be 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -547,28 +547,28 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(3) if(!gear_tab) gear_tab = GLOB.loadout_items[1] - . += "" - . += "" - . += "" - . += "" + dat += "
[gear_points] loadout points remaining. \[Clear Loadout\]
You can only choose one item per category, unless it's an item that spawns in your backpack or hands.
" + dat += "" + dat += "" + dat += "" + dat += "" - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" + dat += " [i] " + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" for(var/j in GLOB.loadout_items[gear_tab]) var/datum/gear/gear = GLOB.loadout_items[gear_tab][j] var/class_link = "" @@ -578,15 +578,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) class_link = "class='linkOff'" else class_link = "href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=1'" - . += "" - . += "" + dat += "" - . += "
[gear_points] loadout points remaining. \[Clear Loadout\]
You can only choose one item per category, unless it's an item that spawns in your backpack or hands.
" var/firstcat = TRUE for(var/i in GLOB.loadout_items) if(firstcat) firstcat = FALSE else - . += " |" + dat += " |" if(i == gear_tab) - . += " [i] " + dat += " [i] " else - . += " [i] " - . += "

[gear_tab]

NameCostRestrictionsDescription

[gear_tab]

NameCostRestrictionsDescription
[j][gear.cost]" + dat += "
[j][gear.cost]" if(islist(gear.restricted_roles)) if(gear.restricted_roles.len) - . += "" - . += gear.restricted_roles.Join(";") - . += "" - . += "[gear.description]
" + dat += "" + dat += gear.restricted_roles.Join(";") + dat += "" + dat += "
[gear.description]
" dat += "
" if(!IsGuestKey(user.key)) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index f79ec86dd6..8e69c9aaec 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -469,14 +469,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med)) job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low)) - //Citadel - features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) - if(!features["mcolor2"] || features["mcolor"] == "#000") - features["mcolor2"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") - if(!features["mcolor3"] || features["mcolor"] == "#000") - features["mcolor3"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") - features["mcolor2"] = sanitize_hexcolor(features["mcolor2"], 3, 0) - features["mcolor3"] = sanitize_hexcolor(features["mcolor3"], 3, 0) + cit_character_pref_load(S) + return 1 /datum/preferences/proc/save_character() @@ -539,47 +533,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["job_engsec_med"] , job_engsec_med) WRITE_FILE(S["job_engsec_low"] , job_engsec_low) - //Citadel - WRITE_FILE(S["feature_genitals_use_skintone"], features["genitals_use_skintone"]) - WRITE_FILE(S["feature_exhibitionist"], features["exhibitionist"]) - WRITE_FILE(S["feature_mcolor2"], features["mcolor2"]) - WRITE_FILE(S["feature_mcolor3"], features["mcolor3"]) - WRITE_FILE(S["feature_mam_body_markings"], features["mam_body_markings"]) - WRITE_FILE(S["feature_mam_tail"], features["mam_tail"]) - WRITE_FILE(S["feature_mam_ears"], features["mam_ears"]) - WRITE_FILE(S["feature_mam_tail_animated"], features["mam_tail_animated"]) - WRITE_FILE(S["feature_taur"], features["taur"]) - //Xeno features - WRITE_FILE(S["feature_xeno_tail"], features["xenotail"]) - WRITE_FILE(S["feature_xeno_dors"], features["xenodorsal"]) - WRITE_FILE(S["feature_xeno_head"], features["xenohead"]) - //cock features - WRITE_FILE(S["feature_has_cock"], features["has_cock"]) - WRITE_FILE(S["feature_cock_shape"], features["cock_shape"]) - WRITE_FILE(S["feature_cock_color"], features["cock_color"]) - WRITE_FILE(S["feature_cock_length"], features["cock_length"]) - WRITE_FILE(S["feature_cock_girth"], features["cock_girth"]) - WRITE_FILE(S["feature_has_sheath"], features["sheath_color"]) - //balls features - WRITE_FILE(S["feature_has_balls"], features["has_balls"]) - WRITE_FILE(S["feature_balls_color"], features["balls_color"]) - WRITE_FILE(S["feature_balls_size"], features["balls_size"]) - WRITE_FILE(S["feature_balls_sack_size"], features["balls_sack_size"]) - WRITE_FILE(S["feature_balls_fluid"], features["balls_fluid"]) - //breasts features - WRITE_FILE(S["feature_has_breasts"], features["has_breasts"]) - WRITE_FILE(S["feature_breasts_size"], features["breasts_size"]) - WRITE_FILE(S["feature_breasts_shape"], features["breasts_shape"]) - WRITE_FILE(S["feature_breasts_color"], features["breasts_color"]) - WRITE_FILE(S["feature_breasts_fluid"], features["breasts_fluid"]) - //vagina features - WRITE_FILE(S["feature_has_vag"], features["has_vag"]) - WRITE_FILE(S["feature_vag_shape"], features["vag_shape"]) - WRITE_FILE(S["feature_vag_color"], features["vag_color"]) - //womb features - WRITE_FILE(S["feature_has_womb"], features["has_womb"]) - //flavor text - WRITE_FILE(S["feature_flavor_text"], features["flavor_text"]) + cit_character_pref_save(S) return 1 diff --git a/modular_citadel/code/__HELPERS/lists.dm b/modular_citadel/code/__HELPERS/lists.dm new file mode 100644 index 0000000000..b249dfc554 --- /dev/null +++ b/modular_citadel/code/__HELPERS/lists.dm @@ -0,0 +1,9 @@ +/proc/is_type_in_ref_list(path, list/L) + if(!ispath(path))//not a path + return + for(var/i in L) + var/datum/D = i + if(!istype(D))//not an usable reference + continue + if(istype(D, path)) + return TRUE \ No newline at end of file diff --git a/modular_citadel/code/__HELPERS/mobs.dm b/modular_citadel/code/__HELPERS/mobs.dm new file mode 100644 index 0000000000..a6fe446b5d --- /dev/null +++ b/modular_citadel/code/__HELPERS/mobs.dm @@ -0,0 +1,28 @@ +/proc/slot_to_string(slot) + switch(slot) + if(slot_back) + return "Backpack" + if(slot_wear_mask) + return "Mask" + if(slot_hands) + return "Hands" + if(slot_belt) + return "Belt" + if(slot_ears) + return "Ears" + if(slot_glasses) + return "Glasses" + if(slot_gloves) + return "Gloves" + if(slot_neck) + return "Neck" + if(slot_head) + return "Head" + if(slot_shoes) + return "Shoes" + if(slot_wear_suit) + return "Suit" + if(slot_w_uniform) + return "Uniform" + if(slot_in_backpack) + return "In backpack" diff --git a/modular_citadel/code/controllers/subsystem/job.dm b/modular_citadel/code/controllers/subsystem/job.dm new file mode 100644 index 0000000000..16351bc534 --- /dev/null +++ b/modular_citadel/code/controllers/subsystem/job.dm @@ -0,0 +1,23 @@ +/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M) + var/mob/the_mob = N + if(!the_mob) + the_mob = M // cause this doesn't get assigned if player is a latejoiner + if(the_mob.client && the_mob.client.prefs && (the_mob.client.prefs.chosen_gear && the_mob.client.prefs.chosen_gear.len)) + if(!ishuman(M))//no silicons allowed + return + for(var/i in the_mob.client.prefs.chosen_gear) + var/datum/gear/G = i + G = GLOB.loadout_items[slot_to_string(initial(G.category))][initial(G.name)] + if(!G) + continue + var/permitted = TRUE + if(G.restricted_roles && G.restricted_roles.len && !(M.job in G.restricted_roles)) + permitted = FALSE + if(G.ckeywhitelist && !(M.ckey in G.ckeywhitelist)) + permitted = FALSE + if(!permitted) + continue + var/obj/item/I = new G.path + if(!M.equip_to_slot_if_possible(I, G.category, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // If the job's dresscode compliant, try to put it in its slot, first + if(!M.equip_to_slot_if_possible(I, slot_in_backpack, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // Otherwise, try to put it in the backpack + I.forceMove(get_turf(M)) // If everything fails, just put it on the floor under the mob. diff --git a/modular_citadel/code/init.dm b/modular_citadel/code/init.dm new file mode 100644 index 0000000000..416c3f07c4 --- /dev/null +++ b/modular_citadel/code/init.dm @@ -0,0 +1,4 @@ +//init file stolen from hippie + +/proc/cit_initialize() + initialize_global_loadout_items() \ No newline at end of file diff --git a/modular_citadel/code/modules/client/loadout/hands.dm b/modular_citadel/code/modules/client/loadout/hands.dm index 2e8d157e5f..8768517a31 100644 --- a/modular_citadel/code/modules/client/loadout/hands.dm +++ b/modular_citadel/code/modules/client/loadout/hands.dm @@ -7,7 +7,7 @@ name = "Cigarette pack" category = slot_hands path = /obj/item/storage/fancy/cigarettes - + /datum/gear/dice name = "Dice bag" category = slot_hands @@ -27,7 +27,12 @@ name = "Matchbox" category = slot_hands path = /obj/item/storage/box/matches - + +/datum/gear/cheaplighter + name = "Cheap lighter" + category = slot_hands + path = /obj/item/lighter/greyscale + /datum/gear/cards name = "Playing cards" category = slot_hands @@ -38,11 +43,6 @@ category = slot_hands path = /obj/item/skub -/datum/gear/slapper - name = "Slapper" - category = slot_hands - path = /obj/item/slapper - /datum/gear/carpplushie name = "Space carp plushie" category = slot_hands diff --git a/modular_citadel/code/modules/client/loadout/loadout.dm b/modular_citadel/code/modules/client/loadout/loadout.dm index 17d04138cc..86efc6dc5b 100644 --- a/modular_citadel/code/modules/client/loadout/loadout.dm +++ b/modular_citadel/code/modules/client/loadout/loadout.dm @@ -22,6 +22,7 @@ GLOBAL_LIST_EMPTY(loadout_items) var/path //item-to-spawn path var/cost = 1 //normally, each loadout costs a single point. var/list/restricted_roles + var/list/ckeywhitelist /datum/gear/New() ..() diff --git a/modular_citadel/code/modules/client/loadout/mask.dm b/modular_citadel/code/modules/client/loadout/mask.dm index 8b13789179..839502d99c 100644 --- a/modular_citadel/code/modules/client/loadout/mask.dm +++ b/modular_citadel/code/modules/client/loadout/mask.dm @@ -1 +1,4 @@ - +/datum/gear/balaclava + name = "Balaclava" + category = slot_wear_mask + path = /obj/item/clothing/mask/balaclava diff --git a/modular_citadel/code/modules/client/loadout/neck.dm b/modular_citadel/code/modules/client/loadout/neck.dm index b82e1215a8..067d5926eb 100644 --- a/modular_citadel/code/modules/client/loadout/neck.dm +++ b/modular_citadel/code/modules/client/loadout/neck.dm @@ -13,6 +13,11 @@ category = slot_neck path = /obj/item/clothing/neck/tie/black +/datum/gear/collar + name = "Collar" + category = slot_neck + path = /obj/item/clothing/neck/petcollar + /datum/gear/stethoscope name = "Stethoscope" category = slot_neck diff --git a/modular_citadel/code/modules/client/loadout/shoes.dm b/modular_citadel/code/modules/client/loadout/shoes.dm index c66cd6c1dd..0d233c3a5e 100644 --- a/modular_citadel/code/modules/client/loadout/shoes.dm +++ b/modular_citadel/code/modules/client/loadout/shoes.dm @@ -2,3 +2,38 @@ name = "Laceup shoes" category = slot_shoes path = /obj/item/clothing/shoes/laceup + +/datum/gear/workboots + name = "Work boots" + category = slot_shoes + path = /obj/item/clothing/shoes/workboots + +/datum/gear/jackboots + name = "Jackboots" + category = slot_shoes + path = /obj/item/clothing/shoes/jackboots + +/datum/gear/winterboots + name = "Winter boots" + category = slot_shoes + path = /obj/item/clothing/shoes/winterboots + +/datum/gear/sandals + name = "Sandals" + category = slot_shoes + path = /obj/item/clothing/shoes/sandal + +/datum/gear/blackshoes + name = "Black shoes" + category = slot_shoes + path = /obj/item/clothing/shoes/sneakers/black + +/datum/gear/brownshoes + name = "Brown shoes" + category = slot_shoes + path = /obj/item/clothing/shoes/sneakers/brown + +/datum/gear/whiteshoes + name = "White shoes" + category = slot_shoes + path = /obj/item/clothing/shoes/sneakers/white diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm new file mode 100644 index 0000000000..38a462641f --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -0,0 +1,49 @@ +/datum/gear/suit + name = "Black suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket + +/datum/gear/greensuit + name = "Green suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket/green + +/datum/gear/redsuit + name = "Red suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket/red + +/datum/gear/charcoalsuit + name = "Charcoal suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket/charcoal + +/datum/gear/navysuit + name = "Navy suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket/navy + +/datum/gear/burgundysuit + name = "Burgundy suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket/burgundy + +/datum/gear/tansuit + name = "Tan suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket/tan + +/datum/gear/whitesuit + name = "White suit" + category = slot_w_uniform + path = /obj/item/clothing/under/suit_jacket/white + +/datum/gear/assistantformal + name = "Assistant's formal uniform" + category = slot_w_uniform + path = /obj/item/clothing/under/assistantformal + +/datum/gear/maidcostume + name = "Maid costume" + category = slot_w_uniform + path = /obj/item/clothing/under/maid diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index 695d306b34..35504ed475 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -12,66 +12,6 @@ ..() LAZYINITLIST(chosen_gear) - - -/datum/preferences/proc/hippie_dat_replace(current_tab) - //This proc is for menus other than game pref and char pref - . = "
" - - . += "Character Settings " - . += "Game Preferences" - . += "Loadout" - - if(!path) - . += "
Please create an account to save your preferences
" - - . += "
" - - . += "
" - if(current_tab == 2) - if(!gear_tab) - gear_tab = GLOB.loadout_items[1] - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" - . += "" - for(var/j in GLOB.loadout_items[gear_tab]) - var/datum/gear/gear = GLOB.loadout_items[gear_tab][j] - var/class_link = "" - if(gear.type in chosen_gear) - class_link = "class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=0'" - else if(gear_points <= 0) - class_link = "class='linkOff'" - else - class_link = "href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=1'" - . += "" - . += "" - . += "
[gear_points] loadout points remaining. \[Clear Loadout\]
You can only choose one item per category, unless it's an item that spawns in your backpack or hands.
" - var/firstcat = TRUE - for(var/i in GLOB.loadout_items) - if(firstcat) - firstcat = FALSE - else - . += " |" - if(i == gear_tab) - . += " [i] " - else - . += " [i] " - . += "

[gear_tab]

NameCostRestrictionsDescription
[j][gear.cost]" - if(islist(gear.restricted_roles)) - if(gear.restricted_roles.len) - . += "" - . += gear.restricted_roles.Join(";") - . += "" - . += "[gear.description]
" - /datum/preferences/proc/is_loadout_slot_available(slot) var/list/L LAZYINITLIST(L) diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm index 700353f3e8..4d0f950f7f 100644 --- a/modular_citadel/code/modules/client/preferences_savefile.dm +++ b/modular_citadel/code/modules/client/preferences_savefile.dm @@ -1,4 +1,13 @@ -/datum/preferences/proc/hippie_character_pref_load(savefile/S) +/datum/preferences/proc/cit_character_pref_load(savefile/S) + //Citadel + features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"])) + if(!features["mcolor2"] || features["mcolor"] == "#000") + features["mcolor2"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") + if(!features["mcolor3"] || features["mcolor"] == "#000") + features["mcolor3"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") + features["mcolor2"] = sanitize_hexcolor(features["mcolor2"], 3, 0) + features["mcolor3"] = sanitize_hexcolor(features["mcolor3"], 3, 0) + //gear loadout var/text_to_load S["loadout"] >> text_to_load @@ -11,7 +20,49 @@ LAZYADD(chosen_gear, path) gear_points -= initial(path.cost) -/datum/preferences/proc/hippie_character_pref_save(savefile/S) +/datum/preferences/proc/cit_character_pref_save(savefile/S) + //Citadel + WRITE_FILE(S["feature_genitals_use_skintone"], features["genitals_use_skintone"]) + WRITE_FILE(S["feature_exhibitionist"], features["exhibitionist"]) + WRITE_FILE(S["feature_mcolor2"], features["mcolor2"]) + WRITE_FILE(S["feature_mcolor3"], features["mcolor3"]) + WRITE_FILE(S["feature_mam_body_markings"], features["mam_body_markings"]) + WRITE_FILE(S["feature_mam_tail"], features["mam_tail"]) + WRITE_FILE(S["feature_mam_ears"], features["mam_ears"]) + WRITE_FILE(S["feature_mam_tail_animated"], features["mam_tail_animated"]) + WRITE_FILE(S["feature_taur"], features["taur"]) + //Xeno features + WRITE_FILE(S["feature_xeno_tail"], features["xenotail"]) + WRITE_FILE(S["feature_xeno_dors"], features["xenodorsal"]) + WRITE_FILE(S["feature_xeno_head"], features["xenohead"]) + //cock features + WRITE_FILE(S["feature_has_cock"], features["has_cock"]) + WRITE_FILE(S["feature_cock_shape"], features["cock_shape"]) + WRITE_FILE(S["feature_cock_color"], features["cock_color"]) + WRITE_FILE(S["feature_cock_length"], features["cock_length"]) + WRITE_FILE(S["feature_cock_girth"], features["cock_girth"]) + WRITE_FILE(S["feature_has_sheath"], features["sheath_color"]) + //balls features + WRITE_FILE(S["feature_has_balls"], features["has_balls"]) + WRITE_FILE(S["feature_balls_color"], features["balls_color"]) + WRITE_FILE(S["feature_balls_size"], features["balls_size"]) + WRITE_FILE(S["feature_balls_sack_size"], features["balls_sack_size"]) + WRITE_FILE(S["feature_balls_fluid"], features["balls_fluid"]) + //breasts features + WRITE_FILE(S["feature_has_breasts"], features["has_breasts"]) + WRITE_FILE(S["feature_breasts_size"], features["breasts_size"]) + WRITE_FILE(S["feature_breasts_shape"], features["breasts_shape"]) + WRITE_FILE(S["feature_breasts_color"], features["breasts_color"]) + WRITE_FILE(S["feature_breasts_fluid"], features["breasts_fluid"]) + //vagina features + WRITE_FILE(S["feature_has_vag"], features["has_vag"]) + WRITE_FILE(S["feature_vag_shape"], features["vag_shape"]) + WRITE_FILE(S["feature_vag_color"], features["vag_color"]) + //womb features + WRITE_FILE(S["feature_has_womb"], features["has_womb"]) + //flavor text + WRITE_FILE(S["feature_flavor_text"], features["flavor_text"]) + //gear loadout if(islist(chosen_gear)) if(chosen_gear.len) diff --git a/modular_citadel/dresscode_values.dm b/modular_citadel/dresscode_values.dm new file mode 100644 index 0000000000..24cd5c5ac9 --- /dev/null +++ b/modular_citadel/dresscode_values.dm @@ -0,0 +1,8 @@ +//This file controls whether or not a job complies with dresscodes. +//If a job complies with dresscodes, loadout items will not be equipped instead of the job's outfit, instead placing the items into the player's backpack. + +/datum/job + var/dresscodecompliant = TRUE + +/datum/job/assistant + dresscodecompliant = FALSE \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 7f35e065b8..c016542d9a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2482,8 +2482,13 @@ #include "modular_citadel\cit_screenshake.dm" #include "modular_citadel\citadel_ghostrole_spawners.dm" #include "modular_citadel\cydonian_armor.dm" +#include "modular_citadel\dresscode_values.dm" #include "modular_citadel\polychromic_clothes.dm" #include "modular_citadel\simplemob_vore_values.dm" +#include "modular_citadel\code\init.dm" +#include "modular_citadel\code\__HELPERS\lists.dm" +#include "modular_citadel\code\__HELPERS\mobs.dm" +#include "modular_citadel\code\controllers\subsystem\job.dm" #include "modular_citadel\code\datums\uplink_items_cit.dm" #include "modular_citadel\code\datums\mutations\hulk.dm" #include "modular_citadel\code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" @@ -2492,6 +2497,16 @@ #include "modular_citadel\code\game\objects\items\devices\PDA\PDA.dm" #include "modular_citadel\code\game\objects\items\devices\radio\shockcollar.dm" #include "modular_citadel\code\game\objects\items\melee\eutactic_blades.dm" +#include "modular_citadel\code\modules\client\preferences.dm" +#include "modular_citadel\code\modules\client\preferences_savefile.dm" +#include "modular_citadel\code\modules\client\loadout\glasses.dm" +#include "modular_citadel\code\modules\client\loadout\hands.dm" +#include "modular_citadel\code\modules\client\loadout\head.dm" +#include "modular_citadel\code\modules\client\loadout\loadout.dm" +#include "modular_citadel\code\modules\client\loadout\mask.dm" +#include "modular_citadel\code\modules\client\loadout\neck.dm" +#include "modular_citadel\code\modules\client\loadout\shoes.dm" +#include "modular_citadel\code\modules\client\loadout\uniform.dm" #include "modular_citadel\code\modules\crafting\recipes.dm" #include "modular_citadel\code\modules\mining\mine_items.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm"