[gd_resource type="BehaviorTree" load_steps=49 format=3 uid="uid://c2u6sljqkim0n"] [ext_resource type="Script" path="res://demo/ai/tasks/get_first_in_group.gd" id="1_08fik"] [ext_resource type="Script" path="res://demo/ai/tasks/select_flanking_pos.gd" id="2_te3yo"] [ext_resource type="Script" path="res://demo/ai/tasks/arrive_pos.gd" id="3_svwk8"] [ext_resource type="Script" path="res://demo/ai/tasks/face_target.gd" id="4_mvsyw"] [ext_resource type="Script" path="res://demo/ai/tasks/pursue.gd" id="5_r1ou0"] [sub_resource type="BlackboardPlan" id="BlackboardPlan_46tbn"] var/speed/name = &"speed" var/speed/type = 3 var/speed/value = 400.0 var/speed/hint = 1 var/speed/hint_string = "10,1000,10" var/flank_speed/name = &"flank_speed" var/flank_speed/type = 3 var/flank_speed/value = 600.0 var/flank_speed/hint = 1 var/flank_speed/hint_string = "10,1000,10" [sub_resource type="BBNode" id="BBNode_nrd4b"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_qiw21"] animation_player = SubResource("BBNode_nrd4b") animation_name = &"idle" blend = 0.1 [sub_resource type="BTRandomWait" id="BTRandomWait_xlud8"] min_duration = 0.7 max_duration = 1.5 [sub_resource type="BTAction" id="BTAction_c4cxo"] script = ExtResource("1_08fik") group = &"player" output_var = &"target" [sub_resource type="BTSequence" id="BTSequence_yhjh1"] custom_name = "Pause before action" children = [SubResource("BTPlayAnimation_qiw21"), SubResource("BTRandomWait_xlud8"), SubResource("BTAction_c4cxo")] [sub_resource type="BBNode" id="BBNode_kc64r"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_panch"] animation_player = SubResource("BBNode_kc64r") animation_name = &"walk" blend = 0.1 speed = 1.5 [sub_resource type="BTAction" id="BTAction_6e48s"] script = ExtResource("2_te3yo") target_var = &"target" flank_side = 1 range_min = 400 range_max = 600 position_var = &"flank_pos" [sub_resource type="BTAction" id="BTAction_66hsk"] script = ExtResource("3_svwk8") target_position_var = &"flank_pos" speed_var = &"flank_speed" tolerance = 50.0 avoid_var = &"target" [sub_resource type="BTTimeLimit" id="BTTimeLimit_24ath"] children = [SubResource("BTAction_66hsk")] [sub_resource type="BTAction" id="BTAction_enw2m"] script = ExtResource("4_mvsyw") target_var = &"target" [sub_resource type="BTSequence" id="BTSequence_lhg7f"] custom_name = "Flank player" children = [SubResource("BTPlayAnimation_panch"), SubResource("BTAction_6e48s"), SubResource("BTTimeLimit_24ath"), SubResource("BTAction_enw2m")] metadata/_weight_ = 1.0 [sub_resource type="BTCooldown" id="BTCooldown_skw41"] duration = 6.0 children = [SubResource("BTSequence_lhg7f")] metadata/_weight_ = 2.0 [sub_resource type="BBNode" id="BBNode_wpj6d"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_olf37"] animation_player = SubResource("BBNode_wpj6d") animation_name = &"walk" blend = 0.1 [sub_resource type="BTAction" id="BTAction_a4jqi"] script = ExtResource("5_r1ou0") target_var = &"target" speed_var = &"speed" approach_distance = 100.0 [sub_resource type="BTTimeLimit" id="BTTimeLimit_xek5v"] time_limit = 2.0 children = [SubResource("BTAction_a4jqi")] [sub_resource type="BTAction" id="BTAction_kidxn"] script = ExtResource("4_mvsyw") target_var = &"target" [sub_resource type="BTWait" id="BTWait_tadkc"] duration = 0.1 [sub_resource type="BBNode" id="BBNode_g8qww"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_a8yqu"] await_completion = 2.0 animation_player = SubResource("BBNode_g8qww") animation_name = &"attack_2" [sub_resource type="BTWait" id="BTWait_vjstl"] duration = 0.1 [sub_resource type="BBNode" id="BBNode_rfop0"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_8oyw6"] await_completion = 2.0 animation_player = SubResource("BBNode_rfop0") animation_name = &"attack_3" [sub_resource type="BTSequence" id="BTSequence_1xfnq"] custom_name = "Approach and melee attack" children = [SubResource("BTPlayAnimation_olf37"), SubResource("BTTimeLimit_xek5v"), SubResource("BTAction_kidxn"), SubResource("BTWait_tadkc"), SubResource("BTPlayAnimation_a8yqu"), SubResource("BTWait_vjstl"), SubResource("BTPlayAnimation_8oyw6")] metadata/_weight_ = 4.0 [sub_resource type="BTAction" id="BTAction_mf87t"] script = ExtResource("2_te3yo") target_var = &"target" flank_side = 0 range_min = 350 range_max = 600 position_var = &"pos" [sub_resource type="BBNode" id="BBNode_cx111"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_mfbeu"] animation_player = SubResource("BBNode_cx111") animation_name = &"walk" blend = 0.1 [sub_resource type="BTAction" id="BTAction_6nx58"] script = ExtResource("3_svwk8") target_position_var = &"pos" speed_var = &"speed" tolerance = 50.0 avoid_var = &"" [sub_resource type="BTTimeLimit" id="BTTimeLimit_tidwl"] time_limit = 3.0 children = [SubResource("BTAction_6nx58")] [sub_resource type="BTAction" id="BTAction_8q20y"] script = ExtResource("4_mvsyw") target_var = &"target" [sub_resource type="BBNode" id="BBNode_s6vt4"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_qa8jy"] animation_player = SubResource("BBNode_s6vt4") animation_name = &"throw_prepare" blend = 0.1 speed = 0.7 [sub_resource type="BTWait" id="BTWait_gbcyb"] [sub_resource type="BBNode" id="BBNode_qkfqt"] saved_value = NodePath("AnimationPlayer") resource_name = "AnimationPlayer" [sub_resource type="BTPlayAnimation" id="BTPlayAnimation_0ktds"] await_completion = 1.0 animation_player = SubResource("BBNode_qkfqt") animation_name = &"throw" blend = 0.05 [sub_resource type="BBNode" id="BBNode_1yxc5"] saved_value = NodePath(".") resource_name = "." [sub_resource type="BTCallMethod" id="BTCallMethod_yx4fk"] node = SubResource("BBNode_1yxc5") method = &"throw_ninja_star" [sub_resource type="BTRandomWait" id="BTRandomWait_2pmoe"] max_duration = 1.5 [sub_resource type="BTSequence" id="BTSequence_rgbq3"] custom_name = "Throw ninja star" children = [SubResource("BTAction_mf87t"), SubResource("BTPlayAnimation_mfbeu"), SubResource("BTTimeLimit_tidwl"), SubResource("BTAction_8q20y"), SubResource("BTPlayAnimation_qa8jy"), SubResource("BTWait_gbcyb"), SubResource("BTPlayAnimation_0ktds"), SubResource("BTCallMethod_yx4fk"), SubResource("BTRandomWait_2pmoe")] metadata/_weight_ = 2.0 [sub_resource type="BTProbabilitySelector" id="BTProbabilitySelector_rjsiq"] abort_on_failure = true children = [SubResource("BTCooldown_skw41"), SubResource("BTSequence_1xfnq"), SubResource("BTSequence_rgbq3")] [sub_resource type="BTSequence" id="BTSequence_pxl2k"] custom_name = "Main" children = [SubResource("BTSequence_yhjh1"), SubResource("BTProbabilitySelector_rjsiq")] [resource] description = "[comp]ProbabilitySelector[/comp] chooses a child task to execute based on attached probabilities. Probability distribution is calculated based on weights assigned to each child task. " blackboard_plan = SubResource("BlackboardPlan_46tbn") root_task = SubResource("BTSequence_pxl2k")