ld-39-jam/Gun.gd

29 lines
708 B
GDScript3
Raw Normal View History

extends Node2D
2017-07-30 21:25:42 +01:00
var Bullet = load("res://Bullet.tscn")
var gun_cooldown = 0
2017-07-30 21:49:58 +01:00
var gun_delay = 0.1125
var gun_spread_max = deg2rad(4) # degrees max
var gun_bullet_speed = 384
var gun_owner
2017-07-30 21:25:42 +01:00
func _ready():
set_fixed_process(true)
2017-08-04 19:53:05 +01:00
2017-07-30 21:25:42 +01:00
func _fixed_process(delta):
2017-07-30 21:49:58 +01:00
gun_cooldown = clamp(gun_cooldown - delta, 0, 1)
func set_owner(o):
gun_owner = o
2017-08-04 19:53:05 +01:00
2017-07-30 21:49:58 +01:00
func fire(delta, vel, dir):
2017-07-30 21:25:42 +01:00
if gun_cooldown <= 0:
var new_bullet = Bullet.instance()
var gun_pos = get_global_pos()
2017-07-31 15:49:04 +01:00
new_bullet.set_pos(gun_pos + vel)
2017-07-30 21:25:42 +01:00
get_tree().get_root().add_child(new_bullet)
2017-08-04 19:53:05 +01:00
var rot = rand_range(-gun_spread_max, gun_spread_max)
new_bullet.fire(gun_owner, delta, vel, dir.rotated(rot), gun_bullet_speed)
2017-07-30 21:25:42 +01:00
gun_cooldown += gun_delay