Merge pull request #8091 from Cameron653/transparency_v2

Adds the ability for prometheans to toggle transparency.
This commit is contained in:
Novacat
2020-07-03 17:49:45 -04:00
committed by GitHub
7 changed files with 71 additions and 16 deletions

View File

@@ -17,13 +17,13 @@
var/new_ear_style = input(src, "Pick some ears!", "Character Preference", ear_style ? ear_style.name : null) as null|anything in pretty_ear_styles
if(!new_ear_style)
return
//Set new style
ear_style = ear_styles_list[pretty_ear_styles[new_ear_style]]
//Allow color picks
var/current_pri_color = rgb(r_ears,g_ears,b_ears)
var/new_pri_color = input("Pick primary ear color:","Ear Color (Pri)", current_pri_color) as null|color
if(new_pri_color)
var/list/new_color_rgb_list = hex2rgb(new_pri_color)
@@ -33,7 +33,7 @@
//Indented inside positive primary color choice, don't bother if they clicked cancel
var/current_sec_color = rgb(r_ears2,g_ears2,b_ears2)
var/new_sec_color = input("Pick secondary ear color (only applies to some ears):","Ear Color (sec)", current_sec_color) as null|color
if(new_sec_color)
new_color_rgb_list = hex2rgb(new_sec_color)
@@ -62,13 +62,13 @@
var/new_tail_style = input(src, "Pick a tail!", "Character Preference", tail_style ? tail_style.name : null) as null|anything in pretty_tail_styles
if(!new_tail_style)
return
//Set new style
tail_style = tail_styles_list[pretty_tail_styles[new_tail_style]]
//Allow color picks
var/current_pri_color = rgb(r_tail,g_tail,b_tail)
var/new_pri_color = input("Pick primary tail color:","Tail Color (Pri)", current_pri_color) as null|color
if(new_pri_color)
var/list/new_color_rgb_list = hex2rgb(new_pri_color)
@@ -78,7 +78,7 @@
//Indented inside positive primary color choice, don't bother if they clicked cancel
var/current_sec_color = rgb(r_tail2,g_tail2,b_tail2)
var/new_sec_color = input("Pick secondary tail color (only applies to some tails):","Tail Color (sec)", current_sec_color) as null|color
if(new_sec_color)
new_color_rgb_list = hex2rgb(new_sec_color)
@@ -107,13 +107,13 @@
var/new_wing_style = input(src, "Pick some wings!", "Character Preference", wing_style ? wing_style.name : null) as null|anything in pretty_wing_styles
if(!new_wing_style)
return
//Set new style
wing_style = wing_styles_list[pretty_wing_styles[new_wing_style]]
//Allow color picks
var/current_color = rgb(r_wing,g_wing,b_wing)
var/new_color = input("Pick wing color:","Wing Color", current_color) as null|color
if(new_color)
var/list/new_color_rgb_list = hex2rgb(new_color)
@@ -123,7 +123,7 @@
//Indented inside positive primary color choice, don't bother if they clicked cancel
var/current_sec_color = rgb(r_wing2,g_wing2,b_wing2)
var/new_sec_color = input("Pick secondary wing color (only applies to some wings):","Wing Color (sec)", current_sec_color) as null|color
if(new_sec_color)
new_color_rgb_list = hex2rgb(new_sec_color)
@@ -132,3 +132,19 @@
b_wing2 = new_color_rgb_list[3]
update_wing_showing()
/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("<span class='notice'>\The [src]'s interal composition seems to change.</span>")
update_icons_body()

View File

@@ -34,5 +34,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,
)

View File

@@ -277,6 +277,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. Avoids using solid var due to limb dropping.
icon_key += "_t" //VOREStation Edit.
icon_key = "[icon_key][husk ? 1 : 0][fat ? 1 : 0][hulk ? 1 : 0][skeleton ? 1 : 0]"
@@ -456,7 +458,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
return
// 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)

View File

@@ -1,3 +1,6 @@
/obj/item/organ/external
var/transparent = 0 //For better slime limbs
//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

View File

@@ -206,7 +206,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
@@ -235,7 +235,7 @@ var/global/list/limb_icon_cache = list()
//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

View File

@@ -0,0 +1,32 @@
/obj/item/organ/external/chest/unbreakable/slime
transparent = 1
/obj/item/organ/external/groin/unbreakable/slime
transparent = 1
/obj/item/organ/external/arm/unbreakable/slime
transparent = 1
/obj/item/organ/external/arm/right/unbreakable/slime
transparent = 1
/obj/item/organ/external/leg/unbreakable/slime
transparent = 1
/obj/item/organ/external/leg/right/unbreakable/slime
transparent = 1
/obj/item/organ/external/foot/unbreakable/slime
transparent = 1
/obj/item/organ/external/foot/right/unbreakable/slime
transparent = 1
/obj/item/organ/external/hand/unbreakable/slime
transparent = 1
/obj/item/organ/external/hand/right/unbreakable/slime
transparent = 1
/obj/item/organ/external/head/unbreakable/slime
transparent = 1

View File

@@ -2956,6 +2956,7 @@
#include "code\modules\organs\subtypes\shadekin.dm"
#include "code\modules\organs\subtypes\shadekin_vr.dm"
#include "code\modules\organs\subtypes\slime.dm"
#include "code\modules\organs\subtypes\slime_vr.dm"
#include "code\modules\organs\subtypes\standard.dm"
#include "code\modules\organs\subtypes\standard_vr.dm"
#include "code\modules\organs\subtypes\unathi.dm"