mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 11:38:12 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user