adds more markings and changes the way digitigrade markings are handled

This commit is contained in:
Seris02
2023-02-13 15:43:24 +08:00
parent f81a4f1bd1
commit 8b5c0b7f12
10 changed files with 233 additions and 61 deletions

View File

@@ -0,0 +1,3 @@
#define MARKING_NONDIGI_ONLY (1 << 0)
#define MARKING_DIGITIGRADE_ONLY (1 << 1)
#define MARKING_ALL_LEGS MARKING_NONDIGI_ONLY|MARKING_DIGITIGRADE_ONLY

View File

@@ -14,6 +14,24 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/ears/protogen
name = "Protogen"
desc = ""
icon = 'icons/mob/vore/ears_ch.dmi'
icon_state = "protogen"
extra_overlay = "protogen_fluff"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/ears/miqote
name = "Miqo'te"
desc = ""
icon = 'icons/mob/vore/ears_ch.dmi'
icon_state = "miqote"
extra_overlay = "miqote_inner"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/ears/vale
name = "VALE Model Ear Coloring"
desc = ""

View File

@@ -1,3 +1,7 @@
/datum/sprite_accessory/marking
var/digitigrade_acceptance = MARKING_NONDIGI_ONLY
var/digitigrade_icon = 'icons/mob/human_races/markings_digi_ch.dmi'
/datum/sprite_accessory/marking/ch
icon = 'icons/mob/human_races/markings_ch.dmi'
@@ -149,65 +153,196 @@
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/protogen_snout
name = "Protogen Snout"
icon_state = "protogen_snout"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/hshark_snout
name = "HShark Snout"
icon_state = "hshark_snout"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/hshark_head
name = "HShark Head"
icon_state = "hshark"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/ram_horns
name = "Ram Horns"
icon_state = "ram_horns"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/neckfluff
name = "Neck Fluff"
icon_state = "neckfluff"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/husky_chest
name = "Husky Chest"
icon_state = "husky"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO, BP_GROIN)
/datum/sprite_accessory/marking/ch/fox_head
name = "Fox Head"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/fox_chest
name = "Fox Chest"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO, BP_GROIN)
/datum/sprite_accessory/marking/ch/fox_hsocks
name = "Fox Hand Socks"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
/datum/sprite_accessory/marking/ch/fox_lsocks
name = "Fox Leg Socks"
icon_state = "fox"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/tiger_head
name = "Tiger Head"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/tiger_chest
name = "Tiger Chest"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO, BP_GROIN)
/datum/sprite_accessory/marking/ch/tiger_arms
name = "Tiger Arms"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
/datum/sprite_accessory/marking/ch/tiger_legs
name = "Tiger Legs"
icon_state = "tiger"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/gradient_arms
name = "Gradient Arms"
icon_state = "gradient"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
/datum/sprite_accessory/marking/ch/gradient_legs
name = "Gradient Legs"
icon_state = "gradient"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/hawk_talons
name = "Hawk Talons (Legs)"
icon_state = "hawktalon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/deer_hooves
name = "Deer Hooves"
icon_state = "deerhoof"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_FOOT, BP_L_FOOT)
digitigrade_acceptance = MARKING_ALL_LEGS
/datum/sprite_accessory/marking/ch/frills_simple
name = "Frills (Simple)"
icon_state = "frills_simple"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/frills_short
name = "Frills (Short)"
icon_state = "frills_short"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/frills_aquatic
name = "Frills (Aquatic)"
icon_state = "frills_aqua"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/guilmonhead
name = "Guilmon head"
icon_state = "guilmon_head"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
name = "Guilmon head"
icon_state = "guilmon_head"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/ch/guilmonchest
name = "Guilmon Chest"
icon_state = "guilmon_chest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
name = "Guilmon Chest"
icon_state = "guilmon_chest"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/ch/guilmonchestmarking
name = "Guilmon Chest Markings"
icon_state = "guilmon_marking"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
name = "Guilmon Chest Markings"
icon_state = "guilmon_marking"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
/datum/sprite_accessory/marking/ch/guilmonarms
name = "Guilmon arms"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND)
name = "Guilmon arms"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND)
/datum/sprite_accessory/marking/ch/guilmonRLeg
name = "Guilmon Right leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
name = "Guilmon Right leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/ch/guilmonLleg
name = "Guilmon Left leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
name = "Guilmon Left leg"
icon_state = "guilmon"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiRleg1
name = "Guilmon digigrade right leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
name = "Guilmon digigrade right leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiLleg1
name = "Guilmon digigrade left leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
name = "Guilmon digigrade left leg 1"
icon_state = "guilmon_digitigrade_1"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiRleg2
name = "Guilmon digigrade right leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
name = "Guilmon digigrade right leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_R_LEG)
/datum/sprite_accessory/marking/ch/guilmondigiLleg2
name = "Guilmon digigrade left leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
name = "Guilmon digigrade left leg 2"
icon_state = "guilmon_digitigrade_2"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_LEG)
/datum/sprite_accessory/tail/special/orca_tail
name = "Orca Tail"
@@ -332,6 +467,7 @@
//Digitigrade markings
/datum/sprite_accessory/marking/digi
icon = 'icons/mob/human_races/markings_digi_ch.dmi'
digitigrade_acceptance = MARKING_DIGITIGRADE_ONLY
/datum/sprite_accessory/marking/digi/fullleft
name = "Digitigrade Full Left Leg(Only works with digitigrade legs)"

