From a66eafb5cdaeefd81edc2afd4a59f8128418d79e Mon Sep 17 00:00:00 2001 From: Verkister Date: Fri, 8 May 2020 22:54:11 +0300 Subject: [PATCH] Another bunch of simplemob fixes -Fixes the issue with mob AI not getting properly disabled under player control. -Fixes mob eye overlays not respecting the mob's scaling setting. -Fixes the movement cooldown on logged in ridable mobs. -Fixes direwolf not getting belly icon when resting. -Makes the mob icon fullness check account for the mob's own size as well. --- code/controllers/subsystems/ai.dm | 2 ++ code/controllers/subsystems/aifast.dm | 2 ++ code/modules/ai/ai_holder_disabled.dm | 2 +- code/modules/mob/living/simple_mob/appearance.dm | 2 +- code/modules/mob/living/simple_mob/simple_mob_vr.dm | 3 ++- .../mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/horse.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/otie.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/panther.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/rat.dm | 4 ++-- code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm | 3 ++- 14 files changed, 19 insertions(+), 13 deletions(-) diff --git a/code/controllers/subsystems/ai.dm b/code/controllers/subsystems/ai.dm index 5ebbb22a2fe..a1bd5b542d8 100644 --- a/code/controllers/subsystems/ai.dm +++ b/code/controllers/subsystems/ai.dm @@ -26,6 +26,8 @@ SUBSYSTEM_DEF(ai) --currentrun.len if(!A || QDELETED(A) || A.busy) // Doesn't exist or won't exist soon or not doing it this tick continue + if(A.holder.client && !A.autopilot) + continue A.handle_strategicals() if(MC_TICK_CHECK) diff --git a/code/controllers/subsystems/aifast.dm b/code/controllers/subsystems/aifast.dm index f045a7fd35c..ce8cc612dd7 100644 --- a/code/controllers/subsystems/aifast.dm +++ b/code/controllers/subsystems/aifast.dm @@ -26,6 +26,8 @@ SUBSYSTEM_DEF(aifast) --currentrun.len if(!A || QDELETED(A) || A.busy) // Doesn't exist or won't exist soon or not doing it this tick continue + if(A.holder.client && !A.autopilot) + continue A.handle_tactics() if(MC_TICK_CHECK) diff --git a/code/modules/ai/ai_holder_disabled.dm b/code/modules/ai/ai_holder_disabled.dm index d68e2ecf5d3..64a7cf3cc4f 100644 --- a/code/modules/ai/ai_holder_disabled.dm +++ b/code/modules/ai/ai_holder_disabled.dm @@ -5,7 +5,7 @@ // If our holder is able to do anything. /datum/ai_holder/proc/can_act() - if(!holder) // Holder missing. + if(!holder || (holder.client && !autopilot)) // Holder missing or occupied. manage_processing(AI_NO_PROCESS) return FALSE if(holder.stat) // Dead or unconscious. diff --git a/code/modules/mob/living/simple_mob/appearance.dm b/code/modules/mob/living/simple_mob/appearance.dm index 05f758d7c46..14f09e9057f 100644 --- a/code/modules/mob/living/simple_mob/appearance.dm +++ b/code/modules/mob/living/simple_mob/appearance.dm @@ -65,7 +65,7 @@ if(!eye_layer) eye_layer = image(icon, "[icon_state]-eyes") eye_layer.plane = PLANE_LIGHTING_ABOVE - + eye_layer.appearance_flags = appearance_flags //VOREStation Edit. Make eye overlays respect the mob's scaling settings. add_overlay(eye_layer) /mob/living/simple_mob/proc/remove_eyes() diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index 257aaff7f26..86380b5b264 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -66,6 +66,7 @@ var/obj/belly/B = belly for(var/mob/living/M in B) new_fullness += M.size_multiplier + new_fullness = new_fullness / size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey. 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) @@ -430,4 +431,4 @@ var/armor_soak = get_armor_soak(T, "melee") T.apply_damage(20, HALLOSS,, armor_block, armor_soak) if(prob(33)) - T.apply_effect(3, WEAKEN, armor_block) \ No newline at end of file + T.apply_effect(3, WEAKEN, armor_block) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm index 7d32b7b3504..6a52dd69b4e 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm @@ -113,7 +113,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/corrupthound/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm index 46be5ed4bcf..5b96ab7ee8f 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm @@ -56,7 +56,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/deathclaw/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm index e6b33604b9a..323e0d9c9bf 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm @@ -80,7 +80,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/dragon/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm index 42ee04c4175..b58ebca5aec 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm @@ -72,7 +72,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/hippo/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm index b373dacfd72..8c9f08a4717 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm @@ -46,7 +46,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/horse/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm index 97313f4db15..cf75159b271 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm @@ -285,7 +285,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/otie/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm index e0e952d001f..23c6c4b1d3d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm @@ -51,7 +51,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/panther/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm index 1c5443f6f5c..11c19794f77 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm @@ -197,7 +197,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/rat/MouseDrop_T(mob/living/M, mob/living/user) return @@ -236,4 +236,4 @@ say_got_target = list("SQUEEK!") /datum/ai_holder/simple_mob/melee/rat - speak_chance = 3 + speak_chance = 2 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm index a8bc70ac0c2..65c64bb9f37 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm @@ -91,6 +91,7 @@ can_buckle = TRUE buckle_movable = TRUE buckle_lying = FALSE + vore_icons = SA_ICON_LIVING | SA_ICON_REST /mob/living/simple_mob/animal/wolf/direwolf/Login() . = ..() @@ -98,7 +99,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 2 /mob/living/simple_mob/animal/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user) return