Updated entity interaction and game state

Significant changes include:
- Disabled input pickability for DeathBox in Dog entity
- Simplified mouse click detection logic in Snail script
- Removed unnecessary conditions and actions from snail eating state
- Adjusted cursor hotspot position for hand cursor in Cursor Manager
- Reset flower nectar level upon game reset
This commit is contained in:
Dan 2024-05-16 12:33:24 +01:00
parent 7f5d9dc6fc
commit 84f07fde20
6 changed files with 15 additions and 34 deletions

View file

@ -117,6 +117,7 @@ libraries = {
autoplay = "Highlight" autoplay = "Highlight"
[node name="DeathBox" type="Area2D" parent="."] [node name="DeathBox" type="Area2D" parent="."]
input_pickable = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="DeathBox"] [node name="CollisionShape2D" type="CollisionShape2D" parent="DeathBox"]
shape = SubResource("CircleShape2D_eyufl") shape = SubResource("CircleShape2D_eyufl")

View file

@ -18,7 +18,7 @@ func _ready() -> void:
# Detect mouse left click and trigger function # Detect mouse left click and trigger function
func _input(event : InputEvent) -> void: func _input(event : InputEvent) -> void:
if mouse_over and eating: if mouse_over:
if event is InputEventMouseButton: if event is InputEventMouseButton:
if (event is InputEventMouseButton && event.button_index == MOUSE_BUTTON_LEFT && event.pressed): if (event is InputEventMouseButton && event.button_index == MOUSE_BUTTON_LEFT && event.pressed):
maybe_sleep() maybe_sleep()
@ -46,10 +46,8 @@ func get_random_target() -> Vector2:
return flowers.get_random_circumference_points() return flowers.get_random_circumference_points()
func on_mouse_entered() -> void: func on_mouse_entered() -> void:
if eating:
mouse_over = true
CursorMgr.hand() CursorMgr.hand()
Log.pr("Mouse entered the snail!") mouse_over = true
func on_mouse_exited() -> void: func on_mouse_exited() -> void:
# Reset the cursor to the default # Reset the cursor to the default

View file

@ -7,45 +7,27 @@ var eat_interval : float = 3.0
var eat_timer : float = 0.0 var eat_timer : float = 0.0
var move_to : Vector2 = Vector2.ZERO var move_to : Vector2 = Vector2.ZERO
var speed : float = 20.0
var original_snail_scale : float = 0.1
func enter(_msg : Dictionary = {}) -> void: func enter(_msg : Dictionary = {}) -> void:
Log.pr("I am a snail and I will eat!") Log.pr("I am a snail and I will eat!")
snail.eating = true snail.eating = true
if snail.animation:
snail.animation.play("Move")
snail.hide_zeds()
func exit() -> void: func exit() -> void:
snail.eating = false snail.eating = false
snail.sprite.flip_h = false
func update(delta : float) -> void: func update(_delta : float) -> void:
eat_timer += delta eat_timer += _delta
if move_to == Vector2.ZERO:
move_to = snail.get_random_target()
snail.look_at(move_to)
snail.move_to(move_to, speed)
if eat_timer >= eat_interval: if eat_timer >= eat_interval:
snail.eat() snail.eat()
eat_timer = 0.0 eat_timer = 0.0
func physics_update(_delta : float) -> void: func physics_update(_delta : float) -> void:
pass
if move_to == Vector2.ZERO:
move_to = snail.get_random_target()
if snail.global_position.distance_to(move_to) > 3:
snail.velocity = snail.global_position.direction_to(move_to) * snail.speed
if move_to.x > snail.global_position.x:
snail.sprite.scale.x = original_snail_scale
else:
snail.sprite.scale.x = -original_snail_scale
snail.move_and_slide()
else:
move_to = Vector2.ZERO

View file

@ -130,7 +130,6 @@ scale = Vector2(0.6, 0.6)
[node name="Mushrooms" type="Node2D" parent="LevelDecor"] [node name="Mushrooms" type="Node2D" parent="LevelDecor"]
position = Vector2(42, 290) position = Vector2(42, 290)
rotation = 0.563741 rotation = 0.563741
scale = Vector2(1, 1)
[node name="Mushroom" parent="LevelDecor/Mushrooms" instance=ExtResource("8_dtrxx")] [node name="Mushroom" parent="LevelDecor/Mushrooms" instance=ExtResource("8_dtrxx")]
position = Vector2(232, 250) position = Vector2(232, 250)

View file

@ -16,4 +16,4 @@ func edit() -> void:
Input.set_custom_mouse_cursor(edit_cursor, Input.CURSOR_ARROW, Vector2(32, 32)) Input.set_custom_mouse_cursor(edit_cursor, Input.CURSOR_ARROW, Vector2(32, 32))
func hand() -> void: func hand() -> void:
Input.set_custom_mouse_cursor(hand_cursor, Input.CURSOR_ARROW, Vector2(32, 32)) Input.set_custom_mouse_cursor(hand_cursor, Input.CURSOR_ARROW, Vector2(8, 8))

View file

@ -118,3 +118,4 @@ func reset() -> void:
drones_used = 0 drones_used = 0
dead_bees = 0 dead_bees = 0
spawn_snails = false spawn_snails = false
flower_nectar_level = max_flower_nectar_level