summaryrefslogtreecommitdiff
path: root/Scripts/Weapons/Melee.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/Weapons/Melee.gd')
-rw-r--r--Scripts/Weapons/Melee.gd35
1 files changed, 35 insertions, 0 deletions
diff --git a/Scripts/Weapons/Melee.gd b/Scripts/Weapons/Melee.gd
new file mode 100644
index 0000000..33f2807
--- /dev/null
+++ b/Scripts/Weapons/Melee.gd
@@ -0,0 +1,35 @@
+extends Node2D
+
+@export var animator : AnimationPlayer
+@export var atk : int
+@export var area : Area2D
+@export var knock : Vector2 = Vector2(700, -300)
+@export_flags_2d_physics var mask
+@export var disable_aft_atk : bool = false
+
+func _ready() -> void:
+ area.collision_mask = mask
+
+#func _process(_delta: float) -> void:
+# if area.monitoring:
+# modulate = Color.GREEN
+# else:
+# modulate = Color.WHITE
+
+func action() -> void:
+ if animator.is_playing():
+ return
+
+ area.monitoring = true
+
+ if scale.x < 0:
+ animator.play("swing_flip")
+ else:
+ animator.play("swing")
+
+func _on_area_2d_body_entered(body:Node2D) -> void:
+ if body is Entity:
+ body.damage(atk)
+ if disable_aft_atk: area.set_deferred("monitoring", false)
+ if scale.x < 0: body.knockback = Vector2(-knock.x, knock.y)
+ else: body.knockback = knock