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
|