diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 5c256e235a..2e0db163de 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1060,7 +1060,7 @@ default behaviour is: if(lying != lying_prev) lying_prev = lying update_transform() - + return canmove // Adds overlays for specific modifiers. @@ -1088,10 +1088,10 @@ default behaviour is: /mob/living/proc/is_sentient() return TRUE -/* //VOREStation Edit. We have a better system in place. + /mob/living/update_transform() // First, get the correct size. - var/desired_scale = icon_scale + var/desired_scale = size_multiplier //VOREStation edit for(var/datum/modifier/M in modifiers) if(!isnull(M.icon_scale_percent)) desired_scale *= M.icon_scale_percent @@ -1101,8 +1101,8 @@ default behaviour is: M.Scale(desired_scale) M.Translate(0, 16*(desired_scale-1)) src.transform = M - animate(src, transform = M, time = 10) -*/ //VOREStation Edit + //animate(src, transform = M, time = 10) //VOREStation edit + // This handles setting the client's color variable, which makes everything look a specific color. // This proc is here so it can be called without needing to check if the client exists, or if the client relogs. diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 450580fbb4..4c6d9312c4 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -314,6 +314,12 @@ else ma.icon_state = initial(icon_state) + //VOREStation edit start + var/vore_icon_state = update_vore_icon() + if(vore_icon_state) + ma.icon_state = vore_icon_state + //VOREStation edit end + if(has_hands) if(r_hand_sprite) ma.overlays += r_hand_sprite diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index 90d899fa08..faae913d44 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -44,21 +44,21 @@ var/obj/belly/B = belly for(var/mob/living/M in B) new_fullness += M.size_multiplier - new_fullness = round(new_fullness, 1) // Because intervals of 0.25 are going to make sprite artists cry. + new_fullness = round(new_fullness, 1) // Because intervals of 0.25 are going to make sprite artists cry. vore_fullness = min(vore_capacity, new_fullness) -/mob/living/simple_animal/update_icon() - . = ..() // Call sideways "parent" to decide state - if(vore_active) - update_fullness() - if(!vore_fullness) - return - else if(icon_state == icon_living && (vore_icons & SA_ICON_LIVING)) - icon_state = "[icon_state]-[vore_fullness]" - else if(icon_state == icon_dead && (vore_icons & SA_ICON_DEAD)) - icon_state = "[icon_state]-[vore_fullness]" - else if(icon_state == icon_rest && (vore_icons & SA_ICON_REST)) - icon_state = "[icon_state]-[vore_fullness]" +/mob/living/simple_animal/proc/update_vore_icon() + if(!vore_active) + return 0 + update_fullness() + if(!vore_fullness) + return 0 + else if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED)) && (vore_icons & SA_ICON_LIVING)) + return "[icon_living]-[vore_fullness]" + else if(stat >= DEAD && (vore_icons & SA_ICON_DEAD)) + return "[icon_dead]-[vore_fullness]" + else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest && (vore_icons & SA_ICON_REST)) + return "[icon_rest]-[vore_fullness]" /mob/living/simple_animal/proc/will_eat(var/mob/living/M) if(client) //You do this yourself, dick! diff --git a/code/modules/mob/living/simple_animal/vore/badboi.dm b/code/modules/mob/living/simple_animal/vore/badboi.dm index 11ede1c105..735d593891 100644 --- a/code/modules/mob/living/simple_animal/vore/badboi.dm +++ b/code/modules/mob/living/simple_animal/vore/badboi.dm @@ -51,7 +51,7 @@ vore_active = TRUE vore_capacity = 1 vore_pounce_chance = 30 - vore_icons = SA_ICON_LIVING + vore_icons = SA_ICON_LIVING | SA_ICON_REST vore_stomach_name = "fuel processor" vore_stomach_flavor = "You have ended up in the fuel processor of this corrupted machine. This place was definitely not designed with safety and comfort in mind. The heated and cramped surroundings oozing potent fluids all over your form, eager to do nothing less than breaking you apart to fuel its rampage for the next few days... hours... minutes? Oh dear..." diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm index 26057fc87b..766ed7a4ae 100644 --- a/code/modules/mob/living/simple_animal/vore/otie.dm +++ b/code/modules/mob/living/simple_animal/vore/otie.dm @@ -56,7 +56,7 @@ vore_active = 1 vore_capacity = 1 vore_pounce_chance = 20 - vore_icons = SA_ICON_LIVING + vore_icons = SA_ICON_LIVING | SA_ICON_REST /mob/living/simple_animal/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin' name = "mutated feral otie" diff --git a/code/modules/mob/living/simple_animal/vore/panther.dm b/code/modules/mob/living/simple_animal/vore/panther.dm index 3e723e68fc..454ef4d927 100644 --- a/code/modules/mob/living/simple_animal/vore/panther.dm +++ b/code/modules/mob/living/simple_animal/vore/panther.dm @@ -32,4 +32,4 @@ vore_active = 1 vore_capacity = 2 vore_pounce_chance = 10 - vore_icons = SA_ICON_LIVING + vore_icons = SA_ICON_LIVING | SA_ICON_REST diff --git a/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm b/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm index 1a5b0914cd..a8ce697d64 100644 --- a/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm +++ b/code/modules/mob/living/simple_animal/vore/zz_vore_overrides.dm @@ -65,7 +65,7 @@ icon_state = "queen_s" icon_living = "queen_s" icon_dead = "queen_dead" - vore_icons = SA_ICON_LIVING + vore_icons = SA_ICON_LIVING | SA_ICON_REST old_x = -16 old_y = 0 default_pixel_x = -16 @@ -77,6 +77,7 @@ /mob/living/simple_animal/hostile/alien/sentinel/praetorian icon = 'icons/mob/vore64x64.dmi' + vore_icons = SA_ICON_LIVING | SA_ICON_REST /mob/living/simple_animal/hostile/alien/queen/empress/mother vore_icons = 0 // NO VORE SPRITES diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm index 28f398ff99..9e957955b8 100644 --- a/code/modules/vore/resizing/resize_vr.dm +++ b/code/modules/vore/resizing/resize_vr.dm @@ -64,7 +64,7 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2 /mob/living/proc/resize(var/new_size, var/animate = TRUE) if(size_multiplier == new_size) return 1 - + size_multiplier = new_size //Change size_multiplier so that other items can interact with them if(animate) var/change = new_size - size_multiplier diff --git a/icons/mob/vore.dmi b/icons/mob/vore.dmi index a7b3569ba0..5d35a39232 100644 Binary files a/icons/mob/vore.dmi and b/icons/mob/vore.dmi differ diff --git a/icons/mob/vore64x64.dmi b/icons/mob/vore64x64.dmi index 22b55b1392..1f5522139b 100644 Binary files a/icons/mob/vore64x64.dmi and b/icons/mob/vore64x64.dmi differ