Bacteriophage markings and hide_body_part flags for markings.

Added bacteriophage markings in both full virus and anthropomorphic types, as well as a normal and taur tail.

'hide_body_part' now applies to body markings if set.
This commit is contained in:
Mysterijojo
2022-08-17 07:00:03 -07:00
parent 329b651700
commit 9db13dd17a
14 changed files with 169 additions and 12 deletions

View File

@@ -42,6 +42,8 @@
/// Should this sprite block emissives?
var/em_block = FALSE
///Backporting from tail object definition.
var/list/hide_body_parts = list()
/*
////////////////////////////
/ =--------------------= /
@@ -2816,3 +2818,107 @@ shaved
icon_state = "default"
icon = 'icons/mob/human_races/r_skrell.dmi'
species_allowed = list(SPECIES_SKRELL)
/datum/sprite_accessory/marking/anthrovirus_ra
name = "Anthro Virus (Right Arm)"
icon_state = "anthrovirus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_R_HAND)
hide_body_parts = list(BP_R_ARM,BP_R_HAND)
/datum/sprite_accessory/marking/anthrovirus_la
name = "Anthro Virus (Left Arm)"
icon_state = "anthrovirus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_ARM,BP_L_HAND)
hide_body_parts = list(BP_L_ARM,BP_L_HAND)
/datum/sprite_accessory/marking/anthrovirus_rl
name = "Anthro Virus (Right Leg)"
icon_state = "anthrovirus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
hide_body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/anthrovirus_ll
name = "Anthro Virus (Left Leg)"
icon_state = "anthrovirus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
hide_body_parts = list(BP_L_LEG)
/datum/sprite_accessory/marking/anthrovirus_rf
name = "Anthro Virus (Right Foot)"
icon_state = "anthrovirus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_FOOT)
hide_body_parts = list(BP_R_FOOT)
/datum/sprite_accessory/marking/anthrovirus_lf
name = "Anthro Virus (Left Foot)"
icon_state = "anthrovirus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_FOOT)
hide_body_parts = list(BP_L_FOOT)
/datum/sprite_accessory/marking/anthrovirus_t
name = "Anthro Virus (Torso)"
icon_state = "anthrovirus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO,BP_GROIN)
hide_body_parts = list(BP_TORSO,BP_GROIN)
/datum/sprite_accessory/marking/anthrovirus_h
name = "Anthro Virus (Head)"
icon_state = "anthrovirus"
body_parts = list(BP_HEAD)
color_blend_mode = ICON_MULTIPLY
hide_body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/virus_ra
name = "Bacteriophage (Right Arm)"
icon_state = "virus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_R_HAND)
hide_body_parts = list(BP_R_ARM,BP_R_HAND)
/datum/sprite_accessory/marking/virus_la
name = "Bacteriophage (Left Arm)"
icon_state = "virus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_ARM,BP_L_HAND)
hide_body_parts = list(BP_L_ARM,BP_L_HAND)
/datum/sprite_accessory/marking/virus_rl
name = "Bacteriophage (Right Leg)"
icon_state = "virus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT)
hide_body_parts = list(BP_R_LEG,BP_R_FOOT)
/datum/sprite_accessory/marking/virus_ll
name = "Bacteriophage (Left Leg)"
icon_state = "virus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG,BP_L_FOOT)
hide_body_parts = list(BP_L_LEG,BP_L_FOOT)
/datum/sprite_accessory/marking/virus_t
name = "Bacteriophage (Torso)"
icon_state = "virus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
hide_body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/virus_g
name = "Bacteriophage (Groin)"
icon_state = "virus"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_GROIN)
hide_body_parts = list(BP_GROIN)
/datum/sprite_accessory/marking/virus_h
name = "Bacteriophage (Head)"
icon_state = "virus"
body_parts = list(BP_HEAD)
color_blend_mode = ICON_MULTIPLY
hide_body_parts = list(BP_HEAD)

View File

@@ -20,7 +20,7 @@
var/ani_state // State when wagging/animated
var/extra_overlay_w // Wagging state for extra overlay
var/extra_overlay2_w // Tertiary wagging.
var/list/hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff.
hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff.
var/icon/clip_mask_icon = null //Icon file used for clip mask.
var/clip_mask_state = null //Icon state to generate clip mask. Clip mask is used to 'clip' off the lower part of clothing such as jumpsuits & full suits.
var/icon/clip_mask = null //Instantiated clip mask of given icon and state
@@ -991,3 +991,11 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
extra_overlay = "wardtakahashi_vulp_dc_mark"
/datum/sprite_accessory/tail/anthrovirus_tail
name = "Anthro Virus Tail"
desc = ""
icon_state = "anthrovirustail_mark"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
extra_overlay = "anthrovirustail"

View File

@@ -1107,6 +1107,14 @@
ani_state = "Segmentedtail_w"
extra_overlay_w = "Segmentedtailmarking_w"
/datum/sprite_accessory/tail/anthrovirus_tail
name = "Anthro Virus Tail"
desc = ""
icon_state = "anthrovirustail_mark"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
extra_overlay = "anthrovirustail"
/datum/sprite_accessory/tail/Segmentedlights
name = "Segmented tail, animated synth"
desc = ""
@@ -1176,7 +1184,7 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
ckeys_allowed = list("prettiebyrd")
/datum/sprite_accessory/tail/altevian
name = "Altevian Tail"
icon = 'icons/mob/vore/tails_vr.dmi'

View File

@@ -346,3 +346,11 @@
suit_sprites = 'icons/mob/taursuits_noodle.dmi'
clip_mask_state = "taur_clip_mask_noodle"
icon_sprite_tag = "noodle"
/datum/sprite_accessory/tail/taur/longvirus
name = "Long Virus (Taur)"
icon_state = "longvirus_s"
extra_overlay = "longvirus_markings"
// suit_sprites = 'icons/mob/taursuits_noodle.dmi' Aye, I've gotta sprite that shit.
icon_sprite_tag = "virus"
hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT, BP_GROIN)

View File

@@ -619,3 +619,11 @@
suit_sprites = 'icons/mob/taursuits_noodle_vr.dmi'
clip_mask_state = "taur_clip_mask_noodle"
icon_sprite_tag = "noodle"
/datum/sprite_accessory/tail/taur/longvirus
name = "Long Virus (Taur)"
icon_state = "longvirus_s"
extra_overlay = "longvirus_markings"
//under_sprites = 'icons/mob/taursuits_wolf_vr.dmi'
//suit_sprites = 'icons/mob/taursuits_wolf_vr.dmi'
icon_sprite_tag = "virus"

View File

@@ -1407,6 +1407,20 @@ Note that amputating the affected organ does in fact remove the infection from t
if(!istype(I,/obj/item/weapon/implant) && !istype(I,/obj/item/device/nif)) //VOREStation Add - NIFs
return 1
/obj/item/organ/external/proc/is_hidden_by_markings() // target_covering checks for mouth/eye coverage
//code that checked all limbs.
/*
for(var/obj/item/organ/external/organ in owner.organs)
for(var/M in organ.markings)
var/datum/sprite_accessory/marking/mark_style = organ.markings[M]["datum"]
if (mark_style.hide_body_parts && (organ_tag in mark_style.hide_body_parts))
return 1
*/
for(var/M in markings)
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
if(mark_style.hide_body_parts && (organ_tag in mark_style.hide_body_parts))
return 1
/obj/item/organ/external/proc/is_hidden_by_tail()
if(owner && owner.tail_style && owner.tail_style.hide_body_parts && (organ_tag in owner.tail_style.hide_body_parts))
return 1
return 1

