[gd_scene load_steps=16 format=3 uid="uid://b0nady5xm88bo"]

[ext_resource type="Script" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_fwsjt"]
[ext_resource type="Script" path="res://Scripts/hitbox.gd" id="2_j8yin"]
[ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="2_o7jmg"]
[ext_resource type="Script" path="res://Scripts/health.gd" id="2_swu53"]
[ext_resource type="PackedScene" uid="uid://canrxnpxcugc2" path="res://Scenes/corpse.tscn" id="2_y7h25"]
[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="3_naknq"]
[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_tn1tu"]
[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_f8btv"]
[ext_resource type="Script" path="res://Scripts/EnemyAI/pathing_controller.gd" id="10_gljle"]
[ext_resource type="PackedScene" uid="uid://hjq3nrnumklp" path="res://Scenes/health_bar.tscn" id="10_or8n6"]
[ext_resource type="Script" path="res://Scripts/status_effector.gd" id="10_txouh"]
[ext_resource type="Script" path="res://Scripts/sprite_bobber.gd" id="12_2nmk0"]

[sub_resource type="SphereShape3D" id="SphereShape3D_21dgw"]

[sub_resource type="AtlasTexture" id="AtlasTexture_o3ikr"]
resource_local_to_scene = true
atlas = ExtResource("3_naknq")
region = Rect2(0, 0, 32, 32)

[sub_resource type="ViewportTexture" id="ViewportTexture_4tj6k"]
viewport_path = NodePath("SubViewport")

[node name="WalkingEnemy" type="CharacterBody3D" node_paths=PackedStringArray("status_manager", "movement_controller", "health", "sprite") groups=["Enemies"]]
collision_layer = 4
collision_mask = 3
script = ExtResource("1_fwsjt")
status_manager = NodePath("StatusEffector")
movement_controller = NodePath("PathingController")
health = NodePath("Health")
sprite = NodePath("DirectionSprite")
corpse_scene = ExtResource("2_y7h25")

[node name="Health" type="Node" parent="."]
script = ExtResource("2_swu53")
damage_particle_scene = ExtResource("4_tn1tu")

[node name="Hitbox" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.527022, 0)
shape = SubResource("SphereShape3D_21dgw")
script = ExtResource("2_j8yin")

[node name="DirectionSprite" parent="." instance=ExtResource("2_o7jmg")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.585, 0)
pixel_size = 0.04
texture = SubResource("AtlasTexture_o3ikr")

[node name="HealthBar" type="Sprite3D" parent="."]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.20821, 0)
sorting_offset = 1.0
pixel_size = 0.02
billboard = 1
texture_filter = 0
texture = SubResource("ViewportTexture_4tj6k")

[node name="MinimapIcon" type="Sprite3D" parent="."]
transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0)
layers = 4
texture_filter = 0
texture = ExtResource("9_f8btv")

[node name="StatusEffector" type="Node3D" parent="." node_paths=PackedStringArray("hbox", "enemy")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.18114, 0)
script = ExtResource("10_txouh")
hbox = NodePath("../SubViewport/HBoxContainer")
enemy = NodePath("..")

[node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true
size = Vector2i(200, 55)
render_target_update_mode = 4

[node name="HBoxContainer" type="HBoxContainer" parent="SubViewport"]
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 32.0
grow_horizontal = 2
alignment = 1

[node name="HealthBar" parent="SubViewport" instance=ExtResource("10_or8n6")]
visible = false
offset_top = 36.0
offset_bottom = 236.0

[node name="PathingController" type="Node" parent="." node_paths=PackedStringArray("character")]
script = ExtResource("10_gljle")
character = NodePath("..")

[node name="SpriteBobber" type="Node" parent="." node_paths=PackedStringArray("character", "sprite")]
script = ExtResource("12_2nmk0")
character = NodePath("..")
sprite = NodePath("../DirectionSprite")

[connection signal="health_changed" from="Health" to="SubViewport/HealthBar" method="on_health_changed"]
[connection signal="health_depleted" from="Health" to="." method="die"]
[connection signal="took_damage" from="Hitbox" to="Health" method="take_damage"]
