From 0b9b1e75d48d11b198e0bcf22c0537cc6c4b208b Mon Sep 17 00:00:00 2001 From: djairoh Date: Sat, 17 Jan 2026 14:56:25 +0100 Subject: [PATCH] fx: attacking sprite/logic mismatch --- evolve-die-repeat/molecular/molecular_player.gd | 11 +++++++++-- evolve-die-repeat/molecular/molecular_player.tscn | 8 ++++---- evolve-die-repeat/molecular/nucleotide_prey.gd | 9 ++++----- evolve-die-repeat/molecular/nucleotide_prey.tscn | 1 - 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/evolve-die-repeat/molecular/molecular_player.gd b/evolve-die-repeat/molecular/molecular_player.gd index 408ffdb..e1e6461 100644 --- a/evolve-die-repeat/molecular/molecular_player.gd +++ b/evolve-die-repeat/molecular/molecular_player.gd @@ -1,6 +1,6 @@ extends CharacterBody2D -@export var attack_duration = 0.12 # TODO: finetune +@export var attack_duration = 0.2 # TODO: finetune @export var attack_cooldown_duration = 0.4 @onready var attack_area: Area2D = $AttackArea @@ -19,6 +19,8 @@ func _ready() -> void: attack_area.monitoring = false # no collision until attacking attack_timer.wait_time = attack_duration attack_cooldown_timer.wait_time = attack_cooldown_duration + + func _process(delta): velocity = Vector2.ZERO @@ -53,16 +55,21 @@ func attack() -> void: func _on_attack_timeout() -> void: attack_area.monitoring = false + sprite.play("default") attack_cooldown_timer.start() func _on_cooldown_timeout() -> void: can_attack = true - sprite.play("default") func _on_attack_hit(body: Node2D) -> void: + var hit_hittable = false if body.is_in_group("prey") or body.is_in_group("predators"): if body.has_method("handle_damage"): body.handle_damage(damage) + hit_hittable = true elif body.is_in_group("resources"): pass + if hit_hittable: + await get_tree().create_timer(0.2).timeout + sprite.play("default") # TODO: resource handling logic diff --git a/evolve-die-repeat/molecular/molecular_player.tscn b/evolve-die-repeat/molecular/molecular_player.tscn index 68ff1d6..ba61c3d 100644 --- a/evolve-die-repeat/molecular/molecular_player.tscn +++ b/evolve-die-repeat/molecular/molecular_player.tscn @@ -23,8 +23,8 @@ animations = [{ "speed": 5.0 }] -[sub_resource type="RectangleShape2D" id="RectangleShape2D_en8op"] -size = Vector2(765.4969, 706.5864) +[sub_resource type="CircleShape2D" id="CircleShape2D_5hxmy"] +radius = 378.18 [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_4flbx"] radius = 191.95984 @@ -45,8 +45,8 @@ rotation = -1.5732701 collision_mask = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="AttackArea"] -position = Vector2(29.579561, 730.73236) -shape = SubResource("RectangleShape2D_en8op") +position = Vector2(41.029465, 288.86832) +shape = SubResource("CircleShape2D_5hxmy") debug_color = Color(0.80813414, 0.3957308, 0.3356335, 0.41960785) [node name="CollisionShape2D" type="CollisionShape2D" parent="." groups=["player"]] diff --git a/evolve-die-repeat/molecular/nucleotide_prey.gd b/evolve-die-repeat/molecular/nucleotide_prey.gd index fad086e..732c738 100644 --- a/evolve-die-repeat/molecular/nucleotide_prey.gd +++ b/evolve-die-repeat/molecular/nucleotide_prey.gd @@ -50,11 +50,10 @@ func die() -> void: super.die() func become_injured() -> void: - sprite.animation = "Injured" - mirrorSprite1.animation = "Injured" - mirrorSprite2.animation = "Injured" - mirrorSprite3.animation = "Injured" - sprite.play() + sprite.play("Injured") + mirrorSprite1.play("Injured") + mirrorSprite2.play("Injured") + mirrorSprite3.play("Injured") # Mirroring table: # |---|---|---|---| diff --git a/evolve-die-repeat/molecular/nucleotide_prey.tscn b/evolve-die-repeat/molecular/nucleotide_prey.tscn index 1d075ac..c3bbedc 100644 --- a/evolve-die-repeat/molecular/nucleotide_prey.tscn +++ b/evolve-die-repeat/molecular/nucleotide_prey.tscn @@ -55,4 +55,3 @@ maxHealth = 20 scale = Vector2(0.1, 0.1) sprite_frames = SubResource("SpriteFrames_66x8p") animation = &"Dying" -frame_progress = 0.60472965