1
Fork 0
mirror of https://github.com/Steffo99/hella-farm.git synced 2024-11-21 23:54:23 +00:00

Make entities put on hat and monocle

This commit is contained in:
Steffo 2024-04-30 05:17:57 +02:00
parent 4ddb1a36a7
commit dc1a239471
Signed by: steffo
GPG key ID: 5ADA3868646C3FC0
11 changed files with 257 additions and 10 deletions

View file

@ -7,9 +7,17 @@ class_name Eater
signal eaten(edible: Edible) signal eaten(edible: Edible)
## Emitted when the [field goal] number of entities has been eaten.
signal goal_reached
@export var acceptable_diets: Array[StringName] = [] @export var acceptable_diets: Array[StringName] = []
@export var target = -1
## Count of how many times something was eaten.
var count: int = 0
func log_eaten(edible: Edible) -> void: func log_eaten(edible: Edible) -> void:
Log.p(self, "Eaten: %s" % edible) Log.p(self, "Eaten: %s" % edible)
@ -21,3 +29,6 @@ func _on_body_entered(body: Node2D) -> void:
if edible.diet in acceptable_diets: if edible.diet in acceptable_diets:
eaten.emit(edible) eaten.emit(edible)
edible.eat() edible.eat()
count += 1
if count == target:
goal_reached.emit()

View file

@ -13,7 +13,11 @@ func handle_move(movement: Vector2):
discrim = last_discrim discrim = last_discrim
if discrim > 0: if discrim > 0:
texture = right_texture texture = right_texture
for child in get_children():
child.scale.x = -abs(child.scale.x)
last_discrim = discrim last_discrim = discrim
elif discrim < 0: elif discrim < 0:
texture = left_texture texture = left_texture
for child in get_children():
child.scale.x = abs(child.scale.x)
last_discrim = discrim last_discrim = discrim

View file

