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
|