Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/__defines/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,7 @@ var/global/list/dexterity_levels = list(
// Sprite accessory metadata types for shorter reference.
#define SAM_COLOR /decl/sprite_accessory_metadata/color
#define SAM_COLOR_INNER /decl/sprite_accessory_metadata/color/alt
#define SAM_COLOR_EXTRA /decl/sprite_accessory_metadata/color/extra
#define SAM_GRADIENT /decl/sprite_accessory_metadata/gradient

// Helpers for setting mob appearance. They are extremely ugly, hence the helpers.
Expand Down
1 change: 1 addition & 0 deletions code/modules/reagents/chems/chems_nutriment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
affect_blood_on_ingest = 0
affect_blood_on_inhale = 0
opacity = 1.0 // liquids are half transparent by default; meat and etc should not be transparent
hardness = MAT_VALUE_SOFT // same softness as meat

// Technically a room-temperature solid, but saves
// repathing it to /solid all over the codebase.
Expand Down
33 changes: 21 additions & 12 deletions code/modules/sprite_accessories/_accessory.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@
var/is_whitelisted
/// A set of trait levels to check for.
var/list/required_traits
/// A list of metadata types to attempt to apply after initial overlay gen.
var/list/additional_states = list(
(SAM_COLOR_INNER),
(SAM_COLOR_EXTRA)
)

/decl/sprite_accessory/Initialize()
. = ..()
Expand Down Expand Up @@ -205,9 +210,6 @@

accessory_icon = icon(use_icon, use_state)

// Inner overlay and color.
var/inner_color = LAZYACCESS(metadata, SAM_COLOR_INNER)

// Base icon and color.
if(!isnull(color_blend))
var/decl/sprite_accessory_metadata/gradient/gradient_metadata = GET_DECL(SAM_GRADIENT)
Expand All @@ -218,21 +220,28 @@
gradient_icon = null
if(gradient_icon)
gradient_icon.Blend(accessory_icon, ICON_AND)
if(!isnull(inner_color))
gradient_icon.Blend(inner_color, color_blend)
var/gradient_color = LAZYACCESS(metadata, SAM_COLOR_INNER)
if(!isnull(gradient_color))
gradient_icon.Blend(gradient_color, color_blend)
var/color = LAZYACCESS(metadata, SAM_COLOR)
if(!isnull(color))
accessory_icon.Blend(color, color_blend)
if(gradient_icon)
accessory_icon.Blend(gradient_icon, ICON_OVERLAY)

if(!isnull(inner_color))
var/inner_state = "[use_state]_inner"
if(check_state_in_icon(inner_state, use_icon))
var/icon/inner_icon = icon(use_icon, inner_state)
if(!isnull(color_blend))
inner_icon.Blend(inner_color, color_blend)
accessory_icon.Blend(inner_icon, ICON_OVERLAY)
// Additional overlays based on metadata (inner and extra)
for(var/extra_metadata_type in additional_states)
var/decl/sprite_accessory_metadata/extra_metadata = RESOLVE_TO_DECL(extra_metadata_type)
if(!istype(extra_metadata) || !extra_metadata.additional_icon_state)
continue
var/extra_color = LAZYACCESS(metadata, SAM_COLOR_EXTRA)
if(!isnull(extra_color))
var/extra_state = "[use_state][extra_metadata.additional_icon_state]"
if(check_state_in_icon(extra_state, use_icon))
var/icon/extra_icon = icon(use_icon, extra_state)
if(!isnull(color_blend))
extra_icon.Blend(extra_color, color_blend)
accessory_icon.Blend(extra_icon, ICON_OVERLAY)

// Clip the icon if needed.
if(mask_to_bodypart)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/decl/sprite_accessory_category/cosmetics
name = "Cosmetics"
single_selection = FALSE
default_accessory = /decl/sprite_accessory/cosmetics/none
base_accessory_type = /decl/sprite_accessory/cosmetics
uid = "acc_cat_cosmetics"
Expand Down
11 changes: 1 addition & 10 deletions code/modules/sprite_accessories/ears/_accessory_ears.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
color_blend = ICON_MULTIPLY

/decl/sprite_accessory/ears/none
name = "Default Ears"
name = "No Custom Ears"
icon_state = "none"
uid = "acc_ears_none"
bodytypes_allowed = null
Expand All @@ -28,12 +28,3 @@
body_flags_denied = null
grooming_flags = null
draw_accessory = FALSE

/*
// Leaving this in for reference.
/decl/sprite_accessory/ears/debug
name = "Debug Two-Tone Ears"
uid = "acc_ears_debug"
icon_state = "debug"
accessory_metadata_types = list(SAM_COLOR, SAM_COLOR_INNER)
*/
1 change: 1 addition & 0 deletions code/modules/sprite_accessories/horns/_accessory_horns.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
base_accessory_type = /decl/sprite_accessory/horns
default_accessory = /decl/sprite_accessory/horns/none
uid = "acc_cat_horns"
single_selection = FALSE

/decl/sprite_accessory/horns
hidden_by_gear_slot = slot_head_str
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
decl_flags = DECL_FLAG_MANDATORY_UID
var/name
var/default_value
var/additional_icon_state

/decl/sprite_accessory_metadata/proc/get_new_value_for(mob/user, decl/sprite_accessory/accessory_decl, current_value)
return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,9 @@
/decl/sprite_accessory_metadata/color/alt
name = "Secondary Color"
uid = "sa_metadata_color_alt"
additional_icon_state = "_inner"

/decl/sprite_accessory_metadata/color/extra
name = "Tertiary Color"
uid = "sa_metadata_color_extra"
additional_icon_state = "_extra"
2 changes: 1 addition & 1 deletion code/modules/sprite_accessories/tails/_accessory_tail.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
var/icon_animation_states

/decl/sprite_accessory/tail/none
name = "Default Tail"
name = "No Custom Tail"
icon_state = "none"
uid = "acc_tail_none"
bodytypes_allowed = null
Expand Down
3 changes: 3 additions & 0 deletions mods/content/fantasy/_fantasy.dme
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,16 @@
#include "datum\species.dm"
#include "datum\hnoll\bodytypes.dm"
#include "datum\hnoll\culture.dm"
#include "datum\hnoll\ears.dm"
#include "datum\hnoll\language.dm"
#include "datum\hnoll\markings.dm"
#include "datum\hnoll\organs.dm"
#include "datum\hnoll\species.dm"
#include "datum\kobaloi\bodytypes.dm"
#include "datum\kobaloi\clothing.dm"
#include "datum\kobaloi\culture.dm"
#include "datum\kobaloi\ears.dm"
#include "datum\kobaloi\horns.dm"
#include "datum\kobaloi\language.dm"
#include "datum\kobaloi\markings.dm"
#include "datum\kobaloi\organs.dm"
Expand Down
8 changes: 7 additions & 1 deletion mods/content/fantasy/datum/hnoll/bodytypes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,13 @@
SAC_MARKINGS = list(
/decl/sprite_accessory/marking/hnoll/belly = list(SAM_COLOR = "#b6b0a8"),
/decl/sprite_accessory/marking/hnoll/spots/body = list(SAM_COLOR = "#46331d"),
/decl/sprite_accessory/marking/hnoll/ears = list(SAM_COLOR = "#46331d")
),
SAC_EARS = list(
/decl/sprite_accessory/ears/hnoll = list(
SAM_COLOR = "#46331d",
SAM_COLOR_INNER = "#c0a88d",
SAM_COLOR_EXTRA = "#201406"
)
)
)

