diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm
index 8d1c01fdfa..83211d7ee6 100644
--- a/code/__HELPERS/_cit_helpers.dm
+++ b/code/__HELPERS/_cit_helpers.dm
@@ -52,6 +52,7 @@ GLOBAL_LIST_EMPTY(xeno_dorsal_list)
//IPC species
GLOBAL_LIST_EMPTY(ipc_screens_list)
+GLOBAL_LIST_EMPTY(ipc_antennas_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 bb00324488..36cf604d3a 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -83,6 +83,8 @@
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(!GLOB.ipc_antennas_list.len)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/antenna, GLOB.ipc_antennas_list)
// if(ishuman(src))
// var/mob/living/carbon/human/H = src
/* if(H.gender == MALE) Fuck if I know how to fix this.
@@ -169,6 +171,7 @@
"womb_efficiency" = CUM_EFFICIENCY,
"womb_fluid" = "femcum",
"ipc_screen" = "Sunburst",
+ "ipc_antenna" = "None",
"flavor_text" = ""))
/proc/random_hair_style(gender)
diff --git a/modular_citadel/code/init.dm b/modular_citadel/code/init.dm
index 21fc1ca867..148bae6215 100644
--- a/modular_citadel/code/init.dm
+++ b/modular_citadel/code/init.dm
@@ -3,7 +3,7 @@
/proc/cit_initialize()
load_mentors()
initialize_global_loadout_items()
-
+
//body parts and things
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
@@ -18,10 +18,11 @@
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/antenna, GLOB.ipc_antennas_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]
GLOB.cock_shapes_icons[K] = value.icon_state
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
- GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
\ No newline at end of file
+ GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm
index 1bc484fb9d..c2dee71a4f 100644
--- a/modular_citadel/code/modules/client/preferences.dm
+++ b/modular_citadel/code/modules/client/preferences.dm
@@ -91,6 +91,7 @@
"womb_efficiency" = CUM_EFFICIENCY,
"womb_fluid" = "femcum",
"ipc_screen" = "Sunburst",
+ "ipc_antenna" = "None",
"flavor_text" = ""
)
@@ -113,7 +114,7 @@
. += ""
. += "
"
-
+
//Character Appearance
if(current_tab == 2)
update_preview_icon(nude=TRUE)
@@ -184,8 +185,10 @@
. += "Tail: [features["xenotail"]]
"
if("xenodorsal" in pref_species.mutant_bodyparts)
. += "Dorsal Tubes: [features["xenodorsal"]]
"
- if("ipc_screen" in pref_species.mutant_bodyparts)
+ if("ipc_screen" in pref_species.mutant_bodyparts)
. += "Screen:[features["ipc_screen"]]
"
+ if("ipc_antenna" in pref_species.mutant_bodyparts)
+ . += "Antenna:[features["ipc_antenna"]]
"
. += ""
@@ -333,7 +336,7 @@
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)
@@ -358,7 +361,7 @@
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)
@@ -387,6 +390,12 @@
if(new_ipc_screen)
features["ipc_screen"] = new_ipc_screen
+ if("ipc_antenna")
+ var/new_ipc_antenna
+ new_ipc_antenna = input(user, "Choose your character's antenna:", "Character Preference") as null|anything in GLOB.ipc_antennas_list
+ if(new_ipc_antenna)
+ features["ipc_antenna"] = new_ipc_antenna
+
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
@@ -499,7 +508,7 @@
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)
@@ -671,4 +680,4 @@ datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1)
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
+ character.update_genitals()
diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm
index f37736b438..ea56799e1c 100644
--- a/modular_citadel/code/modules/client/preferences_savefile.dm
+++ b/modular_citadel/code/modules/client/preferences_savefile.dm
@@ -1,11 +1,13 @@
/datum/preferences/proc/cit_character_pref_load(savefile/S)
//ipcs
S["feature_ipc_screen"] >> features["ipc_screen"]
+ S["feature_ipc_antenna"] >> features["ipc_antenna"]
//Citadel toggles
S["cit_toggles"] >> cit_toggles
-
+
features["ipc_screen"] = sanitize_inlist(features["ipc_screen"], GLOB.ipc_screens_list)
+ features["ipc_antenna"] = sanitize_inlist(features["ipc_antenna"], GLOB.ipc_antennas_list)
//Citadel
features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"]))
if(!features["mcolor2"] || features["mcolor"] == "#000")
@@ -27,10 +29,11 @@
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"])
+ WRITE_FILE(S["feature_ipc_antenna"], features["ipc_antenna"])
//Citadel
WRITE_FILE(S["feature_genitals_use_skintone"], features["genitals_use_skintone"])
WRITE_FILE(S["feature_exhibitionist"], features["exhibitionist"])
diff --git a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm
index 1b1e2c81e5..5e733cfb6a 100644
--- a/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm
+++ b/modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm
@@ -1044,6 +1044,36 @@
name = "Stars"
icon_state = "stars"
+// IPC Antennas
+
+/datum/sprite_accessory/antenna
+ icon = 'modular_citadel/icons/mob/ipc_antennas.dmi'
+ color_src = MUTCOLORS2
+
+/datum/sprite_accessory/antenna/none
+ name = "None"
+ icon_state = "None"
+
+/datum/sprite_accessory/antenna/antennae
+ name = "Angled Antennae"
+ icon_state = "antennae"
+
+/datum/sprite_accessory/antenna/tvantennae
+ name = "TV Antennae"
+ icon_state = "tvantennae"
+
+/datum/sprite_accessory/antenna/cyberhead
+ name = "Cyberhead"
+ icon_state = "cyberhead"
+
+/datum/sprite_accessory/antenna/antlers
+ name = "Antlers"
+ icon_state = "antlers"
+
+/datum/sprite_accessory/antenna/crowned
+ name = "Crowned"
+ icon_state = "crowned"
+
// *** Snooooow flaaaaake ***
/datum/sprite_accessory/mam_body_markings/guilmon
@@ -1115,4 +1145,3 @@
extra = FALSE
extra2 = FALSE
ckeys_allowed = list("poojawa")
-
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 d3ac99d61c..f609f675f4 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/species.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/species.dm
@@ -77,6 +77,8 @@
switch(bodypart)
if("ipc_screen")
return GLOB.ipc_screens_list[H.dna.features["ipc_screen"]]
+ if("ipc_antenna")
+ return GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]]
if("mam_tail")
return GLOB.mam_tails_list[H.dna.features["mam_tail"]]
if("mam_waggingtail")
@@ -92,4 +94,4 @@
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
+ return GLOB.xeno_tail_list[H.dna.features["xenotail"]]
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
index 22e9f12115..2e666c2edd 100644
--- 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
@@ -6,8 +6,8 @@
blacklisted = 0
sexes = 0
species_traits = list(MUTCOLORS,NOEYES)
- mutant_bodyparts = list("ipc_screen")
- default_features = list("ipc_screen" = "Blank")
+ mutant_bodyparts = list("ipc_screen", "ipc_antenna")
+ default_features = list("ipc_screen" = "Blank", "ipc_antenna" = "None")
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc
var/datum/action/innate/monitor_change/screen
diff --git a/modular_citadel/icons/mob/ipc_antennas.dmi b/modular_citadel/icons/mob/ipc_antennas.dmi
new file mode 100644
index 0000000000..b60f400212
Binary files /dev/null and b/modular_citadel/icons/mob/ipc_antennas.dmi differ
|