mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
[no gbp] fixes monkey disarming runtimes (#88332)
## About The Pull Request fixes some runtimes related to trying to remove things from a blackboard key list that arent tracked to begin with ## Why It's Good For The Game fixes monkey disarming runtimes ## Changelog 🆑 /🆑
This commit is contained in:
@@ -4,11 +4,18 @@
|
||||
/datum/ai_behavior/monkey_equip
|
||||
behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_REQUIRE_REACH
|
||||
|
||||
/datum/ai_behavior/monkey_equip/finish_action(datum/ai_controller/controller, success)
|
||||
/datum/ai_behavior/monkey_equip/setup(datum/ai_controller/controller, target_key)
|
||||
. = ..()
|
||||
var/obj/target = controller.blackboard[target_key]
|
||||
if(QDELETED(target))
|
||||
return FALSE
|
||||
set_movement_target(controller, target)
|
||||
|
||||
/datum/ai_behavior/monkey_equip/finish_action(datum/ai_controller/controller, success, target_key)
|
||||
. = ..()
|
||||
|
||||
if(!success) //Don't try again on this item if we failed
|
||||
controller.set_blackboard_key_assoc(BB_MONKEY_BLACKLISTITEMS, controller.blackboard[BB_MONKEY_PICKUPTARGET], TRUE)
|
||||
controller.set_blackboard_key_assoc(BB_MONKEY_BLACKLISTITEMS, controller.blackboard[target_key], TRUE)
|
||||
|
||||
controller.clear_blackboard_key(BB_MONKEY_PICKUPTARGET)
|
||||
|
||||
@@ -50,9 +57,8 @@
|
||||
return FALSE
|
||||
|
||||
/datum/ai_behavior/monkey_equip/ground
|
||||
required_distance = 0
|
||||
|
||||
/datum/ai_behavior/monkey_equip/ground/perform(seconds_per_tick, datum/ai_controller/controller)
|
||||
/datum/ai_behavior/monkey_equip/ground/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
|
||||
. = ..()
|
||||
if(equip_item(controller))
|
||||
return . | AI_BEHAVIOR_SUCCEEDED
|
||||
@@ -60,7 +66,7 @@
|
||||
|
||||
/datum/ai_behavior/monkey_equip/pickpocket
|
||||
|
||||
/datum/ai_behavior/monkey_equip/pickpocket/perform(seconds_per_tick, datum/ai_controller/controller)
|
||||
/datum/ai_behavior/monkey_equip/pickpocket/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
|
||||
. = ..()
|
||||
if(controller.blackboard[BB_MONKEY_PICKPOCKETING]) //We are pickpocketing, don't do ANYTHING!!!!
|
||||
return
|
||||
@@ -75,8 +81,6 @@
|
||||
finish_action(controller, FALSE)
|
||||
return
|
||||
|
||||
|
||||
|
||||
victim.visible_message(span_warning("[living_pawn] starts trying to take [target] from [victim]!"), span_danger("[living_pawn] tries to take [target]!"))
|
||||
|
||||
controller.set_blackboard_key(BB_MONKEY_PICKPOCKETING, TRUE)
|
||||
@@ -196,7 +200,7 @@
|
||||
|
||||
if(isnull(potential_weapon))
|
||||
controller.ai_interact(target = target, modifiers = disarm ? list(RIGHT_CLICK = TRUE) : null, combat_mode = TRUE)
|
||||
if(!isnull(holding_weapon))
|
||||
if(disarm && !isnull(holding_weapon) && controller.blackboard[BB_MONKEY_BLACKLISTITEMS][holding_weapon])
|
||||
controller.remove_thing_from_blackboard_key(BB_MONKEY_BLACKLISTITEMS, holding_weapon) //lets try to pickpocket it again!
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -171,11 +171,10 @@ have ways of interacting with a specific mob and control it.
|
||||
return FALSE
|
||||
|
||||
set_blackboard_key(BB_MONKEY_PICKUPTARGET, weapon)
|
||||
set_movement_target(type, weapon)
|
||||
if(pickpocket)
|
||||
queue_behavior(/datum/ai_behavior/monkey_equip/pickpocket)
|
||||
queue_behavior(/datum/ai_behavior/monkey_equip/pickpocket, BB_MONKEY_PICKUPTARGET)
|
||||
else
|
||||
queue_behavior(/datum/ai_behavior/monkey_equip/ground)
|
||||
queue_behavior(/datum/ai_behavior/monkey_equip/ground, BB_MONKEY_PICKUPTARGET)
|
||||
return TRUE
|
||||
|
||||
///Reactive events to being hit
|
||||
|
||||
Reference in New Issue
Block a user