diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index dea4bc8f6671..67dc42d5010d 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -109,7 +109,6 @@ #define ORGAN_SLOT_EXTERNAL_ANTENNAE "antennae" #define ORGAN_SLOT_EXTERNAL_POD_HAIR "pod_hair" #define ORGAN_SLOT_EXTERNAL_HEAD_TENTACLES "head_tentacles" // NON-MODULE CHANGE -#define ORGAN_SLOT_EXTERNAL_SYNTH_HEAD_COVER "synth_head_cover" //NON-MODULE CHANGE /// Xenomorph organ slots #define ORGAN_SLOT_XENO_ACIDGLAND "acid_gland" diff --git a/code/controllers/subsystem/sprite_accessories.dm b/code/controllers/subsystem/sprite_accessories.dm index 971099f0114e..d240f48e49da 100644 --- a/code/controllers/subsystem/sprite_accessories.dm +++ b/code/controllers/subsystem/sprite_accessories.dm @@ -62,7 +62,6 @@ SUBSYSTEM_DEF(accessories) // just 'accessories' for brevity var/list/arm_wingsopen_list var/list/tails_list_avian var/list/avian_ears_list - var/list/synth_head_cover_list var/list/tails_list_rat var/list/rat_ears_list var/list/bat_ears_list @@ -133,7 +132,6 @@ SUBSYSTEM_DEF(accessories) // just 'accessories' for brevity arm_wingsopen_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/arm_wingsopen)[DEFAULT_SPRITE_LIST] tails_list_avian = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/avian/)[DEFAULT_SPRITE_LIST] avian_ears_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/plumage)[DEFAULT_SPRITE_LIST] - synth_head_cover_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/synth_head_cover)[DEFAULT_SPRITE_LIST] tails_list_rat = init_sprite_accessory_subtypes(/datum/sprite_accessory/tail_rat, add_blank = TRUE)[DEFAULT_SPRITE_LIST] rat_ears_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/ears_rat, add_blank = TRUE)[DEFAULT_SPRITE_LIST] bat_ears_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/ears_bat, add_blank = TRUE)[DEFAULT_SPRITE_LIST] diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index f98990c951f2..384b13be1f88 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -122,7 +122,6 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) target.dna.features["arm_wings"] = get_consistent_feature_entry(SSaccessories.arm_wings_list) // NON-MODULE CHANGE target.dna.features["tail_avian"] = get_consistent_feature_entry(SSaccessories.tails_list_avian) // NON-MODULE CHANGE target.dna.features["ears_avian"] = get_consistent_feature_entry(SSaccessories.avian_ears_list) // NON-MODULE CHANGE - target.dna.features["synth_head_cover"] = get_consistent_feature_entry(SSaccessories.synth_head_cover_list) // NON-MODULE CHANGE target.dna.features["feathers"] = "#FF3B76" //NON-MODULE CHANGE target.dna.features["animid_type"] = /datum/animid_type/cat::id //NON-MODULE CHANGE target.dna.features["bat_ears"] = get_consistent_feature_entry(SSaccessories.bat_ears_list) //NON-MODULE CHANGE diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index 00fc8f0cebb3..67548e188ae7 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -393,7 +393,7 @@ damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT) - head_flags = HEAD_EYESPRITES + head_flags = HEAD_EYESPRITES | HEAD_EYECOLOR bodypart_flags = BODYPART_UNHUSKABLE var/obj/item/assembly/flash/handheld/flash1 = null diff --git a/maplestation.dme b/maplestation.dme index acf423ba1926..bbb1ccd90af3 100644 --- a/maplestation.dme +++ b/maplestation.dme @@ -6705,6 +6705,7 @@ #include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\animid\animid_prefs.dm" #include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\animid\animid_rat.dm" #include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\android.dm" +#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\android_battery.dm" #include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\android_brain.dm" #include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\android_ears.dm" #include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\android_effects.dm" diff --git a/maplestation_modules/code/game/objects/items/cybernetics_paintkit.dm b/maplestation_modules/code/game/objects/items/cybernetics_paintkit.dm index 3560c1cf5c8d..18e4312dce5b 100644 --- a/maplestation_modules/code/game/objects/items/cybernetics_paintkit.dm +++ b/maplestation_modules/code/game/objects/items/cybernetics_paintkit.dm @@ -20,6 +20,11 @@ "zhenkov" = 'maplestation_modules/icons/mob/augmentation/zhenkovipc.dmi', "zhenkov dark" = 'maplestation_modules/icons/mob/augmentation/zhenkovipc_dark.dmi', "ZHP" = 'maplestation_modules/icons/mob/augmentation/zhpipc.dmi', + "Vintage Cybersun" = 'maplestation_modules/icons/mob/augmentation/vintage_cybersun.dmi', + "S-Tech" = 'maplestation_modules/icons/mob/augmentation/s-tech.dmi', + "Skull" = 'maplestation_modules/icons/mob/augmentation/skull.dmi', + "Drone" = 'maplestation_modules/icons/mob/augmentation/drone.dmi', + "Nemo" = 'maplestation_modules/icons/mob/augmentation/flat.dmi' ) var/static/list/emissive_augments = list( diff --git a/maplestation_modules/code/modules/client/preferences/species/synth.dm b/maplestation_modules/code/modules/client/preferences/species/synth.dm index ffc12238495b..9cad654e8b07 100644 --- a/maplestation_modules/code/modules/client/preferences/species/synth.dm +++ b/maplestation_modules/code/modules/client/preferences/species/synth.dm @@ -70,43 +70,6 @@ /datum/preference/choiced/synth_blood/is_accessible(datum/preferences/preferences) return ..() && ispath(preferences.read_preference(/datum/preference/choiced/species), /datum/species/android/synth) -//synth head covers (aka head design options) -/datum/preference/choiced/synth_head_cover - main_feature_name = "Head Cover" - savefile_key = "feature_synth_head_cover" - - savefile_identifier = PREFERENCE_CHARACTER - category = PREFERENCE_CATEGORY_FEATURES - can_randomize = TRUE - relevant_external_organ = /obj/item/organ/synth_head_cover - should_generate_icons = TRUE - -/datum/preference/choiced/synth_head_cover/init_possible_values() - return assoc_to_keys(SSaccessories.synth_head_cover_list) - -/datum/preference/choiced/synth_head_cover/icon_for(value) - var/datum/sprite_accessory/sprite_accessory = SSaccessories.synth_head_cover_list[value] - var/datum/universal_icon/head = uni_icon('maplestation_modules/icons/mob/synth_heads.dmi', "synth_head", SOUTH) - - var/datum/universal_icon/final_icon = head.copy() - - if (!isnull(sprite_accessory)) - for(var/side in list("ADJ", "FRONT")) - var/datum/universal_icon/accessory_icon = uni_icon('maplestation_modules/icons/mob/synth_heads.dmi', "m_synth_head_cover_[sprite_accessory.icon_state]_ADJ", dir = SOUTH) - final_icon.blend_icon(accessory_icon, ICON_OVERLAY) - - final_icon.crop(11, 20, 23, 32) - final_icon.scale(32, 32) - final_icon.blend_color(COLOR_GRAY, ICON_MULTIPLY) - - return final_icon - -/datum/preference/choiced/synth_head_cover/apply_to_human(mob/living/carbon/human/target, value) - target.dna.features["synth_head_cover"] = value - -/datum/preference/choiced/synth_head_cover/create_default_value() - return /datum/sprite_accessory/synth_head_cover::name - /datum/preference/choiced/android_species savefile_key = "feature_android_species" savefile_identifier = PREFERENCE_CHARACTER diff --git a/maplestation_modules/code/modules/loadouts/limb_items/limb_organs.dm b/maplestation_modules/code/modules/loadouts/limb_items/limb_organs.dm index 55c9cda35d40..171334f3718d 100644 --- a/maplestation_modules/code/modules/loadouts/limb_items/limb_organs.dm +++ b/maplestation_modules/code/modules/loadouts/limb_items/limb_organs.dm @@ -52,3 +52,16 @@ ui_zone = BODY_ZONE_L_ARM pref_list_slot = ORGAN_SLOT_LEFT_ARM_AUG // Yeah you can have one in both arms if you want, don't really care + + +//battery core stuff +/datum/limb_option_datum/organ/synthetic + tooltip = "Unique to Androids and Synthetics." + +/datum/limb_option_datum/organ/synthetic/can_be_selected(datum/preferences/prefs) + return ispath(prefs.read_preference(/datum/preference/choiced/species), /datum/species/android) + +/datum/limb_option_datum/organ/synthetic/battery_core + tooltip = "Replaces the stomach with a battery with more charge, but cannot process food or chemicals. Unique to Androids and Synthetics." + name = "Battery Core" + limb_path = /obj/item/organ/stomach/ethereal/android/battery_core diff --git a/maplestation_modules/code/modules/loadouts/limb_items/limb_reskin_heads.dm b/maplestation_modules/code/modules/loadouts/limb_items/limb_reskin_heads.dm index 6cc8ecfda130..8f4cff57908d 100644 --- a/maplestation_modules/code/modules/loadouts/limb_items/limb_reskin_heads.dm +++ b/maplestation_modules/code/modules/loadouts/limb_items/limb_reskin_heads.dm @@ -57,3 +57,34 @@ /datum/limb_option_datum/bodypart/cybernetic_head/zhp name = "ZHP Cybernetic Head" limb_path = /obj/item/bodypart/head/robot/zhp + +// // -- Synth&Android DLC -- +/datum/limb_option_datum/bodypart/cybernetic_head/helm + name = "Vintage 2415 Cybersun Head" + limb_path = /obj/item/bodypart/head/robot/helm + +/datum/limb_option_datum/bodypart/cybernetic_head/nemo + name = "Nemo Screen Head" + limb_path = /obj/item/bodypart/head/robot/nemo + +/datum/limb_option_datum/bodypart/cybernetic_head/cloak + name = "Frontech Model X Head" + limb_path = /obj/item/bodypart/head/robot/cloak + +/datum/limb_option_datum/bodypart/cybernetic_head/gumhead + tooltip = "Character Item. Unique to Androids and Synthetics" + name = "S-Tech GUM Model Head" + limb_path = /obj/item/bodypart/head/robot/gumhead + +/datum/limb_option_datum/bodypart/cybernetic_head/skull + name = "Robotic Skull" + limb_path = /obj/item/bodypart/head/robot/skull + +/datum/limb_option_datum/bodypart/cybernetic_head/drone + name = "Drone Head" + limb_path = /obj/item/bodypart/head/robot/drone + +/datum/limb_option_datum/bodypart/cybernetic_head/fss_clara + tooltip = "Character Item. Unique to Androids and Synthetics" + name = "FSS Redesigned Head" + limb_path = /obj/item/bodypart/head/robot/fss_clara diff --git a/maplestation_modules/code/modules/mob/dead/new_player/sprite_accessories.dm b/maplestation_modules/code/modules/mob/dead/new_player/sprite_accessories.dm index 8cfaaba1d6b6..404c45c7f8a4 100644 --- a/maplestation_modules/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/maplestation_modules/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -526,18 +526,6 @@ icon_state = "divinity" icon = 'maplestation_modules/icons/mob/frills.dmi' -// -- Synth head coverings -- -/datum/sprite_accessory/synth_head_cover - icon = 'maplestation_modules/icons/mob/synth_heads.dmi' - -/datum/sprite_accessory/synth_head_cover/helm - name = "Helm" - icon_state = "helm" - -/datum/sprite_accessory/synth_head_cover/tv_blank - name = "Tv_blank" - icon_state = "tv_blank" - /// --- Socks --- diff --git a/maplestation_modules/code/modules/mob/living/carbon/human/species_types/synth/android_battery.dm b/maplestation_modules/code/modules/mob/living/carbon/human/species_types/synth/android_battery.dm new file mode 100644 index 000000000000..e7af25e2dc4c --- /dev/null +++ b/maplestation_modules/code/modules/mob/living/carbon/human/species_types/synth/android_battery.dm @@ -0,0 +1,84 @@ +//Adds a new android stomach type which has more charge than the android stomach, but makes it impossible to eat. +/obj/item/organ/stomach/ethereal/android/battery_core + name = "Battery Core" + desc = "A robotic stomach replacement with many layers of batteries instead of a bioreactor." + icon = 'maplestation_modules/icons/obj/medical/organs/organs.dmi' + icon_state = "stomach_battery" + + passive_drain_multiplier = 0.3 //drains slower than default robots + stomach_blood_transfer_rate = 0 //chems don't work too... + + +//stop eating benefits +#define NUTRITION_MULTIPLIER 0 //does this even work? +#define BOOZE_MULTIPLIER 0 +/obj/item/organ/stomach/ethereal/android/battery_core/effective_charge() + . = ..() + +/obj/item/organ/stomach/ethereal/android/battery_core/handle_chemical(mob/living/carbon/source, datum/reagent/chem, seconds_per_tick, times_fired) + //No booze, no drink, no food. It is not a stomach, it is a battery! + return NONE + +#undef NUTRITION_MULTIPLIER +#undef BOOZE_MULTIPLIER + + +#define NO_CHARGE "Low Power" +#define HAS_CON_MOD (1 << 0) +#define HAS_MOOD_EVENT (1 << 1) +#define HAS_DEATH_TIMER (1 << 2) + +//Tweaked charge code which makes overcharged shocking less often (I hate shocking people so bad.) Pretend it has some overcurrent protection or something. +/obj/item/organ/stomach/ethereal/android/battery_core/handle_charge(mob/living/carbon/carbon, seconds_per_tick, times_fired) + var/has_flags = NONE + switch(cell.charge()) + if(-INFINITY to ETHEREAL_CHARGE_NONE) + carbon.add_mood_event(ALERT_ETHEREAL_CHARGE, /datum/mood_event/android_no_charge) + if(!death_timer) + carbon.add_max_consciousness_value(NO_CHARGE, CONSCIOUSNESS_MAX * 0.4) + carbon.add_consciousness_modifier(NO_CHARGE, -30) + death_timer = addtimer(CALLBACK(src, PROC_REF(turn_off), carbon), 30 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) + to_chat(carbon, span_userdanger("Power levels critical: Shutdown in 30 seconds without recharge!")) + has_flags |= HAS_CON_MOD | HAS_MOOD_EVENT | HAS_DEATH_TIMER + + if(ETHEREAL_CHARGE_NONE to ETHEREAL_CHARGE_LOWPOWER) + carbon.add_mood_event(ALERT_ETHEREAL_CHARGE, /datum/mood_event/android_decharged) + carbon.add_max_consciousness_value(NO_CHARGE, CONSCIOUSNESS_MAX * 0.6) + carbon.add_consciousness_modifier(NO_CHARGE, -20) + has_flags |= HAS_CON_MOD | HAS_MOOD_EVENT + + if(ETHEREAL_CHARGE_LOWPOWER to ETHEREAL_CHARGE_NORMAL) + carbon.add_mood_event(ALERT_ETHEREAL_CHARGE, /datum/mood_event/android_low_power) + has_flags |= HAS_MOOD_EVENT + + if(ETHEREAL_CHARGE_NORMAL to ETHEREAL_CHARGE_ALMOSTFULL) + EMPTY_BLOCK_GUARD + + if(ETHEREAL_CHARGE_ALMOSTFULL to ETHEREAL_CHARGE_FULL) + carbon.add_mood_event(ALERT_ETHEREAL_CHARGE, /datum/mood_event/android_charged) + has_flags |= HAS_MOOD_EVENT + + if(ETHEREAL_CHARGE_FULL to ETHEREAL_CHARGE_OVERLOAD) + carbon.add_mood_event(ALERT_ETHEREAL_CHARGE, /datum/mood_event/android_overcharged) + has_flags |= HAS_MOOD_EVENT + + if(ETHEREAL_CHARGE_OVERLOAD to ETHEREAL_CHARGE_DANGEROUS) + carbon.add_mood_event(ALERT_ETHEREAL_CHARGE, /datum/mood_event/android_supercharged) + has_flags |= HAS_MOOD_EVENT + if(SPT_PROB(0.5, seconds_per_tick)) // UPDATED FROM 5% to 0.5% each second for the android to explosively release excess energy if it reaches dangerous levels + discharge_process(carbon) + + carbon.hud_used?.hunger?.update_hunger_bar() + if(!(has_flags & HAS_MOOD_EVENT)) + carbon.clear_mood_event(ALERT_ETHEREAL_CHARGE) + if(!(has_flags & HAS_CON_MOD)) + carbon.remove_max_consciousness_value(NO_CHARGE) + carbon.remove_consciousness_modifier(NO_CHARGE) + if(!(has_flags & HAS_DEATH_TIMER) && death_timer) + deltimer(death_timer) + death_timer = null + +#undef NO_CHARGE +#undef HAS_CON_MOD +#undef HAS_MOOD_EVENT +#undef HAS_DEATH_TIMER diff --git a/maplestation_modules/code/modules/mob/living/carbon/human/species_types/synth/synth.dm b/maplestation_modules/code/modules/mob/living/carbon/human/species_types/synth/synth.dm index bef6339bdb0f..831a5eba3036 100644 --- a/maplestation_modules/code/modules/mob/living/carbon/human/species_types/synth/synth.dm +++ b/maplestation_modules/code/modules/mob/living/carbon/human/species_types/synth/synth.dm @@ -30,7 +30,6 @@ digitigrade_legs = null mutanttongue = /obj/item/organ/tongue/robot/synth - mutant_organs = list(/obj/item/organ/synth_head_cover = "Helm") allow_fleshy_bits = TRUE /// Reference to the species we're disguised as. @@ -412,85 +411,4 @@ /obj/item/organ/eyes/robotic/synth name = "synth eyes" -// Organ for synth head covers. - -/obj/item/organ/synth_head_cover - name = "Head Cover" - desc = "It is a cover that goes on a synth head." - - zone = BODY_ZONE_HEAD - slot = ORGAN_SLOT_EXTERNAL_SYNTH_HEAD_COVER - - preference = "feature_synth_head_cover" - - organ_flags = ORGAN_ROBOTIC - - bodypart_overlay = /datum/bodypart_overlay/mutant/synth_head_cover - organ_flags = parent_type::organ_flags | ORGAN_EXTERNAL - - -/obj/item/organ/synth_head_cover/on_bodypart_insert(obj/item/bodypart/head/limb, movement_flags) - . = ..() - limb.head_flags &= ~HEAD_EYESPRITES - -/obj/item/organ/synth_head_cover/on_bodypart_remove(obj/item/bodypart/head/limb, movement_flags) - . = ..() - if(initial(limb.head_flags) & HEAD_EYESPRITES) - limb.head_flags |= HEAD_EYESPRITES - -//-- overlay -- -/datum/bodypart_overlay/mutant/synth_head_cover/get_global_feature_list() - return SSaccessories.synth_head_cover_list - -/datum/bodypart_overlay/mutant/synth_head_cover/can_draw_on_bodypart(obj/item/bodypart/bodypart_owner) - if(bodypart_owner.owner?.obscured_slots & HIDEHAIR) - return FALSE - if(bodypart_owner.limb_id == BODYPART_ID_SYNTH) // disguised = no head cover - return TRUE - if(IS_ROBOTIC_LIMB(bodypart_owner)) // works on android limbs too - return TRUE - return FALSE - -/datum/bodypart_overlay/mutant/synth_head_cover - feature_key = "synth_head_cover" - layers = ALL_EXTERNAL_OVERLAYS - -//-- accessories -- -//the path to the icon for the head covers -/datum/sprite_accessory/synth_head_cover - icon = 'maplestation_modules/icons/mob/synth_heads.dmi' - -//head covers -/datum/sprite_accessory/synth_head_cover/none // for those that don't want a cover. - name = "None" - icon_state = null - -//A kind of helmet looking thing with a big black screen/face cover thing. I dunno what else to call this. -/datum/sprite_accessory/synth_head_cover/helm - name = "Helm" - icon_state = "helm" - -//helm with white plastic on the sides. -/datum/sprite_accessory/synth_head_cover/helm_white - name = "White Helm" - icon_state = "helm_white" - -//just the IPC TV that is already in the code base -/datum/sprite_accessory/synth_head_cover/tv_blank - name = "Tv_blank" - icon_state = "tv_blank" - -//a cool design inspired from cloak pilots in titanfall 2, *sorta*. -/datum/sprite_accessory/synth_head_cover/cloakp - name = "Cloakp" - icon_state = "cloakp" - -//GUMTEETH's head -/datum/sprite_accessory/synth_head_cover/gumhead - name = "GUMHEAD" - icon_state = "gumhead" - -// add more here!! - - #undef BODYPART_ID_SYNTH diff --git a/maplestation_modules/code/modules/surgery/bodyparts/cyber_reskins.dm b/maplestation_modules/code/modules/surgery/bodyparts/cyber_reskins.dm index 58d243383a9d..cb2ccc8a8d86 100644 --- a/maplestation_modules/code/modules/surgery/bodyparts/cyber_reskins.dm +++ b/maplestation_modules/code/modules/surgery/bodyparts/cyber_reskins.dm @@ -461,3 +461,46 @@ icon = 'maplestation_modules/icons/mob/augmentation/monokai.dmi' icon_static = 'maplestation_modules/icons/mob/augmentation/monokai.dmi' is_emissive = TRUE + +// -- Previously synth head coverings -- + +/obj/item/bodypart/head/robot/helm + icon_state = "robotic_head" + icon = 'maplestation_modules/icons/mob/augmentation/vintage_cybersun.dmi' + icon_static = 'maplestation_modules/icons/mob/augmentation/vintage_cybersun.dmi' + +/obj/item/bodypart/head/robot/nemo + icon_state = "robotic_head" + icon = 'maplestation_modules/icons/mob/augmentation/flat.dmi' + icon_static = 'maplestation_modules/icons/mob/augmentation/flat.dmi' + head_flags = NONE + +/obj/item/bodypart/head/robot/cloak + icon_state = "robotic_head" + icon = 'maplestation_modules/icons/mob/augmentation/cloak.dmi' + icon_static = 'maplestation_modules/icons/mob/augmentation/cloak.dmi' + head_flags = NONE + +/obj/item/bodypart/head/robot/gumhead + icon_state = "robotic_head" + icon = 'maplestation_modules/icons/mob/augmentation/s-tech.dmi' + icon_static = 'maplestation_modules/icons/mob/augmentation/s-tech.dmi' + head_flags = NONE + +/obj/item/bodypart/head/robot/skull + icon_state = "robotic_head" + icon = 'maplestation_modules/icons/mob/augmentation/skull.dmi' + icon_static = 'maplestation_modules/icons/mob/augmentation/skull.dmi' + head_flags = HEAD_EYECOLOR|HEAD_EYESPRITES|HEAD_EYEHOLES + +/obj/item/bodypart/head/robot/drone + icon_state = "robotic_head" + icon = 'maplestation_modules/icons/mob/augmentation/drone.dmi' + icon_static = 'maplestation_modules/icons/mob/augmentation/drone.dmi' + head_flags = HEAD_EYECOLOR|HEAD_EYESPRITES|HEAD_HAIR + +/obj/item/bodypart/head/robot/fss_clara + icon_state = "robotic_head" + icon = 'maplestation_modules/icons/mob/augmentation/FSS.dmi' + icon_static = 'maplestation_modules/icons/mob/augmentation/FSS.dmi' + head_flags = HEAD_EYECOLOR|HEAD_EYESPRITES diff --git a/maplestation_modules/icons/mob/augmentation/FSS.dmi b/maplestation_modules/icons/mob/augmentation/FSS.dmi new file mode 100644 index 000000000000..307e490fa534 Binary files /dev/null and b/maplestation_modules/icons/mob/augmentation/FSS.dmi differ diff --git a/maplestation_modules/icons/mob/augmentation/cloak.dmi b/maplestation_modules/icons/mob/augmentation/cloak.dmi new file mode 100644 index 000000000000..2286e3e4378a Binary files /dev/null and b/maplestation_modules/icons/mob/augmentation/cloak.dmi differ diff --git a/maplestation_modules/icons/mob/augmentation/drone.dmi b/maplestation_modules/icons/mob/augmentation/drone.dmi new file mode 100644 index 000000000000..70419364dcb1 Binary files /dev/null and b/maplestation_modules/icons/mob/augmentation/drone.dmi differ diff --git a/maplestation_modules/icons/mob/augmentation/flat.dmi b/maplestation_modules/icons/mob/augmentation/flat.dmi new file mode 100644 index 000000000000..22ca83ba982c Binary files /dev/null and b/maplestation_modules/icons/mob/augmentation/flat.dmi differ diff --git a/maplestation_modules/icons/mob/augmentation/s-tech.dmi b/maplestation_modules/icons/mob/augmentation/s-tech.dmi new file mode 100644 index 000000000000..b9f57f6a1d8f Binary files /dev/null and b/maplestation_modules/icons/mob/augmentation/s-tech.dmi differ diff --git a/maplestation_modules/icons/mob/augmentation/skull.dmi b/maplestation_modules/icons/mob/augmentation/skull.dmi new file mode 100644 index 000000000000..5b378f11395d Binary files /dev/null and b/maplestation_modules/icons/mob/augmentation/skull.dmi differ diff --git a/maplestation_modules/icons/mob/augmentation/vintage_cybersun.dmi b/maplestation_modules/icons/mob/augmentation/vintage_cybersun.dmi new file mode 100644 index 000000000000..d8ff296b08ee Binary files /dev/null and b/maplestation_modules/icons/mob/augmentation/vintage_cybersun.dmi differ diff --git a/maplestation_modules/icons/obj/medical/organs/organs.dmi b/maplestation_modules/icons/obj/medical/organs/organs.dmi new file mode 100644 index 000000000000..50bf8b328439 Binary files /dev/null and b/maplestation_modules/icons/obj/medical/organs/organs.dmi differ diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/_modular_species_features.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/_modular_species_features.tsx index 5bedcab6da25..30cd202d896a 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/_modular_species_features.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/_modular_species_features.tsx @@ -21,11 +21,6 @@ export const feature_head_tentacles: FeatureChoiced = { component: FeatureDropdownInput, }; -export const feature_synth_head_cover: FeatureChoiced = { - name: 'Head Cover', - component: FeatureDropdownInput, -}; - export const hair_lizard: FeatureToggle = { name: 'Hair Lizard', description: 'Check to spawn as a Lizard with hair.',