diff options
author | altaf-creator <dev@altafcreator.com> | 2025-10-20 01:43:48 +0800 |
---|---|---|
committer | altaf-creator <dev@altafcreator.com> | 2025-10-20 01:43:48 +0800 |
commit | 466bec0b724632f6dd2e1555a7bd58ffc1dd0458 (patch) | |
tree | d6645ea11914edeec645299fa497a9e542dbaec7 /Scripts/Player/PlayerAction.gd |
Jam version.
Diffstat (limited to 'Scripts/Player/PlayerAction.gd')
-rw-r--r-- | Scripts/Player/PlayerAction.gd | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Scripts/Player/PlayerAction.gd b/Scripts/Player/PlayerAction.gd new file mode 100644 index 0000000..989823a --- /dev/null +++ b/Scripts/Player/PlayerAction.gd @@ -0,0 +1,46 @@ +extends Node +class_name PlayerAction + +@export var plr_sprite : Sprite2D +@export var hand_pivot : Node2D +@export var curr_weapon : Node2D +@export var machette_pivot : Node2D +@export var machette : Node2D + +var can_attack : bool = true + +var delta_pos : Vector2 + +func _process(_delta: float) -> void: + if UIConnector.is_inv_open: + return + + var hpos : Vector2 = hand_pivot.get_global_transform_with_canvas().get_origin() + var mouse_position : Vector2 = get_viewport().get_mouse_position() + delta_pos = mouse_position - hpos + + var angle = rad_to_deg(atan2(delta_pos.y, delta_pos.x)) - 90 + hand_pivot.rotation_degrees = angle + if angle <= 0 && angle >= -180: + if machette_pivot.rotation_degrees < 0: machette_pivot.rotation_degrees *= -1 + if machette.scale.x < 0: machette.scale.x *= -1 + elif (angle <= -180 && angle >= -270) || (angle >= 0 && angle <= 90): + if machette_pivot.rotation_degrees > 0: machette_pivot.rotation_degrees *= -1 + if machette.scale.x > 0: machette.scale.x *= -1 + +func _input(_event: InputEvent) -> void: + if UIConnector.is_inv_open: + return + + if Input.is_action_just_pressed("action") && can_attack: + if delta_pos.x < 0 && !plr_sprite.flip_h: + $"../PlayerMovement".look_left(true) + elif delta_pos.x > 0 && plr_sprite.flip_h: + $"../PlayerMovement".look_right(true) + + curr_weapon.action() + can_attack = false + $"Cooldown".start() + +func _on_cooldown_timeout() -> void: + can_attack = true |