summaryrefslogtreecommitdiff
path: root/godot/scenes/weapons/rockets.gd
blob: 52701863938cd8706f44cefb8b9eaf90225f4268 (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
47
extends Resource

var player_owner: RigidBody = null
var can_throw: bool = true
var rockets_scene: Spatial = null

var rockets_left: int = 5

const name: String = "HANDS"

var trfrm = Transform ( Vector3(1.501,-0.142,-2.418), Vector3(-2.367,-0.693,-1.429),Vector3(-0.516,2.761,-0.483),Vector3(-0.206,0.639,-0.045))

func _init():
	rockets_scene = preload("res://scenes/weapons/rockets.tscn").instance()
	rockets_scene.set_visible(false)

func init(owner):
	player_owner = owner
	player_owner.add_weapon_vm(rockets_scene, trfrm)

func select() -> void:
	player_owner.rpc("anim_event", {"VMANIMPLAY" : "rockets_idle_vm"})
	if rockets_left > 0: rockets_scene.set_visible(true)

func deselect() -> bool:
	if !can_throw and rockets_left > 0:
		return false
	rockets_scene.set_visible(false)
	return true

func attack1():
	if !can_throw:
		return
	can_throw = false
	player_owner.rpc("anim_event", {"VMANIMPLAY" : "rockets_launch_vm"})
	rockets_scene.get_node("AnimationPlayer").play("throw_animation")
	yield(player_owner.get_tree().create_timer(1.43), "timeout")
	rockets_left -= 1
	player_owner.rpc("add_rocket_to_scene", rockets_scene.global_transform.origin, player_owner.head.global_transform.basis, player_owner.get_network_master())
	yield(player_owner.get_tree().create_timer(1.6), "timeout")
	if rockets_left > 0:
		can_throw = true
	else:
		rockets_scene.set_visible(false)

func mouse_input(_m1: float, _m3: float, m2: float) -> void:
	pass