extends Node3D @export var CANNON_MIN_POWER = 7 @export var CANNON_MAX_POWER = 20 @export var TIMER_MIN = 0 @export var TIMER_MAX = 20 var stamina = load("res://assets/stamina_pickup.tscn") var ammo = load("res://assets/ammo_pickup.tscn") var jump = load("res://assets/jump_pickup.tscn") @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,2))) var rand_timer = rng.randf_range(TIMER_MIN,TIMER_MAX) match rand_selector: 1: rand_select = stamina 2: rand_select = ammo 3: rand_select = jump # 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)