From b70381c89e08a81e642f47607f46fae607e587b3 Mon Sep 17 00:00:00 2001 From: Ziiro <0@ziiro.net> Date: Sat, 24 Mar 2018 13:33:19 -0600 Subject: [PATCH] Adds IPC Antennas (#6049) --- code/__HELPERS/_cit_helpers.dm | 1 + code/__HELPERS/mobs.dm | 3 ++ modular_citadel/code/init.dm | 5 +-- .../code/modules/client/preferences.dm | 21 ++++++++---- .../modules/client/preferences_savefile.dm | 7 ++-- .../mob/dead/new_player/sprite_accessories.dm | 31 +++++++++++++++++- .../mob/living/carbon/human/species.dm | 4 ++- .../living/carbon/human/species_types/ipc.dm | 4 +-- modular_citadel/icons/mob/ipc_antennas.dmi | Bin 0 -> 639 bytes 9 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 modular_citadel/icons/mob/ipc_antennas.dmi 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 0000000000000000000000000000000000000000..b60f400212d87eb31bab626ead4fb5475742f5a8 GIT binary patch literal 639 zcmV-_0)YLAP)005u_0{{R3dEt5<0000RP)t-s{{R5+ z@bJ^q)9>%^*4Eair>C~IwvmyM{{R33_~?-U0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5Nr{UyC9|j)$TZ~QOe;#vO@*-G3UcE!3zFj#^GZ_l@)BWmYP_S1 z7ecEEFjR6JHyaSsQO)1Rou|~`L>;KnkGjQuw566(dUBBHZ;+O=fK}+j#-Af z-<_o4KFd(kNW<{mTL1t60QdvkAXm!%F-L94low4!YE_1;gxQ8hLLZ2NPwVK{h=l4- zSUpb|!fm8<>^{QK;BvW*lqTA2vJ6*G2mk;805C`W>v}rFW^KpS+f!!0vq8TD0001h Z%@@)9D%P?+k(K}e002ovPDHLkV1g7BAzA