[MIRROR] Fixes monkey AI runtimes [MDB IGNORE] (#17105)

* Fixes monkey AI runtimes (#70696)

* Fixes monkey combat runtime

* better monkey subtree

* Fixes monkey AI runtimes

Co-authored-by: Tastyfish <crazychris32@gmail.com>
This commit is contained in:
SkyratBot
2022-10-22 17:06:38 -04:00
committed by GitHub
co-authored by Tastyfish
parent f1500b8d4f
commit 726332bddf
2 changed files with 14 additions and 0 deletions
+10
View File
@@ -122,6 +122,7 @@
if(living_pawn.health >= MONKEY_FLEE_HEALTH)
finish_action(controller, TRUE) //we're back in bussiness
return
var/mob/living/target = null
@@ -153,6 +154,7 @@
if(!target || target.stat != CONSCIOUS)
finish_action(controller, TRUE) //Target == owned
return
if(isturf(target.loc) && !IS_DEAD_OR_INCAP(living_pawn)) // Check if they're a valid target
// check if target has a weapon
@@ -259,6 +261,10 @@
controller.current_movement_target = target
if(!target)
finish_action(controller, FALSE)
return
if(target.pulledby != living_pawn && !HAS_AI_CONTROLLER_TYPE(target.pulledby, /datum/ai_controller/monkey)) //Dont steal from my fellow monkeys.
if(living_pawn.Adjacent(target) && isturf(target.loc))
target.grabbedby(living_pawn)
@@ -268,6 +274,10 @@
var/obj/machinery/disposal/disposal = disposal_ref.resolve()
controller.current_movement_target = disposal
if(!disposal)
finish_action(controller, FALSE)
return
if(living_pawn.Adjacent(disposal))
INVOKE_ASYNC(src, .proc/try_disposal_mob, controller, attack_target_key, disposal_target_key) //put him in!
else //This means we might be getting pissed!
+4
View File
@@ -41,6 +41,10 @@
var/datum/weakref/target_ref = controller.blackboard[BB_MONKEY_CURRENT_ATTACK_TARGET]
var/mob/living/selected_enemy = target_ref?.resolve()
if(!selected_enemy)
living_pawn.set_combat_mode(FALSE)
return
if(!selected_enemy.stat) //He's up, get him!
if(living_pawn.health < MONKEY_FLEE_HEALTH) //Time to skeddadle
controller.queue_behavior(/datum/ai_behavior/monkey_flee)