pickups distributed through level manager. need to fix drop amount

This commit is contained in:
derek
2024-08-05 16:50:09 -05:00
parent 3335ad0804
commit 7c5e850077
27 changed files with 151 additions and 146 deletions

View File

@@ -27,6 +27,7 @@ const MAX_AV = 10
@onready var prefire_timer = $Timers/prefire_timer
@onready var postfire_timer = $Timers/postfire_timer
@onready var knocked_timer = $Timers/knocked_timer
@onready var stunned_timer = $Timers/stunned_timer
@onready var turret_look_next = $TurretLookNext
@onready var spider_look_next = $SpiderLookNext
@onready var body = $body
@@ -52,7 +53,8 @@ var body_look_to
var distance_to_player
var hive_velocity
var hive_nav_point
var knocked
var knocked = false
var stunned = false
func _ready():
player = get_node(player_path)
@@ -69,20 +71,19 @@ func _process(delta):
if !knocked:
velocity = hive_velocity
#FIX BODY ROTATION
spider_look_next.look_at(Vector3(player.global_position.x, 0, player.global_position.z), Vector3.UP)
body.rotation.y = lerp(body.rotation.y, spider_look_next.rotation.y, delta * 1)
turret_look_next.look_at(player.global_position,Vector3.UP)
turret_look.rotation = lerp(turret_look.rotation,turret_look_next.rotation,delta * turret_look_speed)
#distance_to_player = abs(self.global_position - player.global_position)
if !stunned:
spider_look_next.look_at(Vector3(player.global_position.x, 0, player.global_position.z), Vector3.UP)
body.rotation.y = lerp(body.rotation.y, spider_look_next.rotation.y, delta * 1)
turret_look_next.look_at(player.global_position,Vector3.UP)
turret_look.rotation = lerp(turret_look.rotation,turret_look_next.rotation,delta * turret_look_speed)
else:
body.rotation.y = lerp(body.rotation.y, body.rotation.y + 10, delta * .5)
turret_look.rotation.y = lerp(turret_look.rotation.y,turret_look.rotation.y - 5,delta * 1)
#apply gravity
if !is_on_floor():
velocity.y -= gravity * delta
#if distance_to_player.x > 4 or distance_to_player.z > 4:
move_and_slide()
@@ -100,8 +101,7 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
#pickup drop
while number_of_drops > 0:
level_control.pickup_spawn()
var rand_selector = rng.randi_range(1,4)
var rand_item = level_control.pickup_spawn()
var lv_x = rng.randf_range(-MAX_LV,MAX_LV)
var lv_y = rng.randf_range(0,MAX_LV)
var lv_z = rng.randf_range(-MAX_LV,MAX_LV)
@@ -109,17 +109,8 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
var av_y = rng.randf_range(-MAX_AV,MAX_AV)
var av_z = rng.randf_range(-MAX_AV,MAX_AV)
match rand_selector:
1:
rand_select = stamina
2:
rand_select = ammo
3:
rand_select = money
4:
rand_select = health_pickup
# Random Item Drop
rand_item = rand_select.instantiate()
#rand_item = rand_select.instantiate()
rand_item.position = self.global_position
rand_item.transform.basis = self.global_transform.basis
rand_item.linear_velocity += self.global_transform.basis * Vector3(lv_x,lv_y,lv_z)
@@ -168,7 +159,7 @@ func _on_prefire_timer_timeout():
func _on_postfire_timer_timeout():
if turret_look_next.is_colliding() and turret_look_next.get_collider().is_in_group("player"):
if turret_look_next.is_colliding() and turret_look_next.get_collider().is_in_group("player") and !stunned:
prefire_timer.start()
turret_material.emission_enabled = true
else:
@@ -179,3 +170,8 @@ func _on_knocked_timer_timeout():
print("KNOCK TIMEOUT")
velocity = Vector3(0,0,0)
knocked = false
func _on_stunned_timer_timeout():
print("STUN TIMEOUT")
stunned = false