Files
fps_project_1/scripts/cannon.gd

61 lines
1.5 KiB
GDScript

extends Node3D
@export var CANNON_MIN_POWER = 7
@export var CANNON_MAX_POWER = 20
@export var TIMER_MIN = 0
@export var TIMER_MAX = 20
@export var stamina : Resource
@export var ammo : Resource
@export var jump : Resource
@export var money : Resource
@onready var timer = $Timer
@onready var cannonparticles = $cannonparticles
@onready var cannon_dir = $RayCast3D
@onready var fire_audio = $Audio/FireAudio
var rand_item
var rand_select
var rng = RandomNumberGenerator.new()
var rand_rot_y
var fire = true
# 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 #self.rotation += Vector3(0,0,0) * delta
func _on_timer_timeout():
# Random Variables
var lv_y = rng.randf_range(CANNON_MIN_POWER,CANNON_MAX_POWER)
var rand_selector = int(round(rng.randf_range(1,3)))
var rand_timer = rng.randf_range(TIMER_MIN,TIMER_MAX)
match rand_selector:
1:
rand_select = stamina
2:
rand_select = ammo
3:
rand_select = money
# Reset Timer
timer.wait_time = rand_timer #rand_timer
# Shoot that shit
rand_item = rand_select.instantiate()
rand_item.position = cannon_dir.global_position
rand_item.transform.basis = cannon_dir.global_transform.basis
rand_item.linear_velocity += cannon_dir.global_transform.basis * Vector3(0,lv_y,0)
#cannonparticles.emitting = true
#fir_audio.pitch_scale =
fire_audio.play()
get_parent().add_child(rand_item)