feat: WIP find weapon behaviour branch

This commit is contained in:
Sara Gerretsen 2026-03-17 23:48:19 +01:00
parent 86d8fe9a8e
commit 425525e56f
8 changed files with 86 additions and 39 deletions

View file

@ -4,7 +4,9 @@
[ext_resource type="PackedScene" uid="uid://cpedp17gycei5" path="res://behaviours/branches/sequence_hit_high.tscn" id="1_jqoh2"]
[ext_resource type="Script" uid="uid://ywfmsbsdc6s7" path="res://behaviours/select_target.gd" id="2_1p4o0"]
[ext_resource type="Script" uid="uid://bp4utstetxnhr" path="res://behaviours/animate.gd" id="3_o2gvu"]
[ext_resource type="Script" uid="uid://cn8wlp7qayg1n" path="res://behaviours/check_weapon.gd" id="4_1fc8h"]
[ext_resource type="PackedScene" uid="uid://blpbabfwxdvfr" path="res://behaviours/branches/sequence_jab_chain.tscn" id="4_xqvpn"]
[ext_resource type="Script" uid="uid://bavm4ks4nsdbe" path="res://behaviours/find_weapon.gd" id="5_bmb0k"]
[sub_resource type="GDScript" id="GDScript_xqvpn"]
resource_name = "Wait"
@ -20,18 +22,6 @@ func _execute() -> int:
return Success if $Timer.time_left == 0 else Running if not body.hurt_high else Fail
"
[sub_resource type="GDScript" id="GDScript_o2gvu"]
resource_name = "AtPlayer"
script/source = "extends BehaviourAction
@onready var body := get_behaviour_tree().get_parent() as CharacterBody3D
func _enter() -> int:
if body.target == null or body.target.global_position.distance_to(body.global_position) > 1.2:
return Fail
return Success
"
[sub_resource type="GDScript" id="GDScript_1p4o0"]
resource_name = "ApproachTarget"
script/source = "extends BehaviourAction
@ -43,7 +33,10 @@ func _enter() -> int:
var full_angle := body.global_basis.z.signed_angle_to((body.global_position - body.target.global_position), Vector3.UP)
body.rotate_y(full_angle)
anim.play(\"run\", .1)
return Success
if body.target == null or body.target.global_position.distance_to(body.global_position) > 1.2:
return Fail
else:
return Success
"
[sub_resource type="GDScript" id="GDScript_41oev"]
@ -82,36 +75,59 @@ one_shot = true
[node name="SelectTarget" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence" unique_id=56930655]
script = ExtResource("2_1p4o0")
[node name="BehaviourAlwaysSuccess" type="BehaviourAlwaysSuccess" parent="BehaviourRepeater/BehaviourSelector/CombatSequence" unique_id=1246764318]
[node name="SelectorCombat" type="BehaviourSelector" parent="BehaviourRepeater/BehaviourSelector/CombatSequence" unique_id=460186240]
[node name="BehaviourSequence" type="BehaviourSequence" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess" unique_id=560445563]
[node name="SequenceFindWeapon" type="BehaviourSequence" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat" unique_id=2110472996]
[node name="BehaviourSelector" type="BehaviourSelector" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence" unique_id=1389418648]
[node name="IsUnarmed" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/SequenceFindWeapon" unique_id=1668738825]
script = ExtResource("4_1fc8h")
[node name="AtPlayer" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence/BehaviourSelector" unique_id=1884043694]
script = SubResource("GDScript_o2gvu")
[node name="FindWeapon" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/SequenceFindWeapon" unique_id=2113011800]
script = ExtResource("5_bmb0k")
[node name="ApproachTarget" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence/BehaviourSelector" unique_id=2073752420]
[node name="BehaviourAlwaysSuccess" type="BehaviourAlwaysSuccess" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/SequenceFindWeapon" unique_id=734558409]
[node name="BehaviourSequence" type="BehaviourSequence" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/SequenceFindWeapon/BehaviourAlwaysSuccess" unique_id=356660420]
[node name="ApproachTarget" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/SequenceFindWeapon/BehaviourAlwaysSuccess/BehaviourSequence" unique_id=983176567]
script = SubResource("GDScript_1p4o0")
[node name="AtPlayer" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence" unique_id=1885476200]
script = SubResource("GDScript_o2gvu")
[node name="AlwaysSuccessAttack" type="BehaviourAlwaysSuccess" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat" unique_id=1246764318]
[node name="PlayReady" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence" unique_id=1015744062]
[node name="AttackSequence" type="BehaviourSequence" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/AlwaysSuccessAttack" unique_id=560445563]
[node name="SelectTarget" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/AlwaysSuccessAttack/AttackSequence" unique_id=1912259269]
script = ExtResource("2_1p4o0")
[node name="ApproachTarget" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/AlwaysSuccessAttack/AttackSequence" unique_id=2073752420]
script = SubResource("GDScript_1p4o0")
[node name="PlayReady" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/AlwaysSuccessAttack/AttackSequence" unique_id=1015744062]
script = ExtResource("3_o2gvu")
anim_name = "ready_unarmed"
wait_for_finish = false
[node name="Wait" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence" unique_id=1130580040]
[node name="Wait" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/AlwaysSuccessAttack/AttackSequence" unique_id=1130580040]
script = SubResource("GDScript_xqvpn")
[node name="Timer" type="Timer" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence/Wait" unique_id=332191936]
[node name="Timer" type="Timer" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/AlwaysSuccessAttack/AttackSequence/Wait" unique_id=332191936]
wait_time = 0.2
one_shot = true
[node name="SequenceJabChain" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/BehaviourAlwaysSuccess/BehaviourSequence" unique_id=376452224 instance=ExtResource("4_xqvpn")]
[node name="SequenceJabChain" parent="BehaviourRepeater/BehaviourSelector/CombatSequence/SelectorCombat/AlwaysSuccessAttack/AttackSequence" unique_id=376452224 instance=ExtResource("4_xqvpn")]
[node name="Idle" type="BehaviourAction" parent="BehaviourRepeater/BehaviourSelector" unique_id=2051783162]
script = SubResource("GDScript_41oev")
[node name="SequenceFindWeapon" type="BehaviourSequence" parent="." unique_id=1390744936]
[node name="IsUnarmed" type="BehaviourAction" parent="SequenceFindWeapon" unique_id=1447353302]
script = ExtResource("4_1fc8h")
[node name="FindWeapon" type="BehaviourAction" parent="SequenceFindWeapon" unique_id=328604984]
script = ExtResource("5_bmb0k")
[node name="ApproachTarget" type="BehaviourAction" parent="SequenceFindWeapon" unique_id=1540477164]
script = SubResource("GDScript_1p4o0")
[editable path="BehaviourRepeater/BehaviourSelector/SequenceHitHigh"]