28 lines
741 B
GDScript
28 lines
741 B
GDScript
extends Area2D
|
|
var anim_sprite: AnimatedSprite2D
|
|
var slash_duration = 0.1
|
|
var slash_timer = 0
|
|
var damage = 20
|
|
var facing = -1
|
|
var facing_mult = 1
|
|
|
|
func _ready() -> void:
|
|
anim_sprite = $AnimatedSprite2D
|
|
get_parent().attack.connect(swing)
|
|
|
|
func swing() -> void:
|
|
facing = - get_parent().facing * facing_mult
|
|
scale.x = abs(scale.x) * facing
|
|
anim_sprite.visible = true
|
|
await get_tree().create_timer(0.01).timeout
|
|
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():
|
|
area.hurt(damage, -get_parent().earth_aligner.global_from_local(Vector2(-facing, 0)))
|
|
|
|
|