From ccaebcbd7f210e4ea37eb95674b90f7a175aa766 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sat, 21 Aug 2021 00:49:09 -0400 Subject: [PATCH] Makes catslugs slightly less annoying Now they ONLY respond to psps, rather than everything except psps except when they are kicking your ass. Also makes it so simplemobs get up to kick your ass if you attack them when they are resting. --- code/modules/ai/ai_holder_targeting.dm | 4 ++ .../subtypes/animal/alien animals/catslug.dm | 40 +++++++++++++++---- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/code/modules/ai/ai_holder_targeting.dm b/code/modules/ai/ai_holder_targeting.dm index bf546bc2832..1e86d22b344 100644 --- a/code/modules/ai/ai_holder_targeting.dm +++ b/code/modules/ai/ai_holder_targeting.dm @@ -252,6 +252,10 @@ on_attacked(attacker) return FALSE + if(holder.resting) // I can't kill someone while I'm laying down! + ai_log("react_to_attack() : AI is resting. Getting up up.", AI_LOG_TRACE) + holder.lay_down() + if(stance == STANCE_SLEEP) // If we're asleep, try waking up if someone's wailing on us. ai_log("react_to_attack() : AI is asleep. Waking up.", AI_LOG_TRACE) go_wake() diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm index a9181e8329b..79007a082d8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm @@ -137,6 +137,17 @@ to_chat(user, "\The [user] feeds \the [O] to you.") playsound(src, 'sound/items/eatfood.ogg', 75, 1) +/mob/living/simple_mob/vore/alienanimals/catslug/attack_hand(mob/living/carbon/human/M as mob) + if(stat == DEAD) + return ..() + if(M.a_intent == I_HELP && resting) + M.visible_message("\The [M.name] shakes \the [src] awake from their nap.","You shake \the [src] awake!") + playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + lay_down() + ai_holder.go_wake() + return + return ..() + /mob/living/simple_mob/vore/alienanimals/catslug/Life() . = ..() if(nutrition < 150) @@ -178,19 +189,32 @@ color = newcolor picked_color = TRUE -/datum/ai_holder/simple_mob/melee/evasive/catslug/handle_wander_movement() - if(holder.client) - return +/datum/ai_holder/simple_mob/melee/evasive/catslug/proc/consider_awakening() if(holder.resting) - if(prob(5)) - holder.lay_down() - return - if(prob(0.5)) holder.lay_down() + go_wake() + +/datum/ai_holder/simple_mob/melee/evasive/catslug/handle_wander_movement() + if(holder.client || holder.resting) return - return ..() + else if(prob(0.5)) + holder.lay_down() + go_sleep() + addtimer(CALLBACK(src, .proc/consider_awakening), rand(1 MINUTE, 5 MINUTES), TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) + else + return ..() + /datum/ai_holder/simple_mob/melee/evasive/catslug/on_hear_say(mob/living/speaker, message) + if(holder.client) + return + if(!speaker.client) + return + if(findtext(message, "psps") && stance == STANCE_IDLE) + set_follow(speaker, follow_for = 5 SECONDS) + +/mob/living/simple_mob/vore/alienanimals/catslug/horrible +/datum/ai_holder/simple_mob/melee/evasive/catslug/horrible/on_hear_say(mob/living/speaker, message) //this was an accident originally but it was very funny so here you go if(holder.client) return if(!speaker.client)