[gd_scene load_steps=21 format=3 uid="uid://b8x6g2np2nf8j"] [ext_resource type="Script" uid="uid://c5warxls18mds" path="res://Scripts/Entity.gd" id="1_14gxe"] [ext_resource type="Script" uid="uid://n2vodoxhopnr" path="res://Scripts/Enemy AI/ShoreAI.gd" id="2_161nh"] [ext_resource type="Texture2D" uid="uid://d3plfj75jmmyu" path="res://Assets/Visuals/isostri.png" id="3_k4axu"] [ext_resource type="Texture2D" uid="uid://ddxbrkfa7i5n" path="res://Assets/Visuals/hexagon.png" id="4_bn6nu"] [ext_resource type="PackedScene" uid="uid://cnyxp6p68vtv7" path="res://Reusable Scenes/Masks/spirit_mask.tscn" id="6_srfke"] [ext_resource type="Script" uid="uid://ckd00ra2lp1xo" path="res://Scripts/Weapons/Melee.gd" id="6_tuc36"] [ext_resource type="Texture2D" uid="uid://dch6veuf65i6h" path="res://Assets/Visuals/club.svg" id="7_tuc36"] [sub_resource type="CircleShape2D" id="CircleShape2D_twxkf"] radius = 722.224 [sub_resource type="CircleShape2D" id="CircleShape2D_lrpdk"] radius = 43.0116 [sub_resource type="Gradient" id="Gradient_srfke"] offsets = PackedFloat32Array(1) colors = PackedColorArray(1, 1, 1, 1) [sub_resource type="GradientTexture1D" id="GradientTexture1D_tuc36"] gradient = SubResource("Gradient_srfke") [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_h27ao"] radius = 13.0 height = 80.0 [sub_resource type="Animation" id="Animation_h27ao"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("SpriteGroup/Foot:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(-9, 27)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("SpriteGroup/Foot2:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(9, 27)] } [sub_resource type="Animation" id="Animation_uu6qt"] resource_name = "walk" length = 0.8 loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("SpriteGroup/Foot:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.0666667, 0.166667, 0.233333, 0.333333, 0.4, 0.8), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), "update": 0, "values": [Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27), Vector2(-9, 27)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("SpriteGroup/Foot2:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.400847, 0.4759, 0.560019, 0.626686, 0.726686, 0.8), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), "update": 0, "values": [Vector2(9, 27), Vector2(-9, 27), Vector2(-6, 25), Vector2(-3, 24), Vector2(2, 24), Vector2(6, 26), Vector2(9, 27)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_twxkf"] _data = { &"RESET": SubResource("Animation_h27ao"), &"walk": SubResource("Animation_uu6qt") } [sub_resource type="Animation" id="Animation_6amt5"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath(".:rotation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Area2D:monitoring") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false] } [sub_resource type="Animation" id="Animation_x1mjv"] resource_name = "swing" length = 0.3 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath(".:rotation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.133333, 0.166667), "transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), "update": 0, "values": [0.0, 1.95477, 0.0] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Area2D:monitoring") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.166667), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] } [sub_resource type="Animation" id="Animation_4lcuo"] resource_name = "swing_flip" length = 0.3 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath(".:rotation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.133333, 0.166667), "transitions": PackedFloat32Array(0.189465, 0.189465, 5.27803), "update": 0, "values": [0.0, -1.95477, 0.0] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Area2D:monitoring") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.173523), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_4lcuo"] _data = { &"RESET": SubResource("Animation_6amt5"), &"swing": SubResource("Animation_x1mjv"), &"swing_flip": SubResource("Animation_4lcuo") } [sub_resource type="RectangleShape2D" id="RectangleShape2D_x1mjv"] size = Vector2(16.567, 67.304) [node name="EnemyClub" type="RigidBody2D"] collision_layer = 32768 lock_rotation = true script = ExtResource("1_14gxe") max_health = 15 [node name="EnemyShoreAI" type="Node" parent="." node_paths=PackedStringArray("weapon", "sprite", "animator")] script = ExtResource("2_161nh") weapon = NodePath("../weapon_club") sprite = NodePath("../SpriteGroup") animator = NodePath("../AnimationPlayer") [node name="AttackCooldown" type="Timer" parent="EnemyShoreAI"] wait_time = 1.5 [node name="DetectArea" type="Area2D" parent="."] collision_layer = 3 collision_mask = 3 collision_priority = 2.0 [node name="CollisionShape2D" type="CollisionShape2D" parent="DetectArea"] shape = SubResource("CircleShape2D_twxkf") [node name="AttackArea" type="Area2D" parent="."] collision_layer = 3 collision_mask = 3 collision_priority = 2.0 [node name="CollisionShape2D" type="CollisionShape2D" parent="AttackArea"] shape = SubResource("CircleShape2D_lrpdk") debug_color = Color(0.937978, 1.20327e-05, 0.625666, 0.42) [node name="SpriteGroup" type="Node2D" parent="."] [node name="Foot" type="Sprite2D" parent="SpriteGroup"] modulate = Color(0.45, 0.291, 0.2115, 1) position = Vector2(-9, 27) rotation = 3.14159 scale = Vector2(0.0160481, -0.009) texture = ExtResource("3_k4axu") [node name="Foot2" type="Sprite2D" parent="SpriteGroup"] modulate = Color(0.45, 0.291, 0.2115, 1) position = Vector2(9, 27) rotation = 3.14159 scale = Vector2(0.0160481, -0.009) texture = ExtResource("3_k4axu") [node name="Sprite2D3" type="Sprite2D" parent="SpriteGroup"] modulate = Color(0.733805, 0.379615, 1.92523e-07, 1) position = Vector2(-2, 1) scale = Vector2(0.0700947, -36.2594) skew = 0.148353 texture = SubResource("GradientTexture1D_tuc36") [node name="Sprite2D" type="Sprite2D" parent="SpriteGroup"] modulate = Color(0.919515, 0.481937, 1.92523e-07, 1) position = Vector2(0, -1) scale = Vector2(0.074875, -33.474) texture = SubResource("GradientTexture1D_tuc36") [node name="Sprite2D2" type="Sprite2D" parent="SpriteGroup"] modulate = Color(0.278431, 0.54902, 0.976471, 1) position = Vector2(0, -41.776) rotation = 3.14159 scale = Vector2(0.0277332, 0.0277332) texture = ExtResource("4_bn6nu") [node name="SpiritMask" parent="SpriteGroup" instance=ExtResource("6_srfke")] process_mode = 4 position = Vector2(4, -40) scale = Vector2(0.861963, 0.861963) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0, -9.44) shape = SubResource("CapsuleShape2D_h27ao") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { &"": SubResource("AnimationLibrary_twxkf") } [node name="weapon_club" type="Node2D" parent="." node_paths=PackedStringArray("animator", "area")] position = Vector2(22, -12) scale = Vector2(0.648004, 0.648004) script = ExtResource("6_tuc36") animator = NodePath("AnimationPlayer") atk = 1 area = NodePath("Area2D") mask = 2 disable_aft_atk = true [node name="AnimationPlayer" type="AnimationPlayer" parent="weapon_club"] libraries = { &"": SubResource("AnimationLibrary_4lcuo") } [node name="Machette" type="Sprite2D" parent="weapon_club"] position = Vector2(5, -14) rotation = 0.322494 scale = Vector2(0.0442815, 0.0599862) texture = ExtResource("7_tuc36") flip_h = true [node name="Area2D" type="Area2D" parent="weapon_club"] collision_mask = 32769 monitoring = false [node name="CollisionShape2D" type="CollisionShape2D" parent="weapon_club/Area2D"] position = Vector2(8, -25) rotation = 0.327302 scale = Vector2(1.03252, 1.07461) shape = SubResource("RectangleShape2D_x1mjv") [connection signal="timeout" from="EnemyShoreAI/AttackCooldown" to="EnemyShoreAI" method="_on_attack_cooldown_timeout"] [connection signal="body_entered" from="DetectArea" to="EnemyShoreAI" method="_on_area_2d_body_entered"] [connection signal="body_entered" from="AttackArea" to="EnemyShoreAI" method="_on_attack_area_body_entered"] [connection signal="body_exited" from="AttackArea" to="EnemyShoreAI" method="_on_attack_area_body_exited"] [connection signal="body_entered" from="weapon_club/Area2D" to="weapon_club" method="_on_area_2d_body_entered"]