[no gbp] fixes penguin ai runtimes (#87543)

This commit is contained in:
Ben10Omintrix
2024-10-30 17:22:52 +03:00
committed by GitHub
parent a1e2db1a16
commit 42d04dc857
2 changed files with 11 additions and 6 deletions

View File

@@ -10,10 +10,13 @@
var/emotes_blackboard_list = BB_EAT_EMOTES var/emotes_blackboard_list = BB_EAT_EMOTES
/datum/ai_planning_subtree/find_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) /datum/ai_planning_subtree/find_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
var/list/foods_list = controller.blackboard[food_list_key]
if(!length(foods_list))
CRASH("the types of food has not been supplied in the [food_list_key] key!")
if(controller.blackboard[BB_NEXT_FOOD_EAT] > world.time) if(controller.blackboard[BB_NEXT_FOOD_EAT] > world.time)
return return
if(!controller.blackboard_key_exists(found_food_key)) if(!controller.blackboard_key_exists(found_food_key))
controller.queue_behavior(finding_behavior, found_food_key, controller.blackboard[food_list_key]) controller.queue_behavior(finding_behavior, found_food_key, foods_list)
return return
controller.queue_behavior(/datum/ai_behavior/interact_with_target/eat_food, found_food_key, emotes_blackboard_list) controller.queue_behavior(/datum/ai_behavior/interact_with_target/eat_food, found_food_key, emotes_blackboard_list)
return SUBTREE_RETURN_FINISH_PLANNING return SUBTREE_RETURN_FINISH_PLANNING

View File

@@ -36,6 +36,13 @@
AddElement(/datum/element/pet_bonus, "honk") AddElement(/datum/element/pet_bonus, "honk")
AddElementTrait(TRAIT_WADDLING, INNATE_TRAIT, /datum/element/waddling) AddElementTrait(TRAIT_WADDLING, INNATE_TRAIT, /datum/element/waddling)
ADD_TRAIT(src, TRAIT_MOB_CAN_DIG, INNATE_TRAIT) ADD_TRAIT(src, TRAIT_MOB_CAN_DIG, INNATE_TRAIT)
var/static/list/fishable_objects = typecacheof(list(/turf/open/misc/ice))
ai_controller.set_blackboard_key(BB_FISHABLE_LIST, fishable_objects)
var/static/list/delicious_food = list(/obj/item/fish)
AddElement(/datum/element/basic_eating, heal_amt = 10, food_types = delicious_food)
ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(delicious_food))
if(!can_lay_eggs) if(!can_lay_eggs)
return return
AddComponent(\ AddComponent(\
@@ -48,11 +55,6 @@
max_eggs_held = 1,\ max_eggs_held = 1,\
egg_laid_callback = CALLBACK(src, PROC_REF(lay_penguin_egg)),\ egg_laid_callback = CALLBACK(src, PROC_REF(lay_penguin_egg)),\
) )
var/static/list/fishable_objects = typecacheof(list(/turf/open/misc/ice))
ai_controller.set_blackboard_key(BB_FISHABLE_LIST, fishable_objects)
var/static/list/delicious_food = list(/obj/item/fish)
AddElement(/datum/element/basic_eating, heal_amt = 10, food_types = delicious_food)
ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(delicious_food))
/mob/living/basic/pet/penguin/UnarmedAttack(atom/attack_target, proximity_flag, list/modifiers) /mob/living/basic/pet/penguin/UnarmedAttack(atom/attack_target, proximity_flag, list/modifiers)
. = ..() . = ..()