View File

@@ -96,7 +96,6 @@ var/global/list/limb_icon_cache = list()
if(!dna)
mob_icon = new /icon('icons/mob/human_races/r_human.dmi', "[icon_name][gendered_icon ? "_[gender]" : ""]")
else
if(!gendered_icon)
gender = null
else
@@ -111,8 +110,11 @@ var/global/list/limb_icon_cache = list()
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
else
mob_icon = new /icon(species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
if(is_hidden_by_markings())
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
else
mob_icon = new /icon(species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
//Body markings, actually does not include head this time. Done separately above.
if(!istype(src,/obj/item/organ/external/head))
@@ -131,7 +133,7 @@ var/global/list/limb_icon_cache = list()
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
limb_icon_cache[cache_key] = I
mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY)
// VOREStation edit start
if(nail_polish)
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)

View File

@@ -12,7 +12,7 @@
digitigrade = dna.digitigrade
if( !model && ( istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot) ) ) //All leg icons go through here now.
var/gender = "m"
if(owner && owner.gender == FEMALE)
gender = "f"
@@ -43,9 +43,12 @@
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
else
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
if(is_hidden_by_markings())
mob_icon = new /icon('icons/mob/human_races/r_blank.dmi', "[icon_name][gender ? "_[gender]" : ""]")
else
//Use digi icon if digitigrade, otherwise use regular icon. Ternary operator is based.
mob_icon = new /icon(digitigrade ? species.icodigi : species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
//Code here is copied from organ_icon.dm line 118 at time of writing (9/20/21), VOREStation edits are left in intentionally, because I think it's worth keeping track of the fact that the code is from Virgo's edits.
//Body markings, actually does not include head this time. Done separately above.
@@ -66,7 +69,7 @@
I.Blend(rgb(h_col[1],h_col[2],h_col[3]), ICON_MULTIPLY) //VOREStation edit
limb_icon_cache[cache_key] = I
mob_icon.Blend(limb_icon_cache[cache_key], ICON_OVERLAY)
// VOREStation edit start
if(nail_polish)
var/icon/I = new(nail_polish.icon, nail_polish.icon_state)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 156 KiB