weapon pickup working
This commit is contained in:
@@ -1,21 +1,18 @@
|
||||
extends RigidBody3D
|
||||
|
||||
@onready var player = $"../Player"
|
||||
@onready var collision_shape = $CollisionShape3D2
|
||||
|
||||
var rand_amt
|
||||
var rng = RandomNumberGenerator.new()
|
||||
var playermagnet = false
|
||||
var playerloc
|
||||
var x_magnet
|
||||
var y_magnet
|
||||
var z_magnet
|
||||
@export var collision_shape = Node
|
||||
@export var despawning = false
|
||||
@export var despawn_time_s = 10
|
||||
@export var pickupType: String
|
||||
|
||||
var rng = RandomNumberGenerator.new()
|
||||
var rand_amt
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
rand_amt = rng.randf_range(10.0,100.0)
|
||||
await get_tree().create_timer(10).timeout
|
||||
collision_shape.disabled = true
|
||||
await get_tree().create_timer(1).timeout
|
||||
self.queue_free()
|
||||
if despawning == true:
|
||||
await get_tree().create_timer(despawn_time_s).timeout
|
||||
collision_shape.disabled = true
|
||||
await get_tree().create_timer(1).timeout
|
||||
self.queue_free()
|
||||
|
||||
@@ -229,6 +229,17 @@ func _on_pick_up_detection_body_entered(body):
|
||||
pickup_sound.pitch_scale = 1 + rng.randf_range(-.3,.3)
|
||||
pickup_sound.play()
|
||||
body.queue_free()
|
||||
elif body.pickupType == "weapon":
|
||||
pickup_sound.pitch_scale = 1 + rng.randf_range(-.3,.3)
|
||||
pickup_sound.play()
|
||||
level_control.held_guns.append(body.gun_resource)
|
||||
var instance_gun = body.gun_resource.instantiate()
|
||||
level_control.ammo_current.append(instance_gun.max_ammo)
|
||||
level_control.ammo_reserve.append(instance_gun.max_ammo * instance_gun.start_mags)
|
||||
body.queue_free()
|
||||
var weapon_id = level_control.held_guns.size() - 1
|
||||
gun.anim_player.play("swap_out")
|
||||
level_control.gun_spawn(weapon_id)
|
||||
|
||||
|
||||
func _on_pick_up_magnet_body_entered(body):
|
||||
@@ -259,5 +270,4 @@ func weapon_bob(vel : float, delta):
|
||||
|
||||
func weapon_recoil():
|
||||
var recoil_to = camera.rotation.x + gun.recoil_amount
|
||||
print(recoil_to)
|
||||
camera.rotation.x = clamp(lerp(camera.rotation.x,recoil_to, .05), deg_to_rad(-90), deg_to_rad(60))
|
||||
|
||||
14
scripts/weapon_pickup.gd
Normal file
14
scripts/weapon_pickup.gd
Normal file
@@ -0,0 +1,14 @@
|
||||
extends RigidBody3D
|
||||
|
||||
@export var gun_resource : Resource
|
||||
@export var pickupType: String
|
||||
@export var collision_shape : Node
|
||||
|
||||
# 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
|
||||
Reference in New Issue
Block a user