feat: further ninja implementation

This commit is contained in:
Sara Gerretsen 2026-03-19 23:00:54 +01:00
parent edf06623b3
commit 524430003f
7 changed files with 120 additions and 28 deletions

View file

@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://hirlnhjbqv2u" path="res://assets/characters/bot.blend" id="1_fssyu"]
[ext_resource type="Script" uid="uid://bm6unenoiyy5h" path="res://behaviours/follow_target.gd" id="2_klwnj"]
[ext_resource type="Script" uid="uid://b2s7gavo263mo" path="res://behaviours/npc_idle.gd" id="3_klwnj"]
[ext_resource type="Script" uid="uid://bp4utstetxnhr" path="res://behaviours/animate.gd" id="3_klwnj"]
[ext_resource type="PackedScene" uid="uid://deuif6d8spece" path="res://objects/awareness_area.tscn" id="3_tpgvx"]
[sub_resource type="GDScript" id="GDScript_klwnj"]
@ -20,6 +20,31 @@ func _physics_process(delta : float):
move_and_slide()
"
[sub_resource type="GDScript" id="GDScript_jh7vn"]
resource_name = "EnemyInPlayerRange"
script/source = "extends BehaviourAction
@onready var body := get_behaviour_tree().get_parent() as CharacterBody3D
func _enter() -> int:
return Fail if body.find_targets().is_empty() else Success
"
[sub_resource type="GDScript" id="GDScript_exeof"]
resource_name = "SelectHidingSpot"
script/source = "extends BehaviourAction
var body := get_behaviour_tree().get_parent() as CharacterBody3D
func _enter() -> int:
var spot : Node3D = body.get_hiding_spot()
if spot:
body.target = spot
return Success
else:
return Fail
"
[sub_resource type="GDScript" id="GDScript_tpgvx"]
resource_name = "SelectPlayer"
script/source = "extends BehaviourAction
@ -37,7 +62,7 @@ albedo_color = Color(0.4745098, 0.16862746, 0.61960787, 1)
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_lyptg"]
radius = 0.30273438
[node name="bot" unique_id=1341242765 instance=ExtResource("1_fssyu")]
[node name="Ninja" unique_id=1341242765 instance=ExtResource("1_fssyu")]
script = SubResource("GDScript_klwnj")
[node name="BehaviourTree" type="BehaviourTree" parent="." index="0" unique_id=1843075231]
@ -46,18 +71,29 @@ script = SubResource("GDScript_klwnj")
[node name="BehaviourSelector" type="BehaviourSelector" parent="BehaviourTree/BehaviourRepeater" index="0" unique_id=487995934]
[node name="FollowPlayer" type="BehaviourSequence" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector" index="0" unique_id=1977466711]
[node name="SequenceCombat" type="BehaviourSequence" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector" index="0" unique_id=664462649]
[node name="SelectPlayer" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector/FollowPlayer" index="0" unique_id=92830272]
[node name="EnemyInPlayerRange" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector/SequenceCombat" index="0" unique_id=1499130003]
script = SubResource("GDScript_jh7vn")
[node name="SelectHidingSpot" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector/SequenceCombat" index="1" unique_id=1743644615]
script = SubResource("GDScript_exeof")
[node name="SequenceFollowPlayer" type="BehaviourSequence" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector" index="1" unique_id=1977466711]
[node name="SelectPlayer" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector/SequenceFollowPlayer" index="0" unique_id=92830272]
script = SubResource("GDScript_tpgvx")
[node name="FollowTarget" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector/FollowPlayer" index="1" unique_id=282888066]
[node name="FollowTarget" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector/SequenceFollowPlayer" index="1" unique_id=282888066]
script = ExtResource("2_klwnj")
target_distance = 3.0
[node name="Idle" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector" index="1" unique_id=1038185599]
[node name="Idle" type="BehaviourAction" parent="BehaviourTree/BehaviourRepeater/BehaviourSelector" index="2" unique_id=1038185599]
script = ExtResource("3_klwnj")
animation_name = "duck"
anim_name = "duck"
allow_interrupt = false
wait_for_finish = false
blend = 0.2
[node name="Mesh" parent="Character/Skeleton3D" parent_id_path=PackedInt32Array(750883464) index="0" unique_id=233192374]
material_override = SubResource("StandardMaterial3D_lyptg")
@ -70,6 +106,9 @@ root_motion_track = NodePath("Character/Skeleton3D:root")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CapsuleShape3D_lyptg")
[node name="AwarenessArea" parent="." index="4" unique_id=986494999 instance=ExtResource("3_tpgvx")]
[node name="HidingSpotAwareness" parent="." index="4" unique_id=986494999 instance=ExtResource("3_tpgvx")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.92650235, 0)
target_group = "HidingSpot"
[editable path="HidingSpotAwareness"]