Demo: Assets, scenes & animations for the new demo

This commit is contained in:
Ola S. 2024-01-30 12:10:12 +01:00 committed by Serhii Snitsaruk
parent dd3eebabf1
commit 55fb102838
66 changed files with 9179 additions and 554 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://g1pnvanyxcpa"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_n83hi"]
[ext_resource type="Texture2D" uid="uid://ce16nc0wy2s8" path="res://demo/assets/agent_charger.png" id="2_y7pic"]
[node name="Bobby" instance=ExtResource("1_n83hi")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_y7pic")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_y7pic")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_y7pic")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_y7pic")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_y7pic")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_y7pic")

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://jb504ogmwmjk"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_115kp"]
[ext_resource type="Texture2D" uid="uid://d1tx7u8ho0r4v" path="res://demo/assets/agent_demon.png" id="2_cb5f2"]
[node name="Bobby" instance=ExtResource("1_115kp")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_cb5f2")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_cb5f2")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_cb5f2")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_cb5f2")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_cb5f2")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_cb5f2")

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://blxmw2w1h2s0s"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_fkh4o"]
[ext_resource type="Texture2D" uid="uid://bo0ibp7tvjbba" path="res://demo/assets/agent_fencer.png" id="2_r3phr"]
[node name="Bobby" instance=ExtResource("1_fkh4o")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_r3phr")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_r3phr")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_r3phr")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_r3phr")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_r3phr")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_r3phr")

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://jb504ogmwmjk"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_y8fj3"]
[ext_resource type="Texture2D" uid="uid://h70okn6hmxum" path="res://demo/assets/agent_imp.png" id="2_iv43q"]
[node name="Bobby" instance=ExtResource("1_y8fj3")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_iv43q")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_iv43q")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_iv43q")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_iv43q")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_iv43q")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_iv43q")

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://2e4ohaqjaawb"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_afx5l"]
[ext_resource type="Texture2D" uid="uid://usu3j55d6dgc" path="res://demo/assets/agent_melee_nuanced.png" id="2_e51r0"]
[node name="Bobby" instance=ExtResource("1_afx5l")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_e51r0")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_e51r0")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_e51r0")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_e51r0")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_e51r0")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_e51r0")

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://comfxjrcylgb"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_l180o"]
[ext_resource type="Texture2D" uid="uid://cw8s50856x8ct" path="res://demo/assets/agent_melee_simple.png" id="2_bvbes"]
[node name="Bobby" instance=ExtResource("1_l180o")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_bvbes")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_bvbes")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_bvbes")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_bvbes")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_bvbes")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_bvbes")

View File

