This repository has been archived on 2022-01-09. You can view files and clone it, but cannot push or open issues/pull-requests.
liblast/Assets/Weapons/Weapon.gd

51 lines
1.4 KiB
GDScript
Raw Normal View History

2020-06-19 23:15:01 +02:00
extends Spatial
2020-09-14 23:52:16 +02:00
var casing = preload("res://Assets/Weapons/Handgun/Casing.tscn")
2020-09-18 01:09:54 +02:00
var tracer = preload("res://Assets/Effects/BulletTracer.tscn")
2020-06-19 23:15:01 +02:00
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass
2020-09-14 22:59:57 +02:00
2020-09-17 23:09:28 +02:00
remote func shoot():
2020-09-14 23:52:16 +02:00
var casing_instance = casing.instance()
casing_instance.global_transform = find_node("Ejector").global_transform
2020-09-15 00:03:52 +02:00
casing_instance.rotate_y(deg2rad(90))
casing_instance.angular_velocity = Vector3(rand_range(0, 40), 0, 0)
casing_instance.linear_velocity = Vector3(rand_range(0, 1), 5, 0)
2020-09-18 01:09:54 +02:00
get_tree().root.call_deferred("add_child", casing_instance)
var tracer_instance = tracer.instance()
tracer_instance.global_transform = find_node("Muzzle").global_transform
get_tree().root.call_deferred("add_child", tracer_instance)
#tracer_instance.rotate_object_local(Vector3.AXIS_Y, PI/4)
#tracer_instance.angular_velocity = Vector3(rand_range(0, 40), 0, 0)
#tracer_instance.linear_velocity = Vector3(rand_range(0, 1), 5, 0)
2020-09-14 23:52:16 +02:00
# TODO - fix casing rotation
# TODO - apply initial linear and angular velocity
2020-09-18 01:09:54 +02:00
2020-09-14 23:52:16 +02:00
2020-09-14 22:59:57 +02:00
$Handgun/AnimationPlayer.stop()
2020-09-14 23:52:16 +02:00
$Handgun/AnimationPlayer.play("Shoot", -1, 2)
$SoundShoot.play()
2020-09-18 00:05:41 +02:00
2020-09-14 23:52:16 +02:00