diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index 261e7c7586..2fed84553e 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -105,8 +105,9 @@
#define NOAROUSAL 37 //Stops all arousal effects
#define NOGENITALS 38 //Cannot create, use, or otherwise have genitals
-//Brainslugs
+//Citadel istypes
#define isborer(A) (istype(A, /mob/living/simple_animal/borer))
+#define isipcperson(A) (is_species(A, /datum/species/ipc))
#define CITADEL_MENTOR_OOC_COLOUR "#224724"
@@ -123,3 +124,10 @@
#define MIN_MELEE_STAMCOST 1.25 //Minimum cost for swinging items around. Will be extra useful when stats and skills are introduced.
#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
+
+//Citadel toggles because bitflag memes
+#define MEDIHOUND_SLEEPER 1
+#define EATING_NOISES 2
+#define DIGESTION_NOISES 4
+
+#define TOGGLES_CITADEL (MEDIHOUND_SLEEPER|EATING_NOISES|DIGESTION_NOISES)
\ No newline at end of file
diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index b4a9f41213..2ed8c86eec 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -14,10 +14,8 @@
#define SOUND_ANNOUNCEMENTS 2048
#define DISABLE_DEATHRATTLE 4096
#define DISABLE_ARRIVALRATTLE 8192
-#define MEDIHOUND_SLEEPER 16384 //CITADEL EDITS, vore prefs.
-#define EATING_NOISES 32768
-#define DIGESTION_NOISES 65536
-#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS|MEDIHOUND_SLEEPER|EATING_NOISES|DIGESTION_NOISES)
+
+#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS)
//Chat toggles
#define CHAT_OOC 1
diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm
index f4772fa464..8d1c01fdfa 100644
--- a/code/__HELPERS/_cit_helpers.dm
+++ b/code/__HELPERS/_cit_helpers.dm
@@ -50,6 +50,8 @@ GLOBAL_LIST_EMPTY(xeno_head_list)
GLOBAL_LIST_EMPTY(xeno_tail_list)
GLOBAL_LIST_EMPTY(xeno_dorsal_list)
+ //IPC species
+GLOBAL_LIST_EMPTY(ipc_screens_list)
//Genitals and Arousal Lists
GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 709625ca3f..bb00324488 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -81,6 +81,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
if(!GLOB.breasts_shapes_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
+ if(!GLOB.ipc_screens_list.len)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/screen, GLOB.ipc_screens_list)
// if(ishuman(src))
// var/mob/living/carbon/human/H = src
/* if(H.gender == MALE) Fuck if I know how to fix this.
@@ -114,13 +116,13 @@
"caps" = pick(GLOB.caps_list),
"moth_wings" = pick(GLOB.moth_wings_list),
"taur" = "None",
- "mam_body_markings" = "None",
- "mam_ears" = "None",
- "mam_tail" = "None",
+ "mam_body_markings" = "wolf",
+ "mam_ears" = "wolf",
+ "mam_tail" = "wolf",
"mam_tail_animated" = "None",
- "xenodorsal" = "None",
- "xenohead" = "None",
- "xenotail" = "None",
+ "xenodorsal" = "standard",
+ "xenohead" = "standard",
+ "xenotail" = "standard",
"exhibitionist" = FALSE,
"genitals_use_skintone" = FALSE,
"has_cock" = FALSE,
@@ -166,6 +168,7 @@
"womb_cum_mult" = CUM_RATE_MULT,
"womb_efficiency" = CUM_EFFICIENCY,
"womb_fluid" = "femcum",
+ "ipc_screen" = "Sunburst",
"flavor_text" = ""))
/proc/random_hair_style(gender)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 65bad5219f..631d689ab5 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -1,5 +1,5 @@
/* CAUTION! CAUTION! CAUTION! CAUTION! CAUTION! *\
- | THIS FILE CONTAINS A SHITTON OF |
+ | THIS FILE CONTAINS HOOKS FOR FOR |
| CHANGES SPECIFIC TO CITADEL. IF |
| YOU'RE FIXING A MERGE CONFLICT |
| HERE, PLEASE ASK FOR REVIEW FROM |
@@ -16,7 +16,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
//doohickeys for savefiles
var/path
var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used
- var/max_save_slots = 10
+ var/max_save_slots = 3
//non-preference stuff
var/muted = 0
@@ -75,73 +75,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/skin_tone = "caucasian1" //Skin color
var/eye_color = "000" //Eye color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
- var/list/features = list("mcolor" = "FFF",
- "tail_lizard" = "Smooth",
- "tail_human" = "None",
- "snout" = "Round",
- "horns" = "None",
- "ears" = "None",
- "wings" = "None",
- "frills" = "None",
- "spines" = "None",
- "body_markings" = "None",
- "legs" = "Normal Legs",
- "moth_wings" = "Plain",
- "mcolor2" = "FFF",
- "mcolor3" = "FFF",
- "mam_body_markings" = "None",
- "mam_ears" = "None",
- "mam_tail" = "None",
- "mam_tail_animated" = "None",
- "xenodorsal" = "None",
- "xenohead" = "None",
- "xenotail" = "None",
- "taur" = "None",
- "exhibitionist" = FALSE,
- "genitals_use_skintone" = FALSE,
- "has_cock" = FALSE,
- "cock_shape" = "Human",
- "cock_length" = 6,
- "cock_girth_ratio" = COCK_GIRTH_RATIO_DEF,
- "cock_color" = "fff",
- "has_sheath" = FALSE,
- "sheath_color" = "fff",
- "has_balls" = FALSE,
- "balls_internal" = FALSE,
- "balls_color" = "fff",
- "balls_amount" = 2,
- "balls_sack_size" = BALLS_SACK_SIZE_DEF,
- "balls_size" = BALLS_SIZE_DEF,
- "balls_cum_rate" = CUM_RATE,
- "balls_cum_mult" = CUM_RATE_MULT,
- "balls_efficiency" = CUM_EFFICIENCY,
- "balls_fluid" = "semen",
- "has_ovi" = FALSE,
- "ovi_shape" = "knotted",
- "ovi_length" = 6,
- "ovi_color" = "fff",
- "has_eggsack" = FALSE,
- "eggsack_internal" = TRUE,
- "eggsack_color" = "fff",
- "eggsack_size" = BALLS_SACK_SIZE_DEF,
- "eggsack_egg_color" = "fff",
- "eggsack_egg_size" = EGG_GIRTH_DEF,
- "has_breasts" = FALSE,
- "breasts_color" = "fff",
- "breasts_size" = "C",
- "breasts_shape" = "Pair",
- "breasts_fluid" = "milk",
- "has_vag" = FALSE,
- "vag_shape" = "Human",
- "vag_color" = "fff",
- "vag_clits" = 1,
- "vag_clit_diam" = 0.25,
- "has_womb" = FALSE,
- "womb_cum_rate" = CUM_RATE,
- "womb_cum_mult" = CUM_RATE_MULT,
- "womb_efficiency" = CUM_EFFICIENCY,
- "womb_fluid" = "femcum",
- "flavor_text" = "")
+ var/list/features = list("mcolor" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain")
var/list/custom_names = list("human", "clown", "mime", "ai", "cyborg", "religion", "deity")
var/prefered_security_department = SEC_DEPT_RANDOM
@@ -172,7 +106,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
// Want randomjob if preferences already filled - Donkie
var/joblessrole = BERANDOMJOB //defaults to 1 for fewer assistants
- // 0 = character settings, 1 = game preferences, 2 = character appearance
+ // 0 = character settings, 1 = game preferences
var/current_tab = 0
// OOC Metadata:
@@ -193,7 +127,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/action_buttons_screen_locs = list()
-
/datum/preferences/New(client/C)
parent = C
custom_names["human"] = random_unique_name()
@@ -223,10 +156,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
/datum/preferences/proc/ShowChoices(mob/user)
if(!user || !user.client)
return
- if(current_tab == 2)
+ if(current_tab == 2) //CITADEL EDIT, for muh nudies
update_preview_icon(nude=TRUE)
else
- update_preview_icon(nude=FALSE)
+ update_preview_icon(nude=FALSE) //EDIT END
user << browse_rsc(preview_icon, "previewicon.png")
var/dat = "
"
@@ -275,8 +208,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Gender: [gender == MALE ? "Male" : "Female"]
"
dat += "Age: [age]
"
- dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"]
"
- dat += "Exhibitionist:[features["exhibitionist"] == TRUE ? "Yes" : "No"]
"
dat += "Special Names:
"
dat += "Backup Human Name: [custom_names["human"]] "
@@ -295,12 +226,177 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += ""
dat += ""
- dat += "
"
+// CITADEL EDIT - ALL OF THESE ARE HANDLED IN THE MODULAR VERSION, TAB 2
+ /* dat += "Body
"
+ dat += "Random Body "
+ dat += "Always Random Body: [be_random_body ? "Yes" : "No"]
"
+
+ dat += ""
+ if(pref_species.use_skintones)
+
+ dat += ""
+
+ dat += "Skin Tone"
+
+ dat += "[skin_tone] "
+
+ dat += " | "
+
+ if(HAIR in pref_species.species_traits)
+
+ dat += ""
+
+ dat += "Hair Style"
+
+ dat += "[hair_style] "
+ dat += "< > "
+ dat += " Change "
+
+
+ dat += " | "
+
+ dat += "Facial Hair Style"
+
+ dat += "[facial_hair_style] "
+ dat += "< > "
+ dat += " Change "
+
+ dat += " | "
+
+ if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits))
+
+ dat += ""
+
+ dat += "Eye Color"
+
+ dat += " Change "
+
+ dat += " | "
+
+
+ if((MUTCOLORS in pref_species.species_traits) || (MUTCOLORS_PARTSONLY in pref_species.species_traits))
+
+ dat += ""
+
+ dat += "Mutant Color"
+
+ dat += " Change "
+
+ dat += " | "
+
+ if("tail_lizard" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Tail"
+
+ dat += "[features["tail_lizard"]] "
+
+ dat += " | "
+
+ if("snout" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Snout"
+
+ dat += "[features["snout"]] "
+
+ dat += " | "
+
+ if("horns" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Horns"
+
+ dat += "[features["horns"]] "
+
+ dat += " | "
+
+ if("frills" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Frills"
+
+ dat += "[features["frills"]] "
+
+ dat += " | "
+
+ if("spines" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Spines"
+
+ dat += "[features["spines"]] "
+
+ dat += " | "
+
+ if("body_markings" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Body Markings"
+
+ dat += "[features["body_markings"]] "
+
+ dat += " | "
+ if("legs" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Legs"
+
+ dat += "[features["legs"]] "
+
+ dat += " | "
+ if("moth_wings" in pref_species.mutant_bodyparts)
+
+ dat += ""
+
+ dat += "Moth wings"
+
+ dat += "[features["moth_wings"]] "
+
+ dat += " | "
+
+
+
+ if(CONFIG_GET(flag/join_with_mutant_humans))
+
+ if("tail_human" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Tail"
+
+ dat += "[features["tail_human"]] "
+
+ dat += " | "
+
+ if("ears" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Ears"
+
+ dat += "[features["ears"]] "
+
+ dat += " | "
+
+ if("wings" in pref_species.mutant_bodyparts && GLOB.r_wings_list.len >1)
+ dat += ""
+
+ dat += "Wings"
+
+ dat += "[features["wings"]] "
+
+ dat += " | "
+
+ dat += ""*/
if (1) // Game Preferences
@@ -316,7 +412,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Window Flashing: [(windowflashing) ? "Yes" : "No"]
"
dat += "Play admin midis: [(toggles & SOUND_MIDI) ? "Yes" : "No"]
"
dat += "Play lobby music: [(toggles & SOUND_LOBBY) ? "Yes" : "No"]
"
- dat += "Allow MediHound sleeper: [(toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]
"
dat += "Ghost ears: [(chat_toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
"
dat += "Ghost sight: [(chat_toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]
"
dat += "Ghost whispers: [(chat_toggles & CHAT_GHOSTWHISPER) ? "All Speech" : "Nearest Creatures"]
"
@@ -324,9 +419,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Ghost pda: [(chat_toggles & CHAT_GHOSTPDA) ? "All Messages" : "Nearest Creatures"]
"
dat += "Pull requests: [(chat_toggles & CHAT_PULLR) ? "Yes" : "No"]
"
dat += "Midround Antagonist: [(toggles & MIDROUND_ANTAG) ? "Yes" : "No"]
"
- //VORE SOUNDS
- dat += "Hear Vore Sounds: [(toggles & EATING_NOISES) ? "Yes" : "No"]
"
- dat += "Hear Vore Digestion Sounds: [(toggles & DIGESTION_NOISES) ? "Yes" : "No"]
"
if(CONFIG_GET(flag/allow_metadata))
dat += "OOC Notes: Edit
"
@@ -398,15 +490,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "High"
dat += "
"
- dat += "Widescreen: [widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"]
"
-
- dat += "Auto stand: [autostand ? "Enabled" : "Disabled"]
"
-
- dat += "Screen Shake: [(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")]
"
-
- if (!user.client.prefs.screenshake==0)
- dat += "Damage Screen Shake: [(damagescreenshake==1) ? "On" : ((damagescreenshake==0) ? "Off" : "Only when down")]
"
-
dat += ""
dat += "Special Role Settings"
@@ -430,140 +513,21 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Be [capitalize(i)]: \[IN [days_remaining] DAYS] "
else
dat += "Be [capitalize(i)]: [(i in be_special) ? "Yes" : "No"] "
-
- dat += " | "
-
- //Character Appearance
- if(2)
dat += ""
+
if(3)
if(!gear_tab)
gear_tab = GLOB.loadout_items[1]
@@ -614,6 +578,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += ""
dat += "[gear.description] | "
dat += ""
+
+ else
+ dat = citadel_dat_replace(current_tab)
+
dat += "
"
if(!IsGuestKey(user.key))
@@ -1125,18 +1093,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_age)
age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN)
- if("flavor_text")
- var/msg = stripped_multiline_input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"]), MAX_MESSAGE_LEN*2, TRUE) as message
- if(msg != null)
- msg = copytext(msg, 1, MAX_MESSAGE_LEN*2)
- features["flavor_text"] = msg
-
if("metadata")
var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null
if(new_metadata)
metadata = sanitize(copytext(new_metadata,1,MAX_MESSAGE_LEN))
- if("hair")
+/* if("hair")
var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null
if(new_hair)
hair_color = sanitize_hexcolor(new_hair)
@@ -1227,12 +1189,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
pref_species = new newtype()
//Now that we changed our species, we must verify that the mutant colour is still allowed.
var/temp_hsv = RGBtoHSV(features["mcolor"])
- if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3]))
+ if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#7F7F7F")[3]))
features["mcolor"] = pref_species.default_color
- if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3]))
- features["mcolor2"] = pref_species.default_color
- if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3]))
- features["mcolor3"] = pref_species.default_color
if("mutant_color")
var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference","#"+features["mcolor"]) as color|null
@@ -1240,86 +1198,22 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/temp_hsv = RGBtoHSV(new_mutantcolor)
if(new_mutantcolor == "#000000")
features["mcolor"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright, but only if they affect the skin
features["mcolor"] = sanitize_hexcolor(new_mutantcolor)
else
to_chat(user, "Invalid color. Your color is not bright enough.")
- if("mutant_color2")
- var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null
- if(new_mutantcolor)
- var/temp_hsv = RGBtoHSV(new_mutantcolor)
- if(new_mutantcolor == "#000000")
- features["mcolor2"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
- features["mcolor2"] = sanitize_hexcolor(new_mutantcolor)
- else
- to_chat(user, "Invalid color. Your color is not bright enough.")
-
- if("mutant_color3")
- var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null
- if(new_mutantcolor)
- var/temp_hsv = RGBtoHSV(new_mutantcolor)
- if(new_mutantcolor == "#000000")
- features["mcolor3"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
- features["mcolor3"] = sanitize_hexcolor(new_mutantcolor)
- else
- to_chat(user, "Invalid color. Your color is not bright enough.")
-
if("tail_lizard")
var/new_tail
new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_lizard
if(new_tail)
features["tail_lizard"] = new_tail
- if(new_tail != "None")
- features["taur"] = "None"
if("tail_human")
- var/list/snowflake_tails_list = list("Normal" = null)
- for(var/path in GLOB.tails_list_human)
- var/datum/sprite_accessory/tails/human/instance = GLOB.tails_list_human[path]
- if(istype(instance, /datum/sprite_accessory))
- var/datum/sprite_accessory/S = instance
- if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
- snowflake_tails_list[S.name] = path
var/new_tail
- new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in snowflake_tails_list
+ new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_human
if(new_tail)
- features["tail_human"] = new_tail
- if(new_tail != "None")
- features["taur"] = "None"
-
- if("mam_tail")
- var/list/snowflake_tails_list = list("Normal" = null)
- for(var/path in GLOB.mam_tails_list)
- var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[path]
- if(istype(instance, /datum/sprite_accessory))
- var/datum/sprite_accessory/S = instance
- if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
- snowflake_tails_list[S.name] = path
- var/new_tail
- new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in snowflake_tails_list
- if(new_tail)
- features["mam_tail"] = new_tail
- if(new_tail != "None")
- features["taur"] = "None"
-
- if("taur")
- var/list/snowflake_taur_list = list("Normal" = null)
- for(var/path in GLOB.taur_list)
- var/datum/sprite_accessory/taur/instance = GLOB.taur_list[path]
- if(istype(instance, /datum/sprite_accessory))
- var/datum/sprite_accessory/S = instance
- if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
- snowflake_taur_list[S.name] = path
- var/new_taur
- new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in snowflake_taur_list
- if(new_taur)
- features["taur"] = new_taur
- if(new_taur != "None")
- features["mam_tail"] = "None"
- features["xenotail"] = "None"
+ features["tail_human"] = new_tail
if("snout")
var/new_snout
@@ -1327,19 +1221,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_snout)
features["snout"] = new_snout
- if("mam_ears")
- var/list/snowflake_ears_list = list("Normal" = null)
- for(var/path in GLOB.mam_ears_list)
- var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[path]
- if(istype(instance, /datum/sprite_accessory))
- var/datum/sprite_accessory/S = instance
- if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
- snowflake_ears_list[S.name] = path
- var/new_ears
- new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in snowflake_ears_list
- if(new_ears)
- features["mam_ears"] = new_ears
-
if("horns")
var/new_horns
new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in GLOB.horns_list
@@ -1347,15 +1228,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["horns"] = new_horns
if("ears")
- var/list/snowflake_ears_list = list("Normal" = null)
- for(var/path in GLOB.ears_list)
- var/datum/sprite_accessory/ears/instance = GLOB.ears_list[path]
- if(istype(instance, /datum/sprite_accessory))
- var/datum/sprite_accessory/S = instance
- if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
- snowflake_ears_list[S.name] = path
var/new_ears
- new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in snowflake_ears_list
+ new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.ears_list
if(new_ears)
features["ears"] = new_ears
@@ -1365,12 +1239,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_wings)
features["wings"] = new_wings
- if("moth_wings")
- var/new_moth_wings
- new_moth_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.moth_wings_list
- if(new_moth_wings)
- features["moth_wings"] = new_moth_wings
-
if("frills")
var/new_frills
new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in GLOB.frills_list
@@ -1389,48 +1257,22 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_body_markings)
features["body_markings"] = new_body_markings
- if("mam_body_markings")
- var/list/snowflake_markings_list = list("Normal" = null)
- for(var/path in GLOB.mam_body_markings_list)
- var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[path]
- if(istype(instance, /datum/sprite_accessory))
- var/datum/sprite_accessory/S = instance
- if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
- snowflake_markings_list[S.name] = path
- var/new_mam_body_markings
- new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in snowflake_markings_list
- if(new_mam_body_markings)
- features["mam_body_markings"] = new_mam_body_markings
-
- //Xeno Bodyparts
- if("xenohead")//Head or caste type
- var/new_head
- new_head = input(user, "Choose your character's caste:", "Character Preference") as null|anything in GLOB.xeno_head_list
- if(new_head)
- features["xenohead"] = new_head
-
- if("xenotail")//Currently one one type, more maybe later if someone sprites them. Might include animated variants in the future.
- var/new_tail
- new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.xeno_tail_list
- if(new_tail)
- features["xenotail"] = new_tail
-
- if("xenodorsal")
- var/new_dors
- new_dors = input(user, "Choose your character's dorsal tube type:", "Character Preference") as null|anything in GLOB.xeno_dorsal_list
- if(new_dors)
- features["xenodorsal"] = new_dors
-
if("legs")
var/new_legs
new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list
if(new_legs)
features["legs"] = new_legs
+ if("moth_wings")
+ var/new_moth_wings
+ new_moth_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.moth_wings_list
+ if(new_moth_wings)
+ features["moth_wings"] = new_moth_wings
+
if("s_tone")
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones
if(new_s_tone)
- skin_tone = new_s_tone
+ skin_tone = new_s_tone*/
if("ooccolor")
var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null
@@ -1538,212 +1380,34 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(pickedPDAColor)
pda_color = pickedPDAColor
- //citadel code
- if("cock_color")
- var/new_cockcolor = input(user, "Penis color:", "Character Preference") as color|null
- if(new_cockcolor)
- var/temp_hsv = RGBtoHSV(new_cockcolor)
- if(new_cockcolor == "#000000")
- features["cock_color"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
- features["cock_color"] = sanitize_hexcolor(new_cockcolor)
- else
- user << "Invalid color. Your color is not bright enough."
-
- if("cock_length")
- var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null
- if(new_length)
- features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN)
-
- if("cock_shape")
- var/new_shape
- new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in GLOB.cock_shapes_list
- if(new_shape)
- features["cock_shape"] = new_shape
-
- if("balls_color")
- var/new_ballscolor = input(user, "Testicle Color:", "Character Preference") as color|null
- if(new_ballscolor)
- var/temp_hsv = RGBtoHSV(new_ballscolor)
- if(new_ballscolor == "#000000")
- features["balls_color"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
- features["balls_color"] = sanitize_hexcolor(new_ballscolor)
- else
- user << "Invalid color. Your color is not bright enough."
-
- if("egg_size")
- var/new_size
- var/list/egg_sizes = list(1,2,3)
- new_size = input(user, "Egg Diameter(inches):", "Egg Size") as null|anything in egg_sizes
- if(new_size)
- features["eggsack_egg_size"] = new_size
-
- if("egg_color")
- var/new_egg_color = input(user, "Egg Color:", "Character Preference") as color|null
- if(new_egg_color)
- var/temp_hsv = RGBtoHSV(new_egg_color)
- if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
- features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color)
- else
- user << "Invalid color. Your color is not bright enough."
- if("breasts_size")
- var/new_size
- new_size = input(user, "Breast Size", "Character Preference") as null|anything in GLOB.breasts_size_list
- if(new_size)
- features["breasts_size"] = new_size
-
- if("breasts_shape")
- var/new_shape
- new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in GLOB.breasts_shapes_list
- if(new_shape)
- features["breasts_shape"] = new_shape
-
- if("breasts_color")
- var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null
- if(new_breasts_color)
- var/temp_hsv = RGBtoHSV(new_breasts_color)
- if(new_breasts_color == "#000000")
- features["breasts_color"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
- features["breasts_color"] = sanitize_hexcolor(new_breasts_color)
- else
- user << "Invalid color. Your color is not bright enough."
-
- if("vag_shape")
- var/new_shape
- new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in GLOB.vagina_shapes_list
- if(new_shape)
- features["vag_shape"] = new_shape
- if("vag_color")
- var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null
- if(new_vagcolor)
- var/temp_hsv = RGBtoHSV(new_vagcolor)
- if(new_vagcolor == "#000000")
- features["vag_color"] = pref_species.default_color
- else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
- features["vag_color"] = sanitize_hexcolor(new_vagcolor)
- else
- user << "Invalid color. Your color is not bright enough."
-
-
-
else
switch(href_list["preference"])
- //citadel code
+ //CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj
if("genital_colour")
- switch(features["genitals_use_skintone"])
- if(TRUE)
- features["genitals_use_skintone"] = FALSE
- if(FALSE)
- features["genitals_use_skintone"] = TRUE
- else
- features["genitals_use_skintone"] = FALSE
+ features["genitals_use_skintone"] = !features["genitals_use_skintone"]
if("arousable")
- switch(arousable)
- if(TRUE)
- arousable = FALSE
- if(FALSE)
- arousable = TRUE
- else//failsafe
- arousable = FALSE
+ arousable = !arousable
if("has_cock")
- switch(features["has_cock"])
- if(TRUE)
- features["has_cock"] = FALSE
- if(FALSE)
- features["has_cock"] = TRUE
- features["has_ovi"] = FALSE
- features["has_eggsack"] = FALSE
- else
- features["has_cock"] = FALSE
- features["has_ovi"] = FALSE
+ features["has_cock"] = !features["has_cock"]
if("has_balls")
- switch(features["has_balls"])
- if(TRUE)
- features["has_balls"] = FALSE
- if(FALSE)
- features["has_balls"] = TRUE
- features["has_eggsack"] = FALSE
- else
- features["has_balls"] = FALSE
- features["has_eggsack"] = FALSE
+ features["has_balls"] = !features["has_balls"]
if("has_ovi")
- switch(features["has_ovi"])
- if(TRUE)
- features["has_ovi"] = FALSE
- if(FALSE)
- features["has_ovi"] = TRUE
- features["has_cock"] = FALSE
- features["has_balls"] = FALSE
- else
- features["has_ovi"] = FALSE
- features["has_cock"] = FALSE
-
+ features["has_ovi"] = !features["has_ovi"]
if("has_eggsack")
- switch(features["has_eggsack"])
- if(TRUE)
- features["has_eggsack"] = FALSE
- if(FALSE)
- features["has_eggsack"] = TRUE
- features["has_balls"] = FALSE
- else
- features["has_eggsack"] = FALSE
- features["has_balls"] = FALSE
+ features["has_eggsack"] = !features["has_eggsack"]
if("balls_internal")
- switch(features["balls_internal"])
- if(TRUE)
- features["balls_internal"] = FALSE
- if(FALSE)
- features["balls_internal"] = TRUE
- features["eggsack_internal"] = FALSE
- else
- features["balls_internal"] = FALSE
- features["eggsack_internal"] = FALSE
-
+ features["balls_internal"] = !features["balls_internal"]
if("eggsack_internal")
- switch(features["eggsack_internal"])
- if(TRUE)
- features["eggsack_internal"] = FALSE
- if(FALSE)
- features["eggsack_internal"] = TRUE
- features["balls_internal"] = FALSE
- else
- features["eggsack_internal"] = FALSE
- features["balls_internal"] = FALSE
+ features["eggsack_internal"] = !features["eggsack_internal"]
if("has_breasts")
- switch(features["has_breasts"])
- if(TRUE)
- features["has_breasts"] = FALSE
- if(FALSE)
- features["has_breasts"] = TRUE
- else
- features["has_breasts"] = FALSE
+ features["has_breasts"] = !features["has_breasts"]
if("has_vag")
- switch(features["has_vag"])
- if(TRUE)
- features["has_vag"] = FALSE
- if(FALSE)
- features["has_vag"] = TRUE
- else
- features["has_vag"] = FALSE
+ features["has_vag"] = !features["has_vag"]
if("has_womb")
- switch(features["has_womb"])
- if(TRUE)
- features["has_womb"] = FALSE
- if(FALSE)
- features["has_womb"] = TRUE
- else
- features["has_womb"] = FALSE
+ features["has_womb"] = !features["has_womb"]
if("exhibitionist")
- switch(features["exhibitionist"])
- if(TRUE)
- features["exhibitionist"] = FALSE
- if(FALSE)
- features["exhibitionist"] = TRUE
- else
- features["exhibitionist"] = FALSE
+ features["exhibitionist"] = !features["exhibitionist"]
if("widescreenpref")
widescreenpref = !widescreenpref
user.client.change_view(CONFIG_GET(string/default_view))
@@ -1763,6 +1427,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
damagescreenshake = 0
else
damagescreenshake = 1
+ //END CITADEL EDIT
if("publicity")
if(unlock_content)
toggles ^= MEMBER_PUBLIC
@@ -1818,12 +1483,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
user.client.playtitlemusic()
else
user.stop_sound_channel(CHANNEL_LOBBYMUSIC)
- // VORE SOUND TOGGLES
- if("toggleeatingnoise")
- toggles ^= EATING_NOISES
-
- if("toggledigestionnoise")
- toggles ^= DIGESTION_NOISES
if("ghost_ears")
chat_toggles ^= CHAT_GHOSTEARS
@@ -1843,9 +1502,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("pull_requests")
chat_toggles ^= CHAT_PULLR
- if("hound_sleeper")
- toggles ^= MEDIHOUND_SLEEPER
-
if("allow_midround_antag")
toggles ^= MIDROUND_ANTAG
@@ -1858,6 +1514,16 @@ GLOBAL_LIST_EMPTY(preferences_datums)
parallax = WRAP(parallax - 1, PARALLAX_INSANE, PARALLAX_DISABLE + 1)
if (parent && parent.mob && parent.mob.hud_used)
parent.mob.hud_used.update_parallax_pref(parent.mob)
+ // Citadel edit - Prefs don't work outside of this. :c
+ if("hound_sleeper")
+ cit_toggles ^= MEDIHOUND_SLEEPER
+
+ if("toggleeatingnoise")
+ cit_toggles ^= EATING_NOISES
+
+ if("toggledigestionnoise")
+ cit_toggles ^= DIGESTION_NOISES
+ //END CITADEL EDIT
if("save")
save_preferences()
@@ -1909,6 +1575,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
LAZYADD(chosen_gear, G.type)
gear_points -= initial(G.cost)
+ process_citadel_link(user, href_list)
ShowChoices(user)
return 1
@@ -1962,13 +1629,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
save_character()
character.set_species(chosen_species, icon_update=0)
- //citadel code
- character.give_genitals(TRUE)
- character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially
- character.canbearoused = arousable
-
if(icon_updates)
character.update_body()
character.update_hair()
- character.update_body_parts()
- character.update_genitals()
+ character.update_body_parts()
\ No newline at end of file
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 8bebf460e6..d2efc477c6 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -383,17 +383,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(gender == MALE)
hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_male_list)
facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_male_list)
- //underwear = sanitize_inlist(underwear, GLOB.underwear_m)
- //undershirt = sanitize_inlist(undershirt, GLOB.undershirt_m)
+ underwear = sanitize_inlist(underwear, GLOB.underwear_m)
+ undershirt = sanitize_inlist(undershirt, GLOB.undershirt_m)
else
hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_female_list)
facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_female_list)
- //underwear = sanitize_inlist(underwear, GLOB.underwear_f)
- //undershirt = sanitize_inlist(undershirt, GLOB.undershirt_f)
- //socks = sanitize_inlist(socks, GLOB.socks_list)
- underwear = "Nude"
- undershirt = "Nude"
- socks = "Nude"
+ underwear = sanitize_inlist(underwear, GLOB.underwear_f)
+ undershirt = sanitize_inlist(undershirt, GLOB.undershirt_f)
+ socks = sanitize_inlist(socks, GLOB.socks_list)
age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age))
hair_color = sanitize_hexcolor(hair_color, 3, 0)
facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0)
diff --git a/code/modules/clothing/glasses/vg_glasses.dm b/code/modules/clothing/glasses/vg_glasses.dm
index 8cccfe9e08..58df3102ce 100644
--- a/code/modules/clothing/glasses/vg_glasses.dm
+++ b/code/modules/clothing/glasses/vg_glasses.dm
@@ -5,38 +5,38 @@
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes, and the colored lenses let you see the world in purple."
name = "purple sunglasses"
icon_state = "sun_purple"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/glasses.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/glasses.dmi'
/obj/item/clothing/glasses/sunglasses/star
name = "star-shaped sunglasses"
desc = "Novelty sunglasses, both lenses are in the shape of a star."
icon_state = "sun_star"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/glasses.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/glasses.dmi'
/obj/item/clothing/glasses/sunglasses/rockstar
name = "red star-shaped sunglasses"
desc = "Novelty sunglasses with a fancy silver frame and two red-tinted star-shaped lenses. You should probably stomp on them and get a pair of normal ones."
icon_state = "sun_star_silver"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/glasses.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/glasses.dmi'
/obj/item/clothing/glasses/gglasses
name = "Green Glasses"
desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme."
icon_state = "gglasses"
item_state = "gglasses"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/glasses.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/glasses.dmi'
/obj/item/clothing/glasses/welding/superior
name = "superior welding goggles"
desc = "Welding goggles made from more expensive materials, strangely smells like potatoes. Allows for better vision than normal goggles.."
icon_state = "rwelding-g"
item_state = "rwelding-g"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/glasses.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/glasses.dmi'
actions_types = list(/datum/action/item_action/toggle)
flash_protect = 2
tint = 1
diff --git a/code/modules/clothing/gloves/vg_gloves.dm b/code/modules/clothing/gloves/vg_gloves.dm
index 2b20d478eb..6d7e775314 100644
--- a/code/modules/clothing/gloves/vg_gloves.dm
+++ b/code/modules/clothing/gloves/vg_gloves.dm
@@ -5,49 +5,49 @@
icon_state = "bmgloves"
item_state = "bmgloves"
item_color = "bmgloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
obj/item/clothing/gloves/bikergloves
name = "Biker's Gloves"
icon_state = "biker-gloves"
item_state = "biker-gloves"
item_color = "bikergloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/gloves/megagloves
desc = "Uncomfortably bulky armored gloves."
name = "DRN-001 Gloves"
icon_state = "megagloves"
item_state = "megagloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/gloves/protogloves
desc = "Funcionally identical to the DRN-001 model's, but in red!"
name = "Prototype Gloves"
icon_state = "protogloves"
item_state = "protogloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/gloves/megaxgloves
desc = "An upgrade to the DRN-001's gauntlets, retains the uncomfortable armor, but comes with white gloves!"
name = "Maverick Hunter gloves"
icon_state = "megaxgloves"
item_state = "megaxgloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/gloves/joegloves
desc = "Large grey gloves, very similar to the Prototype's."
name = "Sniper Gloves"
icon_state = "joegloves"
item_state = "joegloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/gloves/doomguy
desc = ""
name = "Doomguy's gloves"
icon_state = "doom"
item_state = "doom"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/gloves/anchor_arms
name = "Anchor Arms"
@@ -60,11 +60,11 @@ obj/item/clothing/gloves/bikergloves
desc = "Utilizes a non-slip technology that allows you to never drop your precious bottles of vodka."
icon_state = "nr_gloves"
item_state = "nr_gloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/gloves/neorussian/fingerless
name = "neo-Russian fingerless gloves"
desc = "For these tense combat situations when you just have to pick your nose."
icon_state = "nr_fgloves"
item_state = "nr_fgloves"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
\ No newline at end of file
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
\ No newline at end of file
diff --git a/code/modules/clothing/head/cit_hats.dm b/code/modules/clothing/head/cit_hats.dm
index 92d1a2224c..8cdfe807c8 100644
--- a/code/modules/clothing/head/cit_hats.dm
+++ b/code/modules/clothing/head/cit_hats.dm
@@ -1,7 +1,7 @@
/obj/item/clothing/head/hunter
name = "hunter"
desc = "A basic hat for hunting things."
- icon = 'icons/obj/clothing/cit_hats.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/cit_hats.dmi'
icon_state = "hunter"
item_state = "hunter_worn"
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
diff --git a/code/modules/clothing/head/vg_hats.dm b/code/modules/clothing/head/vg_hats.dm
index 1113d1b3fc..56844193c6 100644
--- a/code/modules/clothing/head/vg_hats.dm
+++ b/code/modules/clothing/head/vg_hats.dm
@@ -4,7 +4,7 @@
desc = "Judge, Jury, and Executioner."
icon_state = "dredd-helmet"
item_state = "dredd-helmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 50, acid = 50)
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
@@ -13,7 +13,7 @@
flags_1 = STOPSPRESSUREDMAGE_1
strip_delay = 80
dog_fashion = null
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/helmet/aviatorhelmet
name = "Aviator Helmet"
@@ -21,16 +21,16 @@
armor = list(melee = 25, bullet = 0, laser = 20, energy = 10, bomb = 10, bio = 0, rad = 0)
item_state = "aviator_helmet"
icon_state = "aviator_helmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/helmet/biker
name = "Biker's Helmet"
desc = "This helmet should protect you from russians and masked vigilantes."
armor = list(melee = 25, bullet = 15, laser = 20, energy = 10, bomb = 10, bio = 0, rad = 0)
icon_state = "biker_helmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
/obj/item/clothing/head/helmet/richard
@@ -38,8 +38,8 @@
desc = "Do you like hurting people?"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
icon_state = "richard"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
/obj/item/clothing/head/helmet/megahelmet
@@ -47,8 +47,8 @@
desc = "The helmet of the DRN-001 model. A simple, sturdy blue helmet."
icon_state = "megahelmet"
item_state = "megahelmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
siemens_coefficient = 1
/obj/item/clothing/head/helmet/protohelmet
@@ -56,8 +56,8 @@
desc = "Shiny red helmet with white accents and a built in shaded visor that does absolutely nothing, nothing but look rad as hell."
icon_state = "protohelmet"
item_state = "protohelmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
siemens_coefficient = 1
/obj/item/clothing/head/helmet/megaxhelmet
@@ -65,8 +65,8 @@
desc = "Heavily armored upgrade to the DRN-001 model's helmet, now comes with a pointless red crystal thing!"
icon_state = "megaxhelmet"
item_state = "megaxhelmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/helmet/joehelmet
name = "Sniper Helmet"
@@ -74,8 +74,8 @@
icon_state = "joehelmet"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
item_state = "joehelmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/helmet/doomguy
name = "Doomguy's helmet"
@@ -83,8 +83,8 @@
icon_state = "doom"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
item_state = "doom"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
armor = list(melee = 50, bullet = 40, laser = 40,energy = 40, bomb = 5, bio = 0, rad = 0)
/obj/item/clothing/head/helmet/neorussian
@@ -92,8 +92,8 @@
desc = "This piece of equipment can double as a pillow, a bowl, an emergency toilet, and sometimes as a helmet."
icon_state = "nr_helmet"
item_state = "nr_helmet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/stalhelm
@@ -101,24 +101,24 @@
desc = "Ein Helm, um die Nazi-Interesse an fremden Raumstationen zu sichern."
icon_state = "stalhelm"
item_state = "stalhelm"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/panzer
name = "Panzer Cap"
desc = "Command any mech in style."
icon_state = "panzercap"
item_state = "panzercap"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/naziofficer
name = "Officer Cap"
desc = "Style is all that matters."
icon_state = "officercap"
item_state = "officercap"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/russobluecamohat
@@ -126,31 +126,31 @@
desc = "A symbol of discipline, honor, and lots and lots of removal of some type of skewered food."
icon_state = "russobluecamohat"
item_state = "russobluecamohat"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/head/russofurhat
name = "russian fur hat"
desc = "Russian winter got you down? Maybe your enemy, but not you!"
icon_state = "russofurhat"
item_state = "russofurhat"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/squatter_hat
name = "slav squatter hat"
icon_state = "squatter_hat"
item_state = "squatter_hat"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
desc = "Cyka blyat."
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/snake
name = "snake head"
desc = "Reenact acts of violence against reptiles, or sneak into a swamp unnoticed."
icon_state = "snakehead"
item_state = "snakehead"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/mummy_rags
name = "mummy rags"
@@ -158,8 +158,8 @@
icon_state = "mummy"
item_state = "mummy"
item_color = "mummy"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
/obj/item/clothing/head/clownpiece
@@ -167,24 +167,24 @@
desc = "A purple polka-dotted jester's hat with yellow pompons."
icon_state = "clownpiece"
item_state = "clownpiece"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/mitre
name = "mitre"
desc = "A funny hat worn by extremely boring people."
icon_state = "mitre"
item_state = "mitre"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/head/tinfoil
name = "tinfoil hat"
desc = "There's no evidence that the security staff is NOT out to get you."
icon_state = "foilhat"
item_state = "paper"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
siemens_coefficient = 2
/obj/item/clothing/head/celtic
@@ -192,5 +192,5 @@
desc = "According to legend, Celtic kings would use crowns like this one to shield their subjects from harsh winters back on Earth."
icon_state = "celtic_crown"
item_state = "celtic_crown"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
diff --git a/code/modules/clothing/masks/vg_masks.dm b/code/modules/clothing/masks/vg_masks.dm
index 70759bffca..712a023651 100644
--- a/code/modules/clothing/masks/vg_masks.dm
+++ b/code/modules/clothing/masks/vg_masks.dm
@@ -2,19 +2,19 @@
name = "purple clown wig and mask"
desc = "Some pranksters are truly magical."
icon_state = "wizzclown"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/masks.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/masks.dmi'
/obj/item/clothing/mask/chapmask
name = "venetian mask"
desc = "A plain porcelain mask that covers the entire face. Standard attire for particularly unspeakable religions. The eyes are wide shut."
icon_state = "chapmask"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/masks.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/masks.dmi'
/obj/item/clothing/mask/neorussian
name = "neo-Russian mask"
desc = "Somehow, it makes you act and look way more polite than usual."
icon_state = "nr_mask"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/masks.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/masks.dmi'
diff --git a/code/modules/clothing/shoes/vg_shoes.dm b/code/modules/clothing/shoes/vg_shoes.dm
index fb2510be89..f867b537c7 100644
--- a/code/modules/clothing/shoes/vg_shoes.dm
+++ b/code/modules/clothing/shoes/vg_shoes.dm
@@ -4,24 +4,24 @@
desc = "A sturdy pair of leather shoes."
icon_state = "leather"
item_color = "leather"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/magboots/deathsquad
desc = "Very expensive and advanced magnetic boots, used only by the elite during extravehicular activity to ensure the user remains safely attached to the vehicle."
name = "deathsquad magboots"
icon_state = "DS-magboots0"
magboot_state = "DS-magboots"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/magboots/atmos
desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle. These are painted in the colors of an atmospheric technician."
name = "atmospherics magboots"
icon_state = "atmosmagboots0"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
magboot_state = "atmosmagboots"
resistance_flags = FIRE_PROOF
@@ -29,96 +29,96 @@
name = "Simon's Shoes"
desc = "Simon's Shoes."
icon_state = "simonshoes"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/kneesocks
name = "kneesocks"
desc = "A pair of girly knee-high socks."
icon_state = "kneesock"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/jestershoes
name = "Jester Shoes"
desc = "As worn by the clowns of old."
icon_state = "jestershoes"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/aviatorboots
name = "Aviator Boots"
desc = "Boots suitable for just about any occasion."
icon_state = "aviator_boots"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/libertyshoes
name = "Liberty Shoes"
desc = "Freedom isn't free, neither were these shoes."
icon_state = "libertyshoes"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/megaboots
name = "DRN-001 Boots"
desc = "Large armored boots, very weak to large spikes."
icon_state = "megaboots"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/protoboots
name = "Prototype Boots"
desc = "Functionally identical to the DRN-001 model's boots, but in red."
icon_state = "protoboots"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/megaxboots
name = "Maverick Hunter boots"
desc = "Regardless of how much stronger these boots are than the DRN-001 model's, they're still extremely easy to pierce with a large spike."
icon_state = "megaxboots"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/joeboots
name = "Sniper Boots"
desc = "Nearly identical to the Prototype's boots, except in black."
icon_state = "joeboots"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/doomguy
name = "Doomguy's boots"
desc = "If you look closely, you might see skull fragments still buried in these boots."
icon_state = "doom"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/rottenshoes
name = "rotten shoes"
desc = "These shoes seem perfect for sneaking around."
icon_state = "rottenshoes"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/sandal/slippers
name = "magic slippers"
icon_state = "slippers"
desc = "For the wizard that puts comfort first. Who's going to laugh?"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/slippers_worn
name = "worn bunny slippers"
desc = "Fluffy..."
icon_state = "slippers_worn"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
/obj/item/clothing/shoes/jackboots/neorussian
name = "neo-Russian boots"
desc = "Tovarish, no one will realize you stepped on a pile of shit if your pair already looks like shit."
icon_state = "nr_boots"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/head.dmi'
\ No newline at end of file
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/head.dmi'
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/vg_spess.dm b/code/modules/clothing/spacesuits/vg_spess.dm
index 3dad9c2610..237e5ebfa6 100644
--- a/code/modules/clothing/spacesuits/vg_spess.dm
+++ b/code/modules/clothing/spacesuits/vg_spess.dm
@@ -7,7 +7,7 @@
icon_state = "hardsuit0-nazi"
armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 20)
item_color = "nazi"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/space/hardsuit/nazi
name = "nazi hardsuit"
@@ -18,7 +18,7 @@
armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 20)
allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/melee/)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/nazi
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/head/helmet/space/hardsuit/soviet
name = "soviet hardhelmet"
@@ -27,7 +27,7 @@
icon_state = "hardsuit0-soviet"
armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 20)
item_color = "soviet"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/space/hardsuit/soviet
name = "soviet hardsuit"
@@ -38,7 +38,7 @@
armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 20)
allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/melee/)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/soviet
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/head/helmet/space/hardsuit/knight
name = "Space-Knight helm"
@@ -48,7 +48,7 @@
armor = list(melee = 60, bullet = 40, laser = 40,energy = 30, bomb = 50, bio = 100, rad = 60)
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
item_color="knight"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/space/hardsuit/knight
name = "Space-Knight armour"
@@ -61,7 +61,7 @@
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
siemens_coefficient = 0.5
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/knight
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/head/helmet/space/hardsuit/knight/black
name = "Black Knight's helm"
@@ -70,7 +70,7 @@
item_state = "hardsuit0-blackknight"
armor = list(melee = 70, bullet = 65, laser = 50,energy = 25, bomb = 60, bio = 100, rad = 60)
item_color="blackknight"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/space/hardsuit/knight/black
name = "Black Knight's armour"
@@ -79,7 +79,7 @@
item_state = "hardsuit-blackknight"
armor = list(melee = 70, bullet = 65, laser = 50,energy = 25, bomb = 60, bio = 100, rad = 60)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/knight/black
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/head/helmet/space/hardsuit/knight/solaire
name = "Solar helm"
@@ -88,7 +88,7 @@
item_state = "hardsuit0-solaire"
armor = list(melee = 60, bullet = 65, laser = 90,energy = 30, bomb = 60, bio = 100, rad = 100)
item_color="solaire"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/space/hardsuit/knight/solaire
name = "Solar armour"
@@ -97,7 +97,7 @@
item_state = "hardsuit-solaire"
armor = list(melee = 60, bullet = 65, laser = 90,energy = 30, bomb = 60, bio = 100, rad = 100)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/knight/solaire
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/head/helmet/space/hardsuit/t51b
name = "T-51b Power Armor"
@@ -106,7 +106,7 @@
item_state = "hardsuit0-t51b"
armor = list(melee = 35, bullet = 35, laser = 40, energy = 40, bomb = 80, bio = 100, rad = 100)
item_color="t51b"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/space/hardsuit/t51b
name = "T-51b Power Armor"
@@ -115,7 +115,7 @@
item_state = "hardsuit-t51b"
armor = list(melee = 35, bullet = 35, laser = 40, energy = 40, bomb = 80, bio = 100, rad = 100)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/t51b
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/head/helmet/space/bomberman
@@ -125,7 +125,7 @@
item_state = "bomberman"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
siemens_coefficient = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
obj/item/clothing/suit/space/bomberman
name = "Bomberman's suit"
@@ -136,4 +136,4 @@ obj/item/clothing/suit/space/bomberman
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 100, bio = 0, rad = 0)
siemens_coefficient = 0
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
- icon = 'icons/obj/clothing/vg_clothes.dmi'
\ No newline at end of file
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
\ No newline at end of file
diff --git a/code/modules/clothing/suits/vg_suits.dm b/code/modules/clothing/suits/vg_suits.dm
index cb876ab153..da06e85392 100644
--- a/code/modules/clothing/suits/vg_suits.dm
+++ b/code/modules/clothing/suits/vg_suits.dm
@@ -7,16 +7,16 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor = list(melee = 50, bullet = 50, laser = 50, energy = 30, bomb = 60, bio = 30, rad = 20)
siemens_coefficient = 0.5
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/armor/xcomsquaddie/dredd
name = "Judge Armor"
desc = "A large suit of heavy armor, fit for a Judge."
icon_state = "dredd-suit"
item_state = "dredd-suit"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/armor/xcomarmor
@@ -28,16 +28,16 @@
armor = list(melee = 50, bullet = 50, laser = 50, energy = 30, bomb = 60, bio = 30, rad = 20)
slowdown = 1
siemens_coefficient = 0.5
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/armor/vest/neorussian
name = "neo-Russian vest"
desc = "The narkotiki camo pattern will come useful for botany raids."
icon_state = "nr_vest"
item_state = "nr_vest"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/armor/doomguy
name = "Doomguy's armor"
@@ -47,8 +47,8 @@
body_parts_covered = CHEST|GROIN
slowdown = 0
armor = list(melee = 50, bullet = 30, laser = 20, energy = 20, bomb = 30, bio = 0, rad = 0)
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/kaminacape
@@ -56,22 +56,22 @@
desc = "Don't believe in yourself, dumbass. Believe in me. Believe in the Kamina who believes in you."
icon_state = "kaminacape"
body_parts_covered = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/officercoat
name = "Officer's Coat"
desc = "Ein Mantel gemacht, um die Juden zu bestrafen."
icon_state = "officersuit"
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/soldiercoat
name = "Soldier's Coat"
desc = "Und das heißt: Erika."
icon_state = "soldiersuit"
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/suit/russofurcoat
name = "russian fur coat"
@@ -79,46 +79,46 @@
icon_state = "russofurcoat"
allowed = list(/obj/item/gun)
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/doshjacket
name = "Plasterer's Jacket"
desc = "Perfect for doing up the house."
icon_state = "doshjacket"
body_parts_covered = CHEST|GROIN|ARMS
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/maidapron
name = "Apron"
desc = "Simple white apron."
icon_state = "maidapron"
body_parts_covered = CHEST|GROIN
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/clownpiece
name = "small fairy wings"
desc = "Some small and translucid insect-like wings."
icon_state = "clownpiece"
body_parts_covered = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/clownpiece/flying
name = "small fairy wings"
desc = "Some small and translucid insect-like wings. Looks like these are the real deal!"
icon_state = "clownpiece-fly"
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
/obj/item/clothing/suit/raincoat
name = "Raincoat"
desc = "Do you like Huey Lewis and the News?"
icon_state = "raincoat"
body_parts_covered =CHEST|GROIN|LEGS|ARMS|HANDS
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/suit.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/suit.dmi'
diff --git a/code/modules/clothing/under/vg_under.dm b/code/modules/clothing/under/vg_under.dm
index f468e9468a..f9b521cade 100644
--- a/code/modules/clothing/under/vg_under.dm
+++ b/code/modules/clothing/under/vg_under.dm
@@ -4,8 +4,8 @@
item_state = "stripper_p"
item_color = "stripper_p"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/stripper_green
@@ -14,8 +14,8 @@
item_state = "stripper_g"
item_color = "stripper_g"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
@@ -26,8 +26,8 @@
item_state = "bride_orange"
item_color = "bride_orange"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/wedding/bride_purple
@@ -37,8 +37,8 @@
item_state = "bride_purple"
item_color = "bride_purple"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/wedding/bride_blue
@@ -48,8 +48,8 @@
item_state = "bride_blue"
item_color = "bride_blue"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/wedding/bride_red
@@ -59,8 +59,8 @@
item_state = "bride_red"
item_color = "bride_red"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/wedding/bride_white
@@ -70,8 +70,8 @@
item_state = "bride_white"
item_color = "bride_white"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/mankini
@@ -80,8 +80,8 @@
item_state = "mankini"
item_color = "mankini"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/*
/obj/item/clothing/under/psysuit
@@ -91,8 +91,8 @@
item_state = "psysuit"
item_color = "psysuit"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/officeruniform
@@ -102,8 +102,8 @@
item_state = "officeruniform"
item_color = "officeruniform"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/soldieruniform
@@ -113,8 +113,8 @@
item_state = "soldieruniform"
item_color = "soldieruniform"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
*/
/obj/item/clothing/under/squatter_outfit
@@ -124,8 +124,8 @@
item_state = "squatteroutfit"
item_color = "squatteroutfit"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/russobluecamooutfit
@@ -135,8 +135,8 @@
item_state = "russobluecamo"
item_color = "russobluecamo"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/stilsuit
@@ -146,8 +146,8 @@
item_state = "stilsuit"
item_color = "stilsuit"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/aviatoruniform
@@ -157,8 +157,8 @@
item_state = "aviator_uniform"
item_color = "aviator_uniform"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/bikersuit
@@ -167,8 +167,8 @@
item_state = "biker"
item_color = "biker"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/jacketsuit
@@ -178,8 +178,8 @@
item_state = "jacket"
item_color = "jacket"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
obj/item/clothing/under/mega
@@ -189,8 +189,8 @@ obj/item/clothing/under/mega
item_state = "mega"
item_color = "mega"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/proto
@@ -200,8 +200,8 @@ obj/item/clothing/under/mega
item_state = "proto"
item_color = "proto"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/megax
@@ -211,8 +211,8 @@ obj/item/clothing/under/mega
item_state = "megax"
item_color = "megax"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/joe
@@ -222,8 +222,8 @@ obj/item/clothing/under/mega
item_state = "joe"
item_color = "joe"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/roll
@@ -233,8 +233,8 @@ obj/item/clothing/under/mega
item_state = "roll"
item_color = "roll"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/gokugidown
@@ -244,8 +244,8 @@ obj/item/clothing/under/mega
item_state = "gokugidown"
item_color = "gokugidown"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/gokugi
@@ -255,8 +255,8 @@ obj/item/clothing/under/mega
item_state = "gokugi"
item_color = "gokugi"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/doomguy
@@ -266,8 +266,8 @@ obj/item/clothing/under/mega
item_state = "doom"
item_color = "doom"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/vault13
@@ -277,8 +277,8 @@ obj/item/clothing/under/mega
item_state = "v13-jumpsuit"
item_color = "v13-jumpsuit"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/vault
@@ -288,8 +288,8 @@ obj/item/clothing/under/mega
item_state = "v-jumpsuit"
item_color = "v-jumpsuit"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/clownpiece
@@ -299,8 +299,8 @@ obj/item/clothing/under/mega
item_state = "clownpiece"
item_color = "clownpiece"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/cia
@@ -310,8 +310,8 @@ obj/item/clothing/under/mega
item_state = "cia"
item_color = "cia"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/greaser
@@ -320,8 +320,8 @@ obj/item/clothing/under/mega
icon_state = "greaser_default"
item_state = "greaser_default"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/greaser/New()
@@ -340,7 +340,7 @@ obj/item/clothing/under/mega
item_state = "greaser_[greaser_colour]"
item_color = "greaser_[greaser_colour]"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/obj/item/clothing/under/wintercasualwear
name = "winter casualwear"
@@ -349,8 +349,8 @@ obj/item/clothing/under/mega
item_state = "shizunewinter"
item_color = "shizunewinter"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
@@ -361,8 +361,8 @@ obj/item/clothing/under/mega
item_state = "shizunenormal"
item_color = "shizunenormal"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/keyholesweater
@@ -372,8 +372,8 @@ obj/item/clothing/under/mega
item_state = "keyholesweater"
item_color = "keyholesweater"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/casualhoodie
@@ -383,8 +383,8 @@ obj/item/clothing/under/mega
item_state = "hoodiejeans"
item_color = "hoodiejeans"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
@@ -393,7 +393,7 @@ obj/item/clothing/under/mega
item_state = "hoodieskirt"
item_color = "hoodieskirt"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
/*
/obj/item/clothing/under/mummy_rags
name = "mummy rags"
@@ -403,8 +403,8 @@ obj/item/clothing/under/mega
item_color = "mummy"
can_adjust = 0
has_sensor = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/neorussian
@@ -414,8 +414,8 @@ obj/item/clothing/under/mega
item_state = "nr_uniform"
item_color = "nr_uniform"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
*/
/obj/item/clothing/under/rottensuit
@@ -425,5 +425,5 @@ obj/item/clothing/under/mega
item_state = "rottensuit"
item_color = "rottensuit"
can_adjust = 0
- icon = 'icons/obj/clothing/vg_clothes.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm
index 48ebd53435..30fa676500 100644
--- a/code/modules/mob/living/carbon/emote.dm
+++ b/code/modules/mob/living/carbon/emote.dm
@@ -68,17 +68,6 @@
if(!isnum(text2num(params)))
return message
-/datum/emote/sound/carbon/snap
- key = "snap"
- key_third_person = "snaps"
- message = "snaps their fingers."
- muzzle_ignore = TRUE
- restraint_check = TRUE
- emote_type = EMOTE_AUDIBLE
- sound = 'sound/effects/snap01.ogg'
- mob_type_allowed_typecache = list(/mob/living/carbon/)
-
-
/datum/emote/living/carbon/sign/signal
key = "signal"
key_third_person = "signals"
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 22587d97d3..8e5a1aa7ca 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1049,18 +1049,3 @@
/mob/living/carbon/human/species/zombie/krokodil_addict
race = /datum/species/krokodil_addict
-
-/*
-//CITADEL EDIT - TODO: Enable people to set custom races
-/mob/living/carbon/human/species/mammal
- race = /datum/species/mammal
-/mob/living/carbon/human/species/avian
- race = /datum/species/avian
-/mob/living/carbon/human/species/aquatic
- race = /datum/species/aquatic
-/mob/living/carbon/human/species/insect
- race = /datum/species/insect
-/mob/living/carbon/human/species/xeno
- race = /datum/species/xeno
-/mob/living/carbon/human/species/guilmon
- race = /datum/species/guilmon */
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 9e7a508579..c6253ea48e 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -685,26 +685,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
S = GLOB.moth_wings_list[H.dna.features["moth_wings"]]
if("caps")
S = GLOB.caps_list[H.dna.features["caps"]]
-
- //Mammal Bodyparts
- if("mam_tail")
- S = GLOB.mam_tails_list[H.dna.features["mam_tail"]]
- if("mam_waggingtail")
- S.= GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]]
- if("mam_body_markings")
- S = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
- if("mam_ears")
- S = GLOB.mam_ears_list[H.dna.features["mam_ears"]]
- if("taur")
- S = GLOB.taur_list[H.dna.features["taur"]]
-
- //Xeno Bodyparts
- if("xenodorsal")
- S = GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]]
- if("xenohead")
- S = GLOB.xeno_head_list[H.dna.features["xenohead"]]
- if("xenotail")
- S = GLOB.xeno_tail_list[H.dna.features["xenotail"]]
+ else
+ S = citadel_mutant_bodyparts(bodypart, H)
if(!S || S.icon_state == "none")
continue
diff --git a/code/modules/projectiles/guns/energy/megabuster.dm b/code/modules/projectiles/guns/energy/megabuster.dm
index 6fd2de777b..3f14fe3b8d 100644
--- a/code/modules/projectiles/guns/energy/megabuster.dm
+++ b/code/modules/projectiles/guns/energy/megabuster.dm
@@ -9,7 +9,7 @@
item_flags = NEEDS_PERMIT
selfcharge = TRUE
cell_type = "/obj/item/stock_parts/cell/pulse"
- icon = 'icons/obj/guns/VGguns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/VGguns.dmi'
/obj/item/gun/energy/megabuster/proto
name = "Proto-buster"
@@ -19,7 +19,7 @@
/obj/item/gun/energy/mmlbuster
name = "Buster Cannon"
desc = "An antique arm-mounted buster cannon."
- icon = 'icons/obj/guns/VGguns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/VGguns.dmi'
icon_state = "mmlbuster"
item_state = "mmlbuster"
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/modules/projectiles/guns/energy/plasma_cit.dm b/code/modules/projectiles/guns/energy/plasma_cit.dm
index 4324053a14..9f9340a725 100644
--- a/code/modules/projectiles/guns/energy/plasma_cit.dm
+++ b/code/modules/projectiles/guns/energy/plasma_cit.dm
@@ -7,8 +7,8 @@
cell_type = "/obj/item/stock_parts/cell/pulse/carbine"
ammo_x_offset = 2
shaded_charge = 1
- lefthand_file = 'icons/mob/citadel/guns_lefthand.dmi'
- righthand_file = 'icons/mob/citadel/guns_righthand.dmi'
+ lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
+ righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
/obj/item/gun/energy/plasma/rifle
@@ -16,7 +16,7 @@
desc = "A state of the art cannon utilizing plasma in a uranium-235 lined core to output hi-power, radiating bolts of energy."
icon_state = "alienrifle"
item_state = null
- icon = 'icons/obj/guns/VGguns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/VGguns.dmi'
w_class = WEIGHT_CLASS_BULKY
ammo_type = list(/obj/item/ammo_casing/energy/plasmagun/rifle)
ammo_x_offset = 4
@@ -28,7 +28,7 @@
desc = "A state of the art rifle utilizing plasma in a uranium-235 lined core to output radiating bolts of energy."
icon_state = "lightalienrifle"
item_state = null
- icon = 'icons/obj/guns/VGguns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/VGguns.dmi'
ammo_type = list(/obj/item/ammo_casing/energy/plasmagun/light)
ammo_x_offset = 2
@@ -38,7 +38,7 @@
desc = "A plasma MP40k. Ich liebe den geruch von plasma am morgen."
icon_state = "PlasMP"
item_state = null
- icon = 'icons/obj/guns/VGguns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/VGguns.dmi'
ammo_type = list(/obj/item/ammo_casing/energy/plasmagun/MP40k)
ammo_x_offset = 3
@@ -49,21 +49,21 @@
desc = "A laser rifle issued to high ranking members of a certain shadow corporation."
icon_state = "xcomlasergun"
item_state = null
- icon = 'icons/obj/guns/VGguns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/VGguns.dmi'
cell_type = "/obj/item/stock_parts/cell/pulse/carbine"
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
ammo_x_offset = 4
- lefthand_file = 'icons/mob/citadel/guns_lefthand.dmi'
- righthand_file = 'icons/mob/citadel/guns_righthand.dmi'
+ lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
+ righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
/obj/item/gun/energy/laser/LaserAK
name = "Laser AK470"
desc = "A laser AK. Death solves all problems -- No man, no problem."
icon_state = "LaserAK"
item_state = null
- icon = 'icons/obj/guns/VGguns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/VGguns.dmi'
cell_type = "/obj/item/stock_parts/cell/pulse/carbine"
ammo_type = list(/obj/item/ammo_casing/energy/laser)
ammo_x_offset = 4
- lefthand_file = 'icons/mob/citadel/guns_lefthand.dmi'
- righthand_file = 'icons/mob/citadel/guns_righthand.dmi'
+ lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
+ righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
diff --git a/code/modules/projectiles/projectile/megabuster.dm b/code/modules/projectiles/projectile/megabuster.dm
index e3f3f9403e..bfe9f40297 100644
--- a/code/modules/projectiles/projectile/megabuster.dm
+++ b/code/modules/projectiles/projectile/megabuster.dm
@@ -6,14 +6,14 @@
damage_type = BURN
hitsound = 'sound/weapons/sear.ogg'
hitsound_wall = 'sound/weapons/effects/searwall.ogg'
- icon = 'icons/obj/VGprojectile.dmi'
- lefthand_file = 'icons/mob/citadel/guns_lefthand.dmi'
- righthand_file = 'icons/mob/citadel/guns_righthand.dmi'
+ icon = 'modular_citadel/icons/obj/VGprojectile.dmi'
+ lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
+ righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
/obj/item/projectile/energy/megabuster
name = "buster pellet"
icon_state = "megabuster"
nodamage = 1
- icon = 'icons/obj/VGprojectile.dmi'
- lefthand_file = 'icons/mob/citadel/guns_lefthand.dmi'
- righthand_file = 'icons/mob/citadel/guns_righthand.dmi'
+ icon = 'modular_citadel/icons/obj/VGprojectile.dmi'
+ lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
+ righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
diff --git a/code/modules/projectiles/projectile/plasma.dm b/code/modules/projectiles/projectile/plasma.dm
index 0e40e80828..f9adb9f3d7 100644
--- a/code/modules/projectiles/projectile/plasma.dm
+++ b/code/modules/projectiles/projectile/plasma.dm
@@ -1,5 +1,5 @@
obj/item/projectile/energy/plasmabolt
- icon = 'icons/obj/VGProjectile.dmi'
+ icon = 'modular_citadel/icons/obj/VGProjectile.dmi'
name = "plasma bolt"
icon_state = "plasma"
flag = "energy"
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index 4261e52e04..9878130144 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -334,6 +334,14 @@
limb.icon_state = "[species_id]_[body_zone]_[icon_gender]"
else
limb.icon_state = "[species_id]_[body_zone]"
+ // Citadel Start
+ if(should_draw_citadel)
+ limb.icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
+ if(should_draw_gender)
+ limb.icon_state = "[species_id]_[body_zone]_[icon_gender]"
+ else
+ limb.icon_state = "[species_id]_[body_zone]"
+ // Citadel End
if(aux_zone)
aux = image(limb.icon, "[species_id]_[aux_zone]", -aux_layer, image_dir)
. += aux
diff --git a/config/game_options.txt b/config/game_options.txt
index ee080b6014..5599030e39 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -512,6 +512,7 @@ ROUNDSTART_RACES insect
ROUNDSTART_RACES xeno
ROUNDSTART_RACES datashark
ROUNDSTART_RACES guilmon
+ROUNDSTART_RACES ipc
## CREW OBJECTIVES ##
## Comment to disable objectives for innocent crew members.
diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi
index 529968d7f8..cef7b421e5 100644
Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ
diff --git a/icons/obj/clothing/turtlenecks.dmi b/icons/obj/clothing/turtlenecks.dmi
deleted file mode 100644
index 59b2876c0c..0000000000
Binary files a/icons/obj/clothing/turtlenecks.dmi and /dev/null differ
diff --git a/modular_citadel/code/game/objects/items.dm b/modular_citadel/code/game/objects/items.dm
index 3cd0d12b8b..31ab57ee47 100644
--- a/modular_citadel/code/game/objects/items.dm
+++ b/modular_citadel/code/game/objects/items.dm
@@ -1,2 +1,14 @@
/obj/item
var/total_mass //Total mass in arbitrary pound-like values. If there's no balance reasons for an item to have otherwise, this var should be the item's weight in pounds.
+
+ var/list/alternate_screams = list() //REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
+
+// lazy for screaming.
+/obj/item/clothing/head/xenos
+ alternate_screams = list('sound/voice/hiss6.ogg')
+
+/obj/item/clothing/head/cardborg
+ alternate_screams = list('modular_citadel/sound/voice/scream_silicon.ogg')
+
+/obj/item/clothing/head/ushanka
+ alternate_screams = list('modular_citadel/sound/misc/cyka1.ogg', 'modular_citadel/sound/misc/cheekibreeki.ogg')
\ No newline at end of file
diff --git a/modular_citadel/code/game/objects/items/meat.dm b/modular_citadel/code/game/objects/items/meat.dm
new file mode 100644
index 0000000000..3891c5ca9d
--- /dev/null
+++ b/modular_citadel/code/game/objects/items/meat.dm
@@ -0,0 +1,26 @@
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc
+ icon = 'modular_citadel/icons/obj/foods.dmi'
+ icon_state = "ipcmeat"
+ desc = "Gross robot meat."
+ filling_color = "#000000"
+ tastes = list("metal" = 1)
+
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/moth
+ icon = 'modular_citadel/icons/obj/foods.dmi'
+ icon_state = "mothmeat"
+ desc = "Moth meat."
+ filling_color = "#BF896B"
+ tastes = list("insects" = 1)
+
+
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/avian
+ icon = 'modular_citadel/icons/obj/foods.dmi'
+ icon_state = "birdmeat"
+ desc = "Quality bird meat."
+ filling_color = "#BF896B"
+ tastes = list("chicken" = 1)
+
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/mammal
+ desc = "Furry meat. WHO DID THIS?!"
+ filling_color = "#6B8E23"
+ tastes = list("brains" = 1, "meat" = 1)
\ No newline at end of file
diff --git a/modular_citadel/code/init.dm b/modular_citadel/code/init.dm
index 8432df7ac3..21fc1ca867 100644
--- a/modular_citadel/code/init.dm
+++ b/modular_citadel/code/init.dm
@@ -17,6 +17,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_head, GLOB.xeno_head_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_tail, GLOB.xeno_tail_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/screen, GLOB.ipc_screens_list, roundstart = TRUE)
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
for(var/K in GLOB.cock_shapes_list)
var/datum/sprite_accessory/penis/value = GLOB.cock_shapes_list[K]
diff --git a/modular_citadel/code/modules/client/loadout/head.dm b/modular_citadel/code/modules/client/loadout/head.dm
index 5068b9e298..168debf2cc 100644
--- a/modular_citadel/code/modules/client/loadout/head.dm
+++ b/modular_citadel/code/modules/client/loadout/head.dm
@@ -47,3 +47,28 @@
name = "Top Hat"
category = slot_head
path = /obj/item/clothing/head/that
+
+//trek fancy Hats!
+/datum/gear/trekcap
+ name = "Federation Officer's Cap"
+ category = slot_head
+ path = /obj/item/clothing/head/caphat/formal/fedcover
+ restricted_roles = list("Captain","Head of Personnel")
+
+/datum/gear/trekcapmedisci
+ name = "Federation Officer's Cap"
+ category = slot_head
+ path = /obj/item/clothing/head/caphat/formal/fedcover/medsci
+ restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
+
+/datum/gear/trekcapeng
+ name = "Federation Officer's Cap"
+ category = slot_head
+ path = /obj/item/clothing/head/caphat/formal/fedcover/eng
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
+
+/datum/gear/trekcapsec
+ name = "Federation Officer's Cap"
+ category = slot_head
+ path = /obj/item/clothing/head/caphat/formal/fedcover/sec
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
\ No newline at end of file
diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm
index 3c18bef566..941da5c29f 100644
--- a/modular_citadel/code/modules/client/loadout/suit.dm
+++ b/modular_citadel/code/modules/client/loadout/suit.dm
@@ -67,3 +67,36 @@
name = "Ian Shirt"
category = slot_wear_suit
path = /obj/item/clothing/suit/ianshirt
+
+/datum/gear/trekds9_coat
+ name = "DS9 Overcoat (use uniform)"
+ category = slot_wear_suit
+ path = /obj/item/clothing/suit/storage/trek/ds9
+ restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster",
+ "Medical Doctor","Chemist","Virologist","Geneticist","Scientist", "Roboticist",
+ "Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer",
+ "Cargo Technician", "Shaft Miner") //everyone who actually deserves a job.
+//Federation jackets from movies
+/datum/gear/trekcmdcap
+ name = "fed (movie) uniform, Captain"
+ category = slot_wear_suit
+ path = /obj/item/clothing/suit/storage/fluff/fedcoat/capt
+ restricted_roles = list("Captain","Head of Personnel")
+
+/datum/gear/trekcmdmov
+ name = "fed (movie) uniform, sec"
+ category = slot_wear_suit
+ path = /obj/item/clothing/suit/storage/fluff/fedcoat
+ restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster","Warden","Detective","Security Officer")
+
+/datum/gear/trekmedscimov
+ name = "fed (movie) uniform, med/sci"
+ category = slot_wear_suit
+ path = /obj/item/clothing/suit/storage/fluff/fedcoat/medsci
+ restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
+
+/datum/gear/trekengmov
+ name = "fed (movie) uniform, ops/eng"
+ category = slot_wear_suit
+ path = /obj/item/clothing/suit/storage/fluff/fedcoat/eng
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Cargo Technician", "Shaft Miner", "Quartermaster")
\ No newline at end of file
diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm
index 1487166e13..acb2b4e13c 100644
--- a/modular_citadel/code/modules/client/loadout/uniform.dm
+++ b/modular_citadel/code/modules/client/loadout/uniform.dm
@@ -122,3 +122,99 @@
name = "Tactitool Turtleneck"
category = slot_w_uniform
path = /obj/item/clothing/under/syndicate/cosmetic
+
+// Trekie things
+//TOS
+/datum/gear/trekcmdtos
+ name = "TOS uniform, cmd"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/command
+ restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
+
+/datum/gear/trekmedscitos
+ name = "TOS uniform, med/sci"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/medsci
+ restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
+
+/datum/gear/trekengtos
+ name = "TOS uniform, ops/sec"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/engsec
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
+
+//TNG
+/datum/gear/trekcmdtng
+ name = "TNG uniform, cmd"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/command/next
+ restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
+
+/datum/gear/trekmedscitng
+ name = "TNG uniform, med/sci"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/medsci/next
+ restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
+
+/datum/gear/trekengtng
+ name = "TNG uniform, ops/sec"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/engsec/next
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
+
+//VOY
+/datum/gear/trekcmdvoy
+ name = "VOY uniform, cmd"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/command/voy
+ restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
+
+/datum/gear/trekmedscivoy
+ name = "VOY uniform, med/sci"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/medsci/voy
+ restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
+
+/datum/gear/trekengvoy
+ name = "VOY uniform, ops/sec"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/engsec/voy
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
+
+//DS9
+/datum/gear/trekcmdds9
+ name = "DS9 uniform, cmd"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/command/ds9
+ restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
+
+/datum/gear/trekmedscids9
+ name = "DS9 uniform, med/sci"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/medsci/ds9
+ restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
+
+/datum/gear/trekengds9
+ name = "DS9 uniform, ops/sec"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/engsec/ds9
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
+
+//ENT
+/datum/gear/trekcmdent
+ name = "ENT uniform, cmd"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/command/ent
+ restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
+
+/datum/gear/trekmedscient
+ name = "ENT uniform, med/sci"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/medsci/ent
+ restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
+
+/datum/gear/trekengent
+ name = "ENT uniform, ops/sec"
+ category = slot_w_uniform
+ path = /obj/item/clothing/under/rank/trek/engsec/ent
+ restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
diff --git a/modular_citadel/code/modules/client/loadout/uniform_trek.dm b/modular_citadel/code/modules/client/loadout/uniform_trek.dm
deleted file mode 100644
index dd03d3c446..0000000000
--- a/modular_citadel/code/modules/client/loadout/uniform_trek.dm
+++ /dev/null
@@ -1,156 +0,0 @@
-// Trekie things
-//TOS
-/datum/gear/uniform/job_trek/cmd/tos
- name = "TOS uniform, cmd"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/command
- restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
-
-/datum/gear/uniform/job_trek/medsci/tos
- name = "TOS uniform, med/sci"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/medsci
- restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
-
-/datum/gear/uniform/job_trek/eng/tos
- name = "TOS uniform, ops/sec"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/engsec
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
-
-//Federation jackets from movies
-/datum/gear/uniform/job_trek/cmd/cap
- name = "fed (movie) uniform, Captain"
- category = slot_wear_suit
- path = /obj/item/clothing/suit/storage/fluff/fedcoat/capt
- restricted_roles = list("Captain","Head of Personnel")
-
-/datum/gear/uniform/job_trek/cmd/mov
- name = "fed (movie) uniform, sec"
- category = slot_wear_suit
- path = /obj/item/clothing/suit/storage/fluff/fedcoat
- restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster","Warden","Detective","Security Officer")
-
-/datum/gear/suit/job_trek/medsci/mov
- name = "fed (movie) uniform, med/sci"
- category = slot_wear_suit
- path = /obj/item/clothing/suit/storage/fluff/fedcoat/medsci
- restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
-
-/datum/gear/suit/job_trek/eng/mov
- name = "fed (movie) uniform, ops/eng"
- category = slot_wear_suit
- path = /obj/item/clothing/suit/storage/fluff/fedcoat/eng
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Cargo Technician", "Shaft Miner", "Quartermaster")
-
-//TNG
-/datum/gear/uniform/job_trek/cmd/tng
- name = "TNG uniform, cmd"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/command/next
- restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
-
-/datum/gear/uniform/job_trek/medsci/tng
- name = "TNG uniform, med/sci"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/medsci/next
- restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
-
-/datum/gear/uniform/job_trek/eng/tng
- name = "TNG uniform, ops/sec"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/engsec/next
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
-
-//VOY
-/datum/gear/uniform/job_trek/cmd/voy
- name = "VOY uniform, cmd"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/command/voy
- restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
-
-/datum/gear/uniform/job_trek/medsci/voy
- name = "VOY uniform, med/sci"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/medsci/voy
- restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
-
-/datum/gear/uniform/job_trek/eng/voy
- name = "VOY uniform, ops/sec"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/engsec/voy
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
-
-//DS9
-
-/datum/gear/suit/job_trek/ds9_coat
- name = "DS9 Overcoat (use uniform)"
- category = slot_wear_suit
- path = /obj/item/clothing/suit/storage/trek/ds9
- restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster",
- "Medical Doctor","Chemist","Virologist","Geneticist","Scientist", "Roboticist",
- "Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer",
- "Cargo Technician", "Shaft Miner") //everyone who actually deserves a job.
-
-/datum/gear/uniform/job_trek/cmd/ds9
- name = "DS9 uniform, cmd"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/command/ds9
- restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
-
-/datum/gear/uniform/job_trek/medsci/ds9
- name = "DS9 uniform, med/sci"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/medsci/ds9
- restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
-
-/datum/gear/uniform/job_trek/eng/ds9
- name = "DS9 uniform, ops/sec"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/engsec/ds9
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
-
-
-//ENT
-/datum/gear/uniform/job_trek/cmd/ent
- name = "ENT uniform, cmd"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/command/ent
- restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster")
-
-/datum/gear/uniform/job_trek/medsci/ent
- name = "ENT uniform, med/sci"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/medsci/ent
- restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
-
-/datum/gear/uniform/job_trek/eng/ent
- name = "ENT uniform, ops/sec"
- category = slot_w_uniform
- path = /obj/item/clothing/under/rank/trek/engsec/ent
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
-
-//Hats!
-/datum/gear/hat/job_trek/cap
- name = "Federation Officer's Cap"
- category = slot_head
- path = /obj/item/clothing/head/caphat/formal/fedcover
- restricted_roles = list("Captain","Head of Personnel")
-
-/datum/gear/hat/job_trek/cap/medisci
- name = "Federation Officer's Cap"
- category = slot_head
- path = /obj/item/clothing/head/caphat/formal/fedcover/medsci
- restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist")
-
-/datum/gear/hat/job_trek/cap/eng
- name = "Federation Officer's Cap"
- category = slot_head
- path = /obj/item/clothing/head/caphat/formal/fedcover/eng
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
-
-/datum/gear/hat/job_trek/cap/sec
- name = "Federation Officer's Cap"
- category = slot_head
- path = /obj/item/clothing/head/caphat/formal/fedcover/sec
- restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster")
\ No newline at end of file
diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm
index 4d1fc880d7..1bc484fb9d 100644
--- a/modular_citadel/code/modules/client/preferences.dm
+++ b/modular_citadel/code/modules/client/preferences.dm
@@ -3,20 +3,650 @@
#define BACKPACK_SLOT_AMT 4
/datum/preferences
+ //gear
var/gear_points = 10
var/list/gear_categories
var/list/chosen_gear
var/gear_tab
+
+ //pref vars
var/screenshake = 100
var/damagescreenshake = 2
var/arousable = TRUE
var/widescreenpref = TRUE
var/autostand = TRUE
+ //vore prefs
+ var/toggleeatingnoise = TRUE
+ var/toggledigestionnoise = TRUE
+ var/hound_sleeper = TRUE
+ var/cit_toggles = TOGGLES_CITADEL
+
+ // stuff that was in base
+ max_save_slots = 10
+ features = list("mcolor" = "FFF",
+ "tail_lizard" = "Smooth",
+ "tail_human" = "None",
+ "snout" = "Round",
+ "horns" = "None",
+ "ears" = "None",
+ "wings" = "None",
+ "frills" = "None",
+ "spines" = "None",
+ "body_markings" = "None",
+ "legs" = "Normal Legs",
+ "moth_wings" = "Plain",
+ "mcolor2" = "FFF",
+ "mcolor3" = "FFF",
+ "mam_body_markings" = "None",
+ "mam_ears" = "None",
+ "mam_tail" = "None",
+ "mam_tail_animated" = "None",
+ "xenodorsal" = "None",
+ "xenohead" = "None",
+ "xenotail" = "None",
+ "taur" = "None",
+ "exhibitionist" = FALSE,
+ "genitals_use_skintone" = FALSE,
+ "has_cock" = FALSE,
+ "cock_shape" = "Human",
+ "cock_length" = 6,
+ "cock_girth_ratio" = COCK_GIRTH_RATIO_DEF,
+ "cock_color" = "fff",
+ "has_sheath" = FALSE,
+ "sheath_color" = "fff",
+ "has_balls" = FALSE,
+ "balls_internal" = FALSE,
+ "balls_color" = "fff",
+ "balls_amount" = 2,
+ "balls_sack_size" = BALLS_SACK_SIZE_DEF,
+ "balls_size" = BALLS_SIZE_DEF,
+ "balls_cum_rate" = CUM_RATE,
+ "balls_cum_mult" = CUM_RATE_MULT,
+ "balls_efficiency" = CUM_EFFICIENCY,
+ "balls_fluid" = "semen",
+ "has_ovi" = FALSE,
+ "ovi_shape" = "knotted",
+ "ovi_length" = 6,
+ "ovi_color" = "fff",
+ "has_eggsack" = FALSE,
+ "eggsack_internal" = TRUE,
+ "eggsack_color" = "fff",
+ "eggsack_size" = BALLS_SACK_SIZE_DEF,
+ "eggsack_egg_color" = "fff",
+ "eggsack_egg_size" = EGG_GIRTH_DEF,
+ "has_breasts" = FALSE,
+ "breasts_color" = "fff",
+ "breasts_size" = "C",
+ "breasts_shape" = "Pair",
+ "breasts_fluid" = "milk",
+ "has_vag" = FALSE,
+ "vag_shape" = "Human",
+ "vag_color" = "fff",
+ "vag_clits" = 1,
+ "vag_clit_diam" = 0.25,
+ "has_womb" = FALSE,
+ "womb_cum_rate" = CUM_RATE,
+ "womb_cum_mult" = CUM_RATE_MULT,
+ "womb_efficiency" = CUM_EFFICIENCY,
+ "womb_fluid" = "femcum",
+ "ipc_screen" = "Sunburst",
+ "flavor_text" = ""
+ )
+
/datum/preferences/New(client/C)
..()
LAZYINITLIST(chosen_gear)
+/datum/preferences/proc/citadel_dat_replace(current_tab)
+ var/mob/user
+ //This proc is for menus other than game pref and char pref
+ . = ""
+ . += "Character Settings"
+ . += "Character Appearance"
+ . += "Loadout"
+ . += "Game Preferences"
+
+ if(!path)
+ . += "Please create an account to save your preferences
"
+
+ . += ""
+
+ . += "
"
+
+ //Character Appearance
+ if(current_tab == 2)
+ update_preview_icon(nude=TRUE)
+ user << browse_rsc(preview_icon, "previewicon.png")
+ . += ""
+
+/datum/preferences/proc/process_citadel_link(mob/user, list/href_list)
+ if("input")
+ switch(href_list["preference"])
+ if("flavor_text")
+ var/msg = stripped_multiline_input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"]), MAX_MESSAGE_LEN*2, TRUE) as message
+ if(msg != null)
+ msg = copytext(msg, 1, MAX_MESSAGE_LEN*2)
+ features["flavor_text"] = msg
+
+ if("hair")
+ var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null
+ if(new_hair)
+ hair_color = sanitize_hexcolor(new_hair)
+
+ if("hair_style")
+ var/new_hair_style
+ if(gender == MALE)
+ new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_male_list
+ else
+ new_hair_style = input(user, "Choose your character's hair style:", "Character Preference") as null|anything in GLOB.hair_styles_female_list
+ if(new_hair_style)
+ hair_style = new_hair_style
+
+ if("next_hair_style")
+ if (gender == MALE)
+ hair_style = next_list_item(hair_style, GLOB.hair_styles_male_list)
+ else
+ hair_style = next_list_item(hair_style, GLOB.hair_styles_female_list)
+
+ if("previous_hair_style")
+ if (gender == MALE)
+ hair_style = previous_list_item(hair_style, GLOB.hair_styles_male_list)
+ else
+ hair_style = previous_list_item(hair_style, GLOB.hair_styles_female_list)
+
+ if("facial")
+ var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference","#"+facial_hair_color) as color|null
+ if(new_facial)
+ facial_hair_color = sanitize_hexcolor(new_facial)
+ if("facial_hair_style")
+ var/new_facial_hair_style
+ if(gender == MALE)
+ new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_male_list
+ else
+ new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_female_list
+ if(new_facial_hair_style)
+ facial_hair_style = new_facial_hair_style
+
+ if("next_facehair_style")
+ if (gender == MALE)
+ facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list)
+ else
+ facial_hair_style = next_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list)
+ if("previous_facehair_style")
+ if (gender == MALE)
+ facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_male_list)
+ else
+ facial_hair_style = previous_list_item(facial_hair_style, GLOB.facial_hair_styles_female_list)
+
+ if("underwear")
+ var/new_underwear
+ if(gender == MALE)
+ new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m
+ else
+ new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_f
+ if(new_underwear)
+ underwear = new_underwear
+
+ if("undershirt")
+ var/new_undershirt
+ if(gender == MALE)
+ new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m
+ else
+ new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_f
+ if(new_undershirt)
+ undershirt = new_undershirt
+
+ if("socks")
+ var/new_socks
+ new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list
+ if(new_socks)
+ socks = new_socks
+
+ if("eyes")
+ var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+eye_color) as color|null
+ if(new_eyes)
+ eye_color = sanitize_hexcolor(new_eyes)
+
+ if("species")
+ var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_races
+ if(result)
+ var/newtype = GLOB.species_list[result]
+ pref_species = new newtype()
+ //Now that we changed our species, we must verify that the mutant colour is still allowed.
+ var/temp_hsv = RGBtoHSV(features["mcolor"])
+ if(features["mcolor"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3]))
+ features["mcolor"] = pref_species.default_color
+ if(features["mcolor2"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3]))
+ features["mcolor2"] = pref_species.default_color
+ if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3]))
+ features["mcolor3"] = pref_species.default_color
+
+ if("mutant_color")
+ var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference","#"+features["mcolor"]) as color|null
+ if(new_mutantcolor)
+ var/temp_hsv = RGBtoHSV(new_mutantcolor)
+ if(new_mutantcolor == "#000000")
+ features["mcolor"] = pref_species.default_color
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
+ features["mcolor"] = sanitize_hexcolor(new_mutantcolor)
+ else
+ to_chat(user, "Invalid color. Your color is not bright enough.")
+
+ if("mutant_color2")
+ var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null
+ if(new_mutantcolor)
+ var/temp_hsv = RGBtoHSV(new_mutantcolor)
+ if(new_mutantcolor == "#000000")
+ features["mcolor2"] = pref_species.default_color
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
+ features["mcolor2"] = sanitize_hexcolor(new_mutantcolor)
+ else
+ to_chat(user, "Invalid color. Your color is not bright enough.")
+
+ if("mutant_color3")
+ var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null
+ if(new_mutantcolor)
+ var/temp_hsv = RGBtoHSV(new_mutantcolor)
+ if(new_mutantcolor == "#000000")
+ features["mcolor3"] = pref_species.default_color
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
+ features["mcolor3"] = sanitize_hexcolor(new_mutantcolor)
+ else
+ to_chat(user, "Invalid color. Your color is not bright enough.")
+
+ if("ipc_screen")
+ var/new_ipc_screen
+ new_ipc_screen = input(user, "Choose your character's screen:", "Character Preference") as null|anything in GLOB.ipc_screens_list
+ if(new_ipc_screen)
+ features["ipc_screen"] = new_ipc_screen
+
+ if("tail_lizard")
+ var/new_tail
+ new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.tails_list_lizard
+ if(new_tail)
+ features["tail_lizard"] = new_tail
+ if(new_tail != "None")
+ features["taur"] = "None"
+
+ if("tail_human")
+ var/list/snowflake_tails_list = list("Normal" = null)
+ for(var/path in GLOB.tails_list_human)
+ var/datum/sprite_accessory/tails/human/instance = GLOB.tails_list_human[path]
+ if(istype(instance, /datum/sprite_accessory))
+ var/datum/sprite_accessory/S = instance
+ if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
+ snowflake_tails_list[S.name] = path
+ var/new_tail
+ new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in snowflake_tails_list
+ if(new_tail)
+ features["tail_human"] = new_tail
+ if(new_tail != "None")
+ features["taur"] = "None"
+
+ if("mam_tail")
+ var/list/snowflake_tails_list = list("Normal" = null)
+ for(var/path in GLOB.mam_tails_list)
+ var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[path]
+ if(istype(instance, /datum/sprite_accessory))
+ var/datum/sprite_accessory/S = instance
+ if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
+ snowflake_tails_list[S.name] = path
+ var/new_tail
+ new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in snowflake_tails_list
+ if(new_tail)
+ features["mam_tail"] = new_tail
+ if(new_tail != "None")
+ features["taur"] = "None"
+
+ if("snout")
+ var/new_snout
+ new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.snouts_list
+ if(new_snout)
+ features["snout"] = new_snout
+
+ if("horns")
+ var/new_horns
+ new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in GLOB.horns_list
+ if(new_horns)
+ features["horns"] = new_horns
+
+ if("ears")
+ var/new_ears
+ new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in GLOB.ears_list
+ if(new_ears)
+ features["ears"] = new_ears
+
+ if("wings")
+ var/new_wings
+ new_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.r_wings_list
+ if(new_wings)
+ features["wings"] = new_wings
+
+ if("frills")
+ var/new_frills
+ new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in GLOB.frills_list
+ if(new_frills)
+ features["frills"] = new_frills
+
+ if("spines")
+ var/new_spines
+ new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in GLOB.spines_list
+ if(new_spines)
+ features["spines"] = new_spines
+
+ if("body_markings")
+ var/new_body_markings
+ new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in GLOB.body_markings_list
+ if(new_body_markings)
+ features["body_markings"] = new_body_markings
+
+ if("legs")
+ var/new_legs
+ new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list
+ if(new_legs)
+ features["legs"] = new_legs
+
+ if("moth_wings")
+ var/new_moth_wings
+ new_moth_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.moth_wings_list
+ if(new_moth_wings)
+ features["moth_wings"] = new_moth_wings
+
+ if("s_tone")
+ var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones
+ if(new_s_tone)
+ skin_tone = new_s_tone
+
+ if("taur")
+ var/list/snowflake_taur_list = list("Normal" = null)
+ for(var/path in GLOB.taur_list)
+ var/datum/sprite_accessory/taur/instance = GLOB.taur_list[path]
+ if(istype(instance, /datum/sprite_accessory))
+ var/datum/sprite_accessory/S = instance
+ if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
+ snowflake_taur_list[S.name] = path
+ var/new_taur
+ new_taur = input(user, "Choose your character's tauric body:", "Character Preference") as null|anything in snowflake_taur_list
+ if(new_taur)
+ features["taur"] = new_taur
+ if(new_taur != "None")
+ features["mam_tail"] = "None"
+ features["xenotail"] = "None"
+
+ if("ears")
+ var/list/snowflake_ears_list = list("Normal" = null)
+ for(var/path in GLOB.ears_list)
+ var/datum/sprite_accessory/ears/instance = GLOB.ears_list[path]
+ if(istype(instance, /datum/sprite_accessory))
+ var/datum/sprite_accessory/S = instance
+ if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
+ snowflake_ears_list[S.name] = path
+ var/new_ears
+ new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in snowflake_ears_list
+ if(new_ears)
+ features["ears"] = new_ears
+
+ if("mam_ears")
+ var/list/snowflake_ears_list = list("Normal" = null)
+ for(var/path in GLOB.mam_ears_list)
+ var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[path]
+ if(istype(instance, /datum/sprite_accessory))
+ var/datum/sprite_accessory/S = instance
+ if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
+ snowflake_ears_list[S.name] = path
+ var/new_ears
+ new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in snowflake_ears_list
+ if(new_ears)
+ features["mam_ears"] = new_ears
+
+ if("mam_body_markings")
+ var/list/snowflake_markings_list = list("Normal" = null)
+ for(var/path in GLOB.mam_body_markings_list)
+ var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[path]
+ if(istype(instance, /datum/sprite_accessory))
+ var/datum/sprite_accessory/S = instance
+ if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey)))
+ snowflake_markings_list[S.name] = path
+ var/new_mam_body_markings
+ new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in snowflake_markings_list
+ if(new_mam_body_markings)
+ features["mam_body_markings"] = new_mam_body_markings
+
+ //Xeno Bodyparts
+ if("xenohead")//Head or caste type
+ var/new_head
+ new_head = input(user, "Choose your character's caste:", "Character Preference") as null|anything in GLOB.xeno_head_list
+ if(new_head)
+ features["xenohead"] = new_head
+
+ if("xenotail")//Currently one one type, more maybe later if someone sprites them. Might include animated variants in the future.
+ var/new_tail
+ new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in GLOB.xeno_tail_list
+ if(new_tail)
+ features["xenotail"] = new_tail
+
+ if("xenodorsal")
+ var/new_dors
+ new_dors = input(user, "Choose your character's dorsal tube type:", "Character Preference") as null|anything in GLOB.xeno_dorsal_list
+ if(new_dors)
+ features["xenodorsal"] = new_dors
+ //Genital code
+ if("cock_color")
+ var/new_cockcolor = input(user, "Penis color:", "Character Preference") as color|null
+ if(new_cockcolor)
+ var/temp_hsv = RGBtoHSV(new_cockcolor)
+ if(new_cockcolor == "#000000")
+ features["cock_color"] = pref_species.default_color
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
+ features["cock_color"] = sanitize_hexcolor(new_cockcolor)
+ else
+ user << "Invalid color. Your color is not bright enough."
+
+ if("cock_length")
+ var/new_length = input(user, "Penis length in inches:\n([COCK_SIZE_MIN]-[COCK_SIZE_MAX])", "Character Preference") as num|null
+ if(new_length)
+ features["cock_length"] = max(min( round(text2num(new_length)), COCK_SIZE_MAX),COCK_SIZE_MIN)
+
+ if("cock_shape")
+ var/new_shape
+ new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in GLOB.cock_shapes_list
+ if(new_shape)
+ features["cock_shape"] = new_shape
+
+ if("balls_color")
+ var/new_ballscolor = input(user, "Testicle Color:", "Character Preference") as color|null
+ if(new_ballscolor)
+ var/temp_hsv = RGBtoHSV(new_ballscolor)
+ if(new_ballscolor == "#000000")
+ features["balls_color"] = pref_species.default_color
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
+ features["balls_color"] = sanitize_hexcolor(new_ballscolor)
+ else
+ user << "Invalid color. Your color is not bright enough."
+
+ if("egg_size")
+ var/new_size
+ var/list/egg_sizes = list(1,2,3)
+ new_size = input(user, "Egg Diameter(inches):", "Egg Size") as null|anything in egg_sizes
+ if(new_size)
+ features["eggsack_egg_size"] = new_size
+
+ if("egg_color")
+ var/new_egg_color = input(user, "Egg Color:", "Character Preference") as color|null
+ if(new_egg_color)
+ var/temp_hsv = RGBtoHSV(new_egg_color)
+ if(ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
+ features["eggsack_egg_color"] = sanitize_hexcolor(new_egg_color)
+ else
+ user << "Invalid color. Your color is not bright enough."
+
+ if("breasts_size")
+ var/new_size
+ new_size = input(user, "Breast Size", "Character Preference") as null|anything in GLOB.breasts_size_list
+ if(new_size)
+ features["breasts_size"] = new_size
+
+ if("breasts_shape")
+ var/new_shape
+ new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in GLOB.breasts_shapes_list
+ if(new_shape)
+ features["breasts_shape"] = new_shape
+
+ if("breasts_color")
+ var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null
+ if(new_breasts_color)
+ var/temp_hsv = RGBtoHSV(new_breasts_color)
+ if(new_breasts_color == "#000000")
+ features["breasts_color"] = pref_species.default_color
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
+ features["breasts_color"] = sanitize_hexcolor(new_breasts_color)
+ else
+ user << "Invalid color. Your color is not bright enough."
+
+ if("vag_shape")
+ var/new_shape
+ new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in GLOB.vagina_shapes_list
+ if(new_shape)
+ features["vag_shape"] = new_shape
+
+ if("vag_color")
+ var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null
+ if(new_vagcolor)
+ var/temp_hsv = RGBtoHSV(new_vagcolor)
+ if(new_vagcolor == "#000000")
+ features["vag_color"] = pref_species.default_color
+ else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3])
+ features["vag_color"] = sanitize_hexcolor(new_vagcolor)
+ else
+ user << "Invalid color. Your color is not bright enough."
+
/datum/preferences/proc/is_loadout_slot_available(slot)
var/list/L
LAZYINITLIST(L)
@@ -34,3 +664,11 @@
else
if(L[slot_to_string(slot)] < DEFAULT_SLOT_AMT)
return TRUE
+
+datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1)
+ ..()
+ character.give_genitals(TRUE)
+ character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially
+ character.canbearoused = arousable
+ if(icon_updates)
+ character.update_genitals()
\ No newline at end of file
diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm
index 4d0f950f7f..f37736b438 100644
--- a/modular_citadel/code/modules/client/preferences_savefile.dm
+++ b/modular_citadel/code/modules/client/preferences_savefile.dm
@@ -1,4 +1,11 @@
/datum/preferences/proc/cit_character_pref_load(savefile/S)
+ //ipcs
+ S["feature_ipc_screen"] >> features["ipc_screen"]
+
+ //Citadel toggles
+ S["cit_toggles"] >> cit_toggles
+
+ features["ipc_screen"] = sanitize_inlist(features["ipc_screen"], GLOB.ipc_screens_list)
//Citadel
features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"]))
if(!features["mcolor2"] || features["mcolor"] == "#000")
@@ -7,6 +14,7 @@
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_toggles = sanitize_integer(toggles, 0, 65535, initial(toggles))
//gear loadout
var/text_to_load
@@ -19,8 +27,10 @@
if(path)
LAZYADD(chosen_gear, path)
gear_points -= initial(path.cost)
-
+
/datum/preferences/proc/cit_character_pref_save(savefile/S)
+ //ipcs
+ WRITE_FILE(S["feature_ipc_screen"], features["ipc_screen"])
//Citadel
WRITE_FILE(S["feature_genitals_use_skintone"], features["genitals_use_skintone"])
WRITE_FILE(S["feature_exhibitionist"], features["exhibitionist"])
@@ -63,6 +73,8 @@
//flavor text
WRITE_FILE(S["feature_flavor_text"], features["flavor_text"])
+ WRITE_FILE(S["cit_toggles"], cit_toggles)
+
//gear loadout
if(islist(chosen_gear))
if(chosen_gear.len)
diff --git a/modular_citadel/code/modules/client/preferences_toggles.dm b/modular_citadel/code/modules/client/preferences_toggles.dm
index a475d65106..7e3a78144e 100644
--- a/modular_citadel/code/modules/client/preferences_toggles.dm
+++ b/modular_citadel/code/modules/client/preferences_toggles.dm
@@ -2,35 +2,35 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggleeatingnoise)()
set name = "Toggle Eating Noises"
set category = "Preferences"
set desc = "Hear Eating noises"
- usr.client.prefs.toggles ^= EATING_NOISES
+ usr.client.prefs.cit_toggles ^= EATING_NOISES
usr.client.prefs.save_preferences()
usr.stop_sound_channel(CHANNEL_PRED)
- to_chat(usr, "You will [(usr.client.prefs.toggles & EATING_NOISES) ? "now" : "no longer"] hear eating noises.")
+ to_chat(usr, "You will [(usr.client.prefs.cit_toggles & EATING_NOISES) ? "now" : "no longer"] hear eating noises.")
/datum/verbs/menu/Settings/Sound/toggleeatingnoise/Get_checked(client/C)
- return !(C.prefs.toggles & EATING_NOISES)
+ return C.prefs.cit_toggles & EATING_NOISES
TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, toggledigestionnoise)()
set name = "Toggle Digestion Noises"
set category = "Preferences"
set desc = "Hear digestive noises"
- usr.client.prefs.toggles ^= DIGESTION_NOISES
+ usr.client.prefs.cit_toggles ^= DIGESTION_NOISES
usr.client.prefs.save_preferences()
usr.stop_sound_channel(CHANNEL_DIGEST)
- to_chat(usr, "You will [(usr.client.prefs.toggles & DIGESTION_NOISES) ? "now" : "no longer"] hear digestion noises.")
+ to_chat(usr, "You will [(usr.client.prefs.cit_toggles & DIGESTION_NOISES) ? "now" : "no longer"] hear digestion noises.")
/datum/verbs/menu/Settings/Sound/toggledigestionnoise/Get_checked(client/C)
- return !(C.prefs.toggles & DIGESTION_NOISES)
+ return C.prefs.cit_toggles & DIGESTION_NOISES
TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, togglehoundsleeper)()
set name = "Allow/Deny Hound Sleeper"
set category = "Preferences"
set desc = "Allow MediHound Sleepers"
- usr.client.prefs.toggles ^= MEDIHOUND_SLEEPER
+ usr.client.prefs.cit_toggles ^= MEDIHOUND_SLEEPER
usr.client.prefs.save_preferences()
- if(usr.client.prefs.toggles & MEDIHOUND_SLEEPER)
+ if(usr.client.prefs.cit_toggles & MEDIHOUND_SLEEPER)
to_chat(usr, "You will now allow MediHounds to place you in their sleeper.")
else
to_chat(usr, "You will no longer allow MediHounds to place you in their sleeper.")
- SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle MediHound Sleeper", "[usr.client.prefs.toggles & MEDIHOUND_SLEEPER ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+ SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle MediHound Sleeper", "[usr.client.prefs.cit_toggles & MEDIHOUND_SLEEPER ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/verbs/menu/Settings/Sound/togglehoundsleeper/Get_checked(client/C)
- return C.prefs.toggles & MEDIHOUND_SLEEPER
\ No newline at end of file
+ return C.prefs.cit_toggles & MEDIHOUND_SLEEPER
\ No newline at end of file
diff --git a/modular_citadel/code/modules/clothing/suits/suits.dm b/modular_citadel/code/modules/clothing/suits/suits.dm
index 776da896bd..8c88a7e193 100644
--- a/modular_citadel/code/modules/clothing/suits/suits.dm
+++ b/modular_citadel/code/modules/clothing/suits/suits.dm
@@ -8,6 +8,6 @@
/obj/item/clothing/suit/armor/hos/trenchcoat/cloak
name = "armored trenchcloak"
desc = "A trenchcoat enchanced with a special lightweight kevlar. This one appears to be designed to be draped over one's shoulders rather than worn normally.."
- alternate_worn_icon = 'icons/mob/citadel/suit.dmi'
+ alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi'
icon_state = "hostrench"
item_state = "hostrench"
\ No newline at end of file
diff --git a/modular_citadel/code/modules/clothing/under/turtlenecks.dm b/modular_citadel/code/modules/clothing/under/turtlenecks.dm
index 2f40a08dc3..bcd0fd46e2 100644
--- a/modular_citadel/code/modules/clothing/under/turtlenecks.dm
+++ b/modular_citadel/code/modules/clothing/under/turtlenecks.dm
@@ -43,8 +43,8 @@
item_color = "bb_turtle"
body_parts_covered = CHEST|ARMS
can_adjust = 1
- icon = 'icons/obj/clothing/turtlenecks.dmi'
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
/obj/item/clothing/under/bb_sweater/black
name = "black sweater"
diff --git a/modular_citadel/code/modules/clothing/under/under.dm b/modular_citadel/code/modules/clothing/under/under.dm
index 042273ac6a..2661c5a539 100644
--- a/modular_citadel/code/modules/clothing/under/under.dm
+++ b/modular_citadel/code/modules/clothing/under/under.dm
@@ -8,17 +8,17 @@
/obj/item/clothing/under/rank/security/skirt
name = "security skirt"
desc = "A tactical security skirt for officers complete with Nanotrasen belt buckle."
- icon = 'icons/obj/clothing/cit_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/cit_clothes.dmi'
icon_state = "secskirt"
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
item_state = "r_suit"
item_color = "secskirt"
/obj/item/clothing/under/rank/head_of_security/skirt
name = "head of security's skirt"
desc = "A security skirt decorated for those few with the dedication to achieve the position of Head of Security."
- icon = 'icons/obj/clothing/cit_clothes.dmi'
+ icon = 'modular_citadel/icons/obj/clothing/cit_clothes.dmi'
icon_state = "hosskirt"
- icon_override = 'icons/mob/citadel/uniforms.dmi'
+ icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
item_state = "gy_suit"
item_color = "hosskirt"
\ No newline at end of file
diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm
index 86cb2a4d89..df97cee63b 100644
--- a/modular_citadel/code/modules/mob/cit_emotes.dm
+++ b/modular_citadel/code/modules/mob/cit_emotes.dm
@@ -1,3 +1,103 @@
+/mob
+ var/nextsoundemote = 1
+
//Disables the custom emote blacklist from TG that normally applies to slimes.
/datum/emote/living/custom
- mob_type_blacklist_typecache = list(/mob/living/brain)
\ No newline at end of file
+ mob_type_blacklist_typecache = list(/mob/living/brain)
+
+/datum/emote/living/scream/run_emote(mob/living/user, params) //I can't not port this shit, come on.
+ if(user.nextsoundemote >= world.time || user.stat != CONSCIOUS)
+ return
+ var/sound
+ var/miming = user.mind ? user.mind.miming : 0
+ if(!user.is_muzzled() && !miming)
+ user.nextsoundemote = world.time + 7
+ if(issilicon(user))
+ sound = 'modular_citadel/sound/voice/scream_silicon.ogg'
+ if(iscyborg(user))
+ var/mob/living/silicon/robot/S = user
+ if(S.cell.charge < 20)
+ to_chat(S, "Scream module deactivated. Please recharge.")
+ return
+ S.cell.use(200)
+ if(ismonkey(user))
+ sound = 'modular_citadel/sound/voice/scream_monkey.ogg'
+ if(istype(user, /mob/living/simple_animal/hostile/gorilla))
+ sound = 'sound/creatures/gorilla.ogg'
+ if(ishuman(user))
+ user.adjustOxyLoss(5)
+ sound = pick('modular_citadel/sound/voice/scream_m1.ogg', 'modular_citadel/sound/voice/scream_m2.ogg')
+ if(user.gender == FEMALE)
+ sound = pick('modular_citadel/sound/voice/scream_f1.ogg', 'modular_citadel/sound/voice/scream_f2.ogg')
+ if(is_species(user, /datum/species/android) || is_species(user, /datum/species/synth) || is_species(user, /datum/species/ipc))
+ sound = 'modular_citadel/sound/voice/scream_silicon.ogg'
+ if(is_species(user, /datum/species/lizard))
+ sound = 'modular_citadel/sound/voice/scream_lizard.ogg'
+ if(is_species(user, /datum/species/skeleton))
+ sound = 'modular_citadel/sound/voice/scream_skeleton.ogg'
+ if (is_species(user, /datum/species/fly) || is_species(user, /datum/species/insect))
+ sound = 'modular_citadel/sound/voice/scream_moth.ogg'
+ if(isalien(user))
+ sound = 'sound/voice/hiss6.ogg'
+ LAZYINITLIST(user.alternate_screams)
+ if(LAZYLEN(user.alternate_screams))
+ sound = pick(user.alternate_screams)
+ playsound(user.loc, sound, 50, 1, 4, 1.2)
+ message = "screams!"
+ else if(miming)
+ message = "acts out a scream."
+ else
+ message = "makes a very loud noise."
+ . = ..()
+
+/datum/emote/sound/carbon/snap
+ key = "snap"
+ key_third_person = "snaps"
+ muzzle_ignore = TRUE
+ restraint_check = TRUE
+ emote_type = EMOTE_AUDIBLE
+ sound = 'sound/effects/snap01.ogg'
+ mob_type_allowed_typecache = list(/mob/living/carbon/)
+
+
+/datum/emote/living/snap
+ key = "snap"
+ key_third_person = "snaps"
+ message = "snaps their fingers."
+ emote_type = EMOTE_AUDIBLE
+
+/datum/emote/living/snap/run_emote(mob/living/user, params)
+ if(ishuman(user))
+ if(user.nextsoundemote >= world.time)
+ return
+ user.nextsoundemote = world.time + 7
+ playsound(user, 'modular_citadel/sound/voice/snap.ogg', 50, 1, -1)
+ . = ..()
+
+/datum/emote/living/snap2
+ key = "snap2"
+ key_third_person = "snaps twice"
+ message = "snaps twice."
+ emote_type = EMOTE_AUDIBLE
+
+/datum/emote/living/snap2/run_emote(mob/living/user, params)
+ if(ishuman(user))
+ if(user.nextsoundemote >= world.time)
+ return
+ user.nextsoundemote = world.time + 7
+ playsound(user, 'modular_citadel/sound/voice/snap2.ogg', 50, 1, -1)
+ . = ..()
+
+/datum/emote/living/snap3
+ key = "snap3"
+ key_third_person = "snaps thrice"
+ message = "snaps thrice."
+ emote_type = EMOTE_AUDIBLE
+
+/datum/emote/living/snap3/run_emote(mob/living/user, params)
+ if(ishuman(user))
+ if(user.nextsoundemote >= world.time)
+ return
+ user.nextsoundemote = world.time + 7
+ playsound(user, 'modular_citadel/sound/voice/snap3.ogg', 50, 1, -1)
+ . = ..()
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm
similarity index 75%
rename from code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm
rename to modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm
index d70116cc82..1b1e2c81e5 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories_Citadel.dm
+++ b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm
@@ -1,16 +1,16 @@
/datum/sprite_accessory
var/extra = FALSE
- var/extra_icon = 'icons/mob/mam_bodyparts.dmi'
+ var/extra_icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
var/extra_color_src = MUTCOLORS2 //The color source for the extra overlay.
var/extra2 = FALSE
- var/extra2_icon = 'icons/mob/mam_bodyparts.dmi'
+ var/extra2_icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
var/extra2_color_src = MUTCOLORS3
var/list/ckeys_allowed
/* tbi eventually idk
/datum/sprite_accessory/legs/digitigrade_mam
name = "Anthro Digitigrade Legs"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
*/
/datum/sprite_accessory/moth_wings/none
@@ -37,128 +37,128 @@
name = "Red Panda"
icon_state = "ailurus"
color_src = 0
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/human/bear
name = "Bear"
icon_state = "bear"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/bear
name = "Bear"
icon_state = "bear"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/bear
name = "Bear"
icon_state = "bear"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/catbig
name = "Cat, Big"
icon_state = "catbig"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/catbig
name = "Cat, Big"
icon_state = "catbig"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/human/cow
name = "Cow"
icon_state = "cow"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
gender_specific = 1
/datum/sprite_accessory/tails/human/cow
name = "Cow"
icon_state = "cow"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/cow
name = "Cow"
icon_state = "cow"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/eevee
name = "Eevee"
icon_state = "eevee"
extra = TRUE
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/human/eevee
name = "Eevee"
icon_state = "eevee"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/eevee
name = "Eevee"
icon_state = "eevee"
extra = TRUE
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
//datum/sprite_accessory/ears/elf
// name = "Elf"
// icon_state = "elf"
-// icon = 'icons/mob/mam_bodyparts.dmi'
+// icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
// ckeys_allowed = list("atiefling")
/datum/sprite_accessory/ears/fennec
name = "Fennec"
icon_state = "fennec"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
hasinner = 1
/datum/sprite_accessory/tails/human/fennec
name = "Fennec"
icon_state = "fennec"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/fennec
name = "Fennec"
icon_state = "fennec"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/fox
name = "Fox"
icon_state = "fox"
hasinner = 1
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/fox
name = "Fox"
icon_state = "fox"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/tails_animated/human/fox
name = "Fox"
icon_state = "fox"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/tails/human/horse
name = "Horse"
icon_state = "horse"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
color_src = HAIR
/datum/sprite_accessory/tails_animated/human/horse
name = "Horse"
icon_state = "horse"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
color_src = HAIR
/datum/sprite_accessory/tails/human/husky
name = "Husky"
icon_state = "husky"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/tails_animated/human/husky
name = "Husky"
icon_state = "husky"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/tails/human/kitsune
@@ -166,92 +166,92 @@
icon_state = "kitsune"
extra = TRUE
extra_color_src = MUTCOLORS2
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/kitsune
name = "Kitsune"
icon_state = "kitsune"
extra = TRUE
extra_color_src = MUTCOLORS2
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/lab
name = "Dog, Floppy"
icon_state = "lab"
hasinner = 0
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/murid
name = "Murid"
icon_state = "murid"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/murid
name = "Murid"
icon_state = "murid"
color_src = 0
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/murid
name = "Murid"
icon_state = "murid"
color_src = 0
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/human/otie
name = "Otusian"
icon_state = "otie"
hasinner= 1
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/otie
name = "Otusian"
icon_state = "otie"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/otie
name = "Otusian"
icon_state = "otie"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/human/rabbit
name = "Rabbit"
icon_state = "rabbit"
hasinner= 1
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/rabbit
name = "Rabbit"
icon_state = "rabbit"
color_src = 0
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/rabbit
name = "Rabbit"
icon_state = "rabbit"
color_src = 0
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/human/sergal
name = "Sergal"
icon_state = "sergal"
hasinner= 1
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/sergal
name = "Sergal"
icon_state = "sergal"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/sergal
name = "Sergal"
icon_state = "sergal"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/human/skunk
name = "skunk"
icon_state = "skunk"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/skunk
name = "skunk"
@@ -267,62 +267,62 @@
name = "Shark"
icon_state = "shark"
color_src = MUTCOLORS
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/shark/datashark
name = "datashark"
icon_state = "datashark"
color_src = 0
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/squirrel
name = "Squirrel"
icon_state = "squirrel"
hasinner= 1
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/squirrel
name = "Squirrel"
icon_state = "squirrel"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/squirrel
name = "Squirrel"
icon_state = "squirrel"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/ears/wolf
name = "Wolf"
icon_state = "wolf"
hasinner = 1
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails/human/wolf
name = "Wolf"
icon_state = "wolf"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/tails_animated/human/wolf
name = "Wolf"
icon_state = "wolf"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/******************************************
*************** Body Parts ****************
*******************************************/
/datum/sprite_accessory/mam_ears
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/mam_ears/none
name = "None"
/datum/sprite_accessory/mam_tails
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/mam_tails/none
name = "None"
/datum/sprite_accessory/mam_tails_animated
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/mam_tails_animated/none
name = "None"
@@ -334,48 +334,48 @@
/datum/sprite_accessory/snouts/none
name = "None"
icon_state = "none"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
/datum/sprite_accessory/snouts/bird
name = "Beak"
icon_state = "bird"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
color_src = MUTCOLORS3
/datum/sprite_accessory/snouts/lcanid
name = "Fox, Long"
icon_state = "lcanid"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/snouts/scanid
name = "Fox, Short"
icon_state = "scanid"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/snouts/wolf
name = "Wolf"
icon_state = "wolf"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/snouts/husky
name = "Husky"
icon_state = "husky"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/snouts/otie
name = "Otie"
icon_state = "otie"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/snouts/sergal
name = "Sergal"
icon_state = "sergal"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
color_src = MUTCOLORS2
/******************************************
@@ -497,7 +497,7 @@
/datum/sprite_accessory/mam_ears/husky
name = "Husky"
icon_state = "wolf"
- icon = 'icons/mob/mam_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mam_bodyparts.dmi'
extra = TRUE
/datum/sprite_accessory/mam_tails/husky
@@ -564,19 +564,19 @@
icon_state = "cat"
hasinner = 1
color_src = HAIR
- icon = 'icons/mob/mutant_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/mam_tails/neko
name = "Neko"
icon_state = "cat"
color_src = HAIR
- icon = 'icons/mob/mutant_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/mam_tails_animated/neko
name = "Neko"
icon_state = "cat"
color_src = HAIR
- icon = 'icons/mob/mutant_bodyparts.dmi'
+ icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/mam_ears/otie
name = "Otusian"
@@ -688,7 +688,7 @@
/datum/sprite_accessory/mam_body_markings
extra = TRUE
extra2 = TRUE
- icon = 'icons/mob/mam_body_markings.dmi'
+ icon = 'modular_citadel/icons/mob/mam_body_markings.dmi'
/datum/sprite_accessory/mam_body_markings/none
name = "None"
@@ -802,10 +802,10 @@
************ Taur Bodies ******************
*******************************************/
/datum/sprite_accessory/taur
- icon = 'icons/mob/mam_taur.dmi'
- extra_icon = 'icons/mob/mam_taur.dmi'
+ icon = 'modular_citadel/icons/mob/mam_taur.dmi'
+ extra_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra = TRUE
- extra2_icon = 'icons/mob/mam_taur.dmi'
+ extra2_icon = 'modular_citadel/icons/mob/mam_taur.dmi'
extra2 = TRUE
center = TRUE
dimension_x = 64
@@ -876,29 +876,23 @@
//Xeno Dorsal Tubes
/datum/sprite_accessory/xeno_dorsal
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
-
-/datum/sprite_accessory/xeno_dorsal/none
- name = "None"
+ icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi'
/datum/sprite_accessory/xeno_dorsal/standard
name = "Standard"
icon_state = "standard"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
/datum/sprite_accessory/xeno_dorsal/royal
name = "Royal"
icon_state = "royal"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
/datum/sprite_accessory/xeno_dorsal/down
name = "Dorsal Down"
icon_state = "down"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
//Xeno Tail
/datum/sprite_accessory/xeno_tail
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
+ icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi'
/datum/sprite_accessory/xeno_tail/none
name = "None"
@@ -906,35 +900,149 @@
/datum/sprite_accessory/xeno_tail/standard
name = "Xenomorph Tail"
icon_state = "xeno"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
//Xeno Caste Heads
/datum/sprite_accessory/xeno_head
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
-
-/datum/sprite_accessory/xeno_head/none
- name = "None"
+ icon = 'modular_citadel/icons/mob/xeno_parts_greyscale.dmi'
/datum/sprite_accessory/xeno_head/standard
name = "Standard"
icon_state = "standard"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
-
/datum/sprite_accessory/xeno_head/royal
name = "royal"
icon_state = "royal"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
/datum/sprite_accessory/xeno_head/hollywood
name = "hollywood"
icon_state = "hollywood"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
/datum/sprite_accessory/xeno_head/warrior
name = "warrior"
icon_state = "warrior"
- icon = 'icons/mob/xeno_parts_greyscale.dmi'
+
+// IPCs
+/datum/sprite_accessory/screen
+ icon = 'modular_citadel/icons/mob/ipc_screens.dmi'
+ color_src = null
+
+/datum/sprite_accessory/screen/blank
+ name = "Blank"
+ icon_state = "blank"
+
+/datum/sprite_accessory/screen/pink
+ name = "Pink"
+ icon_state = "pink"
+
+/datum/sprite_accessory/screen/green
+ name = "Green"
+ icon_state = "green"
+
+/datum/sprite_accessory/screen/red
+ name = "Red"
+ icon_state = "red"
+
+/datum/sprite_accessory/screen/blue
+ name = "Blue"
+ icon_state = "blue"
+
+/datum/sprite_accessory/screen/yellow
+ name = "Yellow"
+ icon_state = "yellow"
+
+/datum/sprite_accessory/screen/shower
+ name = "Shower"
+ icon_state = "shower"
+
+/datum/sprite_accessory/screen/nature
+ name = "Nature"
+ icon_state = "nature"
+
+/datum/sprite_accessory/screen/eight
+ name = "Eight"
+ icon_state = "eight"
+
+/datum/sprite_accessory/screen/goggles
+ name = "Goggles"
+ icon_state = "goggles"
+
+/datum/sprite_accessory/screen/heart
+ name = "Heart"
+ icon_state = "heart"
+
+/datum/sprite_accessory/screen/monoeye
+ name = "Mono eye"
+ icon_state = "monoeye"
+
+/datum/sprite_accessory/screen/breakout
+ name = "Breakout"
+ icon_state = "breakout"
+
+/datum/sprite_accessory/screen/purple
+ name = "Purple"
+ icon_state = "purple"
+
+/datum/sprite_accessory/screen/scroll
+ name = "Scroll"
+ icon_state = "scroll"
+
+/datum/sprite_accessory/screen/console
+ name = "Console"
+ icon_state = "console"
+
+/datum/sprite_accessory/screen/rgb
+ name = "RGB"
+ icon_state = "rgb"
+
+/datum/sprite_accessory/screen/golglider
+ name = "Gol Glider"
+ icon_state = "golglider"
+
+/datum/sprite_accessory/screen/rainbow
+ name = "Rainbow"
+ icon_state = "rainbow"
+
+/datum/sprite_accessory/screen/sunburst
+ name = "Sunburst"
+ icon_state = "sunburst"
+
+/datum/sprite_accessory/screen/static
+ name = "Static"
+ icon_state = "static"
+
+//Oracle Station sprites
+
+/datum/sprite_accessory/screen/bsod
+ name = "BSOD"
+ icon_state = "bsod"
+
+/datum/sprite_accessory/screen/redtext
+ name = "Red Text"
+ icon_state = "retext"
+
+/datum/sprite_accessory/screen/sinewave
+ name = "Sine wave"
+ icon_state = "sinewave"
+
+/datum/sprite_accessory/screen/squarewave
+ name = "Square wave"
+ icon_state = "squarwave"
+
+/datum/sprite_accessory/screen/ecgwave
+ name = "ECG wave"
+ icon_state = "ecgwave"
+
+/datum/sprite_accessory/screen/eyes
+ name = "Eyes"
+ icon_state = "eyes"
+
+/datum/sprite_accessory/screen/textdrop
+ name = "Text drop"
+ icon_state = "textdrop"
+
+/datum/sprite_accessory/screen/stars
+ name = "Stars"
+ icon_state = "stars"
// *** Snooooow flaaaaake ***
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human.dm b/modular_citadel/code/modules/mob/living/carbon/human/human.dm
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species.dm b/modular_citadel/code/modules/mob/living/carbon/human/species.dm
index 007194e9f1..d3ac99d61c 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/species.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/species.dm
@@ -55,3 +55,41 @@
playsound(target, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
target.visible_message("[user] attempted to push [target]!", \
"[user] attemped to push [target]!", null, COMBAT_MESSAGE_RANGE)
+
+////////////////////
+/////BODYPARTS/////
+////////////////////
+
+
+/obj/item/bodypart/var/should_draw_citadel = FALSE
+
+/mob/living/carbon/proc/draw_citadel_parts(undo = FALSE)
+ if(!undo)
+ for(var/O in bodyparts)
+ var/obj/item/bodypart/B = O
+ B.should_draw_citadel = TRUE
+ else
+ for(var/O in bodyparts)
+ var/obj/item/bodypart/B = O
+ B.should_draw_citadel = FALSE
+
+/datum/species/proc/citadel_mutant_bodyparts(bodypart, mob/living/carbon/human/H)
+ switch(bodypart)
+ if("ipc_screen")
+ return GLOB.ipc_screens_list[H.dna.features["ipc_screen"]]
+ if("mam_tail")
+ return GLOB.mam_tails_list[H.dna.features["mam_tail"]]
+ if("mam_waggingtail")
+ return GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]]
+ if("mam_body_markings")
+ return GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
+ if("mam_ears")
+ return GLOB.mam_ears_list[H.dna.features["mam_ears"]]
+ if("taur")
+ return GLOB.taur_list[H.dna.features["taur"]]
+ if("xenodorsal")
+ return GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]]
+ if("xenohead")
+ return GLOB.xeno_head_list[H.dna.features["xenohead"]]
+ if("xenotail")
+ return GLOB.xeno_tail_list[H.dna.features["xenotail"]]
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm
similarity index 56%
rename from code/modules/mob/living/carbon/human/species_types/furrypeople.dm
rename to modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm
index da56a69040..68780d0890 100644
--- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm
@@ -4,10 +4,11 @@
default_color = "4B4B4B"
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,SPECIES_ORGANIC)
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout", "taur")
- default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "None", "taur" = "None")
+ default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "husky", "mam_tail" = "husky", "mam_ears" = "husky", "mam_body_markings" = "husky", "taur" = "None")
attack_verb = "claw"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
+ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/mammal
liked_food = MEAT | FRIED
disliked_food = TOXIC
@@ -18,6 +19,13 @@
/datum/species/mammal/qualifies_for_rank(rank, list/features)
return TRUE
+/datum/species/mammal/on_species_gain(mob/living/carbon/human/C)
+ C.draw_citadel_parts()
+ . = ..()
+
+/datum/species/mammal/on_species_loss(mob/living/carbon/human/C)
+ C.draw_citadel_parts(TRUE)
+ . = ..()
//AVIAN//
/datum/species/avian
name = "Avian"
@@ -40,6 +48,14 @@
/datum/species/avian/qualifies_for_rank(rank, list/features)
return TRUE
+/datum/species/avian/on_species_gain(mob/living/carbon/human/C)
+ C.draw_citadel_parts()
+ . = ..()
+
+/datum/species/avian/on_species_loss(mob/living/carbon/human/C)
+ C.draw_citadel_parts(TRUE)
+ . = ..()
+
//AQUATIC//
/datum/species/aquatic
name = "Aquatic"
@@ -62,6 +78,14 @@
/datum/species/aquatic/qualifies_for_rank(rank, list/features)
return TRUE
+/datum/species/aquatic/on_species_gain(mob/living/carbon/human/C)
+ C.draw_citadel_parts()
+ . = ..()
+
+/datum/species/aquatic/on_species_loss(mob/living/carbon/human/C)
+ C.draw_citadel_parts(TRUE)
+ . = ..()
+
//INSECT//
/datum/species/insect
name = "Insect"
@@ -83,6 +107,14 @@
/datum/species/insect/qualifies_for_rank(rank, list/features)
return TRUE
+/datum/species/insect/on_species_gain(mob/living/carbon/human/C)
+ C.draw_citadel_parts()
+ . = ..()
+
+/datum/species/insect/on_species_loss(mob/living/carbon/human/C)
+ C.draw_citadel_parts(TRUE)
+ . = ..()
+
//Alien//
/datum/species/xeno
// A cloning mistake, crossing human and xenomorph DNA
@@ -102,6 +134,14 @@
damage_overlay_type = "xeno"
liked_food = MEAT
+/datum/species/xeno/on_species_gain(mob/living/carbon/human/C)
+ C.draw_citadel_parts()
+ . = ..()
+
+/datum/species/xeno/on_species_loss(mob/living/carbon/human/C)
+ C.draw_citadel_parts(TRUE)
+ . = ..()
+
//Praise the Omnissiah, A challange worthy of my skills - HS
//EXOTIC//
@@ -161,117 +201,6 @@
acidpwr = 12 */
-//##########SLIMEPEOPLE##########
-
-/datum/species/jelly/roundstartslime
- name = "Slimeperson"
- id = "slimeperson"
- default_color = "00FFFF"
- species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
- inherent_traits = list(TRAIT_TOXINLOVER)
- mutant_bodyparts = list("mam_tail", "mam_ears", "taur")
- default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None")
- say_mod = "says"
- hair_color = "mutcolor"
- hair_alpha = 180
- liked_food = MEAT
- coldmod = 3
- heatmod = 1
- burnmod = 1
-
-/datum/action/innate/slime_change
- name = "Alter Form"
- check_flags = AB_CHECK_CONSCIOUS
- button_icon_state = "alter_form" //placeholder
- icon_icon = 'icons/mob/actions/actions_slime.dmi'
- background_icon_state = "bg_alien"
-
-/datum/action/innate/slime_change/Activate()
- var/mob/living/carbon/human/H = owner
- if(!isjellyperson(H))
- return
- else
- H.visible_message("[owner] gains a look of \
- concentration while standing perfectly still.\
- Their body seems to shift and starts getting more goo-like.",
- "You focus intently on altering your body while \
- standing perfectly still...")
- change_form()
-
-/datum/action/innate/slime_change/proc/change_form()
- var/mob/living/carbon/human/H = owner
- var/select_alteration = input(owner, "Select what part of your form to alter", "Form Alteration", "cancel") in list("Hair Style", "Genitals", "Tail", "Ears", "Taur body", "Cancel")
- if(select_alteration == "Hair Style")
- if(H.gender == MALE)
- var/new_style = input(owner, "Select a facial hair style", "Hair Alterations") as null|anything in GLOB.facial_hair_styles_list
- if(new_style)
- H.facial_hair_style = new_style
- else
- H.facial_hair_style = "Shaved"
- //handle normal hair
- var/new_style = input(owner, "Select a hair style", "Hair Alterations") as null|anything in GLOB.hair_styles_list
- if(new_style)
- H.hair_style = new_style
- H.update_hair()
- else if (select_alteration == "Genitals")
- var/list/organs = list()
- var/operation = input("Select organ operation.", "Organ Manipulation", "cancel") in list("add sexual organ", "remove sexual organ", "cancel")
- switch(operation)
- if("add sexual organ")
- var/new_organ = input("Select sexual organ:", "Organ Manipulation") in list("Penis", "Testicles", "Breasts", "Vagina", "Womb", "Cancel")
- if(new_organ == "Penis")
- H.give_penis()
- else if(new_organ == "Testicles")
- H.give_balls()
- else if(new_organ == "Breasts")
- H.give_breasts()
- else if(new_organ == "Vagina")
- H.give_vagina()
- else if(new_organ == "Womb")
- H.give_womb()
- else
- return
- if("remove sexual organ")
- for(var/obj/item/organ/genital/X in H.internal_organs)
- var/obj/item/organ/I = X
- organs["[I.name] ([I.type])"] = I
- var/obj/item/organ = input("Select sexual organ:", "Organ Manipulation", null) in organs
- organ = organs[organ]
- if(!organ)
- return
- var/obj/item/organ/genital/O
- if(isorgan(organ))
- O = organ
- O.Remove(H)
- organ.forceMove(get_turf(H))
- qdel(organ)
- H.update_body()
- else if (select_alteration == "Ears")
- var/new_ears
- new_ears = input(owner, "Choose your character's ears:", "Ear Alteration") as null|anything in GLOB.mam_ears_list
- if(new_ears)
- H.dna.features["mam_ears"] = new_ears
- H.update_body()
- else if (select_alteration == "Tail")
- var/new_tail
- new_tail = input(owner, "Choose your character's tail:", "Tail Alteration") as null|anything in GLOB.mam_tails_list
- if(new_tail)
- H.dna.features["mam_tail"] = new_tail
- if(new_tail != "None")
- H.dna.features["taur"] = "None"
- H.update_body()
- else if (select_alteration == "Taur body")
- var/new_taur
- new_taur = input(owner, "Choose your character's tauric body:", "Taur Body Alteration") as null|anything in GLOB.taur_list
- if(new_taur)
- H.dna.features["taur"] = new_taur
- if(new_taur != "None")
- H.dna.features["mam_tail"] = "None"
- H.dna.features["xenotail"] = "None"
- H.update_body()
- else
- return
-
//misc
/mob/living/carbon/human/dummy
no_vore = TRUE
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm
new file mode 100644
index 0000000000..22e9f12115
--- /dev/null
+++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm
@@ -0,0 +1,43 @@
+/datum/species/ipc
+ name = "IPC"
+ id = "ipc"
+ say_mod = "beeps"
+ default_color = "00FF00"
+ blacklisted = 0
+ sexes = 0
+ species_traits = list(MUTCOLORS,NOEYES)
+ mutant_bodyparts = list("ipc_screen")
+ default_features = list("ipc_screen" = "Blank")
+ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc
+
+ var/datum/action/innate/monitor_change/screen
+
+/datum/species/ipc/on_species_gain(mob/living/carbon/human/C)
+ C.draw_citadel_parts()
+ if(isipcperson(C) && !screen)
+ screen = new
+ screen.Grant(C)
+ ..()
+
+/datum/species/ipc/on_species_loss(mob/living/carbon/human/C)
+ C.draw_citadel_parts(TRUE)
+ if(screen)
+ screen.Remove(C)
+ ..()
+
+/datum/species/ipc/get_spans()
+ return SPAN_ROBOT
+
+/datum/action/innate/monitor_change
+ name = "Screen Change"
+ check_flags = AB_CHECK_CONSCIOUS
+ icon_icon = 'icons/mob/actions/actions_silicon.dmi'
+ button_icon_state = "drone_vision"
+
+/datum/action/innate/monitor_change/Activate()
+ var/mob/living/carbon/human/H = owner
+ var/new_ipc_screen = input(usr, "Choose your character's screen:", "Monitor Display") as null|anything in GLOB.ipc_screens_list
+ if(!new_ipc_screen)
+ return
+ H.dna.features["ipc_screen"] = new_ipc_screen
+ H.update_body()
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 5e3f58e26c..03a7cbc0a7 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -1,2 +1,113 @@
/datum/species/jelly/slime
name = "Xenobiological Slimeperson"
+
+//##########SLIMEPEOPLE##########
+
+/datum/species/jelly/roundstartslime
+ name = "Slimeperson"
+ id = "slimeperson"
+ default_color = "00FFFF"
+ species_traits = list(SPECIES_ORGANIC,MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
+ inherent_traits = list(TRAIT_TOXINLOVER)
+ mutant_bodyparts = list("mam_tail", "mam_ears", "taur")
+ default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None")
+ say_mod = "says"
+ hair_color = "mutcolor"
+ hair_alpha = 180
+ liked_food = MEAT
+ coldmod = 3
+ heatmod = 1
+ burnmod = 1
+
+/datum/action/innate/slime_change
+ name = "Alter Form"
+ check_flags = AB_CHECK_CONSCIOUS
+ button_icon_state = "alter_form" //placeholder
+ icon_icon = 'icons/mob/actions/actions_slime.dmi'
+ background_icon_state = "bg_alien"
+
+/datum/action/innate/slime_change/Activate()
+ var/mob/living/carbon/human/H = owner
+ if(!isjellyperson(H))
+ return
+ else
+ H.visible_message("[owner] gains a look of \
+ concentration while standing perfectly still.\
+ Their body seems to shift and starts getting more goo-like.",
+ "You focus intently on altering your body while \
+ standing perfectly still...")
+ change_form()
+
+/datum/action/innate/slime_change/proc/change_form()
+ var/mob/living/carbon/human/H = owner
+ var/select_alteration = input(owner, "Select what part of your form to alter", "Form Alteration", "cancel") in list("Hair Style", "Genitals", "Tail", "Ears", "Taur body", "Cancel")
+ if(select_alteration == "Hair Style")
+ if(H.gender == MALE)
+ var/new_style = input(owner, "Select a facial hair style", "Hair Alterations") as null|anything in GLOB.facial_hair_styles_list
+ if(new_style)
+ H.facial_hair_style = new_style
+ else
+ H.facial_hair_style = "Shaved"
+ //handle normal hair
+ var/new_style = input(owner, "Select a hair style", "Hair Alterations") as null|anything in GLOB.hair_styles_list
+ if(new_style)
+ H.hair_style = new_style
+ H.update_hair()
+ else if (select_alteration == "Genitals")
+ var/list/organs = list()
+ var/operation = input("Select organ operation.", "Organ Manipulation", "cancel") in list("add sexual organ", "remove sexual organ", "cancel")
+ switch(operation)
+ if("add sexual organ")
+ var/new_organ = input("Select sexual organ:", "Organ Manipulation") in list("Penis", "Testicles", "Breasts", "Vagina", "Womb", "Cancel")
+ if(new_organ == "Penis")
+ H.give_penis()
+ else if(new_organ == "Testicles")
+ H.give_balls()
+ else if(new_organ == "Breasts")
+ H.give_breasts()
+ else if(new_organ == "Vagina")
+ H.give_vagina()
+ else if(new_organ == "Womb")
+ H.give_womb()
+ else
+ return
+ if("remove sexual organ")
+ for(var/obj/item/organ/genital/X in H.internal_organs)
+ var/obj/item/organ/I = X
+ organs["[I.name] ([I.type])"] = I
+ var/obj/item/organ = input("Select sexual organ:", "Organ Manipulation", null) in organs
+ organ = organs[organ]
+ if(!organ)
+ return
+ var/obj/item/organ/genital/O
+ if(isorgan(organ))
+ O = organ
+ O.Remove(H)
+ organ.forceMove(get_turf(H))
+ qdel(organ)
+ H.update_body()
+ else if (select_alteration == "Ears")
+ var/new_ears
+ new_ears = input(owner, "Choose your character's ears:", "Ear Alteration") as null|anything in GLOB.mam_ears_list
+ if(new_ears)
+ H.dna.features["mam_ears"] = new_ears
+ H.update_body()
+ else if (select_alteration == "Tail")
+ var/new_tail
+ new_tail = input(owner, "Choose your character's tail:", "Tail Alteration") as null|anything in GLOB.mam_tails_list
+ if(new_tail)
+ H.dna.features["mam_tail"] = new_tail
+ if(new_tail != "None")
+ H.dna.features["taur"] = "None"
+ H.update_body()
+ else if (select_alteration == "Taur body")
+ var/new_taur
+ new_taur = input(owner, "Choose your character's tauric body:", "Taur Body Alteration") as null|anything in GLOB.taur_list
+ if(new_taur)
+ H.dna.features["taur"] = new_taur
+ if(new_taur != "None")
+ H.dna.features["mam_tail"] = "None"
+ H.dna.features["xenotail"] = "None"
+ H.update_body()
+ else
+ return
\ No newline at end of file
diff --git a/modular_citadel/code/modules/mob/living/carbon/reindex_screams.dm b/modular_citadel/code/modules/mob/living/carbon/reindex_screams.dm
new file mode 100644
index 0000000000..7f5d625f62
--- /dev/null
+++ b/modular_citadel/code/modules/mob/living/carbon/reindex_screams.dm
@@ -0,0 +1,45 @@
+/mob/living
+ var/list/alternate_screams
+
+/mob/living/carbon/proc/reindex_screams()
+ clear_screams()
+ if(head)
+ add_screams(head.alternate_screams)
+ if(wear_mask)
+ add_screams(wear_mask.alternate_screams)
+ if(back)
+ add_screams(back.alternate_screams)
+
+/mob/living/carbon/human/reindex_screams()
+ ..()
+ //More slots in humans.
+ if(ears)
+ add_screams(ears.alternate_screams)
+ if(wear_suit)
+ add_screams(wear_suit.alternate_screams)
+ if(w_uniform)
+ add_screams(w_uniform.alternate_screams)
+ if(glasses)
+ add_screams(glasses.alternate_screams)
+ if(gloves)
+ add_screams(gloves.alternate_screams)
+ if(shoes)
+ add_screams(shoes.alternate_screams)
+ if(belt)
+ add_screams(belt.alternate_screams)
+ if(s_store)
+ add_screams(s_store.alternate_screams)
+ if(wear_id)
+ add_screams(wear_id.alternate_screams)
+
+//Note that the following two are for /mob/living, while the above two are for /carbon and /human
+/mob/living/proc/add_screams(var/list/screams)
+ LAZYINITLIST(alternate_screams)
+ if(!screams || screams.len == 0)
+ return
+ for(var/S in screams)
+ LAZYADD(alternate_screams, S)
+
+/mob/living/proc/clear_screams()
+ LAZYINITLIST(alternate_screams)
+ LAZYCLEARLIST(alternate_screams)
\ No newline at end of file
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm
index dd7d492575..5766d3ffcb 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -48,7 +48,7 @@
can_be_pushed = FALSE
hat_offset = INFINITY
sleeper_overlay = "ksleeper"
- cyborg_icon_override = 'icons/mob/widerobot.dmi'
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
@@ -79,7 +79,7 @@
can_be_pushed = FALSE
hat_offset = INFINITY
sleeper_overlay = "msleeper"
- cyborg_icon_override = 'icons/mob/widerobot.dmi'
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
@@ -101,7 +101,7 @@
hat_offset = INFINITY
clean_on_move = TRUE
sleeper_overlay = "jsleeper"
- cyborg_icon_override = 'icons/mob/widerobot.dmi'
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
cyborg_pixel_offset = -16
dogborg = TRUE
@@ -161,7 +161,7 @@
cyborg_base_icon = "orepup"
moduleselect_icon = "orepup"
sleeper_overlay = "osleeper"
- cyborg_icon_override = 'icons/mob/widerobot.dmi'
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
cyborg_pixel_offset = -16
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm
index 28dfeb89d6..9ab141e56e 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/flechette.dm
@@ -42,7 +42,7 @@
/obj/item/ammo_box/magazine/flechette
name = "flechette magazine (armor piercing)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "flechettemag"
ammo_type = /obj/item/ammo_casing/caseless/flechetteap
caliber = "flechette"
@@ -58,7 +58,7 @@
/obj/item/gun/ballistic/automatic/flechette
name = "\improper CX Flechette Launcher"
desc = "A flechette launching machine pistol with an unconventional bullpup frame."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "flechettegun"
item_state = "gun"
w_class = WEIGHT_CLASS_NORMAL
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm
index 487d5111fc..4a29dfa3f2 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm
@@ -3,7 +3,7 @@
/obj/item/gun/ballistic/automatic/pistol/antitank
name = "Anti Tank Pistol"
desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate your wrist."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "atp"
item_state = "pistol"
recoil = 4
@@ -36,7 +36,7 @@
/obj/item/gun/ballistic/automatic/pistol/stealth
name = "stealth pistol"
desc = "A unique bullpup pistol with a compact frame. Has an integrated surpressor."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "stealthpistol"
w_class = WEIGHT_CLASS_SMALL
mag_type = /obj/item/ammo_box/magazine/m10mm
@@ -61,7 +61,7 @@
/obj/item/gun/ballistic/automatic/toy/pistol/stealth
name = "foam force stealth pistol"
desc = "A small, easily concealable toy bullpup handgun. Ages 8 and up."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "foamsp"
w_class = WEIGHT_CLASS_SMALL
mag_type = /obj/item/ammo_box/magazine/toy/pistol
@@ -108,7 +108,7 @@ obj/item/projectile/bullet/c10mm/soporific
/obj/item/ammo_box/magazine/m10mm/soporific
name = "pistol magazine (10mm soporific)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "9x19pS"
desc = "A gun magazine. Loaded with rounds which inject the target with a variety of illegal substances to induce sleep in the target."
ammo_type = /obj/item/ammo_casing/c10mm/soporific
@@ -123,7 +123,7 @@ obj/item/projectile/bullet/c10mm/soporific
/obj/item/gun/ballistic/automatic/pistol/modular
name = "modular pistol"
desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "cde"
can_unsuppress = TRUE
obj_flags = UNIQUE_RENAME
@@ -154,7 +154,7 @@ obj/item/projectile/bullet/c10mm/soporific
/////////RAYGUN MEMES/////////
/obj/item/projectile/beam/lasertag/ray //the projectile, compatible with regular laser tag armor
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "ray"
name = "ray bolt"
eyeblur = 0
@@ -166,7 +166,7 @@ obj/item/projectile/bullet/c10mm/soporific
/obj/item/gun/energy/laser/practice/raygun
name = "toy ray gun"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "raygun"
desc = "A toy laser with a classic, retro feel and look. Compatible with existing laser tag systems."
ammo_type = list(/obj/item/ammo_casing/energy/laser/raytag)
@@ -182,7 +182,7 @@ obj/item/projectile/bullet/c10mm/soporific
This model is coated with a special polychromic material. \
Has a small warning on the receiver that boldly states 'WARNING: WILL DETONATE UPON UNAUTHORIZED USE'. \
Uses 9mm bullets loaded into proprietary magazines."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "p37"
w_class = WEIGHT_CLASS_NORMAL
spawnwithmagazine = FALSE
@@ -203,15 +203,15 @@ obj/item/projectile/bullet/c10mm/soporific
///Defining all the colourable bits and displaying them///
/obj/item/gun/ballistic/automatic/pistol/p37/update_icon()
- var/mutable_appearance/frame_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_frame")
- var/mutable_appearance/receiver_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_receiver")
- var/mutable_appearance/body_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_body")
- var/mutable_appearance/barrel_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_barrel")
- var/mutable_appearance/tip_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_tip")
- var/mutable_appearance/grip_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_grip")
- var/mutable_appearance/energy_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_light")
- var/mutable_appearance/arm_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_arm")
- var/mutable_appearance/arm_overlay_e = mutable_appearance('icons/obj/guns/cit_guns.dmi', "p37_arm-e")
+ var/mutable_appearance/frame_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_frame")
+ var/mutable_appearance/receiver_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_receiver")
+ var/mutable_appearance/body_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_body")
+ var/mutable_appearance/barrel_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_barrel")
+ var/mutable_appearance/tip_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_tip")
+ var/mutable_appearance/grip_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_grip")
+ var/mutable_appearance/energy_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_light")
+ var/mutable_appearance/arm_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_arm")
+ var/mutable_appearance/arm_overlay_e = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "p37_arm-e")
if(frame_color)
frame_overlay.color = frame_color
@@ -346,7 +346,7 @@ obj/item/projectile/bullet/c10mm/soporific
/obj/item/ammo_box/magazine/m9mm/p37
name = "\improper P37 magazine (9mm frangible)"
desc = "A gun magazine. Loaded with plastic composite rounds which fragment upon impact to minimize collateral damage."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "11mm" //topkek
ammo_type = /obj/item/ammo_casing/c9mm/frangible
caliber = "9mm"
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
index cd4ec113de..1fbd32e992 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
@@ -3,7 +3,7 @@
/obj/item/gun/ballistic/automatic/x9 //will be adminspawn only so ERT or something can use them
name = "\improper X9 Assault Rifle"
desc = "A rather old design of a cheap, reliable assault rifle made for combat against unknown enemies. Uses 5.56mm ammo."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "x9"
item_state = "arg"
slot_flags = 0
@@ -19,7 +19,7 @@
/obj/item/ammo_box/magazine/toy/x9
name = "foam force X9 magazine"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "toy9magazine"
max_ammo = 30
multiple_sprites = 2
@@ -28,7 +28,7 @@
/obj/item/gun/ballistic/automatic/x9/toy
name = "\improper Foam Force X9"
desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "toy9"
can_suppress = 0
obj_flags = 0
@@ -43,7 +43,7 @@
//////projectiles//////
/obj/item/projectile/bullet/mags
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magjectile"
damage = 15
armour_penetration = 10
@@ -53,7 +53,7 @@
light_color = LIGHT_COLOR_RED
/obj/item/projectile/bullet/nlmags //non-lethal boolets
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magjectile-nl"
damage = 0
knockdown = 0
@@ -70,14 +70,14 @@
/obj/item/ammo_casing/caseless/amags
desc = "A ferromagnetic slug intended to be launched out of a compatible weapon."
caliber = "mags"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/mags
/obj/item/ammo_casing/caseless/anlmags
desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload."
caliber = "mags"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmags
@@ -85,7 +85,7 @@
/obj/item/ammo_box/magazine/mmag/small
name = "magpistol magazine (non-lethal disabler)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "nlmagmag"
ammo_type = /obj/item/ammo_casing/caseless/anlmags
caliber = "mags"
@@ -94,7 +94,7 @@
/obj/item/ammo_box/magazine/mmag/small/lethal
name = "magpistol magazine (lethal)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "smallmagmag"
ammo_type = /obj/item/ammo_casing/caseless/amags
@@ -103,7 +103,7 @@
/obj/item/gun/ballistic/automatic/pistol/mag
name = "magpistol"
desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magpistol"
force = 10
fire_sound = 'sound/weapons/magpistol.ogg'
@@ -160,7 +160,7 @@
/obj/item/projectile/bullet/reusable/foam_dart/mag
name = "magfoam dart"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magjectile-toy"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
light_range = 2
@@ -178,7 +178,7 @@
/obj/item/gun/ballistic/shotgun/toy/mag
name = "foam force magpistol"
desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "toymag"
item_state = "gun"
mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag
@@ -198,7 +198,7 @@
///projectiles///
/obj/item/projectile/bullet/magrifle
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magjectile-large"
damage = 20
armour_penetration = 25
@@ -208,7 +208,7 @@
light_color = LIGHT_COLOR_RED
/obj/item/projectile/bullet/nlmagrifle //non-lethal boolets
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magjectile-large-nl"
damage = 0
knockdown = 0
@@ -224,14 +224,14 @@
/obj/item/ammo_casing/caseless/amagm
desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon."
caliber = "magm"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/magrifle
/obj/item/ammo_casing/caseless/anlmagm
desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload."
caliber = "magm"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmagrifle
@@ -239,7 +239,7 @@
/obj/item/ammo_box/magazine/mmag/
name = "magrifle magazine (non-lethal disabler)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mediummagmag"
ammo_type = /obj/item/ammo_casing/caseless/anlmagm
caliber = "magm"
@@ -248,7 +248,7 @@
/obj/item/ammo_box/magazine/mmag/lethal
name = "magrifle magazine (lethal)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mediummagmag"
ammo_type = /obj/item/ammo_casing/caseless/amagm
max_ammo = 24
@@ -258,7 +258,7 @@
/obj/item/gun/ballistic/automatic/magrifle
name = "\improper Magnetic Rifle"
desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magrifle"
item_state = "arg"
slot_flags = 0
@@ -309,7 +309,7 @@
/obj/item/ammo_box/magazine/toy/foamag
name = "foam force magrifle magazine"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "foamagmag"
max_ammo = 24
multiple_sprites = 2
@@ -346,7 +346,7 @@
///projectiles///
/obj/item/projectile/bullet/mags/hyper
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magjectile"
damage = 10
armour_penetration = 10
@@ -373,7 +373,7 @@
/obj/item/ammo_casing/caseless/ahyper
desc = "A large block of speciallized ferromagnetic material designed to be fired out of the experimental Hyper-Burst Rifle."
caliber = "hypermag"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "hyper-casing-live"
projectile_type = /obj/item/projectile/bullet/mags/hyper
pellets = 12
@@ -388,7 +388,7 @@
/obj/item/ammo_box/magazine/mhyper
name = "hyper-burst rifle magazine"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "hypermag-4"
ammo_type = /obj/item/ammo_casing/caseless/ahyper
caliber = "hypermag"
@@ -409,7 +409,7 @@
/obj/item/gun/ballistic/automatic/hyperburst
name = "\improper Hyper-Burst Rifle"
desc = "An extremely beefed up version of a stolen Nanotrasen weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "hyperburst"
item_state = "arg"
slot_flags = 0
@@ -429,7 +429,7 @@
///toy memes///
/obj/item/projectile/beam/lasertag/mag //the projectile, compatible with regular laser tag armor
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magjectile-toy"
name = "lasertag magbolt"
forcedodge = TRUE //for penetration memes
@@ -450,7 +450,7 @@
name = "toy hyper-burst launcher"
desc = "A toy laser with a unique beam shaping lens that projects harmless bolts capable of going through objects. Compatible with existing laser tag systems."
ammo_type = list(/obj/item/ammo_casing/energy/laser/magtag)
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "toyburst"
clumsy_check = FALSE
obj_flags = 0
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
index a9824c7d33..01ab1c536f 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
@@ -4,7 +4,7 @@
/obj/item/gun/ballistic/automatic/x9 //will be adminspawn only so ERT or something can use them
name = "\improper X9 Assault Rifle"
desc = "A rather old design of a cheap, reliable assault rifle made for combat against unknown enemies. Uses 5.56mm ammo."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "x9"
item_state = "arg"
slot_flags = 0
@@ -20,7 +20,7 @@
/obj/item/ammo_box/magazine/toy/x9
name = "foam force X9 magazine"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "toy9magazine"
max_ammo = 30
multiple_sprites = 2
@@ -29,7 +29,7 @@
/obj/item/gun/ballistic/automatic/x9/toy
name = "\improper Foam Force X9"
desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "toy9"
can_suppress = 0
obj_flags = 0
@@ -84,7 +84,7 @@
/obj/item/ammo_box/magazine/flechette
name = "flechette magazine (armor piercing)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "flechettemag"
ammo_type = /obj/item/ammo_casing/caseless/flechetteap
caliber = "flechette"
@@ -100,7 +100,7 @@
/obj/item/gun/ballistic/automatic/flechette
name = "\improper CX Flechette Launcher"
desc = "A flechette launching machine pistol with an unconventional bullpup frame."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "flechettegun"
item_state = "gun"
w_class = WEIGHT_CLASS_NORMAL
@@ -163,7 +163,7 @@
*//////////////////////////////////////////////////////////////
/obj/item/ammo_box/magazine/toy/AM4B
name = "foam force AM4-B magazine"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "AM4MAG-60"
max_ammo = 60
multiple_sprites = 0
@@ -172,7 +172,7 @@
/obj/item/gun/ballistic/automatic/AM4B
name = "AM4-B"
desc = "A Relic from a bygone age. Nobody quite knows why it's here. Has a polychromic coating."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "AM4"
item_state = "arg"
mag_type = /obj/item/ammo_box/magazine/toy/AM4B
@@ -187,7 +187,7 @@
/obj/item/gun/ballistic/automatic/AM4B/update_icon()
..()
- var/mutable_appearance/body_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "AM4-Body")
+ var/mutable_appearance/body_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "AM4-Body")
if(body_color)
body_overlay.color = body_color
cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other
@@ -212,7 +212,7 @@
/obj/item/ammo_box/magazine/toy/AM4C
name = "foam force AM4-C magazine"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "AM4MAG-32"
max_ammo = 32
multiple_sprites = 0
@@ -221,7 +221,7 @@
/obj/item/gun/ballistic/automatic/AM4C
name = "AM4-C"
desc = "A Relic from a bygone age. This one seems newer, yet less effective."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "AM4C"
item_state = "arg"
mag_type = /obj/item/ammo_box/magazine/toy/AM4C
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.dm
index 5b42f9686a..d16df6b285 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.dm
@@ -2,7 +2,7 @@
/obj/item/projectile/bullet/spinfusor
name ="spinfusor disk"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state= "spinner"
damage = 30
dismemberment = 25
@@ -17,7 +17,7 @@
desc = "A magnetic disk designed specifically for the Stormhammer magnetic cannon. Warning: extremely volatile!"
projectile_type = /obj/item/projectile/bullet/spinfusor
caliber = "spinfusor"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "disk"
throwforce = 15 //still deadly when thrown
throw_speed = 3
@@ -39,7 +39,7 @@
/obj/item/gun/ballistic/automatic/spinfusor
name = "Stormhammer Magnetic Cannon"
desc = "An innovative weapon utilizing mag-lev technology to spin up a magnetic fusor and launch it at extreme velocities."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "spinfusor"
item_state = "spinfusor"
mag_type = /obj/item/ammo_box/magazine/internal/spinfusor
@@ -68,7 +68,7 @@
/obj/item/ammo_box/aspinfusor
name = "ammo box (spinfusor disks)"
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "spinfusorbox"
ammo_type = /obj/item/ammo_casing/caseless/spinfusor
max_ammo = 8
diff --git a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm
index fb488fcca4..0f7db73d6e 100644
--- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -16,10 +16,10 @@
obj/item/gun/energy/e_gun/cx
name = "\improper CX Model D Energy Gun"
desc = "An overpriced hybrid energy gun with two settings: disable, and kill. Manufactured by CX Armories. Has a polychromic coating."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "cxe"
- lefthand_file = 'icons/mob/citadel/guns_lefthand.dmi'
- righthand_file = 'icons/mob/citadel/guns_righthand.dmi'
+ lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
+ righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser)
flight_x_offset = 15
flight_y_offset = 10
@@ -27,7 +27,7 @@ obj/item/gun/energy/e_gun/cx
obj/item/gun/energy/e_gun/cx/update_icon()
..()
- var/mutable_appearance/body_overlay = mutable_appearance('icons/obj/guns/cit_guns.dmi', "cxegun_body")
+ var/mutable_appearance/body_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "cxegun_body")
if(body_color)
body_overlay.color = body_color
add_overlay(body_overlay)
diff --git a/modular_citadel/code/modules/projectiles/guns/energy/laser.dm b/modular_citadel/code/modules/projectiles/guns/energy/laser.dm
index 25ae98e72a..61996a777a 100644
--- a/modular_citadel/code/modules/projectiles/guns/energy/laser.dm
+++ b/modular_citadel/code/modules/projectiles/guns/energy/laser.dm
@@ -21,7 +21,7 @@
/obj/item/gun/energy/laser/carbine
name = "VGS blaster carbine"
desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal blaster carbine."
- icon = 'icons/obj/guns/cit_guns.dmi'
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "lasernew"
item_state = "laser"
force = 10
diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
index 14ded0b7cc..3a59c37618 100644
--- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
@@ -163,7 +163,7 @@
//Sound w/ antispam flag setting
if(!silent && !recent_sound)
for(var/mob/M in get_hearers_in_view(5, get_turf(owner)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(owner),"[src.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
recent_sound = TRUE
@@ -194,7 +194,7 @@
AM.forceMove(destination) // Move the belly contents into the same location as belly's owner.
count++
for(var/mob/M in get_hearers_in_view(5, get_turf(owner)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
items_preserved.Cut()
owner.visible_message("[owner] expels everything from their [lowertext(name)]!")
@@ -215,7 +215,7 @@
P.stop_sound_channel(CHANNEL_PREYLOOP)
if(release_sound)
for(var/mob/H in get_hearers_in_view(5, get_turf(owner)))
- if(H.client && H.client.prefs.toggles & EATING_NOISES)
+ if(H.client && H.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
if(istype(M,/mob/living))
@@ -507,7 +507,7 @@
if(!silent)
for(var/mob/M in get_hearers_in_view(5, get_turf(owner)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(owner),"struggle_sound",35,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED)
R.stop_sound_channel(CHANNEL_PRED)
var/sound/prey_struggle = sound(get_sfx("prey_struggle"))
@@ -584,7 +584,7 @@
target.nom_mob(content, target.owner)
if(!silent)
for(var/mob/M in get_hearers_in_view(5, get_turf(owner)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(owner),"[src.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
owner.updateVRPanel()
for(var/mob/living/M in contents)
diff --git a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
index 3260e2ae99..e2919ad3ec 100644
--- a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
@@ -41,7 +41,7 @@
if(prob(25))
M.stop_sound_channel(CHANNEL_DIGEST)
for(var/mob/H in get_hearers_in_view(5, get_turf(owner)))
- if(H.client && H.client.prefs.toggles & DIGESTION_NOISES)
+ if(H.client && H.client.prefs.cit_toggles & DIGESTION_NOISES)
playsound(get_turf(owner),"digest_pred",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_DIGEST)
M.stop_sound_channel(CHANNEL_DIGEST)
M.playsound_local(get_turf(M), prey_digest, 45)
@@ -72,7 +72,7 @@
owner.nutrition += 400 // so eating dead mobs gives you *something*.
M.stop_sound_channel(DIGESTION_NOISES)
for(var/mob/H in get_hearers_in_view(5, get_turf(owner)))
- if(H.client && H.client.prefs.toggles & DIGESTION_NOISES)
+ if(H.client && H.client.prefs.cit_toggles & DIGESTION_NOISES)
playsound(get_turf(owner),"death_pred",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_DIGEST)
M.stop_sound_channel(DIGESTION_NOISES)
M.stop_sound_channel(CHANNEL_PREYLOOP)
@@ -101,7 +101,7 @@
if(prob(25))
M.stop_sound_channel(CHANNEL_DIGEST)
for(var/mob/H in get_hearers_in_view(5, get_turf(owner)))
- if(H.client && H.client.prefs.toggles & DIGESTION_NOISES)
+ if(H.client && H.client.prefs.cit_toggles & DIGESTION_NOISES)
playsound(get_turf(owner),"digest_pred",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_DIGEST)
M.stop_sound_channel(CHANNEL_DIGEST)
M.playsound_local(get_turf(M), prey_digest, 65)
@@ -120,7 +120,7 @@
if(prob(35))
M.stop_sound_channel(CHANNEL_DIGEST)
for(var/mob/H in get_hearers_in_view(5, get_turf(owner)))
- if(H.client && H.client.prefs.toggles & DIGESTION_NOISES)
+ if(H.client && H.client.prefs.cit_toggles & DIGESTION_NOISES)
playsound(get_turf(owner),"digest_pred",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_DIGEST)
M.stop_sound_channel(CHANNEL_PRED)
M.playsound_local(get_turf(M), prey_digest, 65)
@@ -133,7 +133,7 @@
if(prob(25))
M.stop_sound_channel(CHANNEL_DIGEST)
for(var/mob/H in get_hearers_in_view(5, get_turf(owner)))
- if(H.client && H.client.prefs.toggles & DIGESTION_NOISES)
+ if(H.client && H.client.prefs.cit_toggles & DIGESTION_NOISES)
playsound(get_turf(owner),"digest_pred",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_DIGEST)
M.stop_sound_channel(CHANNEL_DIGEST)
M.playsound_local(get_turf(M), prey_digest, 65)
@@ -161,7 +161,7 @@
M.stop_sound_channel(CHANNEL_DIGEST)
for(var/mob/H in get_hearers_in_view(5, get_turf(owner)))
- if(H.client && H.client.prefs.toggles & DIGESTION_NOISES)
+ if(H.client && H.client.prefs.cit_toggles & DIGESTION_NOISES)
playsound(get_turf(owner),"death_pred",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_DIGEST)
M.stop_sound_channel(CHANNEL_DIGEST)
M.playsound_local(get_turf(M), prey_death, 65)
diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm
index c5428650a9..ea66f824b8 100644
--- a/modular_citadel/code/modules/vore/eating/living_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/living_vr.dm
@@ -195,7 +195,7 @@
// If we got this far, nom successful! Announce it!
user.visible_message(success_msg)
for(var/mob/M in get_hearers_in_view(5, get_turf(user)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(user),"[belly.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
// Actually shove prey into the belly.
diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm
index 7d7a48ed28..a3593278b2 100644
--- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm
@@ -355,7 +355,7 @@
selected.release_all_contents()
for(var/mob/M in get_hearers_in_view(5, get_turf(user)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(user),'sound/vore/pred/escape.ogg',50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
to_chat(user.loc,"Everything is released from [user]!")
@@ -371,7 +371,7 @@
for(var/atom/movable/tgt in selected)
selected.transfer_contents(tgt, choice, 1)
for(var/mob/M in get_hearers_in_view(5, get_turf(user)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(user),'sound/vore/pred/stomachmove.ogg',50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
to_chat(tgt,"You're squished from [user]'s [lowertext(selected)] to their [lowertext(choice.name)]!")
@@ -391,7 +391,7 @@
selected.release_specific_contents(tgt)
for(var/mob/M in get_hearers_in_view(5, get_turf(user)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(user),'sound/vore/pred/escape.ogg',50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
user.loc << "[tgt] is released from [user]!"
@@ -407,7 +407,7 @@
to_chat(tgt,"You're squished from [user]'s [lowertext(selected.name)] to their [lowertext(choice.name)]!")
selected.transfer_contents(tgt, choice)
for(var/mob/M in get_hearers_in_view(5, get_turf(user)))
- if(M.client && M.client.prefs.toggles & EATING_NOISES)
+ if(M.client && M.client.prefs.cit_toggles & EATING_NOISES)
playsound(get_turf(user),'sound/vore/pred/stomachmove.ogg',50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED)
if(href_list["newbelly"])
diff --git a/icons/mob/citadel/glasses.dmi b/modular_citadel/icons/mob/citadel/glasses.dmi
similarity index 100%
rename from icons/mob/citadel/glasses.dmi
rename to modular_citadel/icons/mob/citadel/glasses.dmi
diff --git a/icons/mob/citadel/guns_lefthand.dmi b/modular_citadel/icons/mob/citadel/guns_lefthand.dmi
similarity index 100%
rename from icons/mob/citadel/guns_lefthand.dmi
rename to modular_citadel/icons/mob/citadel/guns_lefthand.dmi
diff --git a/icons/mob/citadel/guns_righthand.dmi b/modular_citadel/icons/mob/citadel/guns_righthand.dmi
similarity index 100%
rename from icons/mob/citadel/guns_righthand.dmi
rename to modular_citadel/icons/mob/citadel/guns_righthand.dmi
diff --git a/icons/mob/citadel/head.dmi b/modular_citadel/icons/mob/citadel/head.dmi
similarity index 100%
rename from icons/mob/citadel/head.dmi
rename to modular_citadel/icons/mob/citadel/head.dmi
diff --git a/icons/mob/citadel/masks.dmi b/modular_citadel/icons/mob/citadel/masks.dmi
similarity index 100%
rename from icons/mob/citadel/masks.dmi
rename to modular_citadel/icons/mob/citadel/masks.dmi
diff --git a/icons/mob/citadel/neck.dmi b/modular_citadel/icons/mob/citadel/neck.dmi
similarity index 100%
rename from icons/mob/citadel/neck.dmi
rename to modular_citadel/icons/mob/citadel/neck.dmi
diff --git a/icons/mob/citadel/shoes.dmi b/modular_citadel/icons/mob/citadel/shoes.dmi
similarity index 100%
rename from icons/mob/citadel/shoes.dmi
rename to modular_citadel/icons/mob/citadel/shoes.dmi
diff --git a/icons/mob/citadel/suit.dmi b/modular_citadel/icons/mob/citadel/suit.dmi
similarity index 100%
rename from icons/mob/citadel/suit.dmi
rename to modular_citadel/icons/mob/citadel/suit.dmi
diff --git a/icons/mob/citadel/uniforms.dmi b/modular_citadel/icons/mob/citadel/uniforms.dmi
similarity index 100%
rename from icons/mob/citadel/uniforms.dmi
rename to modular_citadel/icons/mob/citadel/uniforms.dmi
diff --git a/icons/mob/citadel_refs/borg HUDs.dmi b/modular_citadel/icons/mob/citadel_refs/borg HUDs.dmi
similarity index 100%
rename from icons/mob/citadel_refs/borg HUDs.dmi
rename to modular_citadel/icons/mob/citadel_refs/borg HUDs.dmi
diff --git a/icons/mob/citadel_refs/cit_tail_reference.dmi b/modular_citadel/icons/mob/citadel_refs/cit_tail_reference.dmi
similarity index 100%
rename from icons/mob/citadel_refs/cit_tail_reference.dmi
rename to modular_citadel/icons/mob/citadel_refs/cit_tail_reference.dmi
diff --git a/icons/mob/citadel_refs/cit_wings.dmi b/modular_citadel/icons/mob/citadel_refs/cit_wings.dmi
similarity index 100%
rename from icons/mob/citadel_refs/cit_wings.dmi
rename to modular_citadel/icons/mob/citadel_refs/cit_wings.dmi
diff --git a/icons/mob/citadel_refs/dogborg animations.dmi b/modular_citadel/icons/mob/citadel_refs/dogborg animations.dmi
similarity index 100%
rename from icons/mob/citadel_refs/dogborg animations.dmi
rename to modular_citadel/icons/mob/citadel_refs/dogborg animations.dmi
diff --git a/icons/mob/citadel_refs/furry_parts_greyscale.dmi b/modular_citadel/icons/mob/citadel_refs/furry_parts_greyscale.dmi
similarity index 100%
rename from icons/mob/citadel_refs/furry_parts_greyscale.dmi
rename to modular_citadel/icons/mob/citadel_refs/furry_parts_greyscale.dmi
diff --git a/icons/mob/citadel_refs/furryrace_references.dmi b/modular_citadel/icons/mob/citadel_refs/furryrace_references.dmi
similarity index 100%
rename from icons/mob/citadel_refs/furryrace_references.dmi
rename to modular_citadel/icons/mob/citadel_refs/furryrace_references.dmi
diff --git a/icons/mob/citadel_refs/furrytail_references.dmi b/modular_citadel/icons/mob/citadel_refs/furrytail_references.dmi
similarity index 100%
rename from icons/mob/citadel_refs/furrytail_references.dmi
rename to modular_citadel/icons/mob/citadel_refs/furrytail_references.dmi
diff --git a/icons/mob/citadel_refs/snowflake_parts.dmi b/modular_citadel/icons/mob/citadel_refs/snowflake_parts.dmi
similarity index 100%
rename from icons/mob/citadel_refs/snowflake_parts.dmi
rename to modular_citadel/icons/mob/citadel_refs/snowflake_parts.dmi
diff --git a/icons/mob/citadel_refs/taur_referencesVOREbellies.dmi b/modular_citadel/icons/mob/citadel_refs/taur_referencesVOREbellies.dmi
similarity index 100%
rename from icons/mob/citadel_refs/taur_referencesVOREbellies.dmi
rename to modular_citadel/icons/mob/citadel_refs/taur_referencesVOREbellies.dmi
diff --git a/icons/mob/citadel_refs/widerobot_vr.dmi b/modular_citadel/icons/mob/citadel_refs/widerobot_vr.dmi
similarity index 100%
rename from icons/mob/citadel_refs/widerobot_vr.dmi
rename to modular_citadel/icons/mob/citadel_refs/widerobot_vr.dmi
diff --git a/modular_citadel/icons/mob/ipc_screens.dmi b/modular_citadel/icons/mob/ipc_screens.dmi
new file mode 100644
index 0000000000..c7d44da5a8
Binary files /dev/null and b/modular_citadel/icons/mob/ipc_screens.dmi differ
diff --git a/icons/mob/mam_body_markings.dmi b/modular_citadel/icons/mob/mam_body_markings.dmi
similarity index 100%
rename from icons/mob/mam_body_markings.dmi
rename to modular_citadel/icons/mob/mam_body_markings.dmi
diff --git a/icons/mob/mam_bodyparts.dmi b/modular_citadel/icons/mob/mam_bodyparts.dmi
similarity index 100%
rename from icons/mob/mam_bodyparts.dmi
rename to modular_citadel/icons/mob/mam_bodyparts.dmi
diff --git a/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi
similarity index 100%
rename from icons/mob/mam_taur.dmi
rename to modular_citadel/icons/mob/mam_taur.dmi
diff --git a/modular_citadel/icons/mob/mobs.dmi b/modular_citadel/icons/mob/mobs.dmi
deleted file mode 100644
index cf74d73796..0000000000
Binary files a/modular_citadel/icons/mob/mobs.dmi and /dev/null differ
diff --git a/modular_citadel/icons/mob/mutant_bodyparts.dmi b/modular_citadel/icons/mob/mutant_bodyparts.dmi
new file mode 100644
index 0000000000..741051faa0
Binary files /dev/null and b/modular_citadel/icons/mob/mutant_bodyparts.dmi differ
diff --git a/icons/mob/werenerd.dmi b/modular_citadel/icons/mob/werenerd.dmi
similarity index 100%
rename from icons/mob/werenerd.dmi
rename to modular_citadel/icons/mob/werenerd.dmi
diff --git a/icons/mob/werenerdleap.dmi b/modular_citadel/icons/mob/werenerdleap.dmi
similarity index 100%
rename from icons/mob/werenerdleap.dmi
rename to modular_citadel/icons/mob/werenerdleap.dmi
diff --git a/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi
similarity index 100%
rename from icons/mob/widerobot.dmi
rename to modular_citadel/icons/mob/widerobot.dmi
diff --git a/icons/mob/xeno_parts_greyscale.dmi b/modular_citadel/icons/mob/xeno_parts_greyscale.dmi
similarity index 100%
rename from icons/mob/xeno_parts_greyscale.dmi
rename to modular_citadel/icons/mob/xeno_parts_greyscale.dmi
diff --git a/icons/obj/VGProjectile.dmi b/modular_citadel/icons/obj/VGProjectile.dmi
similarity index 100%
rename from icons/obj/VGProjectile.dmi
rename to modular_citadel/icons/obj/VGProjectile.dmi
diff --git a/icons/obj/clothing/cit_clothes.dmi b/modular_citadel/icons/obj/clothing/cit_clothes.dmi
similarity index 100%
rename from icons/obj/clothing/cit_clothes.dmi
rename to modular_citadel/icons/obj/clothing/cit_clothes.dmi
diff --git a/icons/obj/clothing/cit_hats.dmi b/modular_citadel/icons/obj/clothing/cit_hats.dmi
similarity index 100%
rename from icons/obj/clothing/cit_hats.dmi
rename to modular_citadel/icons/obj/clothing/cit_hats.dmi
diff --git a/modular_citadel/icons/obj/clothing/turtlenecks.dmi b/modular_citadel/icons/obj/clothing/turtlenecks.dmi
index 2c9dae9793..ec37880cd2 100644
Binary files a/modular_citadel/icons/obj/clothing/turtlenecks.dmi and b/modular_citadel/icons/obj/clothing/turtlenecks.dmi differ
diff --git a/icons/obj/clothing/vg_clothes.dmi b/modular_citadel/icons/obj/clothing/vg_clothes.dmi
similarity index 100%
rename from icons/obj/clothing/vg_clothes.dmi
rename to modular_citadel/icons/obj/clothing/vg_clothes.dmi
diff --git a/modular_citadel/icons/obj/food/food.dmi b/modular_citadel/icons/obj/food/food.dmi
new file mode 100644
index 0000000000..ea66b3d48a
Binary files /dev/null and b/modular_citadel/icons/obj/food/food.dmi differ
diff --git a/modular_citadel/icons/obj/foods.dmi b/modular_citadel/icons/obj/foods.dmi
new file mode 100644
index 0000000000..3349da8203
Binary files /dev/null and b/modular_citadel/icons/obj/foods.dmi differ
diff --git a/modular_citadel/icons/obj/genitals/penis_onmob.dmi b/modular_citadel/icons/obj/genitals/penis_onmob.dmi
index bdda4a94d5..733e0a08da 100644
Binary files a/modular_citadel/icons/obj/genitals/penis_onmob.dmi and b/modular_citadel/icons/obj/genitals/penis_onmob.dmi differ
diff --git a/icons/obj/guns/VGguns.dmi b/modular_citadel/icons/obj/guns/VGguns.dmi
similarity index 100%
rename from icons/obj/guns/VGguns.dmi
rename to modular_citadel/icons/obj/guns/VGguns.dmi
diff --git a/icons/obj/guns/cit_guns.dmi b/modular_citadel/icons/obj/guns/cit_guns.dmi
similarity index 100%
rename from icons/obj/guns/cit_guns.dmi
rename to modular_citadel/icons/obj/guns/cit_guns.dmi
diff --git a/modular_citadel/sound/misc/cheekibreeki.ogg b/modular_citadel/sound/misc/cheekibreeki.ogg
new file mode 100644
index 0000000000..7c41bdd7c2
Binary files /dev/null and b/modular_citadel/sound/misc/cheekibreeki.ogg differ
diff --git a/modular_citadel/sound/misc/cyka1.ogg b/modular_citadel/sound/misc/cyka1.ogg
new file mode 100644
index 0000000000..5479cd1818
Binary files /dev/null and b/modular_citadel/sound/misc/cyka1.ogg differ
diff --git a/modular_citadel/sound/voice/scream_cat.ogg b/modular_citadel/sound/voice/scream_cat.ogg
new file mode 100644
index 0000000000..cea4c2f389
Binary files /dev/null and b/modular_citadel/sound/voice/scream_cat.ogg differ
diff --git a/modular_citadel/sound/voice/scream_f1.ogg b/modular_citadel/sound/voice/scream_f1.ogg
new file mode 100644
index 0000000000..2303650148
Binary files /dev/null and b/modular_citadel/sound/voice/scream_f1.ogg differ
diff --git a/modular_citadel/sound/voice/scream_f2.ogg b/modular_citadel/sound/voice/scream_f2.ogg
new file mode 100644
index 0000000000..6c4a1d33ad
Binary files /dev/null and b/modular_citadel/sound/voice/scream_f2.ogg differ
diff --git a/modular_citadel/sound/voice/scream_f3.ogg b/modular_citadel/sound/voice/scream_f3.ogg
new file mode 100644
index 0000000000..d66c602640
Binary files /dev/null and b/modular_citadel/sound/voice/scream_f3.ogg differ
diff --git a/modular_citadel/sound/voice/scream_lizard.ogg b/modular_citadel/sound/voice/scream_lizard.ogg
new file mode 100644
index 0000000000..aec2d56303
Binary files /dev/null and b/modular_citadel/sound/voice/scream_lizard.ogg differ
diff --git a/modular_citadel/sound/voice/scream_m.ogg b/modular_citadel/sound/voice/scream_m.ogg
new file mode 100644
index 0000000000..54a547d20e
Binary files /dev/null and b/modular_citadel/sound/voice/scream_m.ogg differ
diff --git a/modular_citadel/sound/voice/scream_m1.ogg b/modular_citadel/sound/voice/scream_m1.ogg
new file mode 100644
index 0000000000..6c74f52946
Binary files /dev/null and b/modular_citadel/sound/voice/scream_m1.ogg differ
diff --git a/modular_citadel/sound/voice/scream_m2.ogg b/modular_citadel/sound/voice/scream_m2.ogg
new file mode 100644
index 0000000000..72e9933f2f
Binary files /dev/null and b/modular_citadel/sound/voice/scream_m2.ogg differ
diff --git a/modular_citadel/sound/voice/scream_monkey.ogg b/modular_citadel/sound/voice/scream_monkey.ogg
new file mode 100644
index 0000000000..c7e1a966b4
Binary files /dev/null and b/modular_citadel/sound/voice/scream_monkey.ogg differ
diff --git a/modular_citadel/sound/voice/scream_moth.ogg b/modular_citadel/sound/voice/scream_moth.ogg
new file mode 100644
index 0000000000..c94644fc17
Binary files /dev/null and b/modular_citadel/sound/voice/scream_moth.ogg differ
diff --git a/modular_citadel/sound/voice/scream_silicon.ogg b/modular_citadel/sound/voice/scream_silicon.ogg
new file mode 100644
index 0000000000..0b3f47370a
Binary files /dev/null and b/modular_citadel/sound/voice/scream_silicon.ogg differ
diff --git a/modular_citadel/sound/voice/scream_skeleton.ogg b/modular_citadel/sound/voice/scream_skeleton.ogg
new file mode 100644
index 0000000000..6bf2f637e3
Binary files /dev/null and b/modular_citadel/sound/voice/scream_skeleton.ogg differ
diff --git a/modular_citadel/sound/voice/snap.ogg b/modular_citadel/sound/voice/snap.ogg
new file mode 100644
index 0000000000..5e17b9dc24
Binary files /dev/null and b/modular_citadel/sound/voice/snap.ogg differ
diff --git a/modular_citadel/sound/voice/snap2.ogg b/modular_citadel/sound/voice/snap2.ogg
new file mode 100644
index 0000000000..1537084be4
Binary files /dev/null and b/modular_citadel/sound/voice/snap2.ogg differ
diff --git a/modular_citadel/sound/voice/snap3.ogg b/modular_citadel/sound/voice/snap3.ogg
new file mode 100644
index 0000000000..ca7506dc2c
Binary files /dev/null and b/modular_citadel/sound/voice/snap3.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
index a0c0b60e8c..f51fc06b4e 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1773,7 +1773,6 @@
#include "code\modules\mob\dead\new_player\poll.dm"
#include "code\modules\mob\dead\new_player\preferences_setup.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories.dm"
-#include "code\modules\mob\dead\new_player\sprite_accessories_Citadel.dm"
#include "code\modules\mob\dead\observer\login.dm"
#include "code\modules\mob\dead\observer\logout.dm"
#include "code\modules\mob\dead\observer\observer.dm"
@@ -1875,7 +1874,6 @@
#include "code\modules\mob\living\carbon\human\species_types\corporate.dm"
#include "code\modules\mob\living\carbon\human\species_types\dullahan.dm"
#include "code\modules\mob\living\carbon\human\species_types\flypeople.dm"
-#include "code\modules\mob\living\carbon\human\species_types\furrypeople.dm"
#include "code\modules\mob\living\carbon\human\species_types\golems.dm"
#include "code\modules\mob\living\carbon\human\species_types\humans.dm"
#include "code\modules\mob\living\carbon\human\species_types\jellypeople.dm"
@@ -2638,6 +2636,7 @@
#include "modular_citadel\code\game\objects\items\balls.dm"
#include "modular_citadel\code\game\objects\items\handcuffs.dm"
#include "modular_citadel\code\game\objects\items\holy_weapons.dm"
+#include "modular_citadel\code\game\objects\items\meat.dm"
#include "modular_citadel\code\game\objects\items\stunsword.dm"
#include "modular_citadel\code\game\objects\items\circuitboards\machine_circuitboards.dm"
#include "modular_citadel\code\game\objects\items\devices\aicard.dm"
@@ -2700,7 +2699,6 @@
#include "modular_citadel\code\modules\client\loadout\shoes.dm"
#include "modular_citadel\code\modules\client\loadout\suit.dm"
#include "modular_citadel\code\modules\client\loadout\uniform.dm"
-#include "modular_citadel\code\modules\client\loadout\uniform_trek.dm"
#include "modular_citadel\code\modules\client\verbs\who.dm"
#include "modular_citadel\code\modules\clothing\spacesuits\flightsuit.dm"
#include "modular_citadel\code\modules\clothing\suits\suits.dm"
@@ -2731,15 +2729,18 @@
#include "modular_citadel\code\modules\mining\mine_items.dm"
#include "modular_citadel\code\modules\mob\cit_emotes.dm"
#include "modular_citadel\code\modules\mob\mob.dm"
+#include "modular_citadel\code\modules\mob\dead\new_player\sprite_accessories.dm"
#include "modular_citadel\code\modules\mob\living\damage_procs.dm"
#include "modular_citadel\code\modules\mob\living\living.dm"
#include "modular_citadel\code\modules\mob\living\carbon\carbon.dm"
#include "modular_citadel\code\modules\mob\living\carbon\damage_procs.dm"
-#include "modular_citadel\code\modules\mob\living\carbon\human\human.dm"
+#include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm"
#include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm"
#include "modular_citadel\code\modules\mob\living\carbon\human\human_movement.dm"
#include "modular_citadel\code\modules\mob\living\carbon\human\life.dm"
#include "modular_citadel\code\modules\mob\living\carbon\human\species.dm"
+#include "modular_citadel\code\modules\mob\living\carbon\human\species_types\furrypeople.dm"
+#include "modular_citadel\code\modules\mob\living\carbon\human\species_types\ipc.dm"
#include "modular_citadel\code\modules\mob\living\carbon\human\species_types\jellypeople.dm"
#include "modular_citadel\code\modules\mob\living\silicon\robot\dogborg_equipment.dm"
#include "modular_citadel\code\modules\mob\living\silicon\robot\robot.dm"