[gd_scene load_steps=8 format=2] [ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=1] [ext_resource path="res://graphics/enemy/hellarcher_shoot.png" type="Texture" id=2] [ext_resource path="res://objects/enemy/skelarcher.gd" type="Script" id=3] [sub_resource type="ShaderMaterial" id=18] shader = ExtResource( 1 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = true [sub_resource type="RectangleShape2D" id=10] extents = Vector2( 4, 4 ) [sub_resource type="Animation" id=19] resource_name = "idle" tracks/0/type = "value" tracks/0/path = NodePath("Sprite:region_rect") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ Rect2( 0, 0, 19, 20 ) ] } tracks/1/type = "value" tracks/1/path = NodePath("Sprite:texture") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, "values": [ ExtResource( 2 ) ] } [sub_resource type="Animation" id=20] resource_name = "shoot" length = 0.5 step = 0.06 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:region_rect") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.06, 0.12, 0.24, 0.3, 0.36, 0.42 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ), "update": 1, "values": [ Rect2( 0, 0, 19, 20 ), Rect2( 19, 0, 19, 20 ), Rect2( 38, 0, 19, 20 ), Rect2( 76, 0, 19, 20 ), Rect2( 95, 0, 19, 20 ), Rect2( 114, 0, 19, 20 ), Rect2( 133, 0, 19, 20 ) ] } tracks/1/type = "value" tracks/1/path = NodePath("Sprite:texture") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, "values": [ ExtResource( 2 ) ] } tracks/2/type = "value" tracks/2/path = NodePath("AnimationPlayer:current_animation") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0.48 ), "transitions": PoolRealArray( 1 ), "update": 2, "values": [ "idle" ] } tracks/3/type = "method" tracks/3/path = NodePath(".") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0.24 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "spawn_arrow" } ] } [node name="Hellarcher" type="Node2D" groups=["enemy"]] script = ExtResource( 3 ) blood = false shoot_time = 2.0 arrow_speed = 80.0 [node name="Sprite" type="Sprite" parent="."] material = SubResource( 18 ) position = Vector2( 5, -2 ) texture = ExtResource( 2 ) region_enabled = true region_rect = Rect2( 133, 0, 19, 20 ) [node name="Hitbox" type="Area2D" parent="." groups=["enemy_hitbox"]] position = Vector2( 5, -2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] position = Vector2( -1, 6 ) shape = SubResource( 10 ) [node name="Timer" type="Timer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/idle = SubResource( 19 ) anims/shoot = SubResource( 20 ) [node name="ArrowSpawnR" type="Position2D" parent="."] visible = false position = Vector2( 9, 2 ) [node name="ArrowSpawnL" type="Position2D" parent="."] visible = false position = Vector2( -9, 2 ) [connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]