diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 6da73bc4712..a85af459623 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -144,6 +144,17 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() var/matrix/M = matrix() var/anim_time = 3 + // VOREStation Edit Start: Porting Taur Loafing + if(tail_style?.can_loaf && resting) // Only call these if we're resting? + update_tail_showing() + return // No need to do the rest, we return early + /* // Commenting this out as sleeping is fucky + if(tail_style?.can_loaf && lying && sleeping) // If we're put under by anesthetic or fainting + update_tail_showing() + // return // No need to do the rest, we return early + */ + // VOREStation Edit End + //Due to some involuntary means, you're laying now if(lying && !resting && !sleeping) anim_time = 1 //Thud @@ -163,6 +174,8 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() else M.Scale(desired_scale_x, desired_scale_y)//VOREStation Edit M.Translate(0, (vis_height/2)*(desired_scale_y-1)) //VOREStation edit + if(tail_style?.can_loaf) // VOREStation Edit: Taur Loafing + update_tail_showing() // VOREStation Edit: Taur Loafing layer = MOB_LAYER // Fix for a byond bug where turf entry order no longer matters animate(src, transform = M, time = anim_time) @@ -1233,11 +1246,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() //If you have a custom tail selected if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !istaurtail(tail_style))) - var/icon/tail_s = new/icon("icon" = tail_style.icon, "icon_state" = wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state) + var/icon/tail_s = new/icon("icon" = tail_style.icon, "icon_state" = (tail_style.can_loaf && resting) ? "[tail_style.icon_state]_loaf" : (wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state)) // VOREStation Edit: Taur Loafing + pixel_y = (tail_style.can_loaf && resting) ? -tail_style.loaf_offset : 0 //move player down, then taur up, to fit the overlays correctly // VOREStation Edit: Taur Loafing if(tail_style.do_colouration) tail_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode) if(tail_style.extra_overlay) - var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay) + var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = (tail_style?.can_loaf && resting) ? "[tail_style.extra_overlay]_loaf" : tail_style.extra_overlay) // VOREStation Edit: Taur Loafing if(wagging && tail_style.ani_state) overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay_w) overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode) @@ -1267,6 +1281,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() if(istaurtail(tail_style)) var/datum/sprite_accessory/tail/taur/taurtype = tail_style working.pixel_x = -16 + working.pixel_y = (tail_style.can_loaf && resting) ? tail_style.loaf_offset : 0 // VOREStation Edit: Taur Loafing if(taurtype.can_ride && !riding_datum) riding_datum = new /datum/riding/taur(src) verbs |= /mob/living/carbon/human/proc/taur_mount diff --git a/code/modules/mob/new_player/sprite_accessories_tail.dm b/code/modules/mob/new_player/sprite_accessories_tail.dm index 06dcdb9ebb0..f5b6aefe4a7 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail.dm @@ -25,6 +25,10 @@ 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 + // VOREStation Edit: Taur Loafing + var/can_loaf = FALSE + var/loaf_offset = 0 + //species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files /datum/sprite_accessory/tail/New() diff --git a/code/modules/mob/new_player/sprite_accessories_taur_vr.dm b/code/modules/mob/new_player/sprite_accessories_taur_vr.dm index 2a574510b04..4eee0021770 100644 --- a/code/modules/mob/new_player/sprite_accessories_taur_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_taur_vr.dm @@ -419,6 +419,8 @@ extra_overlay = "drake_markings" suit_sprites = 'icons/mob/taursuits_drake_vr.dmi' icon_sprite_tag = "drake" + can_loaf = TRUE // VOREStation Edit: Taur Loafing + loaf_offset = 6 // VOREStation Edit: Taur Loafing /datum/sprite_accessory/tail/taur/ch/fatdrake name = "Drake (Fat Taur dual-color)" @@ -614,4 +616,4 @@ extra_overlay2 = "noodle_markings_2" suit_sprites = 'icons/mob/taursuits_noodle_vr.dmi' clip_mask_state = "taur_clip_mask_noodle" - icon_sprite_tag = "noodle" \ No newline at end of file + icon_sprite_tag = "noodle" diff --git a/icons/mob/vore/taurs_vr.dmi b/icons/mob/vore/taurs_vr.dmi index 20ddaee2a40..8ae4803803c 100644 Binary files a/icons/mob/vore/taurs_vr.dmi and b/icons/mob/vore/taurs_vr.dmi differ