Expand Down
13 changes: 13 additions & 0 deletions mods/content/fantasy/datum/hnoll/ears.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/decl/sprite_accessory/ears/hnoll
name = "Hnoll Wide Ears"
icon_state = "ears_plain"
mask_to_bodypart = FALSE
uid = "acc_marking_hnoll_wideears"
icon = 'mods/content/fantasy/icons/hnoll/ears.dmi'
species_allowed = list(/decl/species/hnoll::uid)
accessory_metadata_types = list(SAM_COLOR, SAM_COLOR_INNER, SAM_COLOR_EXTRA)

/decl/sprite_accessory/ears/hnoll/narrow
name = "Hnoll Narrow Ears"
icon_state = "ears_narrow"
uid = "acc_marking_hnoll_narrowears"
36 changes: 0 additions & 36 deletions mods/content/fantasy/datum/hnoll/markings.dm
Original file line number Diff line number Diff line change
Expand Up @@ -174,42 +174,6 @@
color_blend = ICON_MULTIPLY
uid = "acc_marking_hnoll_nose"

/decl/sprite_accessory/marking/hnoll/ears
name = "Hnoll Wide Ears"
icon_state = "ears_plain"
mask_to_bodypart = FALSE
uid = "acc_marking_hnoll_wideears"

/decl/sprite_accessory/marking/hnoll/ears/wide_inner
name = "Hnoll Wide Ears Interior"
icon_state = "ears_plain_inner"
uid = "acc_marking_hnoll_wideears_inner"

/decl/sprite_accessory/marking/hnoll/ears/wide_tuft
name = "Hnoll Wide Ears Tuft"
icon_state = "ears_plain_tuft"
uid = "acc_marking_hnoll_wideears_tuft"

/decl/sprite_accessory/marking/hnoll/ears/narrow
name = "Hnoll Narrow Ears"
icon_state = "ears_narrow"
uid = "acc_marking_hnoll_narrowears"