@ -1,10 +1,12 @@
[gd_scene load_steps=34 format=3 uid="uid://cmemgijh6nfmk"] [gd_scene load_steps=36 format=3 uid="uid://cmemgijh6nfmk"]
[ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="1_11voy"] [ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="1_11voy"]
[ext_resource type="Script" path="res://entities/chupacabra.gd" id="1_s4qg1"] [ext_resource type="Script" path="res://entities/chupacabra.gd" id="1_s4qg1"]
[ext_resource type="Texture2D" uid="uid://dcm4txm5gxogt" path="res://entities/chupacabra_left.png" id="2_3kvme"] [ext_resource type="Texture2D" uid="uid://dcm4txm5gxogt" path="res://entities/chupacabra_left.png" id="2_3kvme"]
[ext_resource type="Texture2D" uid="uid://ba01u171xjl7" path="res://entities/chupacabra_right.png" id="3_rolht"] [ext_resource type="Texture2D" uid="uid://ba01u171xjl7" path="res://entities/chupacabra_right.png" id="3_rolht"]
[ext_resource type="Texture2D" uid="uid://d3tb6ypb36v8e" path="res://entities/monocle.png" id="5_bcm2q"]
[ext_resource type="Texture2D" uid="uid://bpg0do7wlvqdj" path="res://entities/chupacabra_drag_left.png" id="5_hxrq2"] [ext_resource type="Texture2D" uid="uid://bpg0do7wlvqdj" path="res://entities/chupacabra_drag_left.png" id="5_hxrq2"]
[ext_resource type="Texture2D" uid="uid://deqvgvf66grr4" path="res://entities/top_hat.png" id="5_qjgou"]
[ext_resource type="Texture2D" uid="uid://do1nfcfcs6jgx" path="res://entities/chupacabra_drag_right.png" id="6_kmadh"] [ext_resource type="Texture2D" uid="uid://do1nfcfcs6jgx" path="res://entities/chupacabra_drag_right.png" id="6_kmadh"]
[ext_resource type="PackedScene" uid="uid://g8t6dt0ye6n3" path="res://behaviours/timer_stddev.tscn" id="6_qsds3"] [ext_resource type="PackedScene" uid="uid://g8t6dt0ye6n3" path="res://behaviours/timer_stddev.tscn" id="6_qsds3"]
[ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="7_igror"] [ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="7_igror"]
@ -22,6 +24,9 @@
[ext_resource type="PackedScene" uid="uid://jg7qkbswgqjc" path="res://behaviours/eater.tscn" id="16_ltvqn"] [ext_resource type="PackedScene" uid="uid://jg7qkbswgqjc" path="res://behaviours/eater.tscn" id="16_ltvqn"]
[ext_resource type="AudioStream" uid="uid://c1yuksnjdd6g2" path="res://entities/imp_eat.ogg" id="17_ccla5"] [ext_resource type="AudioStream" uid="uid://c1yuksnjdd6g2" path="res://entities/imp_eat.ogg" id="17_ccla5"]
[sub_resource type="CircleShape2D" id="CircleShape2D_binyt"]
radius = 40.0
[sub_resource type="CircleShape2D" id="CircleShape2D_mnexs"] [sub_resource type="CircleShape2D" id="CircleShape2D_mnexs"]
radius = 32.0 radius = 32.0
@ -354,9 +359,6 @@ radius = 25.19
[sub_resource type="CircleShape2D" id="CircleShape2D_vm5g3"] [sub_resource type="CircleShape2D" id="CircleShape2D_vm5g3"]
radius = 32.0 radius = 32.0
[sub_resource type="CircleShape2D" id="CircleShape2D_binyt"]
radius = 40.0
[node name="Chupacabra" type="CharacterBody2D"] [node name="Chupacabra" type="CharacterBody2D"]
y_sort_enabled = true y_sort_enabled = true
collision_layer = 8 collision_layer = 8
@ -373,6 +375,40 @@ texture = ExtResource("2_3kvme")
left_texture = ExtResource("2_3kvme") left_texture = ExtResource("2_3kvme")
right_texture = ExtResource("3_rolht") right_texture = ExtResource("3_rolht")
[node name="TopHatter" parent="Sprite" instance=ExtResource("16_ltvqn")]
unique_name_in_owner = true
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"TopHat"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/TopHatter"]
visible = false
z_index = 1
position = Vector2(-1, -39)
scale = Vector2(2, 2)
texture = ExtResource("5_qjgou")
[node name="Shape" type="CollisionShape2D" parent="Sprite/TopHatter"]
shape = SubResource("CircleShape2D_binyt")
debug_color = Color(1, 0, 0, 0)
[node name="Monocler" parent="Sprite" instance=ExtResource("16_ltvqn")]
unique_name_in_owner = true
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"Monocle"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/Monocler"]
visible = false
z_index = 1
position = Vector2(-9, -17)
scale = Vector2(2, 2)
texture = ExtResource("5_bcm2q")
[node name="Shape" type="CollisionShape2D" parent="Sprite/Monocler"]
shape = SubResource("CircleShape2D_binyt")
debug_color = Color(1, 0, 0, 0)
[node name="Shape" type="CollisionShape2D" parent="."] [node name="Shape" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_mnexs") shape = SubResource("CircleShape2D_mnexs")
@ -488,6 +524,10 @@ debug_color = Color(1, 0, 0, 0)
stream = ExtResource("17_ccla5") stream = ExtResource("17_ccla5")
bus = &"KillSounds" bus = &"KillSounds"
[connection signal="eaten" from="Sprite/TopHatter" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/TopHatter" to="Sprite/TopHatter/Sprite" method="show"]
[connection signal="eaten" from="Sprite/Monocler" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/Monocler" to="Sprite/Monocler/Sprite" method="show"]
[connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"] [connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"]
[connection signal="move" from="MovementIdle" to="." method="_on_move"] [connection signal="move" from="MovementIdle" to="." method="_on_move"]
[connection signal="move_disabled" from="MovementIdle" to="MovementIdle/BoredTimer" method="stop"] [connection signal="move_disabled" from="MovementIdle" to="MovementIdle/BoredTimer" method="stop"]

View file

@ -26,3 +26,6 @@ func _on_fallen() -> void:
z_index = Enums.ZIndex.EntityGround z_index = Enums.ZIndex.EntityGround
y_sort_enabled = true y_sort_enabled = true
animator.play(&"RESET") animator.play(&"RESET")
func _on_eater_eaten(edible: Edible) -> void:
edible.get_parent().queue_free()

View file

@ -1,10 +1,12 @@
[gd_scene load_steps=19 format=3 uid="uid://gl4umoff474y"] [gd_scene load_steps=23 format=3 uid="uid://gl4umoff474y"]
[ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="1_a8ato"] [ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="1_a8ato"]
[ext_resource type="Script" path="res://entities/cthulhu.gd" id="1_b55wc"] [ext_resource type="Script" path="res://entities/cthulhu.gd" id="1_b55wc"]
[ext_resource type="Texture2D" uid="uid://17komk2y0f4e" path="res://entities/cthulhu_left.png" id="2_13vnj"] [ext_resource type="Texture2D" uid="uid://17komk2y0f4e" path="res://entities/cthulhu_left.png" id="2_13vnj"]
[ext_resource type="Texture2D" uid="uid://bs6es4d3fvunw" path="res://entities/cthulhu_right.png" id="4_1wxgg"] [ext_resource type="Texture2D" uid="uid://bs6es4d3fvunw" path="res://entities/cthulhu_right.png" id="4_1wxgg"]
[ext_resource type="Texture2D" uid="uid://6revaeis55q1" path="res://entities/cthulhu_drag_left.png" id="5_6ho60"] [ext_resource type="Texture2D" uid="uid://6revaeis55q1" path="res://entities/cthulhu_drag_left.png" id="5_6ho60"]
[ext_resource type="Texture2D" uid="uid://deqvgvf66grr4" path="res://entities/top_hat.png" id="5_a1p2d"]
[ext_resource type="Texture2D" uid="uid://d3tb6ypb36v8e" path="res://entities/monocle.png" id="6_04snb"]
[ext_resource type="Texture2D" uid="uid://b0tlt1tgukajd" path="res://entities/cthulhu_drag_right.png" id="6_behik"] [ext_resource type="Texture2D" uid="uid://b0tlt1tgukajd" path="res://entities/cthulhu_drag_right.png" id="6_behik"]
[ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="6_truco"] [ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="6_truco"]
[ext_resource type="PackedScene" uid="uid://rx24bppccih7" path="res://behaviours/move_physics.tscn" id="8_mvkr6"] [ext_resource type="PackedScene" uid="uid://rx24bppccih7" path="res://behaviours/move_physics.tscn" id="8_mvkr6"]
@ -12,6 +14,10 @@
[ext_resource type="PackedScene" uid="uid://dijcjahkddudv" path="res://behaviours/draggable.tscn" id="10_c36ur"] [ext_resource type="PackedScene" uid="uid://dijcjahkddudv" path="res://behaviours/draggable.tscn" id="10_c36ur"]
[ext_resource type="AudioStream" uid="uid://d0feiq5s6fnux" path="res://entities/imp_drag.wav" id="11_jt7u1"] [ext_resource type="AudioStream" uid="uid://d0feiq5s6fnux" path="res://entities/imp_drag.wav" id="11_jt7u1"]
[ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="12_v8da5"] [ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="12_v8da5"]
[ext_resource type="PackedScene" uid="uid://jg7qkbswgqjc" path="res://behaviours/eater.tscn" id="15_vopba"]
[sub_resource type="CircleShape2D" id="CircleShape2D_wjkbi"]
radius = 56.0
[sub_resource type="CircleShape2D" id="CircleShape2D_uw0y6"] [sub_resource type="CircleShape2D" id="CircleShape2D_uw0y6"]
radius = 50.0 radius = 50.0
@ -200,6 +206,42 @@ texture = ExtResource("2_13vnj")
left_texture = ExtResource("2_13vnj") left_texture = ExtResource("2_13vnj")
right_texture = ExtResource("4_1wxgg") right_texture = ExtResource("4_1wxgg")
[node name="TopHatter" parent="SpriteFocus/Sprite" instance=ExtResource("15_vopba")]
unique_name_in_owner = true
position = Vector2(0, -6)
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"TopHat"])
target = 1
[node name="Sprite" type="Sprite2D" parent="SpriteFocus/Sprite/TopHatter"]
visible = false
z_index = 1
position = Vector2(1, -54)
scale = Vector2(2, 2)
texture = ExtResource("5_a1p2d")
[node name="Shape" type="CollisionShape2D" parent="SpriteFocus/Sprite/TopHatter"]
shape = SubResource("CircleShape2D_wjkbi")
debug_color = Color(1, 0, 0, 0)
[node name="Monocler" parent="SpriteFocus/Sprite" instance=ExtResource("15_vopba")]
unique_name_in_owner = true
position = Vector2(0, -6)
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"Monocle"])
target = 1
[node name="Sprite" type="Sprite2D" parent="SpriteFocus/Sprite/Monocler"]
visible = false
z_index = 1
position = Vector2(10, -19)
scale = Vector2(2, 2)
texture = ExtResource("6_04snb")
[node name="Shape" type="CollisionShape2D" parent="SpriteFocus/Sprite/Monocler"]
shape = SubResource("CircleShape2D_wjkbi")
debug_color = Color(1, 0, 0, 0)
[node name="Shape" type="CollisionShape2D" parent="."] [node name="Shape" type="CollisionShape2D" parent="."]
position = Vector2(0, 36) position = Vector2(0, 36)
shape = SubResource("CircleShape2D_uw0y6") shape = SubResource("CircleShape2D_uw0y6")
@ -237,6 +279,10 @@ bus = &"DragSounds"
stream = ExtResource("12_v8da5") stream = ExtResource("12_v8da5")
bus = &"FallSounds" bus = &"FallSounds"
[connection signal="eaten" from="SpriteFocus/Sprite/TopHatter" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="SpriteFocus/Sprite/TopHatter" to="SpriteFocus/Sprite/TopHatter/Sprite" method="show"]
[connection signal="eaten" from="SpriteFocus/Sprite/Monocler" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="SpriteFocus/Sprite/Monocler" to="SpriteFocus/Sprite/Monocler/Sprite" method="show"]
[connection signal="dragged" from="MovementDrag" to="." method="_on_dragged"] [connection signal="dragged" from="MovementDrag" to="." method="_on_dragged"]
[connection signal="dragged" from="MovementDrag" to="MovementDrag/DragPriority" method="priority_alternative" unbinds=1] [connection signal="dragged" from="MovementDrag" to="MovementDrag/DragPriority" method="priority_alternative" unbinds=1]
[connection signal="dragged" from="MovementDrag" to="MovementDrag/DragSound" method="play" unbinds=1] [connection signal="dragged" from="MovementDrag" to="MovementDrag/DragSound" method="play" unbinds=1]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=32 format=3 uid="uid://4d3ksr3171x4"] [gd_scene load_steps=35 format=3 uid="uid://4d3ksr3171x4"]
[ext_resource type="Script" path="res://entities/imp.gd" id="1_dixpc"] [ext_resource type="Script" path="res://entities/imp.gd" id="1_dixpc"]
[ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="2_eqcdi"] [ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="2_eqcdi"]
@ -6,8 +6,10 @@
[ext_resource type="Texture2D" uid="uid://bubehid53q8h1" path="res://entities/imp_right.png" id="4_0sckn"] [ext_resource type="Texture2D" uid="uid://bubehid53q8h1" path="res://entities/imp_right.png" id="4_0sckn"]
[ext_resource type="PackedScene" uid="uid://tx1qi6ahlxjp" path="res://behaviours/spawner.tscn" id="4_d8lgm"] [ext_resource type="PackedScene" uid="uid://tx1qi6ahlxjp" path="res://behaviours/spawner.tscn" id="4_d8lgm"]
[ext_resource type="Texture2D" uid="uid://rxtd1rakhj" path="res://entities/imp_drag_left.png" id="5_fpj27"] [ext_resource type="Texture2D" uid="uid://rxtd1rakhj" path="res://entities/imp_drag_left.png" id="5_fpj27"]
[ext_resource type="Texture2D" uid="uid://deqvgvf66grr4" path="res://entities/top_hat.png" id="5_w4u6a"]
[ext_resource type="PackedScene" uid="uid://uoxwjpmgg27a" path="res://entities/gold.tscn" id="5_yrfoq"] [ext_resource type="PackedScene" uid="uid://uoxwjpmgg27a" path="res://entities/gold.tscn" id="5_yrfoq"]
[ext_resource type="Texture2D" uid="uid://dudq4p8owrpsa" path="res://entities/imp_drag_right.png" id="6_1cw6p"] [ext_resource type="Texture2D" uid="uid://dudq4p8owrpsa" path="res://entities/imp_drag_right.png" id="6_1cw6p"]
[ext_resource type="Texture2D" uid="uid://d3tb6ypb36v8e" path="res://entities/monocle.png" id="6_jebbv"]
[ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="7_ech8d"] [ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="7_ech8d"]
[ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="7_gg20m"] [ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="7_gg20m"]
[ext_resource type="PackedScene" uid="uid://dk1ipq7dhkhf3" path="res://behaviours/move_straight.tscn" id="8_ffcw0"] [ext_resource type="PackedScene" uid="uid://dk1ipq7dhkhf3" path="res://behaviours/move_straight.tscn" id="8_ffcw0"]
@ -23,6 +25,9 @@
[ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="17_lib0h"] [ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="17_lib0h"]
[ext_resource type="AudioStream" uid="uid://c1yuksnjdd6g2" path="res://entities/imp_eat.ogg" id="19_7la6c"] [ext_resource type="AudioStream" uid="uid://c1yuksnjdd6g2" path="res://entities/imp_eat.ogg" id="19_7la6c"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6l0s5"]
radius = 40.0
[sub_resource type="CircleShape2D" id="CircleShape2D_ide4n"] [sub_resource type="CircleShape2D" id="CircleShape2D_ide4n"]
radius = 32.0 radius = 32.0
@ -239,6 +244,40 @@ texture = ExtResource("3_qda0k")
left_texture = ExtResource("3_qda0k") left_texture = ExtResource("3_qda0k")
right_texture = ExtResource("4_0sckn") right_texture = ExtResource("4_0sckn")
[node name="TopHatter" parent="Sprite" instance=ExtResource("14_w2h8x")]
unique_name_in_owner = true
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"TopHat"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/TopHatter"]
visible = false
z_index = 1
position = Vector2(-1, -34)
scale = Vector2(2, 2)
texture = ExtResource("5_w4u6a")
[node name="Shape" type="CollisionShape2D" parent="Sprite/TopHatter"]
shape = SubResource("CircleShape2D_6l0s5")
debug_color = Color(1, 0, 0, 0)
[node name="Monocler" parent="Sprite" instance=ExtResource("14_w2h8x")]
unique_name_in_owner = true
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"Monocle"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/Monocler"]
visible = false
z_index = 1
position = Vector2(7, -10)
scale = Vector2(2, 2)
texture = ExtResource("6_jebbv")
[node name="Shape" type="CollisionShape2D" parent="Sprite/Monocler"]
shape = SubResource("CircleShape2D_6l0s5")
debug_color = Color(1, 0, 0, 0)
[node name="Shape" type="CollisionShape2D" parent="."] [node name="Shape" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_ide4n") shape = SubResource("CircleShape2D_ide4n")
@ -348,6 +387,10 @@ debug_color = Color(1, 0, 0, 0)
stream = ExtResource("19_7la6c") stream = ExtResource("19_7la6c")
bus = &"KillSounds" bus = &"KillSounds"
[connection signal="eaten" from="Sprite/TopHatter" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/TopHatter" to="Sprite/TopHatter/Sprite" method="show"]
[connection signal="eaten" from="Sprite/Monocler" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/Monocler" to="Sprite/Monocler/Sprite" method="show"]
[connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"] [connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"]
[connection signal="timeout" from="GoldSpawner/SpawnTimer" to="GoldSpawner" method="spawn"] [connection signal="timeout" from="GoldSpawner/SpawnTimer" to="GoldSpawner" method="spawn"]
[connection signal="changed_direction" from="MovementWander" to="MovementWander/WanderPriority" method="priority_conditional"] [connection signal="changed_direction" from="MovementWander" to="MovementWander/WanderPriority" method="priority_conditional"]

View file

@ -1,8 +1,9 @@
[gd_scene load_steps=13 format=3 uid="uid://b04xhv32ypi42"] [gd_scene load_steps=14 format=3 uid="uid://b04xhv32ypi42"]
[ext_resource type="Script" path="res://entities/monocle.gd" id="1_ehpfj"] [ext_resource type="Script" path="res://entities/monocle.gd" id="1_ehpfj"]
[ext_resource type="Texture2D" uid="uid://d3tb6ypb36v8e" path="res://entities/monocle.png" id="1_omrit"] [ext_resource type="Texture2D" uid="uid://d3tb6ypb36v8e" path="res://entities/monocle.png" id="1_omrit"]
[ext_resource type="PackedScene" uid="uid://rx24bppccih7" path="res://behaviours/move_physics.tscn" id="2_jgnsw"] [ext_resource type="PackedScene" uid="uid://rx24bppccih7" path="res://behaviours/move_physics.tscn" id="2_jgnsw"]
[ext_resource type="PackedScene" uid="uid://dfdr3e32lohq" path="res://behaviours/edible.tscn" id="3_7kfmh"]
[ext_resource type="PackedScene" uid="uid://dijcjahkddudv" path="res://behaviours/draggable.tscn" id="3_e0ni5"] [ext_resource type="PackedScene" uid="uid://dijcjahkddudv" path="res://behaviours/draggable.tscn" id="3_e0ni5"]
[ext_resource type="AudioStream" uid="uid://dgd1ldpffk6ql" path="res://entities/monocle_drag.wav" id="5_bs8m7"] [ext_resource type="AudioStream" uid="uid://dgd1ldpffk6ql" path="res://entities/monocle_drag.wav" id="5_bs8m7"]
[ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="5_grwug"] [ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="5_grwug"]
@ -127,6 +128,9 @@ libraries = {
next/drag_loop = &"drag_loop" next/drag_loop = &"drag_loop"
next/drag_start = &"drag_loop" next/drag_start = &"drag_loop"
[node name="Edible" parent="." instance=ExtResource("3_7kfmh")]
diet = &"Monocle"
[node name="MovementDrag" parent="." instance=ExtResource("2_jgnsw")] [node name="MovementDrag" parent="." instance=ExtResource("2_jgnsw")]
[node name="Draggable" parent="MovementDrag" instance=ExtResource("3_e0ni5")] [node name="Draggable" parent="MovementDrag" instance=ExtResource("3_e0ni5")]

View file

@ -35,3 +35,6 @@ func _on_trapped() -> void:
func _on_freed() -> void: func _on_freed() -> void:
z_index = Enums.ZIndex.EntityGround z_index = Enums.ZIndex.EntityGround
y_sort_enabled = true y_sort_enabled = true
func _on_eater_eaten(edible: Edible) -> void:
edible.get_parent().queue_free()

View file

@ -1,11 +1,13 @@
[gd_scene load_steps=30 format=3 uid="uid://bc2bm8lbol18w"] [gd_scene load_steps=34 format=3 uid="uid://bc2bm8lbol18w"]
[ext_resource type="Script" path="res://entities/sheep.gd" id="1_4dmll"] [ext_resource type="Script" path="res://entities/sheep.gd" id="1_4dmll"]
[ext_resource type="Texture2D" uid="uid://iljp5yn3ehfk" path="res://entities/sheep_left.png" id="2_t13f5"] [ext_resource type="Texture2D" uid="uid://iljp5yn3ehfk" path="res://entities/sheep_left.png" id="2_t13f5"]
[ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="2_xbkrm"] [ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="2_xbkrm"]
[ext_resource type="Texture2D" uid="uid://cxtmas4g0v6en" path="res://entities/sheep_right.png" id="4_5qoof"] [ext_resource type="Texture2D" uid="uid://cxtmas4g0v6en" path="res://entities/sheep_right.png" id="4_5qoof"]
[ext_resource type="Texture2D" uid="uid://deqvgvf66grr4" path="res://entities/top_hat.png" id="5_gfn7a"]
[ext_resource type="Texture2D" uid="uid://cfduc7cdorasr" path="res://entities/sheep_drag_left.png" id="5_gh6h6"] [ext_resource type="Texture2D" uid="uid://cfduc7cdorasr" path="res://entities/sheep_drag_left.png" id="5_gh6h6"]
[ext_resource type="PackedScene" uid="uid://dfdr3e32lohq" path="res://behaviours/edible.tscn" id="6_3odsh"] [ext_resource type="PackedScene" uid="uid://dfdr3e32lohq" path="res://behaviours/edible.tscn" id="6_3odsh"]
[ext_resource type="Texture2D" uid="uid://d3tb6ypb36v8e" path="res://entities/monocle.png" id="6_q0o52"]
[ext_resource type="Texture2D" uid="uid://m5bebwb06kqe" path="res://entities/sheep_drag_right.png" id="6_x4fsj"] [ext_resource type="Texture2D" uid="uid://m5bebwb06kqe" path="res://entities/sheep_drag_right.png" id="6_x4fsj"]
[ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="8_43m1b"] [ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="8_43m1b"]
[ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="9_s5lod"] [ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="9_s5lod"]
@ -21,6 +23,10 @@
[ext_resource type="PackedScene" uid="uid://ctpn4hvkhxoi3" path="res://behaviours/tracker_edible.tscn" id="16_6h84f"] [ext_resource type="PackedScene" uid="uid://ctpn4hvkhxoi3" path="res://behaviours/tracker_edible.tscn" id="16_6h84f"]
[ext_resource type="AudioStream" uid="uid://bmfscpnugaejk" path="res://entities/sheep_drag.wav" id="16_nswfl"] [ext_resource type="AudioStream" uid="uid://bmfscpnugaejk" path="res://entities/sheep_drag.wav" id="16_nswfl"]
[ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="17_8kst2"] [ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="17_8kst2"]
[ext_resource type="PackedScene" uid="uid://jg7qkbswgqjc" path="res://behaviours/eater.tscn" id="22_lilpq"]
[sub_resource type="CircleShape2D" id="CircleShape2D_kq6qs"]
radius = 40.0
[sub_resource type="CircleShape2D" id="CircleShape2D_c5tcn"] [sub_resource type="CircleShape2D" id="CircleShape2D_c5tcn"]
radius = 24.0 radius = 24.0
@ -214,6 +220,42 @@ texture = ExtResource("2_t13f5")
left_texture = ExtResource("2_t13f5") left_texture = ExtResource("2_t13f5")
right_texture = ExtResource("4_5qoof") right_texture = ExtResource("4_5qoof")
[node name="TopHatter" parent="Sprite" instance=ExtResource("22_lilpq")]
unique_name_in_owner = true
position = Vector2(0, 2)
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"TopHat"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/TopHatter"]
visible = false
z_index = 1
position = Vector2(-10, -28)
scale = Vector2(2, 2)
texture = ExtResource("5_gfn7a")
[node name="Shape" type="CollisionShape2D" parent="Sprite/TopHatter"]
shape = SubResource("CircleShape2D_kq6qs")
debug_color = Color(1, 0, 0, 0)
[node name="Monocler" parent="Sprite" instance=ExtResource("22_lilpq")]
unique_name_in_owner = true
position = Vector2(0, 2)
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"Monocle"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/Monocler"]
visible = false
z_index = 1
position = Vector2(-15, -5)
scale = Vector2(2, 2)
texture = ExtResource("6_q0o52")
[node name="Shape" type="CollisionShape2D" parent="Sprite/Monocler"]
shape = SubResource("CircleShape2D_kq6qs")
debug_color = Color(1, 0, 0, 0)
[node name="Shape" type="CollisionShape2D" parent="."] [node name="Shape" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_c5tcn") shape = SubResource("CircleShape2D_c5tcn")
@ -329,6 +371,10 @@ bus = &"DragSounds"
stream = ExtResource("17_8kst2") stream = ExtResource("17_8kst2")
bus = &"FallSounds" bus = &"FallSounds"
[connection signal="eaten" from="Sprite/TopHatter" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/TopHatter" to="Sprite/TopHatter/Sprite" method="show"]
[connection signal="eaten" from="Sprite/Monocler" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/Monocler" to="Sprite/Monocler/Sprite" method="show"]
[connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"] [connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"]
[connection signal="move" from="MovementIdle" to="." method="_on_move"] [connection signal="move" from="MovementIdle" to="." method="_on_move"]
[connection signal="move_disabled" from="MovementIdle" to="MovementIdle/BoredTimer" method="stop"] [connection signal="move_disabled" from="MovementIdle" to="MovementIdle/BoredTimer" method="stop"]

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=12 format=3 uid="uid://8ejgwtkpaa44"] [gd_scene load_steps=13 format=3 uid="uid://8ejgwtkpaa44"]
[ext_resource type="Script" path="res://entities/top_hat.gd" id="1_0eh11"] [ext_resource type="Script" path="res://entities/top_hat.gd" id="1_0eh11"]
[ext_resource type="Texture2D" uid="uid://deqvgvf66grr4" path="res://entities/top_hat.png" id="1_gbqic"] [ext_resource type="Texture2D" uid="uid://deqvgvf66grr4" path="res://entities/top_hat.png" id="1_gbqic"]
[ext_resource type="PackedScene" uid="uid://dfdr3e32lohq" path="res://behaviours/edible.tscn" id="3_6ru0l"]
[ext_resource type="PackedScene" uid="uid://rx24bppccih7" path="res://behaviours/move_physics.tscn" id="3_gy414"] [ext_resource type="PackedScene" uid="uid://rx24bppccih7" path="res://behaviours/move_physics.tscn" id="3_gy414"]
[ext_resource type="PackedScene" uid="uid://dijcjahkddudv" path="res://behaviours/draggable.tscn" id="4_fcvjo"] [ext_resource type="PackedScene" uid="uid://dijcjahkddudv" path="res://behaviours/draggable.tscn" id="4_fcvjo"]
[ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="6_6tpnh"] [ext_resource type="AudioStream" uid="uid://cwsg776c11xfc" path="res://entities/fall.ogg" id="6_6tpnh"]
@ -126,6 +127,9 @@ libraries = {
next/drag_loop = &"drag_loop" next/drag_loop = &"drag_loop"
next/drag_start = &"drag_loop" next/drag_start = &"drag_loop"
[node name="Edible" parent="." instance=ExtResource("3_6ru0l")]
diet = &"TopHat"
[node name="MovementDrag" parent="." instance=ExtResource("3_gy414")] [node name="MovementDrag" parent="." instance=ExtResource("3_gy414")]
[node name="Draggable" parent="MovementDrag" instance=ExtResource("4_fcvjo")] [node name="Draggable" parent="MovementDrag" instance=ExtResource("4_fcvjo")]

View file

@ -1,10 +1,12 @@
[gd_scene load_steps=30 format=3 uid="uid://dnjtduk0hla3f"] [gd_scene load_steps=33 format=3 uid="uid://dnjtduk0hla3f"]
[ext_resource type="Script" path="res://entities/watcher.gd" id="1_brahc"] [ext_resource type="Script" path="res://entities/watcher.gd" id="1_brahc"]
[ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="1_thu73"] [ext_resource type="PackedScene" uid="uid://bxbjfev0lhwws" path="res://behaviours/sprite_left_right.tscn" id="1_thu73"]
[ext_resource type="Texture2D" uid="uid://by6igmr52nlyi" path="res://entities/watcher_left.png" id="2_32yw7"] [ext_resource type="Texture2D" uid="uid://by6igmr52nlyi" path="res://entities/watcher_left.png" id="2_32yw7"]
[ext_resource type="Texture2D" uid="uid://c6tbab5h4osj5" path="res://entities/watcher_right.png" id="3_k8fgk"] [ext_resource type="Texture2D" uid="uid://c6tbab5h4osj5" path="res://entities/watcher_right.png" id="3_k8fgk"]
[ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="4_i1htf"] [ext_resource type="PackedScene" uid="uid://djcwis8ycrq85" path="res://behaviours/sampler_priority.tscn" id="4_i1htf"]
[ext_resource type="Texture2D" uid="uid://deqvgvf66grr4" path="res://entities/top_hat.png" id="5_axhwx"]
[ext_resource type="Texture2D" uid="uid://d3tb6ypb36v8e" path="res://entities/monocle.png" id="6_owihj"]
[ext_resource type="Texture2D" uid="uid://dh61knesgvjs" path="res://entities/watcher_drag_left.png" id="7_ff3vx"] [ext_resource type="Texture2D" uid="uid://dh61knesgvjs" path="res://entities/watcher_drag_left.png" id="7_ff3vx"]
[ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="7_lxtqq"] [ext_resource type="PackedScene" uid="uid://ccul07w0h36nu" path="res://behaviours/sacrificable.tscn" id="7_lxtqq"]
[ext_resource type="Texture2D" uid="uid://b6uurud5clnqr" path="res://entities/watcher_drag_right.png" id="8_5nq2n"] [ext_resource type="Texture2D" uid="uid://b6uurud5clnqr" path="res://entities/watcher_drag_right.png" id="8_5nq2n"]
@ -21,6 +23,9 @@
[ext_resource type="PackedScene" uid="uid://jg7qkbswgqjc" path="res://behaviours/eater.tscn" id="19_ktenf"] [ext_resource type="PackedScene" uid="uid://jg7qkbswgqjc" path="res://behaviours/eater.tscn" id="19_ktenf"]
[ext_resource type="AudioStream" uid="uid://c1yuksnjdd6g2" path="res://entities/imp_eat.ogg" id="20_bdcer"] [ext_resource type="AudioStream" uid="uid://c1yuksnjdd6g2" path="res://entities/imp_eat.ogg" id="20_bdcer"]
[sub_resource type="CircleShape2D" id="CircleShape2D_x5uuo"]
radius = 40.0
[sub_resource type="CircleShape2D" id="CircleShape2D_diig7"] [sub_resource type="CircleShape2D" id="CircleShape2D_diig7"]
radius = 32.0 radius = 32.0
@ -176,6 +181,40 @@ texture = ExtResource("2_32yw7")
left_texture = ExtResource("2_32yw7") left_texture = ExtResource("2_32yw7")
right_texture = ExtResource("3_k8fgk") right_texture = ExtResource("3_k8fgk")
[node name="TopHatter" parent="Sprite" instance=ExtResource("19_ktenf")]
unique_name_in_owner = true
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"TopHat"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/TopHatter"]
visible = false
z_index = 1
position = Vector2(-4, -29)
scale = Vector2(2, 2)
texture = ExtResource("5_axhwx")
[node name="Shape" type="CollisionShape2D" parent="Sprite/TopHatter"]
shape = SubResource("CircleShape2D_x5uuo")
debug_color = Color(1, 0, 0, 0)
[node name="Monocler" parent="Sprite" instance=ExtResource("19_ktenf")]
unique_name_in_owner = true
scale = Vector2(0.5, 0.5)
acceptable_diets = Array[StringName]([&"Monocle"])
target = 1
[node name="Sprite" type="Sprite2D" parent="Sprite/Monocler"]
visible = false
z_index = 1
position = Vector2(1, -4)
scale = Vector2(4.0012, 1.97504)
texture = ExtResource("6_owihj")
[node name="Shape" type="CollisionShape2D" parent="Sprite/Monocler"]
shape = SubResource("CircleShape2D_x5uuo")
debug_color = Color(1, 0, 0, 0)
[node name="Shape" type="CollisionShape2D" parent="."] [node name="Shape" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_diig7") shape = SubResource("CircleShape2D_diig7")
@ -278,6 +317,10 @@ debug_color = Color(1, 0, 0, 0)
stream = ExtResource("20_bdcer") stream = ExtResource("20_bdcer")
bus = &"KillSounds" bus = &"KillSounds"
[connection signal="eaten" from="Sprite/TopHatter" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/TopHatter" to="Sprite/TopHatter/Sprite" method="show"]
[connection signal="eaten" from="Sprite/Monocler" to="." method="_on_eater_eaten"]
[connection signal="goal_reached" from="Sprite/Monocler" to="Sprite/Monocler/Sprite" method="show"]
[connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"] [connection signal="sacrificed" from="Sacrificable" to="." method="queue_free"]
[connection signal="move" from="MovementTilt" to="." method="_on_move"] [connection signal="move" from="MovementTilt" to="." method="_on_move"]
[connection signal="ready" from="MovementTilt" to="MovementTilt" method="randomize_direction"] [connection signal="ready" from="MovementTilt" to="MovementTilt" method="randomize_direction"]