IPC randomization and toggleable markings

This commit is contained in:
sarcoph
2022-05-13 05:09:32 -08:00
parent 431b48d344
commit f45e803bd0
5 changed files with 41 additions and 18 deletions
+15 -3
View File
@@ -136,15 +136,27 @@
var/datum/sprite_accessory/S = instance
if(!S.ckeys_allowed)
snowflake_mam_snouts_list[S.name] = mspath
var/list/snowflake_ipc_antenna_list = list()
for(var/mspath in GLOB.ipc_antennas_list)
var/datum/sprite_accessory/mam_snouts/instance = GLOB.ipc_antennas_list[mspath]
var/datum/sprite_accessory/antenna/instance = GLOB.ipc_antennas_list[mspath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
continue
if(!S.ckeys_allowed)
snowflake_ipc_antenna_list[S.name] = mspath
var/list/snowflake_ipc_screen_list = list()
for(var/mspath in GLOB.ipc_screens_list)
var/datum/sprite_accessory/screen/instance = GLOB.ipc_screens_list[mspath]
if(istype(instance, /datum/sprite_accessory))
var/datum/sprite_accessory/S = instance
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
continue
if(!S.ckeys_allowed)
snowflake_ipc_screen_list[S.name] = mspath
var/color1 = random_short_color()
var/color2 = random_short_color()
var/color3 = random_short_color()
@@ -233,8 +245,8 @@
"womb_cum_mult" = CUM_RATE_MULT,
"womb_efficiency" = CUM_EFFICIENCY,
"womb_fluid" = "femcum",
"ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None",
"ipc_antenna" = "None",
"ipc_screen" = snowflake_ipc_screen_list ? pick(snowflake_ipc_screen_list) : "None",
"ipc_antenna" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None",
"flavor_text" = "",
"silicon_flavor_text" = "",
"ooc_text" = "",
+7 -1
View File
@@ -201,7 +201,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
"cosmetic_l_arm" = /datum/cosmetic_part/arms/default,
"cosmetic_r_arm" = /datum/cosmetic_part/arms/default,
"cosmetic_l_leg" = /datum/cosmetic_part/legs/default,
"cosmetic_r_leg" = /datum/cosmetic_part/legs/default
"cosmetic_r_leg" = /datum/cosmetic_part/legs/default,
"cosmetic_markings" = FALSE
)
/// Security record note section
@@ -840,6 +841,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<div style='width:100%;display:block;'>"
dat += "<h2>Cosmetic Parts</h2>"
dat += "<b>Use markings on cosmetic parts?</b> "
dat += "<a href='?_src_=prefs;preference=cosmetic_markings'>[features["cosmetic_markings"] ? "Yes" : "No"]</a>"
dat += "<div style='display:flex; align-items:stretch; justify-content:space-around;'>"
dat += "<div style='flex: 1 1 0;'>"
dat += "<h3 style='text-align:center;'>Head</h3>"
@@ -2815,6 +2818,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("all")
be_random_body = !be_random_body
if("cosmetic_markings")
features["cosmetic_markings"] = !features["cosmetic_markings"]
if("hear_midis")
toggles ^= SOUND_MIDI
+15 -13
View File
@@ -387,12 +387,6 @@
else
digitigrade_type = null
if(cosmetic_icon && is_organic_limb())
if(cosmetic_icon.icon)
base_bp_icon = cosmetic_icon.icon
use_digitigrade = cosmetic_icon.support_digitigrade ? use_digitigrade : NOT_DIGITIGRADE
color_src = cosmetic_icon.color_src ? cosmetic_icon.color_src : MUTCOLORS
if("mam_body_markings" in S.default_features)
var/datum/sprite_accessory/Smark
Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
@@ -407,6 +401,15 @@
else
body_markings = null
auxmarking = null
if(cosmetic_icon && is_organic_limb())
if(cosmetic_icon.icon)
base_bp_icon = cosmetic_icon.icon
use_digitigrade = cosmetic_icon.support_digitigrade ? use_digitigrade : NOT_DIGITIGRADE
color_src = cosmetic_icon.color_src ? cosmetic_icon.color_src : MUTCOLORS
if(!H.dna.features["cosmetic_markings"])
body_markings = null
auxmarking = null
if((MUTCOLORS in S.species_traits) || (MUTCOLORS_PARTSONLY in S.species_traits))
markings_color = list(colorlist)
@@ -464,7 +467,7 @@
if(burnstate)
. += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir)
if(!isnull(body_markings) && status == BODYPART_ORGANIC && !has_cosmetic_state)
if(!isnull(body_markings) && status == BODYPART_ORGANIC)
if(!use_digitigrade)
if(BODY_ZONE_CHEST)
. += image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir)
@@ -509,7 +512,7 @@
limb.icon_state = "[limb_style]_[body_zone]"
// Body markings
if(body_markings && !has_cosmetic_state)
if(body_markings)
if(is_husk)
marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
else if(is_husk && use_digitigrade)
@@ -529,7 +532,7 @@
if(aux_zone)
aux = image(limb.icon, "[limb_style]_[aux_zone]", -aux_layer, image_dir)
. += aux
if(body_markings && !has_cosmetic_state)
if(body_markings)
if(is_husk)
auxmarking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[aux_zone]", -aux_layer, image_dir)
else
@@ -546,14 +549,14 @@
if(aux_zone)
aux = image(limb.icon, "[aux_zone]", -aux_layer, image_dir)
. += aux
if(!isnull(auxmarking) && !has_cosmetic_state)
if(!isnull(auxmarking))
if(is_husk)
auxmarking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[aux_zone]", -aux_layer, image_dir)
else
auxmarking = image(body_markings_icon, "[body_markings]_[aux_zone]", -aux_layer, image_dir)
. += auxmarking
if(!isnull(body_markings) && !has_cosmetic_state)
if(!isnull(body_markings))
if(is_husk)
marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
else if(is_husk && use_digitigrade)
@@ -582,8 +585,7 @@
limb.color = list(markings_color)
if(aux_zone)
aux.color = list(markings_color)
if(has_cosmetic_state)
return
if(!isnull(auxmarking))
auxmarking.color = list(markings_color)
if(!isnull(body_markings))
@@ -5,6 +5,7 @@
S["feature_cosmetic_r_arm"] >> features["cosmetic_r_arm"]
S["feature_cosmetic_l_leg"] >> features["cosmetic_l_leg"]
S["feature_cosmetic_r_leg"] >> features["cosmetic_r_leg"]
S["cosmetic_markings"] >> features["cosmetic_markings"]
var/cosmetic_head = sanitize_inlist(features["cosmetic_head"], GLOB.cosmetic_heads, "default")
var/cosmetic_chest = sanitize_inlist(features["cosmetic_chest"], GLOB.cosmetic_chests, "default")
var/cosmetic_l_arm = sanitize_inlist(features["cosmetic_l_arm"], GLOB.cosmetic_arms, "default")
@@ -31,4 +32,5 @@
WRITE_FILE(S["feature_cosmetic_l_arm"], l_arm.id)
WRITE_FILE(S["feature_cosmetic_r_arm"], r_arm.id)
WRITE_FILE(S["feature_cosmetic_l_leg"], l_leg.id)
WRITE_FILE(S["feature_cosmetic_r_leg"], r_leg.id)
WRITE_FILE(S["feature_cosmetic_r_leg"], r_leg.id)
WRITE_FILE(S["cosmetic_markings"], features["cosmetic_markings"])
@@ -441,6 +441,7 @@ from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
taur_mode = PAW_TAURIC
ckeys_allowed = list("chemlight")
/*
IPCS
==========================================================