@ -0,0 +1,5 @@
[gd_scene load_steps=2 format=3 uid="uid://d07ag5dcje13i"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_aybxr"]
[node name="AgentPlayer" instance=ExtResource("1_aybxr")]

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://ci3x5esepbu5v"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_oa4xm"]
[ext_resource type="Texture2D" uid="uid://cjts4ennjtepg" path="res://demo/assets/agent_ranged.png" id="2_37lvn"]
[node name="Bobby" instance=ExtResource("1_oa4xm")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_37lvn")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_37lvn")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_37lvn")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_37lvn")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_37lvn")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_37lvn")

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://co6yeafaljbq0"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_2ir76"]
[ext_resource type="Texture2D" uid="uid://l042ovqqsy3l" path="res://demo/assets/agent_skirmisher.png" id="2_w8tqw"]
[node name="Bobby" instance=ExtResource("1_2ir76")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_w8tqw")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_w8tqw")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_w8tqw")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_w8tqw")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_w8tqw")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_w8tqw")

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://bycvi2fb0f7ue"]
[ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_neifu"]
[ext_resource type="Texture2D" uid="uid://ombnpn2edldt" path="res://demo/assets/agent_summoner.png" id="2_fcti4"]
[node name="Bobby" instance=ExtResource("1_neifu")]
[node name="LegL" parent="Rig" index="0"]
texture = ExtResource("2_fcti4")
[node name="LegR" parent="Rig" index="1"]
texture = ExtResource("2_fcti4")
[node name="Body" parent="Rig" index="2"]
texture = ExtResource("2_fcti4")
[node name="Hat" parent="Rig/Body" index="0"]
texture = ExtResource("2_fcti4")
[node name="HandL" parent="Rig/Body" index="1"]
texture = ExtResource("2_fcti4")
[node name="HandR" parent="Rig/Body" index="2"]
texture = ExtResource("2_fcti4")

View File

@ -1,37 +0,0 @@
#*
#* arrive_pos.gd
#* =============================================================================
#* Copyright 2021-2023 Serhii Snitsaruk
#*
#* Use of this source code is governed by an MIT-style
#* license that can be found in the LICENSE file or at
#* https://opensource.org/licenses/MIT.
#* =============================================================================
#*
@tool
@icon("res://icon.png")
extends BTAction
@export var target_position_var := "target_position"
@export var speed_var := "speed"
@export var tolerance := 50.0
@warning_ignore("native_method_override") # needed for GDExtension version.
func _generate_name() -> String:
return "Arrive pos: %s speed: %s" % [
LimboUtility.decorate_var(target_position_var),
LimboUtility.decorate_var(speed_var),
]
@warning_ignore("native_method_override")
func _tick(p_delta: float) -> Status:
var target_pos: Vector2 = blackboard.get_var(target_position_var, Vector2.ZERO)
if target_pos.distance_to(agent.global_position) < tolerance:
return SUCCESS
var speed: float = blackboard.get_var(speed_var, 10.0)
var dir: Vector2 = agent.global_position.direction_to(target_pos)
agent.global_position += dir * speed * p_delta
return RUNNING

View File

@ -1,49 +0,0 @@
[gd_resource type="BehaviorTree" load_steps=11 format=3 uid="uid://cvm3gqes75f53"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_a1pq1"]
var/triggered/name = "triggered"
var/triggered/type = 1
var/triggered/value = false
var/triggered/hint = 0
var/triggered/hint_string = ""
[sub_resource type="BBVariant" id="BBVariant_8bpg1"]
resource_name = "false"
saved_value = false
type = 1
[sub_resource type="BTCheckVar" id="BTCheckVar_g5b0s"]
variable = "triggered"
value = SubResource("BBVariant_8bpg1")
[sub_resource type="BBVariant" id="BBVariant_loenl"]
resource_name = "true"
saved_value = true
type = 1
[sub_resource type="BTSetVar" id="BTSetVar_u051c"]
variable = "triggered"
value = SubResource("BBVariant_loenl")
[sub_resource type="BBVariant" id="BBVariant_cu1uc"]
resource_name = "Hello, World!"
saved_value = "Hello, World!"
type = 4
[sub_resource type="BTSetVar" id="BTSetVar_2e0uw"]
variable = "_message"
value = SubResource("BBVariant_cu1uc")
[sub_resource type="BTConsolePrint" id="BTConsolePrint_533ui"]
text = "Message is: %s"
bb_format_parameters = PackedStringArray("_message")
[sub_resource type="BTSequence" id="BTSequence_bhar3"]
children = [SubResource("BTCheckVar_g5b0s"), SubResource("BTSetVar_u051c"), SubResource("BTSetVar_2e0uw"), SubResource("BTConsolePrint_533ui")]
[sub_resource type="BTSelector" id="BTSelector_ndrjh"]
children = [SubResource("BTSequence_bhar3")]
[resource]
blackboard_plan = SubResource("BlackboardPlan_a1pq1")
root_task = SubResource("BTSelector_ndrjh")

View File

@ -1,52 +0,0 @@
[gd_resource type="BehaviorTree" load_steps=11 format=3 uid="uid://cjkqi41oagagd"]
[ext_resource type="Script" path="res://demo/ai/tasks/arrive_pos.gd" id="1_rhs33"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_2hcqi"]
var/speed/name = "speed"
var/speed/type = 3
var/speed/value = 200.0
var/speed/hint = 1
var/speed/hint_string = "10,1000,10"
var/waypoints/name = "waypoints"
var/waypoints/type = 28
var/waypoints/value = []
var/waypoints/hint = 0
var/waypoints/hint_string = "22:"
[sub_resource type="BTAction" id="BTAction_3xal7"]
script = ExtResource("1_rhs33")
target_position_var = "_wp"
speed_var = "speed"
tolerance = 50.0
[sub_resource type="BBNode" id="BBNode_0t2vk"]
resource_name = "AnimationPlayer"
saved_value = NodePath("AnimationPlayer")
[sub_resource type="BTPlayAnimation" id="BTPlayAnimation_s01ov"]
await_completion = 1.0
animation_player = SubResource("BBNode_0t2vk")
animation_name = &"bounce"
[sub_resource type="BTWait" id="BTWait_qs55a"]
duration = 0.1
[sub_resource type="BTSequence" id="BTSequence_a2ng0"]
children = [SubResource("BTAction_3xal7"), SubResource("BTPlayAnimation_s01ov"), SubResource("BTWait_qs55a")]
[sub_resource type="BTForEach" id="BTForEach_0cp04"]
children = [SubResource("BTSequence_a2ng0")]
array_var = "waypoints"
save_var = "_wp"
[sub_resource type="BTCooldown" id="BTCooldown_gen0l"]
children = [SubResource("BTForEach_0cp04")]
duration = 3.0
[sub_resource type="BTSelector" id="BTSelector_5dclr"]
children = [SubResource("BTCooldown_gen0l")]
[resource]
blackboard_plan = SubResource("BlackboardPlan_2hcqi")
root_task = SubResource("BTSelector_5dclr")

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dlo1ine6p5di4"
path="res://.godot/imported/agent_bobby.png-8c7c0553d4eefdb06245554fd2603238.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_bobby.png"
dest_files=["res://.godot/imported/agent_bobby.png-8c7c0553d4eefdb06245554fd2603238.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ce16nc0wy2s8"
path="res://.godot/imported/agent_charger.png-4fbef6fc86342f0b358c84f3e6790641.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_charger.png"
dest_files=["res://.godot/imported/agent_charger.png-4fbef6fc86342f0b358c84f3e6790641.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1tx7u8ho0r4v"
path="res://.godot/imported/agent_demon.png-8a62722d1d31985ee3a39cfef745c53a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_demon.png"
dest_files=["res://.godot/imported/agent_demon.png-8a62722d1d31985ee3a39cfef745c53a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bo0ibp7tvjbba"
path="res://.godot/imported/agent_fencer.png-289d0f406fd6917ada1d9dd1003e1532.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_fencer.png"
dest_files=["res://.godot/imported/agent_fencer.png-289d0f406fd6917ada1d9dd1003e1532.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://h70okn6hmxum"
path="res://.godot/imported/agent_imp.png-9fb23c43583296c91b2a8a01f05daad9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_imp.png"
dest_files=["res://.godot/imported/agent_imp.png-9fb23c43583296c91b2a8a01f05daad9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://usu3j55d6dgc"
path="res://.godot/imported/agent_melee_nuanced.png-653a64ea55e3175afadb5b209be8b1d0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_melee_nuanced.png"
dest_files=["res://.godot/imported/agent_melee_nuanced.png-653a64ea55e3175afadb5b209be8b1d0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cw8s50856x8ct"
path="res://.godot/imported/agent_melee_simple.png-78a6d279aa99849a5b7788dd5762650f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_melee_simple.png"
dest_files=["res://.godot/imported/agent_melee_simple.png-78a6d279aa99849a5b7788dd5762650f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cjts4ennjtepg"
path="res://.godot/imported/agent_ranged.png-a7be7db55c56f7b1c12ada6338a036cf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_ranged.png"
dest_files=["res://.godot/imported/agent_ranged.png-a7be7db55c56f7b1c12ada6338a036cf.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://l042ovqqsy3l"
path="res://.godot/imported/agent_skirmisher.png-fb22c42e0c82e689e3a451b83b1f6ff9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_skirmisher.png"
dest_files=["res://.godot/imported/agent_skirmisher.png-fb22c42e0c82e689e3a451b83b1f6ff9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ombnpn2edldt"
path="res://.godot/imported/agent_summoner.png-3beb6fd299df05d9586c6b74edd2bbc6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/agent_summoner.png"
dest_files=["res://.godot/imported/agent_summoner.png-3beb6fd299df05d9586c6b74edd2bbc6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://65b6yuobhxf8"
path="res://.godot/imported/env_clouds.png-28d790def9247e51c19b24eae86c1a64.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/env_clouds.png"
dest_files=["res://.godot/imported/env_clouds.png-28d790def9247e51c19b24eae86c1a64.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://i476iia1ua8q"
path="res://.godot/imported/env_gong.png-22c1657db8aed530e7d811b2b20b4a2d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/env_gong.png"
dest_files=["res://.godot/imported/env_gong.png-22c1657db8aed530e7d811b2b20b4a2d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cc7b22sy46gwn"
path="res://.godot/imported/env_ground.png-b29c6c47be0779294403cf6615d9dae2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/env_ground.png"
dest_files=["res://.godot/imported/env_ground.png-b29c6c47be0779294403cf6615d9dae2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4kw2ks8doc0w"
path="res://.godot/imported/env_plants.png-40a908ca223303e0aacba2fca71781c6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/env_plants.png"
dest_files=["res://.godot/imported/env_plants.png-40a908ca223303e0aacba2fca71781c6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3g14elmg0m36"
path="res://.godot/imported/env_rocks.png-12fea7b4727d1ddca76c06fd66910dd0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/env_rocks.png"
dest_files=["res://.godot/imported/env_rocks.png-12fea7b4727d1ddca76c06fd66910dd0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
demo/demo/assets/fx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://d0mht3ntak7e5" uid="uid://dj4oayt5ttvh8"
path="res://.godot/imported/godot.png-a8a26b1338954efbba9baa82b9ad4a96.ctex" path="res://.godot/imported/fx.png-6477c60e66067f48f360430ec23ddc02.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://demo/godot.png" source_file="res://demo/assets/fx.png"
dest_files=["res://.godot/imported/godot.png-a8a26b1338954efbba9baa82b9ad4a96.ctex"] dest_files=["res://.godot/imported/fx.png-6477c60e66067f48f360430ec23ddc02.ctex"]
[params] [params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://2uyxh7sy8qny"
path="res://.godot/imported/weapon_ninja_star.png-be058a7d9eff80095d1c513b22f898e0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/assets/weapon_ninja_star.png"
dest_files=["res://.godot/imported/weapon_ninja_star.png-be058a7d9eff80095d1c513b22f898e0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -1,16 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://d4bjeyescflm8"]
[ext_resource type="BehaviorTree" uid="uid://cvm3gqes75f53" path="res://demo/ai/trees/variables.tres" id="1_cm2sf"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_w5klr"]
var/triggered/name = "triggered"
var/triggered/type = 3
var/triggered/value = 0.0
var/triggered/hint = 0
var/triggered/hint_string = ""
[node name="Variables Example" type="Node2D"]
[node name="BTPlayer" type="BTPlayer" parent="."]
behavior_tree = ExtResource("1_cm2sf")
blackboard_plan = SubResource("BlackboardPlan_w5klr")

View File

@ -1,26 +0,0 @@
#*
#* example_waypoints.gd
#* =============================================================================
#* Copyright 2021-2023 Serhii Snitsaruk
#*
#* Use of this source code is governed by an MIT-style
#* license that can be found in the LICENSE file or at
#* https://opensource.org/licenses/MIT.
#* =============================================================================
#*
extends Node2D
@onready var agent1: CharacterBody2D = $Agent
@onready var agent2: CharacterBody2D = $Agent2
func _ready() -> void:
var waypoints: Array[Node] = $Waypoints.get_children()
for wp in waypoints:
agent1.add_waypoint(wp.global_position)
waypoints.reverse()
for wp in waypoints:
agent2.add_waypoint(wp.global_position)

View File

@ -1,30 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://p5i7fdku3hqs"]
[ext_resource type="Script" path="res://demo/examples/waypoints/example_waypoints.gd" id="1_d4sso"]
[ext_resource type="Script" path="res://demo/examples/waypoints/waypoint_marker.gd" id="2_l26sl"]
[ext_resource type="PackedScene" uid="uid://c26b8c8dndtop" path="res://demo/examples/waypoints/patrolling_agent.tscn" id="3_t4qgi"]
[node name="ExampleWaypoints" type="Node2D"]
script = ExtResource("1_d4sso")
[node name="Waypoints" type="Node2D" parent="."]
[node name="WP1" type="Marker2D" parent="Waypoints"]
position = Vector2(258, 126)
script = ExtResource("2_l26sl")
[node name="WP2" type="Marker2D" parent="Waypoints"]
position = Vector2(830, 131)
script = ExtResource("2_l26sl")
[node name="WP3" type="Marker2D" parent="Waypoints"]
position = Vector2(534, 492)
script = ExtResource("2_l26sl")
[node name="Agent" parent="." instance=ExtResource("3_t4qgi")]
y_sort_enabled = true
position = Vector2(57, 59)
[node name="Agent2" parent="." instance=ExtResource("3_t4qgi")]
y_sort_enabled = true
position = Vector2(316, 590)

View File

@ -1,23 +0,0 @@
#*
#* patrolling_agent.gd
#* =============================================================================
#* Copyright 2021-2023 Serhii Snitsaruk
#*
#* Use of this source code is governed by an MIT-style
#* license that can be found in the LICENSE file or at
#* https://opensource.org/licenses/MIT.
#* =============================================================================
#*
extends CharacterBody2D
@onready var bt_player: BTPlayer = $BTPlayer
func _ready() -> void:
bt_player.blackboard.set_var("waypoints", [])
func add_waypoint(p_waypoint: Vector2) -> void:
(bt_player.blackboard.get_var("waypoints") as Array).append(p_waypoint)

View File

@ -1,69 +0,0 @@
[gd_scene load_steps=8 format=3 uid="uid://c26b8c8dndtop"]
[ext_resource type="Script" path="res://demo/examples/waypoints/patrolling_agent.gd" id="1_5wwhb"]
[ext_resource type="BehaviorTree" uid="uid://cjkqi41oagagd" path="res://demo/ai/trees/waypoints.tres" id="2_66y4v"]
[ext_resource type="Texture2D" uid="uid://d0mht3ntak7e5" path="res://demo/godot.png" id="3_64ge2"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_b86q8"]
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/waypoints/name = "waypoints"
var/waypoints/type = 28
var/waypoints/value = []
var/waypoints/hint = 0
var/waypoints/hint_string = "22:"
[sub_resource type="Animation" id="Animation_5id00"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_4w16c"]
resource_name = "bounce"
length = 0.6
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3, 0.6),
"transitions": PackedFloat32Array(0.5, 2, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(2, 2), Vector2(1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_l438t"]
_data = {
"RESET": SubResource("Animation_5id00"),
"bounce": SubResource("Animation_4w16c")
}
[node name="PatrollingAgent" type="CharacterBody2D"]
script = ExtResource("1_5wwhb")
[node name="BTPlayer" type="BTPlayer" parent="."]
behavior_tree = ExtResource("2_66y4v")
blackboard_plan = SubResource("BlackboardPlan_b86q8")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("3_64ge2")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_l438t")
}

View File

@ -1,21 +0,0 @@
#*
#* waypoint_marker.gd
#* =============================================================================
#* Copyright 2021-2023 Serhii Snitsaruk
#*
#* Use of this source code is governed by an MIT-style
#* license that can be found in the LICENSE file or at
#* https://opensource.org/licenses/MIT.
#* =============================================================================
#*
@tool
extends Marker2D
func _ready() -> void:
queue_redraw()
func _draw() -> void:
draw_circle(Vector2.ZERO, 50.0, Color.CHARTREUSE)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

1
demo/demo/icon.svg Normal file
View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="256" height="256" style="fill:none;"/><clipPath id="_clip1"><rect id="Artboard11" serif:id="Artboard1" x="0" y="0" width="256" height="256"/></clipPath><g clip-path="url(#_clip1)"><g transform="matrix(0.231047,0,0,0.723164,-406.271,-1037.61)"><path d="M2866.39,1470.21c0,-19.538 -49.648,-35.4 -110.8,-35.4l-886.4,-0c-61.152,-0 -110.8,15.862 -110.8,35.4l0,283.2c0,19.538 49.648,35.4 110.8,35.4l886.4,-0c61.152,-0 110.8,-15.862 110.8,-35.4l0,-283.2Z" style="fill:rgb(54,61,74);"/></g><g transform="matrix(0.889952,0.337893,-0.337893,0.889952,-327.619,-2301.47)"><path d="M1455.6,2255.14c13.453,-0 24.372,10.918 24.372,24.371c-0,13.453 -10.919,24.372 -24.372,24.372c-13.453,-0 -24.371,-10.919 -24.371,-24.372c-0,-0.064 0.001,-0.127 0.003,-0.19c0,-0 -33.382,-14.915 -33.382,-14.915c-7.123,8.908 -18.043,14.66 -30.333,14.66c-8.941,0 -17.086,-3.117 -23.644,-8.2c-0,0 -35.906,26.837 -35.906,26.837c0.502,1.886 0.81,3.845 0.81,5.899c0,13.454 -10.918,24.372 -24.371,24.372c-13.453,-0 -24.371,-10.918 -24.371,-24.372c-0,-13.469 10.918,-24.371 24.371,-24.371c4.203,0 8.15,1.088 11.596,2.978c-0,0 35.835,-26.78 35.835,-26.78c-2.054,-4.708 -3.273,-9.843 -3.273,-15.315c0,-9.701 3.589,-18.529 9.448,-25.331c-0,0 -38.179,-55.05 -38.179,-55.05c-1.494,0.316 -3.034,0.513 -4.623,0.513c-13.453,-0 -24.372,-10.919 -24.372,-24.372c0,-13.469 10.919,-24.371 24.372,-24.371c13.453,0 24.371,10.902 24.371,24.371c0,4.674 -1.341,9.009 -3.632,12.717c-0,-0 38.126,54.971 38.126,54.971c4.187,-1.546 8.715,-2.401 13.442,-2.401c4.558,0 8.942,0.801 13.012,2.251c-0,0 28.625,-42.333 28.626,-42.333c-2.383,-3.752 -3.793,-8.171 -3.793,-12.942c0,-13.453 10.919,-24.371 24.372,-24.371c13.469,-0 24.371,10.918 24.371,24.371c0,13.453 -10.902,24.371 -24.371,24.371c-1.493,0 -2.945,-0.174 -4.357,-0.454c0,0 -28.649,42.356 -28.649,42.355c6.048,6.852 9.741,15.847 9.741,25.705c0,2.205 -0.212,4.348 -0.579,6.448c-0,0 33.374,14.926 33.374,14.926c4.32,-3.931 10.041,-6.348 16.336,-6.348Z" style="fill:rgb(224,224,224);"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

37
demo/demo/icon.svg.import Normal file
View File

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://do6oi8vmfneur"
path="res://.godot/imported/icon.svg-f62dc0ed0a97ee42a62a3187d45aec72.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://demo/icon.svg"
dest_files=["res://.godot/imported/icon.svg-f62dc0ed0a97ee42a62a3187d45aec72.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

884
demo/demo/props/gong.tscn Normal file
View File

@ -0,0 +1,884 @@
[gd_scene load_steps=6 format=3 uid="uid://bpd1wmw2f7bvg"]
[ext_resource type="Texture2D" uid="uid://i476iia1ua8q" path="res://demo/assets/env_gong.png" id="1_kbnv6"]
[ext_resource type="Texture2D" uid="uid://dj4oayt5ttvh8" path="res://demo/assets/fx.png" id="2_dib3m"]
[sub_resource type="Animation" id="Animation_i5ovs"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Gong:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Gong:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Gong:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("FX/WaveL1:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("FX/WaveL1:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("FX/WaveL1:position")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-65, -89)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("FX/WaveL1:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.57058]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("FX/WaveL1:scale")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.5, 0.5)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("FX/WaverR1:position")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(70, -89)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("FX/WaverR1:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [4.71215]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("FX/WaverR1:scale")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.5, 0.5)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("FX/WaverR1:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("FX/WaverR1:modulate")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1)]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("FX/WaveL2:position")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-65, -89)]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("FX/WaveL2:rotation")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.57058]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("FX/WaveL2:scale")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.5, 0.5)]
}
tracks/16/type = "value"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/path = NodePath("FX/WaverR2:position")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(70, -89)]
}
tracks/17/type = "value"
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/path = NodePath("FX/WaverR2:rotation")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [4.71215]
}
tracks/18/type = "value"
tracks/18/imported = false
tracks/18/enabled = true
tracks/18/path = NodePath("FX/WaverR2:scale")
tracks/18/interp = 1
tracks/18/loop_wrap = true
tracks/18/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.5, 0.5)]
}
tracks/19/type = "value"
tracks/19/imported = false
tracks/19/enabled = true
tracks/19/path = NodePath("FX/WaveL3:position")
tracks/19/interp = 1
tracks/19/loop_wrap = true
tracks/19/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-65, -89)]
}
tracks/20/type = "value"
tracks/20/imported = false
tracks/20/enabled = true
tracks/20/path = NodePath("FX/WaveL3:rotation")
tracks/20/interp = 1
tracks/20/loop_wrap = true
tracks/20/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.57058]
}
tracks/21/type = "value"
tracks/21/imported = false
tracks/21/enabled = true
tracks/21/path = NodePath("FX/WaveL3:scale")
tracks/21/interp = 1
tracks/21/loop_wrap = true
tracks/21/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.5, 0.5)]
}
tracks/22/type = "value"
tracks/22/imported = false
tracks/22/enabled = true
tracks/22/path = NodePath("FX/WaverR3:position")
tracks/22/interp = 1
tracks/22/loop_wrap = true
tracks/22/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(70, -89)]
}
tracks/23/type = "value"
tracks/23/imported = false
tracks/23/enabled = true
tracks/23/path = NodePath("FX/WaverR3:rotation")
tracks/23/interp = 1
tracks/23/loop_wrap = true
tracks/23/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [4.71215]
}
tracks/24/type = "value"
tracks/24/imported = false
tracks/24/enabled = true
tracks/24/path = NodePath("FX/WaverR3:scale")
tracks/24/interp = 1
tracks/24/loop_wrap = true
tracks/24/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.5, 0.5)]
}
tracks/25/type = "value"
tracks/25/imported = false
tracks/25/enabled = true
tracks/25/path = NodePath("FX/WaveL2:visible")
tracks/25/interp = 1
tracks/25/loop_wrap = true
tracks/25/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/26/type = "value"
tracks/26/imported = false
tracks/26/enabled = true
tracks/26/path = NodePath("FX/WaveL2:modulate")
tracks/26/interp = 1
tracks/26/loop_wrap = true
tracks/26/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1)]
}
tracks/27/type = "value"
tracks/27/imported = false
tracks/27/enabled = true
tracks/27/path = NodePath("FX/WaverR2:visible")
tracks/27/interp = 1
tracks/27/loop_wrap = true
tracks/27/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/28/type = "value"
tracks/28/imported = false
tracks/28/enabled = true
tracks/28/path = NodePath("FX/WaverR2:modulate")
tracks/28/interp = 1
tracks/28/loop_wrap = true
tracks/28/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1)]
}
tracks/29/type = "value"
tracks/29/imported = false
tracks/29/enabled = true
tracks/29/path = NodePath("FX/WaveL3:visible")
tracks/29/interp = 1
tracks/29/loop_wrap = true
tracks/29/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/30/type = "value"
tracks/30/imported = false
tracks/30/enabled = true
tracks/30/path = NodePath("FX/WaveL3:modulate")
tracks/30/interp = 1
tracks/30/loop_wrap = true
tracks/30/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1)]
}
tracks/31/type = "value"
tracks/31/imported = false
tracks/31/enabled = true
tracks/31/path = NodePath("FX/WaverR3:visible")
tracks/31/interp = 1
tracks/31/loop_wrap = true
tracks/31/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/32/type = "value"
tracks/32/imported = false
tracks/32/enabled = true
tracks/32/path = NodePath("FX/WaverR3:modulate")
tracks/32/interp = 1
tracks/32/loop_wrap = true
tracks/32/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1)]
}
[sub_resource type="Animation" id="Animation_ie54r"]
resource_name = "struck"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Gong:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Gong:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Gong:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(1.1, 0.9), Vector2(0.9, 1.1), Vector2(1.08, 0.92), Vector2(0.92, 1.08), Vector2(1.06, 0.94), Vector2(0.94, 1.06), Vector2(1.04, 0.96), Vector2(0.96, 1.04), Vector2(1.02, 0.98), Vector2(0.98, 1.02), Vector2(1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("FX/WaveL1:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("FX/WaveL1:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1), Color(0.607843, 0.898039, 1, 0)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("FX/WaveL1:position")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-65, -89), Vector2(-165, -89)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("FX/WaveL1:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [1.57058, 1.57058]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("FX/WaveL1:scale")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0.5, 0.5), Vector2(1, 1)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("FX/WaverR1:position")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(70, -89), Vector2(170, -89)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("FX/WaverR1:rotation")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [4.71215, 4.71215]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("FX/WaverR1:scale")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(0.5, 0.5), Vector2(1, 1)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("FX/WaverR1:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("FX/WaverR1:modulate")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0.1, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1), Color(0.607843, 0.898039, 1, 0)]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("FX/WaveL2:position")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(-65, -89), Vector2(-65, -89), Vector2(-165, -89)]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("FX/WaveL2:rotation")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [1.57058, 1.57058, 1.57058]
}
tracks/15/type = "value"
tracks/15/imported = false
tracks/15/enabled = true
tracks/15/path = NodePath("FX/WaveL2:scale")
tracks/15/interp = 1
tracks/15/loop_wrap = true
tracks/15/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0.5, 0.5), Vector2(0.5, 0.5), Vector2(1, 1)]
}
tracks/16/type = "value"
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/path = NodePath("FX/WaverR2:position")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(70, -89), Vector2(70, -89), Vector2(170, -89)]
}
tracks/17/type = "value"
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/path = NodePath("FX/WaverR2:rotation")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [4.71215, 4.71215, 4.71215]
}
tracks/18/type = "value"
tracks/18/imported = false
tracks/18/enabled = true
tracks/18/path = NodePath("FX/WaverR2:scale")
tracks/18/interp = 1
tracks/18/loop_wrap = true
tracks/18/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0.5, 0.5), Vector2(0.5, 0.5), Vector2(1, 1)]
}
tracks/19/type = "value"
tracks/19/imported = false
tracks/19/enabled = true
tracks/19/path = NodePath("FX/WaveL3:position")
tracks/19/interp = 1
tracks/19/loop_wrap = true
tracks/19/keys = {
"times": PackedFloat32Array(0, 0.4, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(-65, -89), Vector2(-65, -89), Vector2(-165, -89)]
}
tracks/20/type = "value"
tracks/20/imported = false
tracks/20/enabled = true
tracks/20/path = NodePath("FX/WaveL3:rotation")
tracks/20/interp = 1
tracks/20/loop_wrap = true
tracks/20/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [1.57058, 1.57058]
}
tracks/21/type = "value"
tracks/21/imported = false
tracks/21/enabled = true
tracks/21/path = NodePath("FX/WaveL3:scale")
tracks/21/interp = 1
tracks/21/loop_wrap = true
tracks/21/keys = {
"times": PackedFloat32Array(0, 0.4, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0.5, 0.5), Vector2(0.5, 0.5), Vector2(1, 1)]
}
tracks/22/type = "value"
tracks/22/imported = false
tracks/22/enabled = true
tracks/22/path = NodePath("FX/WaverR3:position")
tracks/22/interp = 1
tracks/22/loop_wrap = true
tracks/22/keys = {
"times": PackedFloat32Array(0, 0.4, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(70, -89), Vector2(70, -89), Vector2(170, -89)]
}
tracks/23/type = "value"
tracks/23/imported = false
tracks/23/enabled = true
tracks/23/path = NodePath("FX/WaverR3:rotation")
tracks/23/interp = 1
tracks/23/loop_wrap = true
tracks/23/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [4.71215, 4.71215]
}
tracks/24/type = "value"
tracks/24/imported = false
tracks/24/enabled = true
tracks/24/path = NodePath("FX/WaverR3:scale")
tracks/24/interp = 1
tracks/24/loop_wrap = true
tracks/24/keys = {
"times": PackedFloat32Array(0, 0.4, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(0.5, 0.5), Vector2(0.5, 0.5), Vector2(1, 1)]
}
tracks/25/type = "value"
tracks/25/imported = false
tracks/25/enabled = true
tracks/25/path = NodePath("FX/WaveL2:visible")
tracks/25/interp = 1
tracks/25/loop_wrap = true
tracks/25/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/26/type = "value"
tracks/26/imported = false
tracks/26/enabled = true
tracks/26/path = NodePath("FX/WaveL2:modulate")
tracks/26/interp = 1
tracks/26/loop_wrap = true
tracks/26/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1), Color(0.329412, 0.352941, 0.392157, 1), Color(0.607843, 0.898039, 1, 0)]
}
tracks/27/type = "value"
tracks/27/imported = false
tracks/27/enabled = true
tracks/27/path = NodePath("FX/WaverR2:visible")
tracks/27/interp = 1
tracks/27/loop_wrap = true
tracks/27/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/28/type = "value"
tracks/28/imported = false
tracks/28/enabled = true
tracks/28/path = NodePath("FX/WaverR2:modulate")
tracks/28/interp = 1
tracks/28/loop_wrap = true
tracks/28/keys = {
"times": PackedFloat32Array(0, 0.2, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1), Color(0.329412, 0.352941, 0.392157, 1), Color(0.607843, 0.898039, 1, 0)]
}
tracks/29/type = "value"
tracks/29/imported = false
tracks/29/enabled = true
tracks/29/path = NodePath("FX/WaveL3:visible")
tracks/29/interp = 1
tracks/29/loop_wrap = true
tracks/29/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/30/type = "value"
tracks/30/imported = false
tracks/30/enabled = true
tracks/30/path = NodePath("FX/WaveL3:modulate")
tracks/30/interp = 1
tracks/30/loop_wrap = true
tracks/30/keys = {
"times": PackedFloat32Array(-0.00147765, 0.4, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1), Color(0.329412, 0.352941, 0.392157, 1), Color(0.607843, 0.898039, 1, 0)]
}
tracks/31/type = "value"
tracks/31/imported = false
tracks/31/enabled = true
tracks/31/path = NodePath("FX/WaverR3:visible")
tracks/31/interp = 1
tracks/31/loop_wrap = true
tracks/31/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/32/type = "value"
tracks/32/imported = false
tracks/32/enabled = true
tracks/32/path = NodePath("FX/WaverR3:modulate")
tracks/32/interp = 1
tracks/32/loop_wrap = true
tracks/32/keys = {
"times": PackedFloat32Array(-0.00147765, 0.4, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(0.329412, 0.352941, 0.392157, 1), Color(0.329412, 0.352941, 0.392157, 1), Color(0.607843, 0.898039, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_332s2"]
_data = {
"RESET": SubResource("Animation_i5ovs"),
"struck": SubResource("Animation_ie54r")
}
[node name="Gong" type="Node2D"]
metadata/_edit_horizontal_guides_ = [111.0]
[node name="Gong" type="Sprite2D" parent="."]
texture = ExtResource("1_kbnv6")
offset = Vector2(0, -110)
[node name="FX" type="Node2D" parent="."]
[node name="WaveL1" type="Sprite2D" parent="FX"]
visible = false
modulate = Color(0.329412, 0.352941, 0.392157, 1)
position = Vector2(-65, -89)
rotation = 1.57058
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_dib3m")
region_enabled = true
region_rect = Rect2(0, 0, 191, 74)
[node name="WaverR1" type="Sprite2D" parent="FX"]
visible = false
modulate = Color(0.329412, 0.352941, 0.392157, 1)
position = Vector2(70, -89)
rotation = 4.71215
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_dib3m")
region_enabled = true
region_rect = Rect2(0, 0, 191, 74)
[node name="WaveL2" type="Sprite2D" parent="FX"]
visible = false
modulate = Color(0.329412, 0.352941, 0.392157, 1)
position = Vector2(-65, -89)
rotation = 1.57058
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_dib3m")
region_enabled = true
region_rect = Rect2(0, 0, 191, 74)
[node name="WaverR2" type="Sprite2D" parent="FX"]
visible = false
modulate = Color(0.329412, 0.352941, 0.392157, 1)
position = Vector2(70, -89)
rotation = 4.71215
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_dib3m")
region_enabled = true
region_rect = Rect2(0, 0, 191, 74)
[node name="WaveL3" type="Sprite2D" parent="FX"]
visible = false
modulate = Color(0.329412, 0.352941, 0.392157, 1)
position = Vector2(-65, -89)
rotation = 1.57058
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_dib3m")
region_enabled = true
region_rect = Rect2(0, 0, 191, 74)
[node name="WaverR3" type="Sprite2D" parent="FX"]
visible = false
modulate = Color(0.329412, 0.352941, 0.392157, 1)
position = Vector2(70, -89)
rotation = 4.71215
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_dib3m")
region_enabled = true
region_rect = Rect2(0, 0, 191, 74)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_332s2")
}
[node name="GongSFX" type="AudioStreamPlayer" parent="."]

4880
demo/demo/scenes/demo.tscn Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
extends Node2D
@export var speed: float = 200.0

View File

@ -1,13 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://c3d3ed6545cly"]
[ext_resource type="Script" path="res://demo/tests/agent_properties/agent_properties.gd" id="1_jh88u"]
[ext_resource type="BehaviorTree" uid="uid://ddhxf0haxgw" path="res://demo/tests/agent_properties/bt_agent_properties.tres" id="2_txe8k"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_18k5d"]
[node name="AgentProperties" type="Node2D"]
script = ExtResource("1_jh88u")
[node name="BTPlayer" type="BTPlayer" parent="."]
behavior_tree = ExtResource("2_txe8k")
blackboard_plan = SubResource("BlackboardPlan_18k5d")

View File

@ -1,112 +0,0 @@
[gd_resource type="BehaviorTree" load_steps=30 format=3 uid="uid://ddhxf0haxgw"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_salkr"]
[sub_resource type="BBVariant" id="BBVariant_5o8fh"]
resource_name = "200"
saved_value = 200.0
type = 3
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_0nprx"]
property = &"speed"
value = SubResource("BBVariant_5o8fh")
[sub_resource type="BTConsolePrint" id="BTConsolePrint_dlmwi"]
text = "Test 1: Passed"
[sub_resource type="BTSequence" id="BTSequence_fou4d"]
children = [SubResource("BTCheckAgentProperty_0nprx"), SubResource("BTConsolePrint_dlmwi")]
[sub_resource type="BTConsolePrint" id="BTConsolePrint_ggvml"]
text = "Test 1: Failed"
[sub_resource type="BTSelector" id="BTSelector_hw3on"]
custom_name = "Test 1"
children = [SubResource("BTSequence_fou4d"), SubResource("BTConsolePrint_ggvml")]
[sub_resource type="BBVariant" id="BBVariant_r2elk"]
resource_name = "300"
saved_value = 300.0
type = 3
[sub_resource type="BTSetAgentProperty" id="BTSetAgentProperty_lh1xy"]
property = &"speed"
value = SubResource("BBVariant_r2elk")
[sub_resource type="BBVariant" id="BBVariant_jhcxn"]
resource_name = "200"
saved_value = 200.0
type = 3
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_p20lt"]
property = &"speed"
check_type = 3
value = SubResource("BBVariant_jhcxn")
[sub_resource type="BTConsolePrint" id="BTConsolePrint_nb21y"]
text = "Test 2: Passed"
[sub_resource type="BTSequence" id="BTSequence_rp57i"]
children = [SubResource("BTCheckAgentProperty_p20lt"), SubResource("BTConsolePrint_nb21y")]
[sub_resource type="BTConsolePrint" id="BTConsolePrint_o5xxa"]
text = "Test 2: Failed"
[sub_resource type="BTSelector" id="BTSelector_cr664"]
custom_name = "Test 2"
children = [SubResource("BTSequence_rp57i"), SubResource("BTConsolePrint_o5xxa")]
[sub_resource type="BBVariant" id="BBVariant_2aotu"]
resource_name = "400"
saved_value = 400.0
type = 3
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_avnfr"]
property = &"speed"
check_type = 1
value = SubResource("BBVariant_2aotu")
[sub_resource type="BTConsolePrint" id="BTConsolePrint_wgw5j"]
text = "Test 3: Passed"
[sub_resource type="BTSequence" id="BTSequence_ykp38"]
children = [SubResource("BTCheckAgentProperty_avnfr"), SubResource("BTConsolePrint_wgw5j")]
[sub_resource type="BTConsolePrint" id="BTConsolePrint_0eshq"]
text = "Test 3: Failed"
[sub_resource type="BTSelector" id="BTSelector_nxupw"]
custom_name = "Test 3"
children = [SubResource("BTSequence_ykp38"), SubResource("BTConsolePrint_0eshq")]
[sub_resource type="BBVariant" id="BBVariant_28e2y"]
resource_name = "300"
saved_value = 300.0
type = 3
[sub_resource type="BTCheckAgentProperty" id="BTCheckAgentProperty_sayma"]
property = &"speed"
value = SubResource("BBVariant_28e2y")
[sub_resource type="BTConsolePrint" id="BTConsolePrint_xugph"]
text = "Test 4: Passed"
[sub_resource type="BTSequence" id="BTSequence_3wj0i"]
children = [SubResource("BTCheckAgentProperty_sayma"), SubResource("BTConsolePrint_xugph")]
[sub_resource type="BTConsolePrint" id="BTConsolePrint_16vkj"]
text = "Test 4: Failed"
[sub_resource type="BTSelector" id="BTSelector_qhmh3"]
custom_name = "Test 4"
children = [SubResource("BTSequence_3wj0i"), SubResource("BTConsolePrint_16vkj")]
[sub_resource type="BTSequence" id="BTSequence_7bmj1"]
children = [SubResource("BTSelector_hw3on"), SubResource("BTSetAgentProperty_lh1xy"), SubResource("BTSelector_cr664"), SubResource("BTSelector_nxupw"), SubResource("BTSelector_qhmh3")]
[sub_resource type="BTRunLimit" id="BTRunLimit_034mk"]
children = [SubResource("BTSequence_7bmj1")]
[resource]
blackboard_plan = SubResource("BlackboardPlan_salkr")
root_task = SubResource("BTRunLimit_034mk")

View File

@ -1,39 +0,0 @@
@tool
class_name TestBBParams
extends Resource
@export var bool_param: BBBool
@export var int_param: BBInt
@export var float_param: BBFloat
@export var string_param: BBString
@export var vec2_param: BBVector2
@export var vec2i_param: BBVector2i
@export var rect2_param: BBRect2
@export var rect2i_param: BBRect2i
@export var vector3_param: BBVector3
@export var vector3i_param: BBVector3i
@export var vector4_param: BBVector4
@export var vector4i_param: BBVector4i
@export var transform2d_param: BBTransform2D
@export var plane_param: BBPlane
@export var quaternion_param: BBQuaternion
@export var aabb_param: BBAabb
@export var basis_param: BBBasis
@export var transform3d_param: BBTransform3D
#@export var projection_param: BBProjection
@export var color_param: BBColor
@export var stringname_param: BBStringName
@export var node_param: BBNode
@export var dictionary_param: BBDictionary
@export var array_param: BBArray
@export var byte_array_param: BBByteArray
@export var int32_array_param: BBInt32Array
@export var int64_array_param: BBInt64Array
@export var float32_array_param: BBFloat32Array
@export var float64_array_param: BBFloat64Array
@export var string_array_param: BBStringArray
@export var vector2_array_param: BBVector2Array
@export var vector3_array_param: BBVector2Array
@export var color_array_param: BBColorArray
@export var variant_param: BBVariant

View File

@ -1,30 +0,0 @@
[gd_resource type="BehaviorTree" load_steps=9 format=3 uid="uid://cen725hsk8lyl"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_00d6h"]
[sub_resource type="BTComment" id="BTComment_84hry"]
custom_name = "This is a test of ProbabilitySelector choosing action to execute"
[sub_resource type="BTConsolePrint" id="BTConsolePrint_3d5qm"]
text = "Rare action"
[sub_resource type="BTConsolePrint" id="BTConsolePrint_s6p66"]
text = "Uncommon action"
metadata/_weight_ = 4.0
[sub_resource type="BTConsolePrint" id="BTConsolePrint_2f8re"]
text = "Common action"
metadata/_weight_ = 12.0
[sub_resource type="BTProbabilitySelector" id="BTProbabilitySelector_hy6es"]
children = [SubResource("BTConsolePrint_3d5qm"), SubResource("BTConsolePrint_s6p66"), SubResource("BTConsolePrint_2f8re")]
[sub_resource type="BTDelay" id="BTDelay_mxnxy"]
children = [SubResource("BTProbabilitySelector_hy6es")]
[sub_resource type="BTSequence" id="BTSequence_auek2"]
children = [SubResource("BTComment_84hry"), SubResource("BTDelay_mxnxy")]
[resource]
blackboard_plan = SubResource("BlackboardPlan_00d6h")
root_task = SubResource("BTSequence_auek2")

View File

@ -1,11 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://dgeb7tg8xb3j4"]
[ext_resource type="BehaviorTree" uid="uid://cen725hsk8lyl" path="res://demo/tests/probability_selector/bt_test_probability_selector.tres" id="1_lr7l2"]
[sub_resource type="BlackboardPlan" id="BlackboardPlan_8wu7d"]
[node name="test_probability_selector" type="Node2D"]
[node name="BTPlayer" type="BTPlayer" parent="."]
behavior_tree = ExtResource("1_lr7l2")
blackboard_plan = SubResource("BlackboardPlan_8wu7d")

View File

@ -10,29 +10,17 @@ config_version=5
[application] [application]
config/name="LimboAI Test" config/name="LimboAI Demo"
config/tags=PackedStringArray("demo") run/main_scene="res://demo/scenes/demo.tscn"
run/main_scene="res://demo/examples/waypoints/example_waypoints.tscn" config/features=PackedStringArray("4.2", "Forward Plus")
config/features=PackedStringArray("4.2") config/icon="res://demo/icon.svg"
config/icon="res://demo/godot.png"
[debug] [display]
gdscript/warnings/native_method_override=1 window/size/viewport_width=1920
window/size/viewport_height=1080
[gui]
common/drop_mouse_on_gui_input_disabled=true
[limbo_ai] [limbo_ai]
behavior_tree/behavior_tree_default_dir="res://demo/ai/trees" behavior_tree/behavior_tree_default_dir="res://demo/ai/trees"
behavior_tree/user_task_dir_1="res://demo/ai/tasks" behavior_tree/user_task_dir_1="res://demo/ai/tasks"
[physics]
common/enable_pause_aware_picking=true
[rendering]
environment/default_environment="res://default_env.tres"