View File

@@ -22,6 +22,17 @@
icon = 'icons/mob/vore/tails_ch.dmi'
icon_state = "zorgoia"
extra_overlay = "zorgoia_fluff"
extra_overlay2 = "zorgoia_fluff_top"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/leopard
name = "Leopard tail, dual-color (vwag)"
icon = 'icons/mob/vore/tails_ch.dmi'
icon_state = "leopard"
ani_state = "leopard_w"
extra_overlay = "leopard_spots"
extra_overlay_w = "leopard_spots_w"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
@@ -144,17 +155,17 @@
extra_overlay = "bigringtail_markings"
/datum/sprite_accessory/tail/longtail/desert_nightstalker
name = "Desert Nightstalker Tail (vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_desert"
ani_state = "nightstalker_desert_w"
do_colouration = 0 // We're not coloring this, these are pre-colored
color_blend_mode = ICON_ADD
name = "Desert Nightstalker Tail (vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_desert"
ani_state = "nightstalker_desert_w"
do_colouration = 0 // We're not coloring this, these are pre-colored
color_blend_mode = ICON_ADD
/datum/sprite_accessory/tail/longtail/diamondback_nightstalker
name = "Diamondback Nightstalker Tail (dual-color, vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_diamondback"
ani_state = "nightstalker_diamondback_w"
extra_overlay = "nightstalker_diamondback_markings"
extra_overlay_w = "nightstalker_diamondback_markings_w"
name = "Diamondback Nightstalker Tail (dual-color, vwag)"
icon = 'icons/mob/vore/taurs_ch.dmi'
icon_state = "nightstalker_diamondback"
ani_state = "nightstalker_diamondback_w"
extra_overlay = "nightstalker_diamondback_markings"
extra_overlay_w = "nightstalker_diamondback_markings_w"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -4,10 +4,11 @@
// preferentially take digitigrade value from owner if available, THEN DNA.
// this allows limbs to be set properly when being printed in the bioprinter without an owner
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
var/check_digi = istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot)
if(owner)
digitigrade = owner.digitigrade && (istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot))
digitigrade = check_digi && owner.digitigrade
else if(dna)
digitigrade = dna.digitigrade && (istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot))
digitigrade = check_digi && dna.digitigrade
var/robotic_digi = prosthetic_digi && digitigrade //could make it so the prosthetic digi var is more of a "does this limb have a custom digitigrade sprite for its robospriting" but this is fine for now
@@ -57,13 +58,15 @@
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !robotic_digi)) || (model && owner && owner.synth_markings))
for(var/M in markings)
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
var/isdigitype = istype(mark_style,/datum/sprite_accessory/marking/digi)
if(!(digitigrade ^ isdigitype)) //Equivalent to XNOR; this code will only run if either both digitigrade and isdigitype are true, or if both are false.
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
add_overlay(mark_s) //So when it's not on your body, it has icons
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
icon_cache_key += "[M][markings[M]["color"]]"
var/isdigitype = mark_style.digitigrade_acceptance
if(check_digi)
if (!(isdigitype & (digitigrade ? MARKING_DIGITIGRADE_ONLY : MARKING_NONDIGI_ONLY))) //checks flags based on which digitigrade type the limb is
continue
var/icon/mark_s = new/icon("icon" = digitigrade ? mark_style.digitigrade_icon : mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
add_overlay(mark_s) //So when it's not on your body, it has icons
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
icon_cache_key += "[M][markings[M]["color"]]"
if(body_hair && islist(h_col) && h_col.len >= 3)
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
if(!limb_icon_cache[cache_key])

View File

@@ -71,6 +71,7 @@
#include "code\__defines\misc_ch.dm"
#include "code\__defines\misc_vr.dm"
#include "code\__defines\mobs.dm"
#include "code\__defines\mobs_ch.dm"
#include "code\__defines\mobs_vr.dm"
#include "code\__defines\mobs_yw.dm"
#include "code\__defines\nifsoft.dm"