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.
This commit is contained in:
Verkister
2020-05-08 22:54:11 +03:00
parent 0b8872b801
commit a66eafb5cd
14 changed files with 19 additions and 13 deletions
+2
View File
@@ -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)
+2
View File
@@ -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)
+1 -1
View File
@@ -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.
@@ -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()
@@ -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)
T.apply_effect(3, WEAKEN, armor_block)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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