diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm index 3313c137b5..7332170b75 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm @@ -1,3 +1,17 @@ +/mob/living/carbon/human/proc/promethean_select_opaqueness() + set name = "Toggle Transparency" + set category = "Abilities" + if(stat || world.time < last_special) + return + + last_special = world.time + 50 + + for(var/limb in src.organs) + var/obj/item/organ/external/L = limb + L.transparent = !L.transparent + visible_message("\The [src]'s interal composition seems to change.") + update_icons_body() + /mob/living/carbon/human/proc/shapeshifter_select_ears() set name = "Select Ears" set category = "Abilities" diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm index 2646d90bbb..135ef2ff28 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm @@ -33,5 +33,6 @@ /mob/living/carbon/human/proc/succubus_drain_finalize, /mob/living/carbon/human/proc/succubus_drain_lethal, /mob/living/carbon/human/proc/slime_feed, - /mob/living/proc/eat_trash + /mob/living/proc/eat_trash, + /mob/living/carbon/human/proc/promethean_select_opaqueness ) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index b36db9bfa5..21d8147472 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -272,6 +272,8 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() icon_key += "3" else icon_key += "1" + if(part.transparent) //VOREStation Edit. For better slime limbs. + icon_key += "_t" //VOREStation Edit. For better slime limbs. icon_key = "[icon_key][husk ? 1 : 0][fat ? 1 : 0][hulk ? 1 : 0][skeleton ? 1 : 0]" @@ -435,7 +437,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() face_standing.Blend(ears_s, ICON_OVERLAY) // VOREStation Edit - END - if(head_organ.nonsolid) + if(head_organ.transparent) //VOREStation Edit. For better slime limbs. face_standing += rgb(,,,120) overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER) diff --git a/code/modules/organs/organ_external_vr.dm b/code/modules/organs/organ_external_vr.dm index 0e3fb07d9e..bd3839597b 100644 --- a/code/modules/organs/organ_external_vr.dm +++ b/code/modules/organs/organ_external_vr.dm @@ -1,6 +1,7 @@ //Sideways override for nanoform limbs (ugh) /obj/item/organ/external/robotize(var/company, var/skip_prosthetics = FALSE, var/keep_organs = FALSE) var/original_robotic = robotic + var/transparent = 0 //For better slime limbs if(original_robotic >= ORGAN_NANOFORM) var/o_encased = encased var/o_max_damage = max_damage diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 69f897fa58..47e5ff34ea 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -190,7 +190,7 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/proc/apply_colouration(var/icon/applying) - if(nonsolid) + if(transparent) //VOREStation Edit applying.MapColors("#4D4D4D","#969696","#1C1C1C", "#000000") if(species && species.get_bodytype(owner) != SPECIES_HUMAN) applying.SetIntensity(1) // Unathi, Taj and Skrell have -very- dark base icons. VOREStation edit fixes this and brings the number back to 1 @@ -212,14 +212,14 @@ var/global/list/limb_icon_cache = list() //VOREStation Edit - Support for species.color_mult if(species && species.color_mult) applying.Blend(rgb(s_col[1], s_col[2], s_col[3]), ICON_MULTIPLY) - icon_cache_key += "_color_[s_col[1]]_[s_col[2]]_[s_col[3]]_[ICON_MULTIPLY]" + icon_cache_key += "_color_[s_col[1]]_[s_col[2]]_[s_col[3]]_[transparent]_[ICON_MULTIPLY]" else applying.Blend(rgb(s_col[1], s_col[2], s_col[3]), ICON_ADD) - icon_cache_key += "_color_[s_col[1]]_[s_col[2]]_[s_col[3]]_[ICON_ADD]" + icon_cache_key += "_color_[s_col[1]]_[s_col[2]]_[s_col[3]]_[transparent]_[ICON_ADD]" //VOREStation Edit End // Translucency. - if(nonsolid) applying += rgb(,,,180) // SO INTUITIVE TY BYOND + if(transparent) applying += rgb(,,,180) // SO INTUITIVE TY BYOND //VOREStation Edit return applying diff --git a/code/modules/organs/subtypes/slime_vr.dm b/code/modules/organs/subtypes/slime_vr.dm index 270b194f5d..5ae87eb61e 100644 --- a/code/modules/organs/subtypes/slime_vr.dm +++ b/code/modules/organs/subtypes/slime_vr.dm @@ -1,22 +1,43 @@ /obj/item/organ/external/chest/unbreakable/slime + transparent = 1 max_damage = 50 + /obj/item/organ/external/groin/unbreakable/slime + transparent = 1 max_damage = 30 + /obj/item/organ/external/arm/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/arm/right/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/leg/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/leg/right/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/foot/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/foot/right/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/hand/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/hand/right/unbreakable/slime + transparent = 1 max_damage = 8 + /obj/item/organ/external/head/unbreakable/slime + transparent = 1 max_damage = 8