summaryrefslogtreecommitdiff
path: root/Scripts/Player/PlayerAction.gd
blob: 989823a99f14d1e13efde366c001e3b030923c70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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