/decl/sprite_accessory/marking/hnoll/ears/narrow_inner
name = "Hnoll Narrow Ears Interior"
icon_state = "ears_narrow_inner"
uid = "acc_marking_hnoll_narrowears_inner"

/decl/sprite_accessory/marking/hnoll/ears/narrow_tuft
name = "Hnoll Narrow Ears Tuft"
icon_state = "ears_narrow_tuft"
uid = "acc_marking_hnoll_narrowears_tuft"

/decl/sprite_accessory/marking/hnoll/ears/earrings
name = "Hnoll Earrings"
icon_state = "earrings"
uid = "acc_marking_hnoll_earrings"

/decl/sprite_accessory/marking/hnoll/patches
name = "Patches (Body)"
icon_state = "patches"
Expand Down
5 changes: 2 additions & 3 deletions mods/content/fantasy/datum/kobaloi/bodytypes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@
BP_TAIL = /obj/item/organ/external/tail/kobaloi
)
default_sprite_accessories = list(
SAC_MARKINGS = list(
/decl/sprite_accessory/marking/kobaloi/left_ear = list(SAM_COLOR = "#8f974a"),
/decl/sprite_accessory/marking/kobaloi/right_ear = list(SAM_COLOR = "#8f974a")
SAC_EARS = list(
/decl/sprite_accessory/ears/kobaloi = list(SAM_COLOR = "#8f974a")
)
)
eye_low_light_vision_effectiveness = 0.15
Expand Down
26 changes: 26 additions & 0 deletions mods/content/fantasy/datum/kobaloi/ears.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/decl/sprite_accessory/ears/kobaloi
name = "Kobaloi Ears"
icon_state = "ears"
uid = "acc_kobaloi_ears"
icon = 'mods/content/fantasy/icons/kobaloi/ears.dmi'
species_allowed = list(/decl/species/kobaloi::uid)

/decl/sprite_accessory/ears/kobaloi/floppy
name = "Floppy Kobaloi Ears"
icon_state = "floopy"
uid = "acc_kobaloi_ears_floppy"

/decl/sprite_accessory/ears/kobaloi/stubs
name = "Kobaloi Ear Stubs"
icon_state = "stubs"
uid = "acc_kobaloi_ear_stubs"

/decl/sprite_accessory/ears/kobaloi/left_stub
name = "Right Kobaloi Ear With Stub"
icon_state = "left_stub"
uid = "acc_kobaloi_ear_stub_left"

/decl/sprite_accessory/ears/kobaloi/right_stub
name = "Left Kobaloi Ear With Stub"
icon_state = "right_stub"
uid = "acc_kobaloi_ear_stub_right"
49 changes: 49 additions & 0 deletions mods/content/fantasy/datum/kobaloi/horns.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/decl/sprite_accessory/horns/kobaloi
abstract_type = /decl/sprite_accessory/horns/kobaloi
icon = 'mods/content/fantasy/icons/kobaloi/horns.dmi'
species_allowed = list(/decl/species/kobaloi::uid)

/decl/sprite_accessory/horns/kobaloi/spikes
name = "Spikes"
icon_state = "spikes"
uid = "acc_kobaloi_spikes"

/decl/sprite_accessory/horns/kobaloi/left_horn
name = "Left Horn"
icon_state = "left_horn"
uid = "acc_kobaloi_horn_left"

/decl/sprite_accessory/horns/kobaloi/right_horn
name = "Right Horn"
icon_state = "right_horn"
uid = "acc_kobaloi_horn_right"

/decl/sprite_accessory/horns/kobaloi/left_broken_horn
name = "Broken Left Horn"
icon_state = "left_broken_horn"
uid = "acc_kobaloi_horn_broken_left"

/decl/sprite_accessory/horns/kobaloi/right_broken_horn
name = "Broken Right Horn"
icon_state = "right_broken_horn"
uid = "acc_kobaloi_horn_broken_right"

/decl/sprite_accessory/horns/kobaloi/left_curved_horn
name = "Curved Left Horn"
icon_state = "left_curved_horn"
uid = "acc_kobaloi_horn_curved_left"

/decl/sprite_accessory/horns/kobaloi/right_curved_horn
name = "Curved Right Horn"
icon_state = "right_curved_horn"
uid = "acc_kobaloi_horn_curved_right"

/decl/sprite_accessory/horns/kobaloi/left_antler
name = "Left Antler"
icon_state = "left_antler"
uid = "acc_kobaloi_antler_left"

/decl/sprite_accessory/horns/kobaloi/right_antler
name = "Right Antler"
icon_state = "right_antler"
uid = "acc_kobaloi_antler_right"
Loading
Loading