diff --git a/entities/CollectorDrone.tscn b/entities/CollectorDrone.tscn index ecb30fa..74dfb6b 100644 --- a/entities/CollectorDrone.tscn +++ b/entities/CollectorDrone.tscn @@ -1,11 +1,80 @@ -[gd_scene load_steps=2 format=3 uid="uid://dqdi1tpoid80c"] +[gd_scene load_steps=5 format=3 uid="uid://dqdi1tpoid80c"] [ext_resource type="Script" path="res://entities/scripts/collector_drone.gd" id="1_ws83e"] +[ext_resource type="Texture2D" uid="uid://btyc0yk5nbn2t" path="res://resources/textures/collector_drone.png" id="2_wq72s"] + +[sub_resource type="Animation" id="Animation_m21sl"] +resource_name = "Idle" +length = 2.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("CollectorDrone:offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(10, 8), Vector2(0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("CollectorDrone:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [0.0, 0.0523599, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Shadow:offset") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [Vector2(3.91169, 3.12935), Vector2(10, 8), Vector2(3.91169, 3.12935)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_keqev"] +_data = { +"Idle": SubResource("Animation_m21sl") +} [node name="CollectorDrone" type="Node2D"] script = ExtResource("1_ws83e") [node name="Polygon2D" type="Polygon2D" parent="."] +visible = false position = Vector2(1, -1) color = Color(0.620241, 0.619217, 0.900702, 1) polygon = PackedVector2Array(-28, -25, 25, -28, 26, 33, -32, 19) + +[node name="CollectorDrone" type="Sprite2D" parent="."] +position = Vector2(0, 1) +rotation = 0.00352767 +scale = Vector2(0.25, 0.25) +texture = ExtResource("2_wq72s") +offset = Vector2(0.673735, 0.538988) + +[node name="Shadow" type="Sprite2D" parent="."] +modulate = Color(0, 0, 0, 0.0784314) +position = Vector2(0, 100) +rotation = 0.0204816 +scale = Vector2(0.25, 0.1) +texture = ExtResource("2_wq72s") +offset = Vector2(4.32188, 3.4575) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_keqev") +} +autoplay = "Idle" diff --git a/entities/DancerDrone.tscn b/entities/DancerDrone.tscn index 739eeda..1f40797 100644 --- a/entities/DancerDrone.tscn +++ b/entities/DancerDrone.tscn @@ -1,14 +1,117 @@ -[gd_scene load_steps=3 format=3 uid="uid://cx7cunaspu08a"] +[gd_scene load_steps=10 format=3 uid="uid://cx7cunaspu08a"] [ext_resource type="Script" path="res://entities/scripts/dancer_drone.gd" id="1_44a5b"] +[ext_resource type="Texture2D" uid="uid://ck51br2sjtfbk" path="res://resources/textures/dancing_drone_body.png" id="2_d306w"] +[ext_resource type="Texture2D" uid="uid://bf3e8avdh3iwn" path="res://resources/textures/dancing_drone_hat.png" id="3_deyv3"] +[ext_resource type="Texture2D" uid="uid://btwh1m8nvxxn3" path="res://resources/textures/dancing_drone_leg_1.png" id="4_uppgc"] +[ext_resource type="Texture2D" uid="uid://0e8ksjsqrsg5" path="res://resources/textures/dancing_drone_leg_2.png" id="5_kvsjc"] [sub_resource type="CircleShape2D" id="CircleShape2D_xfqbx"] radius = 25.0 +[sub_resource type="Animation" id="Animation_utxxn"] +resource_name = "Dancing" +length = 3.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DancingDroneBody:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1.5, 3), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [0.0, 0.0523599, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("DancingDroneBody:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1.5, 3), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [Vector2(1, -3), Vector2(10, -10), Vector2(1, -3)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("DancingDroneBody/DancingDroneHat:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1.7, 3), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [0.0, 0.349066, 0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("DancingDroneBody/DancingDroneLeg1:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 1.6, 3), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [0.0, -0.174533, 0.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("DancingDroneBody/DancingDroneLeg2:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 1.3, 3), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [0.0, -0.349066, 0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("DancingDroneBody2:position") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 1.5, 2.9), +"transitions": PackedFloat32Array(1, -0.5, 1), +"update": 0, +"values": [Vector2(1, 100), Vector2(10, 102), Vector2(1, 100)] +} + +[sub_resource type="Animation" id="Animation_iwafd"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DancingDroneBody2:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 100)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_pfpsg"] +_data = { +"Dancing": SubResource("Animation_utxxn"), +"RESET": SubResource("Animation_iwafd") +} + [node name="DancerDrone" type="Node2D" groups=["dancer"]] script = ExtResource("1_44a5b") [node name="Polygon2D" type="Polygon2D" parent="."] +visible = false position = Vector2(1, -1) color = Color(0.354435, 0.719091, 0.745333, 1) polygon = PackedVector2Array(-28, -25, 25, -28, 26, 33, -32, 19) @@ -17,3 +120,60 @@ polygon = PackedVector2Array(-28, -25, 25, -28, 26, 33, -32, 19) [node name="HitBoxShape" type="CollisionShape2D" parent="HitBox"] shape = SubResource("CircleShape2D_xfqbx") + +[node name="DancingDroneBody" type="Sprite2D" parent="."] +position = Vector2(9.98454, -9.98798) +rotation = 0.05227 +scale = Vector2(0.2, 0.2) +texture = ExtResource("2_d306w") +offset = Vector2(3.09204, 0) + +[node name="DancingDroneHat" type="Sprite2D" parent="DancingDroneBody"] +position = Vector2(-102, -50) +rotation = 0.30747 +texture = ExtResource("3_deyv3") +offset = Vector2(41, -91) + +[node name="DancingDroneLeg1" type="Sprite2D" parent="DancingDroneBody"] +position = Vector2(-72, 94) +rotation = -0.163344 +texture = ExtResource("4_uppgc") +offset = Vector2(19, 94) + +[node name="DancingDroneLeg2" type="Sprite2D" parent="DancingDroneBody"] +position = Vector2(54, 86) +rotation = -0.33965 +texture = ExtResource("5_kvsjc") +offset = Vector2(-16, 107) + +[node name="DancingDroneBody2" type="Sprite2D" parent="."] +modulate = Color(0, 0, 0, 0.0784314) +position = Vector2(1, 100) +rotation = 0.0289966 +scale = Vector2(0.2, 0.05) +texture = ExtResource("2_d306w") +offset = Vector2(3.09204, 0) + +[node name="DancingDroneHat" type="Sprite2D" parent="DancingDroneBody2"] +position = Vector2(-102, -50) +rotation = 0.229387 +texture = ExtResource("3_deyv3") +offset = Vector2(41, -91) + +[node name="DancingDroneLeg1" type="Sprite2D" parent="DancingDroneBody2"] +position = Vector2(-72, 94) +rotation = -0.0983052 +texture = ExtResource("4_uppgc") +offset = Vector2(19, 94) + +[node name="DancingDroneLeg2" type="Sprite2D" parent="DancingDroneBody2"] +position = Vector2(54, 86) +rotation = -0.146 +texture = ExtResource("5_kvsjc") +offset = Vector2(-16, 107) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_pfpsg") +} +autoplay = "Dancing" diff --git a/entities/DirectorDrone.tscn b/entities/DirectorDrone.tscn index 9b80578..7dc0026 100644 --- a/entities/DirectorDrone.tscn +++ b/entities/DirectorDrone.tscn @@ -1,19 +1,112 @@ -[gd_scene load_steps=2 format=3 uid="uid://nxq2fd04ehcu"] +[gd_scene load_steps=6 format=3 uid="uid://nxq2fd04ehcu"] [ext_resource type="Script" path="res://entities/scripts/director_drone.gd" id="1_3v6jp"] +[ext_resource type="Texture2D" uid="uid://dnhs5ymd6ybyd" path="res://resources/textures/director_drone.png" id="2_8nbjk"] + +[sub_resource type="Animation" id="Animation_qstd5"] +resource_name = "Idle" +length = 2.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DirectorDrone:offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(10, 0), Vector2(0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Shadow:offset") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.047402, 1, 2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(10, 0), Vector2(0, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("DirectorDrone:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1, 2), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [0.0, 0.0523599, 0.0] +} + +[sub_resource type="Animation" id="Animation_gkp0o"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DirectorDrone:offset") +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("Shadow:offset") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_xu26h"] +_data = { +"Idle": SubResource("Animation_qstd5"), +"RESET": SubResource("Animation_gkp0o") +} [node name="DirectorDrone" type="Node2D"] script = ExtResource("1_3v6jp") +[node name="DirectorDrone" type="Sprite2D" parent="."] +scale = Vector2(0.3, 0.3) +texture = ExtResource("2_8nbjk") + +[node name="Shadow" type="Sprite2D" parent="."] +self_modulate = Color(0, 0, 0, 0.0784314) +position = Vector2(0, 100) +scale = Vector2(0.3, 0.1) +texture = ExtResource("2_8nbjk") + [node name="Polygon2D" type="Polygon2D" parent="."] +visible = false position = Vector2(1, -1) color = Color(0.703926, 0.656042, 0.441124, 1) polygon = PackedVector2Array(-28, -25, 25, -28, 26, 33, -32, 19) [node name="Label" type="Label" parent="."] -offset_left = -16.0 -offset_top = -12.0 -offset_right = 24.0 -offset_bottom = 11.0 -theme_override_colors/font_color = Color(0, 0, 0, 1) -text = "999" +visible = false +offset_left = 16.0 +offset_top = 26.0 +offset_right = 56.0 +offset_bottom = 49.0 +theme_override_colors/font_color = Color(0.270588, 0.211765, 0.364706, 1) +text = "9 " + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_xu26h") +} +autoplay = "Idle" diff --git a/entities/bee/states/bee_gather.gd b/entities/bee/states/bee_gather.gd index 18f9a5f..214a0c9 100644 --- a/entities/bee/states/bee_gather.gd +++ b/entities/bee/states/bee_gather.gd @@ -8,6 +8,8 @@ var time_at_patch : float = 0.0 func enter(_msg := {}): bee.just_gathering = true + + Log.pr("Gathering now...") #animator.play("Idle") #if !bee.in_range_of_flowers: @@ -22,6 +24,7 @@ func update(_delta : float): #animator.play("Gathering") time_at_patch += _delta if time_at_patch > 5.0: + Log.pr("Gathered nectar!") bee.nectar += 1 state_transition.emit(self, "Idle") else: diff --git a/entities/bee/states/bee_idle.gd b/entities/bee/states/bee_idle.gd index 6a7ea26..d901ef0 100644 --- a/entities/bee/states/bee_idle.gd +++ b/entities/bee/states/bee_idle.gd @@ -20,6 +20,7 @@ func update(delta : float): func find_something_to_do(): if bee.nectar > 0: + Log.pr("I have pollen, time to move..") ## Bee has pollen - head home state_transition.emit(self, "Travelling") else: diff --git a/entities/bee/states/bee_returning.gd b/entities/bee/states/bee_returning.gd index da5262c..4e06551 100644 --- a/entities/bee/states/bee_returning.gd +++ b/entities/bee/states/bee_returning.gd @@ -5,6 +5,7 @@ class_name BeeReturning @onready var target = get_tree().get_first_node_in_group("beehive") func enter(_msg := {}): + Log.pr("Returning to the hive") bee.animation_player.play("Flying") func update(delta : float) -> void: diff --git a/entities/bee/states/bee_travelling.gd b/entities/bee/states/bee_travelling.gd index fc92244..491d29a 100644 --- a/entities/bee/states/bee_travelling.gd +++ b/entities/bee/states/bee_travelling.gd @@ -12,6 +12,10 @@ func enter(_msg := {}): ## Get the next target location from the bee if bee.just_gathering: target = bee.get_current_director() # We want to go back the way we came + if !target: + Log.pr("No director around, returning to hive") + ## If there is no other director, just go straight back home + state_transition.emit(self, "Returning") bee.just_gathering = false else: target = bee.get_next_target() diff --git a/entities/scripts/bee.gd b/entities/scripts/bee.gd index 21142e0..a9970ae 100644 --- a/entities/scripts/bee.gd +++ b/entities/scripts/bee.gd @@ -27,6 +27,7 @@ func get_current_director(): ## If we are at the highest director, we need to go to a flower func get_next_target(): if nectar == 0: + Log.pr("No nectar!") ## If there is a next directory drone, lets go to it var next_drone = drone_manager.get_next_director(latest_target_director) @@ -42,8 +43,12 @@ func get_next_target(): ## Let's go home, we need the previous director drones location var previous_drone = drone_manager.get_previous_director(latest_target_director) if previous_drone: + Log.pr("Previous drone", previous_drone) latest_target_director = previous_drone.visit_order return previous_drone + else: + Log.pr("No previous drone") + return null func deposit_nectar(): GameState.add_nectar() diff --git a/resources/concept art/scene design.kra b/resources/concept art/scene design.kra index 0dd75c2..6f61be6 100644 Binary files a/resources/concept art/scene design.kra and b/resources/concept art/scene design.kra differ diff --git a/resources/concept art/scene design.kra~ b/resources/concept art/scene design.kra~ index d30264a..76a9afe 100644 Binary files a/resources/concept art/scene design.kra~ and b/resources/concept art/scene design.kra~ differ diff --git a/resources/textures/collector_drone.png b/resources/textures/collector_drone.png new file mode 100644 index 0000000..558581d Binary files /dev/null and b/resources/textures/collector_drone.png differ diff --git a/resources/textures/collector_drone.png.import b/resources/textures/collector_drone.png.import new file mode 100644 index 0000000..2823ca8 --- /dev/null +++ b/resources/textures/collector_drone.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btyc0yk5nbn2t" +path="res://.godot/imported/collector_drone.png-0d2a2ea31c213594ace33abea2231ec9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/textures/collector_drone.png" +dest_files=["res://.godot/imported/collector_drone.png-0d2a2ea31c213594ace33abea2231ec9.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 diff --git a/resources/textures/dancing_drone_body.png b/resources/textures/dancing_drone_body.png new file mode 100644 index 0000000..9b26003 Binary files /dev/null and b/resources/textures/dancing_drone_body.png differ diff --git a/resources/textures/dancing_drone_body.png.import b/resources/textures/dancing_drone_body.png.import new file mode 100644 index 0000000..02c99d6 --- /dev/null +++ b/resources/textures/dancing_drone_body.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ck51br2sjtfbk" +path="res://.godot/imported/dancing_drone_body.png-cbe0df58b99bf62f834bb38061f4adb7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/textures/dancing_drone_body.png" +dest_files=["res://.godot/imported/dancing_drone_body.png-cbe0df58b99bf62f834bb38061f4adb7.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 diff --git a/resources/textures/dancing_drone_hat.png b/resources/textures/dancing_drone_hat.png new file mode 100644 index 0000000..c291728 Binary files /dev/null and b/resources/textures/dancing_drone_hat.png differ diff --git a/resources/textures/dancing_drone_hat.png.import b/resources/textures/dancing_drone_hat.png.import new file mode 100644 index 0000000..0bbef4f --- /dev/null +++ b/resources/textures/dancing_drone_hat.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bf3e8avdh3iwn" +path="res://.godot/imported/dancing_drone_hat.png-d52da8690e5240af098f5dd891c076ed.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/textures/dancing_drone_hat.png" +dest_files=["res://.godot/imported/dancing_drone_hat.png-d52da8690e5240af098f5dd891c076ed.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 diff --git a/resources/textures/dancing_drone_leg_1.png b/resources/textures/dancing_drone_leg_1.png new file mode 100644 index 0000000..f3d353b Binary files /dev/null and b/resources/textures/dancing_drone_leg_1.png differ diff --git a/resources/textures/dancing_drone_leg_1.png.import b/resources/textures/dancing_drone_leg_1.png.import new file mode 100644 index 0000000..ea1b3a2 --- /dev/null +++ b/resources/textures/dancing_drone_leg_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btwh1m8nvxxn3" +path="res://.godot/imported/dancing_drone_leg_1.png-d8bd1f4a3d1ac0573eb848e29fb068a8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/textures/dancing_drone_leg_1.png" +dest_files=["res://.godot/imported/dancing_drone_leg_1.png-d8bd1f4a3d1ac0573eb848e29fb068a8.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 diff --git a/resources/textures/dancing_drone_leg_2.png b/resources/textures/dancing_drone_leg_2.png new file mode 100644 index 0000000..c732c1b Binary files /dev/null and b/resources/textures/dancing_drone_leg_2.png differ diff --git a/resources/textures/dancing_drone_leg_2.png.import b/resources/textures/dancing_drone_leg_2.png.import new file mode 100644 index 0000000..be8818a --- /dev/null +++ b/resources/textures/dancing_drone_leg_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0e8ksjsqrsg5" +path="res://.godot/imported/dancing_drone_leg_2.png-32bd9747545a3a356a1e19226f94104d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/textures/dancing_drone_leg_2.png" +dest_files=["res://.godot/imported/dancing_drone_leg_2.png-32bd9747545a3a356a1e19226f94104d.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 diff --git a/resources/textures/director_drone.png b/resources/textures/director_drone.png new file mode 100644 index 0000000..8adb4e8 Binary files /dev/null and b/resources/textures/director_drone.png differ diff --git a/resources/textures/director_drone.png.import b/resources/textures/director_drone.png.import new file mode 100644 index 0000000..bd4dbf0 --- /dev/null +++ b/resources/textures/director_drone.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnhs5ymd6ybyd" +path="res://.godot/imported/director_drone.png-388fc649b1259a2149f17cf22a1a3382.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/textures/director_drone.png" +dest_files=["res://.godot/imported/director_drone.png-388fc649b1259a2149f17cf22a1a3382.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 diff --git a/scenes/level_1.tscn b/scenes/level_1.tscn index c0fd563..fa72149 100644 --- a/scenes/level_1.tscn +++ b/scenes/level_1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://dalh10tit6qg"] +[gd_scene load_steps=16 format=3 uid="uid://dalh10tit6qg"] [ext_resource type="PackedScene" uid="uid://d1uawawum16b0" path="res://scenes/elements/background.tscn" id="1_qvqyj"] [ext_resource type="PackedScene" uid="uid://dyu4mucawjlu6" path="res://entities/Beehive.tscn" id="2_3g2rt"] @@ -12,7 +12,11 @@ [ext_resource type="PackedScene" uid="uid://cwutwy11pityw" path="res://ui/LevelCompleteComponent.tscn" id="6_6j5sw"] [ext_resource type="PackedScene" uid="uid://rnykx61eqxyk" path="res://scenes/decor/flower_1.tscn" id="11_o3nm3"] [ext_resource type="PackedScene" uid="uid://b7quc1hxenh5p" path="res://scenes/decor/flower_2.tscn" id="12_cill4"] -[ext_resource type="Texture2D" uid="uid://cej11vpym3lju" path="res://resources/textures/leafs.png" id="13_d6pgo"] +[ext_resource type="AudioStream" uid="uid://bgcbd6xf0lyrr" path="res://resources/music/bee_background.ogg" id="13_n8ob3"] +[ext_resource type="AudioStream" uid="uid://dvsjpsh5dyixq" path="res://resources/SFX/mixkit-european-spring-forest-ambience-1219.wav" id="14_v1rue"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_1tovu"] +radius = 142.316 [node name="Level1" type="Node2D"] @@ -35,6 +39,23 @@ position = Vector2(1214, 47) rotation = 0.60912 scale = Vector2(0.4, 0.4) +[node name="BushGroup3" type="Node2D" parent="LevelDecor"] +position = Vector2(-928, 592) +scale = Vector2(0.75, 0.75) + +[node name="Bush" parent="LevelDecor/BushGroup3" instance=ExtResource("2_k5umc")] +position = Vector2(1110, 28) +scale = Vector2(0.25, 0.25) + +[node name="Bush3" parent="LevelDecor/BushGroup3" instance=ExtResource("2_k5umc")] +position = Vector2(1272, 123) +scale = Vector2(0.25, 0.25) + +[node name="Bush2" parent="LevelDecor/BushGroup3" instance=ExtResource("2_k5umc")] +position = Vector2(1214, 47) +rotation = 0.60912 +scale = Vector2(0.4, 0.4) + [node name="BushGroup2" type="Node2D" parent="LevelDecor"] position = Vector2(456, 1669) rotation = 5.29882 @@ -100,7 +121,7 @@ rotation = 1.13446 scale = Vector2(0.3, 0.3) [node name="Flowers" type="Node2D" parent="."] -position = Vector2(-96, 5) +position = Vector2(-291, 65) [node name="Flower1" parent="Flowers" instance=ExtResource("11_o3nm3")] position = Vector2(1080, 377) @@ -154,7 +175,16 @@ scale = Vector2(0.5, 0.5) position = Vector2(1094, 320) scale = Vector2(0.5, 0.5) -[node name="Beehive" parent="." instance=ExtResource("2_3g2rt")] +[node name="Area2D" type="Area2D" parent="Flowers" groups=["flowers"]] +position = Vector2(1022, 326) +collision_layer = 7 +collision_mask = 7 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Flowers/Area2D"] +shape = SubResource("CircleShape2D_1tovu") + +[node name="Beehive" parent="." groups=["beehive"] instance=ExtResource("2_3g2rt")] +unique_name_in_owner = true position = Vector2(629, 360) [node name="BeeSpawner" parent="." instance=ExtResource("3_yxsy7")] @@ -165,6 +195,7 @@ offset_right = 1280.0 offset_bottom = 720.0 [node name="DroneManager" parent="." instance=ExtResource("5_fxm58")] +unique_name_in_owner = true [node name="LevelCompleteComponent" parent="." instance=ExtResource("6_6j5sw")] visible = false @@ -172,36 +203,11 @@ z_index = 999 offset_right = 1280.0 offset_bottom = 720.0 -[node name="ParallaxBackground" type="ParallaxBackground" parent="."] -layer = 100 +[node name="BackgroundMusic" type="AudioStreamPlayer" parent="."] +stream = ExtResource("13_n8ob3") +volume_db = -18.0 +autoplay = true -[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] -position = Vector2(3, -13) - -[node name="Sprite2D" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] -position = Vector2(385, 37) -scale = Vector2(0.5, 0.5) -texture = ExtResource("13_d6pgo") - -[node name="Sprite2D5" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] -position = Vector2(1160, 35) -scale = Vector2(0.5, 0.5) -texture = ExtResource("13_d6pgo") -flip_h = true - -[node name="Sprite2D2" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] -position = Vector2(625, 684) -texture = ExtResource("13_d6pgo") -flip_v = true - -[node name="Sprite2D3" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] -position = Vector2(38, 641) -rotation = 1.5708 -texture = ExtResource("13_d6pgo") -flip_v = true - -[node name="Sprite2D4" type="Sprite2D" parent="ParallaxBackground/ParallaxLayer"] -position = Vector2(1241, 670) -rotation = 1.5708 -texture = ExtResource("13_d6pgo") -flip_h = true +[node name="AtmosphericSounds" type="AudioStreamPlayer" parent="."] +stream = ExtResource("14_v1rue") +autoplay = true diff --git a/scenes/scripts/bee_spawner.gd b/scenes/scripts/bee_spawner.gd index a92121e..60c7f4e 100644 --- a/scenes/scripts/bee_spawner.gd +++ b/scenes/scripts/bee_spawner.gd @@ -8,7 +8,7 @@ var bee = preload("res://entities/Bee.tscn") @onready var small_bee_sound = get_node("BeeSound") var bee_count = 0 -var max_bees = 100 +var max_bees = 10 var spawn_interval = 0.5 var spawn_timer = 0.0 var bee_sound_timer = 0.0