diff --git a/prefabs/enemies/boss/claw.tscn b/prefabs/enemies/boss/claw.tscn index c7782ea..2068990 100644 --- a/prefabs/enemies/boss/claw.tscn +++ b/prefabs/enemies/boss/claw.tscn @@ -27,10 +27,5 @@ shape = SubResource("CircleShape2D_v67co") position = Vector2(-2, 0) shape = SubResource("CircleShape2D_smr3g") -[node name="NavigationAgent2D" type="NavigationAgent2D" parent="."] -avoidance_enabled = true -debug_use_custom = true -debug_path_custom_color = Color(0, 0, 1, 1) - [connection signal="body_entered" from="Area2D" to="." method="_OnEntered"] [connection signal="body_exited" from="Area2D" to="." method="_OnExited"] diff --git a/prefabs/enemies/living_armor.tscn b/prefabs/enemies/living_armor.tscn index 5d9cf09..125417d 100644 --- a/prefabs/enemies/living_armor.tscn +++ b/prefabs/enemies/living_armor.tscn @@ -4,7 +4,7 @@ [ext_resource type="Script" path="res://scripts/enemies/LivingArmor.cs" id="1_ofbsx"] [ext_resource type="PackedScene" uid="uid://cf0wpahgwygxx" path="res://prefabs/light_sense.tscn" id="2_xkyos"] -[sub_resource type="RectangleShape2D" id="RectangleShape2D_8sbby"] +[sub_resource type="RectangleShape2D" id="RectangleShape2D_d1ojb"] size = Vector2(15, 15) [sub_resource type="CircleShape2D" id="CircleShape2D_ex1co"] @@ -33,7 +33,7 @@ polygon = PackedVector2Array(-7, -4, -7, 15, 8, 15, 8, -4, 5, -11, -4, -11) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0.5, 7.5) -shape = SubResource("RectangleShape2D_8sbby") +shape = SubResource("RectangleShape2D_d1ojb") [node name="AreaOfSight" type="Area2D" parent="."] @@ -47,11 +47,6 @@ monitorable = false position = Vector2(1, 8) shape = SubResource("CircleShape2D_62y1x") -[node name="NavigationAgent2D" type="NavigationAgent2D" parent="."] -path_desired_distance = 0.1 -target_desired_distance = 0.1 -avoidance_enabled = true - [connection signal="area_entered" from="LightSense" to="." method="_OnLightEntered"] [connection signal="area_exited" from="LightSense" to="." method="_OnLightExited"] [connection signal="body_entered" from="AreaOfSight" to="." method="_OnBodyEntered"] diff --git a/prefabs/enemies/wretched.tscn b/prefabs/enemies/wretched.tscn index 6567d43..967a61b 100644 --- a/prefabs/enemies/wretched.tscn +++ b/prefabs/enemies/wretched.tscn @@ -1,11 +1,11 @@ [gd_scene load_steps=6 format=3 uid="uid://bmyjqerhno5vi"] -[ext_resource type="SpriteFrames" uid="uid://cisc0k30gpx1q" path="res://sprites/enemies/wretched/wretched.tres" id="1_aqrsj"] +[ext_resource type="SpriteFrames" uid="uid://blijqhtsnyq7n" path="res://sprites/enemies/wretched/wretched.tres" id="1_aqrsj"] [ext_resource type="Script" path="res://scripts/enemies/Wretched.cs" id="1_ec388"] [ext_resource type="PackedScene" uid="uid://cf0wpahgwygxx" path="res://prefabs/light_sense.tscn" id="2_16fib"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_svj4b"] -size = Vector2(15, 15) +size = Vector2(24, 16) [sub_resource type="CircleShape2D" id="CircleShape2D_nortt"] radius = 15.0 @@ -28,7 +28,7 @@ frame_progress = 0.776966 polygon = PackedVector2Array(-5, -16, -7, -3, -7, 9, -11, 14, -11, 16, 8, 16, 8, 8, 7, 4, 7, -16) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(0, 8) +position = Vector2(1, 8) shape = SubResource("RectangleShape2D_svj4b") [node name="PlayerCollision" type="Area2D" parent="."] @@ -38,13 +38,5 @@ monitorable = false position = Vector2(1, 8) shape = SubResource("CircleShape2D_nortt") -[node name="NavigationAgent2D" type="NavigationAgent2D" parent="."] -path_desired_distance = 0.1 -target_desired_distance = 0.1 -avoidance_enabled = true -avoidance_mask = 2 -debug_use_custom = true -debug_path_custom_color = Color(0, 1, 0, 1) - [connection signal="area_entered" from="LightSense" to="." method="_OnLightEntered"] [connection signal="body_entered" from="PlayerCollision" to="." method="_OnPlayerCollision"] diff --git a/prefabs/entities/pressure_plate.tscn b/prefabs/entities/pressure_plate.tscn index c10c162..91933c3 100644 --- a/prefabs/entities/pressure_plate.tscn +++ b/prefabs/entities/pressure_plate.tscn @@ -1,10 +1,10 @@ [gd_scene load_steps=4 format=3 uid="uid://bj1ixwjdpnooo"] -[ext_resource type="SpriteFrames" uid="uid://8qygv4lq4pjf" path="res://sprites/tiles/floor/pressure_plate.tres" id="1_1wdq4"] +[ext_resource type="SpriteFrames" uid="uid://chfnxa71xs3ww" path="res://sprites/tiles/floor/pressure_plate.tres" id="1_1wdq4"] [ext_resource type="Script" path="res://scripts/entities/PressurePlate.cs" id="1_httlb"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_1jim7"] -size = Vector2(24, 24) +size = Vector2(32, 32) [node name="pressure_plate" type="Area2D"] z_index = -1 diff --git a/prefabs/entities/spikes.tscn b/prefabs/entities/spikes.tscn index 92c188f..6fbfe54 100644 --- a/prefabs/entities/spikes.tscn +++ b/prefabs/entities/spikes.tscn @@ -4,7 +4,7 @@ [ext_resource type="SpriteFrames" uid="uid://uith5rxps4s" path="res://sprites/tiles/floor/spikes/spikes.tres" id="2_t76h0"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_guqiy"] -size = Vector2(24, 24) +size = Vector2(32, 32) [node name="spikes" type="Area2D"] z_index = -1 @@ -12,6 +12,8 @@ script = ExtResource("1_r27mb") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] sprite_frames = ExtResource("2_t76h0") +frame = 2 +frame_progress = 1.0 [node name="Sprite2D" type="Sprite2D" parent="AnimatedSprite2D"] diff --git a/scenes/level.tscn b/scenes/level.tscn index aa9f8bc..b9aada4 100644 --- a/scenes/level.tscn +++ b/scenes/level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=28 format=3 uid="uid://cn0rwyjern2vx"] +[gd_scene load_steps=23 format=3 uid="uid://cn0rwyjern2vx"] [ext_resource type="Script" path="res://scripts/Level.cs" id="1_cxv3e"] [ext_resource type="TileSet" uid="uid://c7x8hryljgpha" path="res://sprites/tiles/QoL.tres" id="1_kp7y7"] @@ -14,8 +14,8 @@ [ext_resource type="PackedScene" uid="uid://bo5we64scaa1x" path="res://prefabs/furniture/table2.tscn" id="11_43o4k"] [ext_resource type="PackedScene" uid="uid://cvfk53tse4okx" path="res://prefabs/furniture/book.tscn" id="12_7tfnm"] [ext_resource type="PackedScene" uid="uid://ccg3n7sobsvdw" path="res://prefabs/enemies/watcher.tscn" id="13_nbkmp"] -[ext_resource type="PackedScene" uid="uid://bpusphyhhg074" path="res://prefabs/enemies/living_armor.tscn" id="14_4tmmq"] -[ext_resource type="PackedScene" uid="uid://bmyjqerhno5vi" path="res://prefabs/enemies/wretched.tscn" id="15_3rigu"] +[ext_resource type="PackedScene" path="res://prefabs/enemies/living_armor.tscn" id="14_4tmmq"] +[ext_resource type="PackedScene" path="res://prefabs/enemies/wretched.tscn" id="15_3rigu"] [ext_resource type="PackedScene" uid="uid://crulyoxqqw74r" path="res://prefabs/entities/Teleport.tscn" id="16_c6ifr"] [ext_resource type="PackedScene" uid="uid://dteeck6gict0d" path="res://prefabs/entities/teleport_dest.tscn" id="17_0di6y"] [ext_resource type="PackedScene" uid="uid://cpi5lgdlnvhlg" path="res://prefabs/enemies/boss/boss.tscn" id="18_8j1w1"] @@ -24,31 +24,6 @@ [sub_resource type="RectangleShape2D" id="RectangleShape2D_kwmx6"] -[sub_resource type="NavigationPolygon" id="NavigationPolygon_ngvpl"] -vertices = PackedVector2Array(312, -944, 192, -944, 40, -984, 96, -984, 320, -816, 200, -816, 48, -888, 56, -888, 40, -760, 56, -760, 440, -584, -120, -584, -120, -720, 312, -888, 440, -1080, 280, -984, 280, -1032, -72, -760, -120, -1080, 224, -1032, 224, -984, 144, -984, 144, -1032, 96, -1032, 192, -888, 176, -888, 176, -944, 56, -944, -8, -984, 200, -760, 176, -760, 176, -816, 56, -816, -72, -888, 440, -376, 440, -168, 168, -168, 168, -296, -232, -376, -408, -296, -408, -856, -232, -720, -120, -856, -80, -816, 320, -760, -72, -944, 40, -816, 48, -944, -8, -1032, 40, -1032) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(4, 5, 6, 7), PackedInt32Array(8, 9, 10, 11, 12), PackedInt32Array(13, 0, 14, 10, 4), PackedInt32Array(14, 0, 15, 16), PackedInt32Array(17, 8, 12), PackedInt32Array(18, 14, 16, 19), PackedInt32Array(19, 20, 21, 22), PackedInt32Array(18, 19, 22), PackedInt32Array(18, 22, 23), PackedInt32Array(1, 24, 25, 26), PackedInt32Array(2, 1, 26), PackedInt32Array(2, 26, 27, 28), PackedInt32Array(5, 29, 30, 31), PackedInt32Array(6, 5, 31), PackedInt32Array(6, 31, 32, 33), PackedInt32Array(34, 35, 36, 37), PackedInt32Array(38, 34, 37, 39), PackedInt32Array(38, 39, 40, 41), PackedInt32Array(17, 12, 41, 40, 42, 43), PackedInt32Array(29, 44, 10), PackedInt32Array(20, 15, 0), PackedInt32Array(33, 43, 42, 18, 45), PackedInt32Array(30, 29, 10), PackedInt32Array(10, 44, 4), PackedInt32Array(24, 13, 4), PackedInt32Array(9, 30, 10), PackedInt32Array(32, 9, 8, 46), PackedInt32Array(33, 32, 46), PackedInt32Array(33, 46, 43), PackedInt32Array(25, 24, 4), PackedInt32Array(7, 25, 4), PackedInt32Array(27, 7, 6, 47), PackedInt32Array(28, 27, 47), PackedInt32Array(28, 47, 45), PackedInt32Array(28, 45, 18, 48), PackedInt32Array(21, 20, 0), PackedInt32Array(49, 48, 18), PackedInt32Array(49, 18, 23), PackedInt32Array(49, 23, 3, 2), PackedInt32Array(0, 3, 21)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(168, -168, 440, -168, 440, -376, -232, -376, -232, -720, -120, -720, -120, -584, 440, -584, 440, -1080, -120, -1080, -120, -856, -408, -856, -408, -296, 168, -296), PackedVector2Array(-72, -760, 40, -760, 40, -816, -80, -816), PackedVector2Array(56, -816, 56, -760, 176, -760, 176, -816), PackedVector2Array(200, -760, 320, -760, 320, -816, 200, -816), PackedVector2Array(-72, -888, 48, -888, 48, -944, -72, -944), PackedVector2Array(56, -944, 56, -888, 176, -888, 176, -944), PackedVector2Array(192, -888, 312, -888, 312, -944, 192, -944), PackedVector2Array(-8, -984, 40, -984, 40, -1032, -8, -1032), PackedVector2Array(96, -984, 144, -984, 144, -1032, 96, -1032), PackedVector2Array(224, -1032, 224, -984, 280, -984, 280, -1032)]) - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_v2a1f"] -vertices = PackedVector2Array(897, -96, 897, 129, 607, 129, 607, -96) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(607, -96, 607, 129, 897, 129, 897, -96)]) - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_2d3fn"] -vertices = PackedVector2Array(897, -512, 897, -287, 607, -287, 607, -512) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(607, -512, 607, -287, 897, -287, 897, -512)]) - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_ackae"] -vertices = PackedVector2Array(447, 832, 865, 832, 865, 1153, 447, 1153) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(447, 1153, 865, 1153, 865, 832, 447, 832)]) - -[sub_resource type="NavigationPolygon" id="NavigationPolygon_wwnnq"] -vertices = PackedVector2Array(-48, -1870, 242, -1870, 242, -1645, -48, -1645) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(-48, -1645, 242, -1645, 242, -1870, -48, -1870)]) - [node name="level" type="Node2D"] script = ExtResource("1_cxv3e") @@ -337,7 +312,7 @@ position = Vector2(630, -730) position = Vector2(322, -381) [node name="Wretched" parent="." instance=ExtResource("15_3rigu")] -position = Vector2(216, -381) +position = Vector2(181, -383) [node name="Wretched2" parent="." instance=ExtResource("15_3rigu")] position = Vector2(-241, -457) @@ -470,22 +445,6 @@ Facing = 2 [node name="And_puzzle_4" parent="." instance=ExtResource("20_1ng7x")] CountOfButtons = 4 -[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] -navigation_polygon = SubResource("NavigationPolygon_ngvpl") - -[node name="NavigationRegion2D2" type="NavigationRegion2D" parent="."] -navigation_polygon = SubResource("NavigationPolygon_v2a1f") - -[node name="NavigationRegion2D3" type="NavigationRegion2D" parent="."] -navigation_polygon = SubResource("NavigationPolygon_2d3fn") - -[node name="NavigationRegion2D4" type="NavigationRegion2D" parent="."] -navigation_polygon = SubResource("NavigationPolygon_ackae") - -[node name="NavigationRegion2D5" type="NavigationRegion2D" parent="."] -position = Vector2(655, 942) -navigation_polygon = SubResource("NavigationPolygon_wwnnq") - [connection signal="ButtonPressed" from="pressure_plate_puzzle_1" to="door_closed_puzzle_1" method="Open"] [connection signal="ButtonUnpressed" from="pressure_plate_puzzle_1" to="door_closed_puzzle_1" method="Close"] [connection signal="ButtonPressed" from="pressure_plate_puzzle_2" to="door_closed_puzzle_2" method="Open"] diff --git a/scenes/main_scene.tscn b/scenes/main_scene.tscn index 6d3771f..f6d4957 100644 --- a/scenes/main_scene.tscn +++ b/scenes/main_scene.tscn @@ -22,7 +22,7 @@ point_count = 2 [sub_resource type="ShaderMaterial" id="ShaderMaterial_m680d"] shader = ExtResource("5_64d71") -[sub_resource type="ViewportTexture" id="ViewportTexture_kr1ga"] +[sub_resource type="ViewportTexture" id="ViewportTexture_57pph"] viewport_path = NodePath("FlashlightViewport") [sub_resource type="CircleShape2D" id="CircleShape2D_prnh4"] @@ -243,7 +243,7 @@ CameraBounds = Vector2(30, 20) [node name="PointLight2D" type="PointLight2D" parent="PlayerCamera" node_paths=PackedStringArray("LightViewport")] blend_mode = 2 range_item_cull_mask = 2 -texture = SubResource("ViewportTexture_kr1ga") +texture = SubResource("ViewportTexture_57pph") script = ExtResource("6_slohe") LightViewport = NodePath("../../FlashlightViewport") diff --git a/scripts/enemies/Claw.cs b/scripts/enemies/Claw.cs index bd6ba5b..bcb1525 100644 --- a/scripts/enemies/Claw.cs +++ b/scripts/enemies/Claw.cs @@ -17,14 +17,11 @@ public partial class Claw : CharacterBody2D private float _stateTimeout = 0; private bool _isPlayerNearBy = false; private AnimatedSprite2D _sprite; - private NavigationAgent2D _nav; // Called when the node enters the scene tree for the first time. public override void _Ready() { _sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D"); - _nav = (NavigationAgent2D)FindChild("NavigationAgent2D"); - _nav.VelocityComputed += OnNavVelocityCompute; } // Called every frame. 'delta' is the elapsed time since the previous frame. @@ -41,11 +38,10 @@ public partial class Claw : CharacterBody2D break; case State.Moving: - _nav.TargetPosition = Player.Instance.Position; - var direction = (_nav.GetNextPathPosition() - Position).Normalized(); + var direction = (Player.Instance.Position - Position).Normalized(); + Velocity = direction * MovingSpeed; _sprite.FlipH = Velocity.X < 0.001f; _sprite.Play("default"); - _nav.Velocity = direction * MovingSpeed; MoveAndSlide(); break; case State.Prepare: @@ -91,9 +87,4 @@ public partial class Claw : CharacterBody2D GD.Print("Boss enabled"); _state = State.Moving; } - - private void OnNavVelocityCompute(Vector2 safeVelocity) - { - Velocity = safeVelocity; - } } diff --git a/scripts/enemies/LivingArmor.cs b/scripts/enemies/LivingArmor.cs index c773dc8..0f43f3d 100644 --- a/scripts/enemies/LivingArmor.cs +++ b/scripts/enemies/LivingArmor.cs @@ -48,7 +48,6 @@ public partial class LivingArmor : CharacterBody2D private State _state; private float _timeSinceState; private AnimatedSprite2D _sprite; - private NavigationAgent2D _nav; private bool _isLitUp; //private readonly List _bodiesInSight = new List(); private readonly List _bodiesInSight = new List(); @@ -59,8 +58,6 @@ public partial class LivingArmor : CharacterBody2D public override void _Ready() { _sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D"); - _nav = (NavigationAgent2D)FindChild("NavigationAgent2D"); - _nav.VelocityComputed += OnNavVelocityCompute; _respawnPosition = Position; CurrentState = State.Waiting; var animationName = "side_walk"; @@ -81,7 +78,6 @@ public partial class LivingArmor : CharacterBody2D _sprite.Play(animationName); _sprite.Stop(); - } public override void _Process(double delta) @@ -131,15 +127,13 @@ public partial class LivingArmor : CharacterBody2D } break; } - if (_target is null) { _state = State.Waiting; return; } - - _nav.TargetPosition = _target.Position; - var direction = (_nav.GetNextPathPosition() - GlobalPosition).Normalized(); + var direction = (_target.Position - Position).Normalized(); + Velocity = direction * MovingSpeed; var animationName = "side_walk"; @@ -153,8 +147,8 @@ public partial class LivingArmor : CharacterBody2D _sprite.FlipH = Velocity.X < 0.001f && animationName == "side_walk"; _sprite.Play(animationName); - _nav.Velocity = direction * MovingSpeed; MoveAndSlide(); + //MoveAndCollide(direction); break; } @@ -258,11 +252,5 @@ public partial class LivingArmor : CharacterBody2D Position = _respawnPosition; // QueueFree(); // TODO } - - private void OnNavVelocityCompute(Vector2 safeVelocity) - { - Velocity = safeVelocity; - } - } diff --git a/scripts/enemies/Wretched.cs b/scripts/enemies/Wretched.cs index da29cc0..9e959ee 100644 --- a/scripts/enemies/Wretched.cs +++ b/scripts/enemies/Wretched.cs @@ -50,14 +50,11 @@ public partial class Wretched : CharacterBody2D private State _state; private float _timeSinceState; private AnimatedSprite2D _sprite; - private NavigationAgent2D _nav; private bool _isActivated; public override void _Ready() { _sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D"); - _nav = (NavigationAgent2D)FindChild("NavigationAgent2D"); - _nav.VelocityComputed += OnNavVelocityCompute; CurrentState = State.Waiting; var animationName = "NonActivatedSide"; switch (Facing) @@ -96,8 +93,8 @@ public partial class Wretched : CharacterBody2D break; case State.Moving: - _nav.TargetPosition = Player.Instance.Position; - var direction = (_nav.GetNextPathPosition() - Position).Normalized(); + var direction = (Player.Instance.Position - Position).Normalized(); + Velocity = direction * MovingSpeed; var animationName = "ActivatedSide"; @@ -111,7 +108,6 @@ public partial class Wretched : CharacterBody2D _sprite.FlipH = Velocity.X < 0.001f && animationName == "ActivatedSide"; _sprite.Play(animationName); - _nav.Velocity = direction * MovingSpeed; MoveAndSlide(); break; } @@ -162,9 +158,4 @@ public partial class Wretched : CharacterBody2D EmitSignal(SignalName.Killed); QueueFree(); // TODO } - - private void OnNavVelocityCompute(Vector2 safeVelocity) - { - Velocity = safeVelocity; - } } diff --git a/scripts/entities/Spikes.cs b/scripts/entities/Spikes.cs index 08f9779..8bb0e1b 100644 --- a/scripts/entities/Spikes.cs +++ b/scripts/entities/Spikes.cs @@ -13,7 +13,7 @@ public partial class Spikes : Area2D } [Export] public bool Enabled = false; - [Export] public float SpikesTimeout = 2f; + [Export] public float SpikesTimeout = 1f; [Export] public float StartOffset = 0f; private AnimatedSprite2D _sprite; private State _state = State.Waiting; @@ -40,7 +40,7 @@ public partial class Spikes : Area2D switch (_state) { case State.Waiting: - _sprite.Play("default"); + _sprite.Stop(); _timeSinceState += (float)delta; if (_timeSinceState > SpikesTimeout) { @@ -49,12 +49,11 @@ public partial class Spikes : Area2D } break; case State.Opening: - _sprite.Play("activated"); + _sprite.Play("default"); KillBodiesOnButton(); break; case State.Closing: - _sprite.PlayBackwards("activated"); - KillBodiesOnButton(); + _sprite.PlayBackwards("default"); break; } } diff --git a/sprites/tiles/floor/spikes/spikes.tres b/sprites/tiles/floor/spikes/spikes.tres index d417279..c83293e 100644 --- a/sprites/tiles/floor/spikes/spikes.tres +++ b/sprites/tiles/floor/spikes/spikes.tres @@ -2,6 +2,10 @@ [ext_resource type="Texture2D" uid="uid://l3v1hs32uxfp" path="res://sprites/tiles/floor/spikes/spikes_0001-sheet.png" id="1_xhodh"] +[sub_resource type="AtlasTexture" id="AtlasTexture_ebjk6"] +atlas = ExtResource("1_xhodh") +region = Rect2(64, 0, 32, 32) + [sub_resource type="AtlasTexture" id="AtlasTexture_my1hb"] atlas = ExtResource("1_xhodh") region = Rect2(32, 0, 32, 32) @@ -10,28 +14,19 @@ region = Rect2(32, 0, 32, 32) atlas = ExtResource("1_xhodh") region = Rect2(0, 0, 32, 32) -[sub_resource type="AtlasTexture" id="AtlasTexture_qhlyu"] -atlas = ExtResource("1_xhodh") -region = Rect2(64, 0, 32, 32) - [resource] animations = [{ "frames": [{ "duration": 1.0, +"texture": SubResource("AtlasTexture_ebjk6") +}, { +"duration": 1.0, "texture": SubResource("AtlasTexture_my1hb") }, { "duration": 1.0, "texture": SubResource("AtlasTexture_nfdn1") }], "loop": false, -"name": &"activated", -"speed": 2.0 -}, { -"frames": [{ -"duration": 1.0, -"texture": SubResource("AtlasTexture_qhlyu") -}], -"loop": true, "name": &"default", -"speed": 5.0 +"speed": 3.0 }]