mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Full preternis resprite (#21330)
* should be most basic dna stuff
* some accessories
* quick fix
* almost done
* eye rename and colour tweaks
* added core
* core works and part blocking
* core actually appears, better grayscaling on glow
* even better glow
* keep tweaking the glow
* realign glow
* socks underwear and undershirt split
* Revert "socks underwear and undershirt split"
This reverts commit 48de6f767e.
* Update clothing.dm
* it's done, finally
This commit is contained in:
@@ -99,7 +99,7 @@
|
||||
#define DNA_HAIR_STYLE_BLOCK 7
|
||||
|
||||
/// This number needs to equal the total number of DNA blocks
|
||||
#define DNA_FEATURE_BLOCKS 19
|
||||
#define DNA_FEATURE_BLOCKS 22
|
||||
|
||||
#define DNA_MUTANT_COLOR_BLOCK 1
|
||||
#define DNA_ETHEREAL_COLOR_BLOCK 2
|
||||
@@ -121,6 +121,9 @@
|
||||
#define DNA_POLY_DOME_BLOCK 17
|
||||
#define DNA_POLY_DORSAL_BLOCK 18
|
||||
#define DNA_ETHEREAL_MARK_BLOCK 19
|
||||
#define DNA_PRETERNIS_WEATHERING_BLOCK 20
|
||||
#define DNA_PRETERNIS_ANTENNA_BLOCK 21
|
||||
#define DNA_PRETERNIS_EYE_BLOCK 22
|
||||
|
||||
#define DNA_SEQUENCE_LENGTH 4
|
||||
#define DNA_MUTATION_BLOCKS 8
|
||||
|
||||
@@ -36,6 +36,10 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/dome, GLOB.dome_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/dorsal_tubes, GLOB.dorsal_tubes_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/ethereal_mark, GLOB.ethereal_mark_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_weathering, GLOB.preternis_weathering_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_antenna, GLOB.preternis_antenna_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_eye, GLOB.preternis_eye_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_core, GLOB.preternis_core_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_hair, GLOB.pod_hair_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_flower, GLOB.pod_flower_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_screens, GLOB.ipc_screens_list)
|
||||
|
||||
@@ -77,6 +77,14 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/dorsal_tubes, GLOB.dorsal_tubes_list)
|
||||
if(!GLOB.ethereal_mark_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/ethereal_mark, GLOB.ethereal_mark_list)
|
||||
if(!GLOB.preternis_weathering_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_weathering, GLOB.preternis_weathering_list)
|
||||
if(!GLOB.preternis_antenna_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_antenna, GLOB.preternis_antenna_list)
|
||||
if(!GLOB.preternis_eye_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_eye, GLOB.preternis_eye_list)
|
||||
if(!GLOB.preternis_core_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/preternis_core, GLOB.preternis_core_list)
|
||||
if(!GLOB.pod_hair_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_hair, GLOB.pod_hair_list)
|
||||
if(!GLOB.pod_flower_list.len)
|
||||
@@ -93,7 +101,6 @@
|
||||
"mcolor" = "#[pick("7F","FF")][pick("7F","FF")][pick("7F","FF")]",
|
||||
"gradientstyle" = random_hair_gradient_style(10),
|
||||
"gradientcolor" = "#[pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")]",
|
||||
"pretcolor" = GLOB.color_list_preternis[pick(GLOB.color_list_preternis)],
|
||||
"tail_lizard" = pick(GLOB.tails_list_lizard),
|
||||
"tail_human" = "None",
|
||||
"wings" = "None",
|
||||
@@ -111,6 +118,11 @@
|
||||
"dome" = pick(GLOB.dome_list),
|
||||
"dorsal_tubes" = pick(GLOB.dorsal_tubes_list),
|
||||
"ethereal_mark" = pick(GLOB.ethereal_mark_list),
|
||||
"pretcolor" = pick(GLOB.color_list_preternis),
|
||||
"preternis_weathering" = pick(GLOB.preternis_weathering_list),
|
||||
"preternis_antenna" = pick(GLOB.preternis_antenna_list),
|
||||
"preternis_eye" = pick(GLOB.preternis_eye_list),
|
||||
"preternis_core" = pick(GLOB.preternis_core_list),
|
||||
"pod_hair" = pick(GLOB.pod_hair_list),
|
||||
"ipc_screen" = pick(GLOB.ipc_screens_list),
|
||||
"ipc_antenna" = pick(GLOB.ipc_antennas_list),
|
||||
|
||||
@@ -58,13 +58,19 @@ GLOBAL_LIST_INIT(plasmaman_helmet_list, list(
|
||||
|
||||
GLOBAL_LIST_EMPTY(ethereal_mark_list) //ethereal face marks
|
||||
|
||||
GLOBAL_LIST_INIT(color_list_preternis, list(
|
||||
GLOBAL_LIST_EMPTY(preternis_weathering_list) //preternis body weathering
|
||||
GLOBAL_LIST_EMPTY(preternis_antenna_list) //preternis head antenna
|
||||
GLOBAL_LIST_EMPTY(preternis_eye_list) //preternis eyes
|
||||
GLOBAL_LIST_EMPTY(preternis_core_list) //preternis core (only one option, not changeable)
|
||||
GLOBAL_LIST_INIT(color_list_preternis, list( //welcome to preternis body colours, where we have colors ranging from gray to grey
|
||||
"Factory Default" = "#FFFFFF",
|
||||
"Rust" = "#B7410E",
|
||||
"Chrome" = "#B0C4DE",
|
||||
"Overgrown" = "#b2ee69",
|
||||
"Gunmetal Gray" = "#8D918D",
|
||||
"Gold" = "#D4AF37"))
|
||||
"Stainless Steel" = "#b4bdc7",
|
||||
"Chrome" = "#9cb9df",
|
||||
"Gunmetal Gray" = "#818589",
|
||||
"Bronze" = "#CD7F32",
|
||||
"Silver" = "#C0C0C0",
|
||||
"Gold" = "#FFD700"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_EMPTY(pod_hair_list) //ethereal face marks
|
||||
GLOBAL_LIST_EMPTY(pod_flower_list) //ethereal face marks
|
||||
|
||||
@@ -219,6 +219,12 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
|
||||
L[DNA_POLY_DORSAL_BLOCK] = construct_block(GLOB.dorsal_tubes_list.Find(features["dorsal_tubes"]), GLOB.dorsal_tubes_list.len)
|
||||
if(features["ethereal_mark"])
|
||||
L[DNA_ETHEREAL_MARK_BLOCK] = construct_block(GLOB.ethereal_mark_list.Find(features["ethereal_mark"]), GLOB.ethereal_mark_list.len)
|
||||
if(features["preternis_weathering"])
|
||||
L[DNA_PRETERNIS_WEATHERING_BLOCK] = construct_block(GLOB.preternis_weathering_list.Find(features["preternis_weathering"]), GLOB.preternis_weathering_list.len)
|
||||
if(features["preternis_antenna"])
|
||||
L[DNA_PRETERNIS_ANTENNA_BLOCK] = construct_block(GLOB.preternis_antenna_list.Find(features["preternis_antenna"]), GLOB.preternis_antenna_list.len)
|
||||
if(features["preternis_eye"])
|
||||
L[DNA_PRETERNIS_EYE_BLOCK] = construct_block(GLOB.preternis_eye_list.Find(features["preternis_eye"]), GLOB.preternis_eye_list.len)
|
||||
if(features["pod_hair"])
|
||||
L[DNA_POD_HAIR_BLOCK] = construct_block(GLOB.pod_hair_list.Find(features["pod_hair"]), GLOB.pod_hair_list.len)
|
||||
if(features["pod_flower"])
|
||||
@@ -368,6 +374,12 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
|
||||
set_uni_feature_block(blocknumber, construct_block(GLOB.dorsal_tubes_list.Find(features["dorsal_tubes"]), GLOB.dorsal_tubes_list.len))
|
||||
if(DNA_ETHEREAL_MARK_BLOCK)
|
||||
set_uni_feature_block(blocknumber, construct_block(GLOB.ethereal_mark_list.Find(features["ethereal_mark"]), GLOB.ethereal_mark_list.len))
|
||||
if(DNA_PRETERNIS_WEATHERING_BLOCK)
|
||||
set_uni_feature_block(blocknumber, construct_block(GLOB.preternis_weathering_list.Find(features["preternis_weathering"]), GLOB.preternis_weathering_list.len))
|
||||
if(DNA_PRETERNIS_ANTENNA_BLOCK)
|
||||
set_uni_feature_block(blocknumber, construct_block(GLOB.preternis_antenna_list.Find(features["preternis_antenna"]), GLOB.preternis_antenna_list.len))
|
||||
if(DNA_PRETERNIS_EYE_BLOCK)
|
||||
set_uni_feature_block(blocknumber, construct_block(GLOB.preternis_eye_list.Find(features["preternis_eye"]), GLOB.preternis_eye_list.len))
|
||||
if(DNA_POD_HAIR_BLOCK)
|
||||
set_uni_feature_block(blocknumber, construct_block(GLOB.pod_hair_list.Find(features["pod_hair"]), GLOB.pod_hair_list.len))
|
||||
if(DNA_POD_FLOWER_BLOCK)
|
||||
@@ -615,6 +627,12 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block())
|
||||
dna.features["dorsal_tubes"] = GLOB.dorsal_tubes_list[deconstruct_block(get_uni_feature_block(features, DNA_POLY_DORSAL_BLOCK), GLOB.dorsal_tubes_list.len)]
|
||||
if(dna.features["ethereal_mark"])
|
||||
dna.features["ethereal_mark"] = GLOB.ethereal_mark_list[deconstruct_block(get_uni_feature_block(features, DNA_ETHEREAL_MARK_BLOCK), GLOB.ethereal_mark_list.len)]
|
||||
if(dna.features["preternis_weathering"])
|
||||
dna.features["preternis_weathering"] = GLOB.preternis_weathering_list[deconstruct_block(get_uni_feature_block(features, DNA_PRETERNIS_WEATHERING_BLOCK), GLOB.preternis_weathering_list.len)]
|
||||
if(dna.features["preternis_antenna"])
|
||||
dna.features["preternis_antenna"] = GLOB.preternis_antenna_list[deconstruct_block(get_uni_feature_block(features, DNA_PRETERNIS_ANTENNA_BLOCK), GLOB.preternis_antenna_list.len)]
|
||||
if(dna.features["preternis_eye"])
|
||||
dna.features["preternis_eye"] = GLOB.preternis_eye_list[deconstruct_block(get_uni_feature_block(features, DNA_PRETERNIS_EYE_BLOCK), GLOB.preternis_eye_list.len)]
|
||||
if(dna.features["pod_hair"])
|
||||
dna.features["pod_hair"] = GLOB.pod_hair_list[deconstruct_block(get_uni_feature_block(features, DNA_POD_HAIR_BLOCK), GLOB.pod_hair_list.len)]
|
||||
if(dna.features["pod_flower"])
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
human.dna.features["dome"] = pick(GLOB.dome_list)
|
||||
human.dna.features["dorsal_tubes"] = pick(GLOB.dorsal_tubes_list)
|
||||
human.dna.features["ethereal_mark"] = pick(GLOB.ethereal_mark_list)
|
||||
human.dna.features["preternis_weathering"] = pick(GLOB.preternis_weathering_list)
|
||||
human.dna.features["preternis_antenna"] = pick(GLOB.preternis_antenna_list)
|
||||
human.dna.features["preternis_eye"] = pick(GLOB.preternis_eye_list)
|
||||
human.dna.features["preternis_core"] = pick(GLOB.preternis_core_list)
|
||||
human.dna.features["pod_hair"] = pick(GLOB.pod_hair_list)
|
||||
human.dna.features["pod_flower"] = GLOB.pod_flower_list[human.dna.features["pod_hair"]]
|
||||
|
||||
|
||||
@@ -87,6 +87,14 @@
|
||||
/datum/preference/choiced/socks/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.socks = value
|
||||
|
||||
/datum/preference/choiced/socks/is_accessible(datum/preferences/preferences)
|
||||
if (!..(preferences))
|
||||
return FALSE
|
||||
|
||||
var/species_type = preferences.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/species/species = new species_type
|
||||
return !(NO_UNDERWEAR in species.species_traits)
|
||||
|
||||
/// Undershirt preference
|
||||
/datum/preference/choiced/undershirt
|
||||
savefile_key = "undershirt"
|
||||
@@ -122,6 +130,14 @@
|
||||
/datum/preference/choiced/undershirt/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.undershirt = value
|
||||
|
||||
/datum/preference/choiced/undershirt/is_accessible(datum/preferences/preferences)
|
||||
if (!..(preferences))
|
||||
return FALSE
|
||||
|
||||
var/species_type = preferences.read_preference(/datum/preference/choiced/species)
|
||||
var/datum/species/species = new species_type
|
||||
return !(NO_UNDERWEAR in species.species_traits)
|
||||
|
||||
/// Underwear preference
|
||||
/datum/preference/choiced/underwear
|
||||
savefile_key = "underwear"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
preternis_base.Blend(icon('icons/mob/human_parts_greyscale.dmi', "preternis_l_arm"), ICON_OVERLAY)
|
||||
preternis_base.Blend(icon('icons/mob/human_parts_greyscale.dmi', "preternis_r_arm"), ICON_OVERLAY)
|
||||
|
||||
var/icon/eyes = icon('icons/mob/human_face.dmi', "eyes")
|
||||
var/icon/eyes = icon('icons/mob/mutant_bodyparts.dmi', "m_preternis_eye_1_ADJ")
|
||||
eyes.Blend(COLOR_RED, ICON_MULTIPLY)
|
||||
preternis_base.Blend(eyes, ICON_OVERLAY)
|
||||
|
||||
@@ -31,3 +31,43 @@
|
||||
|
||||
/datum/preference/choiced/preternis_color/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.dna.features["pretcolor"] = GLOB.color_list_preternis[value]
|
||||
|
||||
//Weathering
|
||||
/datum/preference/choiced/preternis_weathering
|
||||
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
|
||||
savefile_key = "feature_preternis_weathering"
|
||||
savefile_identifier = PREFERENCE_CHARACTER
|
||||
relevant_mutant_bodypart = "preternis_weathering"
|
||||
|
||||
/datum/preference/choiced/preternis_weathering/init_possible_values()
|
||||
return assoc_to_keys(GLOB.preternis_weathering_list)
|
||||
|
||||
/datum/preference/choiced/preternis_weathering/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.dna.features["preternis_weathering"] = value
|
||||
|
||||
//Antenna
|
||||
/datum/preference/choiced/preternis_antenna
|
||||
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
|
||||
savefile_key = "feature_preternis_antenna"
|
||||
savefile_identifier = PREFERENCE_CHARACTER
|
||||
relevant_mutant_bodypart = "preternis_antenna"
|
||||
|
||||
/datum/preference/choiced/preternis_antenna/init_possible_values()
|
||||
return assoc_to_keys(GLOB.preternis_antenna_list)
|
||||
|
||||
/datum/preference/choiced/preternis_antenna/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.dna.features["preternis_antenna"] = value
|
||||
|
||||
//Eye
|
||||
/datum/preference/choiced/preternis_eye
|
||||
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
|
||||
savefile_key = "feature_preternis_eye"
|
||||
savefile_identifier = PREFERENCE_CHARACTER
|
||||
relevant_mutant_bodypart = "preternis_eye"
|
||||
|
||||
/datum/preference/choiced/preternis_eye/init_possible_values()
|
||||
return assoc_to_keys(GLOB.preternis_eye_list)
|
||||
|
||||
/datum/preference/choiced/preternis_eye/apply_to_human(mob/living/carbon/human/target, value)
|
||||
target.dna.features["preternis_eye"] = value
|
||||
target.dna.features["preternis_core"] = "Core" //core is reliant on eye colour and it needs to get added to features somewhere
|
||||
|
||||
@@ -2610,6 +2610,134 @@
|
||||
name = "X"
|
||||
icon_state = "x"
|
||||
|
||||
//Preternis body weathering
|
||||
/datum/sprite_accessory/preternis_weathering
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
color_src = null
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/damaged
|
||||
name = "Damaged"
|
||||
icon_state = "damaged"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/rusted
|
||||
name = "Rusted"
|
||||
icon_state = "rusted"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/repaired
|
||||
name = "Repaired"
|
||||
icon_state = "repaired"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/fullchasis
|
||||
name = "Full chassis"
|
||||
icon_state = "fullchassis"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/fullbody
|
||||
name = "Upper body"
|
||||
icon_state = "fullbody"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/halfbody
|
||||
name = "Upper body (minor)"
|
||||
icon_state = "halfbody"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/rightarm
|
||||
name = "Right arm"
|
||||
icon_state = "rightarm"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/leftarm
|
||||
name = "Left arm"
|
||||
icon_state = "leftarm"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/fullarm
|
||||
name = "Both arms"
|
||||
icon_state = "fullarm"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/halfarm
|
||||
name = "Both arms (minor)"
|
||||
icon_state = "halfarm"
|
||||
|
||||
/datum/sprite_accessory/preternis_weathering/waist
|
||||
name = "Waist"
|
||||
icon_state = "waist"
|
||||
|
||||
//Preternis body weathering
|
||||
/datum/sprite_accessory/preternis_antenna
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
color_src = MUTCOLORS
|
||||
|
||||
/datum/sprite_accessory/preternis_antenna/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
|
||||
/datum/sprite_accessory/preternis_antenna/dracula
|
||||
name = "Dracula"
|
||||
icon_state = "dracula"
|
||||
|
||||
/datum/sprite_accessory/preternis_antenna/ghost
|
||||
name = "Ghost"
|
||||
icon_state = "ghost"
|
||||
|
||||
/datum/sprite_accessory/preternis_antenna/army
|
||||
name = "Army"
|
||||
icon_state = "army"
|
||||
|
||||
/datum/sprite_accessory/preternis_antenna/praetor
|
||||
name = "Praetor"
|
||||
icon_state = "praetor"
|
||||
|
||||
/datum/sprite_accessory/preternis_antenna/field
|
||||
name = "Field"
|
||||
icon_state = "field"
|
||||
|
||||
/datum/sprite_accessory/preternis_antenna/driver
|
||||
name = "Driver"
|
||||
icon_state = "driver"
|
||||
|
||||
//Preternis eye
|
||||
/datum/sprite_accessory/preternis_eye
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
color_src = EYECOLOR
|
||||
|
||||
/datum/sprite_accessory/preternis_eye/one
|
||||
name = "Standard"
|
||||
icon_state = "1"
|
||||
|
||||
/datum/sprite_accessory/preternis_eye/two
|
||||
name = "Focused"
|
||||
icon_state = "2"
|
||||
|
||||
/datum/sprite_accessory/preternis_eye/three
|
||||
name = "Fanned"
|
||||
icon_state = "3"
|
||||
|
||||
/datum/sprite_accessory/preternis_eye/four
|
||||
name = "Horizontal"
|
||||
icon_state = "4"
|
||||
|
||||
/datum/sprite_accessory/preternis_eye/six
|
||||
name = "Vertical"
|
||||
icon_state = "6"
|
||||
|
||||
/datum/sprite_accessory/preternis_eye/five
|
||||
name = "Chambered"
|
||||
icon_state = "5"
|
||||
|
||||
/datum/sprite_accessory/preternis_eye/seven
|
||||
name = "Compound"
|
||||
icon_state = "7"
|
||||
|
||||
//preternis core
|
||||
/datum/sprite_accessory/preternis_core
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
color_src = EYECOLOR
|
||||
|
||||
/datum/sprite_accessory/preternis_core/core
|
||||
name = "Core"
|
||||
icon_state = "core"
|
||||
|
||||
//Phytosian hair
|
||||
/datum/sprite_accessory/pod_hair
|
||||
icon = 'icons/mob/pod_hair.dmi'
|
||||
|
||||
@@ -905,6 +905,14 @@ GLOBAL_LIST_EMPTY(features_by_species)
|
||||
if((H.wear_mask && (H.wear_mask.flags_inv & HIDEEYES)) || (H.head && (H.head.flags_inv & HIDEEYES)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
bodyparts_to_add -= "ethereal_mark"
|
||||
|
||||
if("preternis_antenna" in mutant_bodyparts)
|
||||
if(H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD)
|
||||
bodyparts_to_add -= "preternis_antenna"
|
||||
|
||||
if("preternis_eye" in mutant_bodyparts)
|
||||
if((H.wear_mask && (H.wear_mask.flags_inv & HIDEEYES)) || (H.head && (H.head.flags_inv & HIDEEYES)) || !HD)
|
||||
bodyparts_to_add -= "preternis_eye"
|
||||
|
||||
if("pod_hair" in mutant_bodyparts)
|
||||
if((H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || (H.head && (H.head.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
bodyparts_to_add -= "pod_hair"
|
||||
@@ -1013,6 +1021,14 @@ GLOBAL_LIST_EMPTY(features_by_species)
|
||||
S = GLOB.dorsal_tubes_list[H.dna.features["dorsal_tubes"]]
|
||||
if("ethereal_mark")
|
||||
S = GLOB.ethereal_mark_list[H.dna.features["ethereal_mark"]]
|
||||
if("preternis_weathering")
|
||||
S = GLOB.preternis_weathering_list[H.dna.features["preternis_weathering"]]
|
||||
if("preternis_antenna")
|
||||
S = GLOB.preternis_antenna_list[H.dna.features["preternis_antenna"]]
|
||||
if("preternis_eye")
|
||||
S = GLOB.preternis_eye_list[H.dna.features["preternis_eye"]]
|
||||
if("preternis_core")
|
||||
S = GLOB.preternis_core_list[H.dna.features["preternis_core"]]
|
||||
if("ipc_screen")
|
||||
S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]]
|
||||
if("ipc_antenna")
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 61 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 40 KiB |
@@ -119,3 +119,18 @@ export const feature_ethereal_mark: FeatureChoiced = {
|
||||
name: "Mark",
|
||||
component: FeatureDropdownInput,
|
||||
};
|
||||
|
||||
export const feature_preternis_weathering: FeatureChoiced = {
|
||||
name: "Weathering",
|
||||
component: FeatureDropdownInput,
|
||||
};
|
||||
|
||||
export const feature_preternis_antenna: FeatureChoiced = {
|
||||
name: "Antenna",
|
||||
component: FeatureDropdownInput,
|
||||
};
|
||||
|
||||
export const feature_preternis_eye: FeatureChoiced = {
|
||||
name: "Eye",
|
||||
component: FeatureDropdownInput,
|
||||
};
|
||||
|
||||
@@ -2,20 +2,21 @@
|
||||
name = "Preternis"
|
||||
plural_form = "Preterni"
|
||||
id = "preternis"
|
||||
|
||||
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
|
||||
inherent_traits = list(TRAIT_POWERHUNGRY, TRAIT_RADIMMUNE, TRAIT_MEDICALIGNORE, TRAIT_NO_BLOOD_REGEN)
|
||||
species_traits = list(DYNCOLORS, EYECOLOR, HAIR, LIPS, AGENDER, NOHUSK, DIGITIGRADE)//they're fleshy metal machines, they are efficient, and the outside is metal, no getting husked
|
||||
species_traits = list(NOEYESPRITES, DYNCOLORS, EYECOLOR, AGENDER, NOHUSK, NO_UNDERWEAR)//they're fleshy metal machines, they are efficient, and the outside is metal, no getting husked
|
||||
inherent_biotypes = MOB_ORGANIC|MOB_ROBOTIC|MOB_HUMANOID
|
||||
sexes = FALSE //they're basically ken dolls, come straight out of a printer
|
||||
no_equip = list(ITEM_SLOT_FEET)//this is just easier than using the digitigrade trait for now, making them digitigrade is part of the sprite rework pr
|
||||
no_equip = list(ITEM_SLOT_FEET)
|
||||
|
||||
say_mod = "intones"
|
||||
attack_verb = "assault"
|
||||
skinned_type = /obj/item/stack/sheet/plasteel{amount = 5} //coated in plasteel
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat
|
||||
exotic_bloodtype = "Synthetic" //synthetic blood
|
||||
toxic_food = NONE
|
||||
liked_food = FRIED | SUGAR | JUNKFOOD
|
||||
disliked_food = GROSS | VEGETABLES
|
||||
|
||||
//stat mods
|
||||
burnmod = 1.2 //The plasteel has a really high heat capacity, however, it's not great at dispersing the heat to concentrated heat is gonna burn
|
||||
coldmod = 3 //The plasteel around them saps their body heat quickly if it gets cold
|
||||
heatmod = 2 //Once the heat gets through it's gonna BURN
|
||||
@@ -26,21 +27,33 @@
|
||||
punchdamagehigh = 7 //not built for large high speed acts like punches
|
||||
punchstunthreshold = 7 //technically better stunning
|
||||
siemens_coeff = 1.75 //Circuits REALLY don't like extra electricity flying around
|
||||
//mutant_bodyparts = list("head", "body_markings")
|
||||
mutanteyes = /obj/item/organ/eyes/robotic/preternis
|
||||
mutantlungs = /obj/item/organ/lungs/preternis
|
||||
mutantstomach = /obj/item/organ/stomach/cell/preternis
|
||||
yogs_virus_infect_chance = 25
|
||||
virus_resistance_boost = 10 //YEOUTCH,good luck getting it out
|
||||
virus_stage_rate_boost = 5 //Not designed with viruses in mind since it doesn't usually get in
|
||||
special_step_sounds = list('sound/effects/footstep/catwalk1.ogg', 'sound/effects/footstep/catwalk2.ogg', 'sound/effects/footstep/catwalk3.ogg', 'sound/effects/footstep/catwalk4.ogg')
|
||||
attack_sound = 'sound/items/trayhit2.ogg'
|
||||
//deathsound = //change this when sprite gets reworked
|
||||
yogs_draw_robot_hair = TRUE //remove their hair when they get the new sprite
|
||||
screamsound = 'goon/sound/robot_scream.ogg' //change this when sprite gets reworked
|
||||
wings_icon = "Robotic"
|
||||
|
||||
//organs
|
||||
mutanteyes = /obj/item/organ/eyes/robotic/preternis
|
||||
mutantlungs = /obj/item/organ/lungs/preternis
|
||||
mutantstomach = /obj/item/organ/stomach/cell/preternis
|
||||
|
||||
//misc things
|
||||
species_language_holder = /datum/language_holder/machine
|
||||
inert_mutation = RAVENOUS
|
||||
smells_like = "lemony steel" //transcendent olfaction
|
||||
skinned_type = /obj/item/stack/sheet/plasteel{amount = 5} //coated in plasteel
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat
|
||||
exotic_bloodtype = "Synthetic" //synthetic blood
|
||||
|
||||
//sounds
|
||||
special_step_sounds = list('sound/effects/footstep/catwalk1.ogg', 'sound/effects/footstep/catwalk2.ogg', 'sound/effects/footstep/catwalk3.ogg', 'sound/effects/footstep/catwalk4.ogg')
|
||||
attack_sound = 'sound/items/trayhit2.ogg'
|
||||
screamsound = 'goon/sound/robot_scream.ogg' //change this when sprite gets reworked
|
||||
//deathsound = //change this when sprite gets reworked
|
||||
|
||||
mutant_bodyparts = list("preternis_weathering", "preternis_antenna", "preternis_eye", "preternis_core")
|
||||
default_features = list("weathering" = "None", "antenna" = "None", "preternis_eye" = "Standard", "preternis_core" = "Core")
|
||||
wings_icon = "Robotic"
|
||||
|
||||
//new variables
|
||||
var/datum/action/innate/maglock/maglock
|
||||
var/lockdown = FALSE
|
||||
@@ -50,7 +63,6 @@
|
||||
var/soggy = FALSE
|
||||
var/low_power_warning = FALSE
|
||||
|
||||
smells_like = "lemony steel"
|
||||
|
||||
/datum/species/preternis/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load)
|
||||
. = ..()
|
||||
@@ -243,6 +255,9 @@
|
||||
var/list/features = ..()
|
||||
|
||||
features += "feature_pretcolor"
|
||||
features += "feature_preternis_weathering"
|
||||
features += "feature_preternis_antenna"
|
||||
features += "feature_preternis_eye"
|
||||
|
||||
return features
|
||||
|
||||
|
||||
Reference in New Issue
Block a user