forked from team-sg/hero-mark-2
added machinegun turret
This commit is contained in:
parent
a85b68a317
commit
5f6968a7e9
11 changed files with 567 additions and 2 deletions
38
objects/environment/turret/turret.gd
Normal file
38
objects/environment/turret/turret.gd
Normal file
|
@ -0,0 +1,38 @@
|
|||
extends Node2D
|
||||
|
||||
const TurretBullet = preload("res://objects/environment/turret/turret_bullet.tscn")
|
||||
|
||||
export var delay = 0.0
|
||||
export var fire_rate = 10.0
|
||||
export var bullet_spread = 15.0
|
||||
export var bullet_speed = 200.0
|
||||
|
||||
# do not set manually, controlled by AnimationPlayer
|
||||
export var shooting = false
|
||||
|
||||
onready var barrel_start = $BarrelStart
|
||||
onready var barrel_end = $BarrelStart/BarrelEnd
|
||||
|
||||
var bullet_cooldown = 1.0
|
||||
|
||||
func _ready():
|
||||
bullet_spread = deg2rad(bullet_spread)
|
||||
$AnimationTree.active = true
|
||||
var timer = get_tree().create_timer(delay, false)
|
||||
timer.connect("timeout", $AnimationTree, "set", [
|
||||
"parameters/conditions/shooting",
|
||||
true
|
||||
])
|
||||
|
||||
func _physics_process(delta):
|
||||
if shooting:
|
||||
bullet_cooldown -= delta * fire_rate
|
||||
if bullet_cooldown <= 0.0:
|
||||
bullet_cooldown += 1.0
|
||||
var bullet = TurretBullet.instance()
|
||||
bullet.global_position = barrel_end.global_position
|
||||
bullet.direction = (barrel_end.global_position - barrel_start.global_position).normalized()
|
||||
bullet.direction = bullet.direction.rotated(rand_range(-bullet_spread, bullet_spread))
|
||||
bullet.speed = bullet_speed
|
||||
get_parent().call_deferred("add_child", bullet)
|
||||
Game.play_sound(Game.a_arrow, Game.ac_climb)
|
Loading…
Add table
Add a link
Reference in a new issue