ft: made sprite behaviour consistent across entities

This commit is contained in:
2026-03-07 13:12:18 +01:00
parent da15fb77a2
commit 1fbc2f6637
9 changed files with 21 additions and 16 deletions

View File

@@ -15,8 +15,7 @@ var can_attack: bool = true
func _ready() -> void:
health = maxHealth
sprite.play("Healthy") # TODO: sprite play logic (esp wrt state switching)
wrapper.play_sprite("Healthy")
play_sprite(idle_sprite)
if starting_pos:
collision.set_position(starting_pos)
@@ -61,8 +60,8 @@ func die() -> void:
super.die()
func become_injured() -> void:
sprite.play("Hurt")
wrapper.play_sprite("Hurt")
idle_sprite = "Hurt"
play_sprite(idle_sprite)
func _on_sight_body_entered(body: Node2D) -> void:
if fsm.map(fsm.state) != fsm.States.HUNTING and body.is_in_group("prey") or (health < maxHealth and body.is_in_group("player")):

View File

@@ -5,8 +5,7 @@ var target: Node2D
func enter(previous_state_path: String, data := {}) -> void:
if data.has("target"):
target = data["target"]
owner.sprite.play("Hunting")
owner.wrapper.play_sprite("Hunting")
owner.play_sprite("Hunting")
else:
# default behaviour; do nothing
finished.emit(owner.fsm.States.IDLE, {})