156 lines
5.4 KiB
Plaintext
156 lines
5.4 KiB
Plaintext
[gd_resource type="BehaviorTree" load_steps=35 format=3 uid="uid://cpxk7jnqpwwlc"]
|
||
|
||
[ext_resource type="Script" path="res://demo/ai/tasks/select_random_nearby_pos.gd" id="1_sgn0p"]
|
||
[ext_resource type="Script" path="res://demo/ai/tasks/arrive_pos.gd" id="2_pshl2"]
|
||
|
||
[sub_resource type="BlackboardPlan" id="BlackboardPlan_58oq1"]
|
||
var/speed/name = &"speed"
|
||
var/speed/type = 3
|
||
var/speed/value = 300.0
|
||
var/speed/hint = 1
|
||
var/speed/hint_string = "10,1000,10"
|
||
var/summon_cooldown/name = &"summon_cooldown"
|
||
var/summon_cooldown/type = 1
|
||
var/summon_cooldown/value = false
|
||
var/summon_cooldown/hint = 0
|
||
var/summon_cooldown/hint_string = ""
|
||
|
||
[sub_resource type="BBNode" id="BBNode_b7euf"]
|
||
resource_name = "AnimationPlayer"
|
||
saved_value = NodePath("AnimationPlayer")
|
||
|
||
[sub_resource type="BTPlayAnimation" id="BTPlayAnimation_sot6a"]
|
||
animation_player = SubResource("BBNode_b7euf")
|
||
animation_name = &"idle"
|
||
blend = 0.1
|
||
|
||
[sub_resource type="BTRandomWait" id="BTRandomWait_0wc6p"]
|
||
|
||
[sub_resource type="BTSequence" id="BTSequence_kwkxc"]
|
||
custom_name = "Summoning sickness"
|
||
children = [SubResource("BTPlayAnimation_sot6a"), SubResource("BTRandomWait_0wc6p")]
|
||
|
||
[sub_resource type="BTRunLimit" id="BTRunLimit_x2jr4"]
|
||
children = [SubResource("BTSequence_kwkxc")]
|
||
|
||
[sub_resource type="BBVariant" id="BBVariant_y3x7n"]
|
||
resource_name = "6"
|
||
saved_value = 6
|
||
type = 2
|
||
|
||
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_olmdj"]
|
||
property = &"summon_count"
|
||
check_type = 1
|
||
value = SubResource("BBVariant_y3x7n")
|
||
|
||
[sub_resource type="BTComment" id="BTComment_ef6y0"]
|
||
custom_name = "Variable $summon_cooldown is updated by the Cooldown task below"
|
||
|
||
[sub_resource type="BBVariant" id="BBVariant_hgde2"]
|
||
resource_name = "false"
|
||
saved_value = false
|
||
type = 1
|
||
|
||
[sub_resource type="BTCheckVar" id="BTCheckVar_hc3o3"]
|
||
children = [SubResource("BTComment_ef6y0")]
|
||
variable = &"summon_cooldown"
|
||
value = SubResource("BBVariant_hgde2")
|
||
|
||
[sub_resource type="BBNode" id="BBNode_q8bei"]
|
||
resource_name = "AnimationPlayer"
|
||
saved_value = NodePath("AnimationPlayer")
|
||
|
||
[sub_resource type="BTPlayAnimation" id="BTPlayAnimation_6leni"]
|
||
animation_player = SubResource("BBNode_q8bei")
|
||
animation_name = &"summon"
|
||
blend = 0.1
|
||
|
||
[sub_resource type="BTWait" id="BTWait_8og18"]
|
||
duration = 0.5
|
||
|
||
[sub_resource type="BTAction" id="BTAction_yeyns"]
|
||
script = ExtResource("1_sgn0p")
|
||
range_min = 300.0
|
||
range_max = 500.0
|
||
position_var = &"minion_pos"
|
||
|
||
[sub_resource type="BBVariant" id="BBVariant_wfjwy"]
|
||
resource_name = "$minion_pos"
|
||
value_source = 1
|
||
variable = &"minion_pos"
|
||
type = 5
|
||
|
||
[sub_resource type="BBNode" id="BBNode_v271m"]
|
||
resource_name = "."
|
||
saved_value = NodePath(".")
|
||
|
||
[sub_resource type="BTCallMethod" id="BTCallMethod_4ath5"]
|
||
node = SubResource("BBNode_v271m")
|
||
method = &"summon_minion"
|
||
args = Array[BBVariant]([SubResource("BBVariant_wfjwy")])
|
||
|
||
[sub_resource type="BTCooldown" id="BTCooldown_25f70"]
|
||
children = [SubResource("BTCallMethod_4ath5")]
|
||
duration = 6.0
|
||
cooldown_state_var = &"summon_cooldown"
|
||
|
||
[sub_resource type="BTWait" id="BTWait_tdhfn"]
|
||
|
||
[sub_resource type="BTSequence" id="BTSequence_2n742"]
|
||
custom_name = "Summon minion"
|
||
children = [SubResource("BTCheckAgentProperty_olmdj"), SubResource("BTCheckVar_hc3o3"), SubResource("BTPlayAnimation_6leni"), SubResource("BTWait_8og18"), SubResource("BTAction_yeyns"), SubResource("BTCooldown_25f70"), SubResource("BTWait_tdhfn")]
|
||
|
||
[sub_resource type="BTAction" id="BTAction_33wje"]
|
||
script = ExtResource("1_sgn0p")
|
||
range_min = 300.0
|
||
range_max = 700.0
|
||
position_var = &"pos"
|
||
|
||
[sub_resource type="BBNode" id="BBNode_w5fh2"]
|
||
resource_name = "AnimationPlayer"
|
||
saved_value = NodePath("AnimationPlayer")
|
||
|
||
[sub_resource type="BTPlayAnimation" id="BTPlayAnimation_qbxm8"]
|
||
animation_player = SubResource("BBNode_w5fh2")
|
||
animation_name = &"walk"
|
||
blend = 0.1
|
||
|
||
[sub_resource type="BTAction" id="BTAction_dfifw"]
|
||
script = ExtResource("2_pshl2")
|
||
target_position_var = &"pos"
|
||
speed_var = &"speed"
|
||
tolerance = 50.0
|
||
avoid_var = &""
|
||
|
||
[sub_resource type="BTTimeLimit" id="BTTimeLimit_i05cm"]
|
||
children = [SubResource("BTAction_dfifw")]
|
||
time_limit = 3.0
|
||
|
||
[sub_resource type="BBNode" id="BBNode_vinxt"]
|
||
resource_name = "AnimationPlayer"
|
||
saved_value = NodePath("AnimationPlayer")
|
||
|
||
[sub_resource type="BTPlayAnimation" id="BTPlayAnimation_t7drr"]
|
||
animation_player = SubResource("BBNode_vinxt")
|
||
animation_name = &"idle"
|
||
blend = 0.1
|
||
|
||
[sub_resource type="BTRandomWait" id="BTRandomWait_axjfh"]
|
||
|
||
[sub_resource type="BTSequence" id="BTSequence_ks71q"]
|
||
custom_name = "Chill"
|
||
children = [SubResource("BTPlayAnimation_t7drr"), SubResource("BTRandomWait_axjfh")]
|
||
|
||
[sub_resource type="BTSequence" id="BTSequence_dss4d"]
|
||
custom_name = "Reposition"
|
||
children = [SubResource("BTAction_33wje"), SubResource("BTPlayAnimation_qbxm8"), SubResource("BTTimeLimit_i05cm"), SubResource("BTSequence_ks71q")]
|
||
|
||
[sub_resource type="BTSelector" id="BTSelector_gp6q5"]
|
||
children = [SubResource("BTRunLimit_x2jr4"), SubResource("BTSequence_2n742"), SubResource("BTSequence_dss4d")]
|
||
|
||
[resource]
|
||
description = "[con]CheckAgentProperty[/con] examines the agent’s property value and compares it to a given value or a blackboard variable. In this example, it checks if the [color=cyan]summon_count[/color] property is less than 6.
|
||
You can also check or share a [dec]Cooldown[/dec] in different parts of the behavior tree if you provide a blackboard variable for the [dec]Cooldown[/dec] decorator to use. [con]CheckVar[/con] is responsible here for examining the cooldown variable named \"summon_cooldown\"."
|
||
blackboard_plan = SubResource("BlackboardPlan_58oq1")
|
||
root_task = SubResource("BTSelector_gp6q5")
|