The_Dark_Side_of_Earth/player/sword.gd

29 lines
741 B
GDScript3
Raw Normal View History

2025-09-16 14:59:40 +02:00
extends Area2D
var anim_sprite: AnimatedSprite2D
2025-09-16 15:19:57 +02:00
var slash_duration = 0.1
2025-09-16 14:59:40 +02:00
var slash_timer = 0
var damage = 20
var facing = -1
2025-09-17 18:23:42 +02:00
var facing_mult = 1
2025-09-16 14:59:40 +02:00
func _ready() -> void:
anim_sprite = $AnimatedSprite2D
2025-09-17 18:23:42 +02:00
get_parent().attack.connect(swing)
2025-09-16 14:59:40 +02:00
func swing() -> void:
2025-09-17 18:23:42 +02:00
facing = - get_parent().facing * facing_mult
scale.x = abs(scale.x) * facing
2025-09-16 14:59:40 +02:00
anim_sprite.visible = true
2025-09-16 18:01:04 +02:00
await get_tree().create_timer(0.01).timeout
2025-09-16 14:59:40 +02:00
slash_timer = slash_duration
func _physics_process(delta: float) -> void:
if slash_timer > 0:
slash_timer = max(0, slash_timer-delta)
if(slash_timer == 0):
anim_sprite.visible = false
for area in get_overlapping_areas():
2025-09-17 16:43:44 +02:00
area.hurt(damage, -get_parent().earth_aligner.global_from_local(Vector2(-facing, 0)))
2025-09-16 14:59:40 +02:00