diff options
Diffstat (limited to 'Scripts/Weapons/Melee.gd')
-rw-r--r-- | Scripts/Weapons/Melee.gd | 35 |
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 |