Added Health pickup, started pickup assignment through level control and added enemy counter

This commit is contained in:
derek
2024-08-05 13:37:35 -05:00
parent c8f3e8eee6
commit 3335ad0804
17 changed files with 883 additions and 44 deletions

View File

@@ -7,6 +7,20 @@ extends Node3D
@export var MAX_PARTICLES = 100
@export var gun_1 : Resource
@export var gun_2 : Resource
@export_group("Drops")
@export var ammo_drop_enabled = true
@export var stamina_drop_enabled = true
@export var health_drop_enabled = true
@export var money_drop_enabled = true
var ammo_drop = load("res://assets/ammo_pickup.tscn")
var stamina_drop = load("res://assets/stamina_pickup.tscn")
var health_drop = load("res://assets/health_pickup.tscn")
var money_drop = load("res://assets/money_pickup.tscn")
const CLEARED_ANNOUNCE = preload("res://assets/cleared_announce.tscn")
const DEAD_ANNOUNCE = preload("res://assets/dead_announce.tscn")
var pickups = []
var held_guns = []
var ammo_current = [0]
var ammo_reserve = [0]
@@ -14,12 +28,23 @@ var guns_dict = {}
var current_gun_index
var particle_number = 0
var enemy_hiveminds = []
var remaining_enemies
# Called when the node enters the scene tree for the first time.
func _ready():
#global randomize function
randomize()
#assign pickups to array
if ammo_drop_enabled == true:
pickups.append(ammo_drop)
if stamina_drop_enabled == true:
pickups.append(stamina_drop)
if health_drop_enabled == true:
pickups.append(health_drop)
if ammo_drop_enabled == true:
pickups.append(ammo_drop)
#Set up starting guns and ammo
held_guns = [gun_1]
var instance_gun = held_guns[0].instantiate()
@@ -39,12 +64,12 @@ func _ready():
#find enemy hiveminds
for node in get_tree().get_nodes_in_group("enemy_hivemind"):
enemy_hiveminds.append(node)
#count starting enemies
enemy_count()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
for hivemind in enemy_hiveminds:
remaining_enemies = hivemind.minions.size()
print("remaining enemies: " + str(remaining_enemies))
pass
func gun_spawn(index):
#loop around if scrolling past available guns
@@ -65,3 +90,33 @@ func gun_spawn(index):
instance_gun.gun_index = index
instance_gun.anim_player.play("swap_in")
player.weapon_holder.add_child(instance_gun)
func enemy_count():
var sum = 0
for i in enemy_hiveminds:
sum += i.minions.size()
print("enemies: " + str(sum))
if sum == 0:
cleared()
func cleared():
Engine.time_scale = .05
var clearedmsg = CLEARED_ANNOUNCE.instantiate()
get_parent().add_child(clearedmsg)
await get_tree().create_timer(.3).timeout
get_tree().reload_current_scene()
func die():
Engine.time_scale = .05
var deadmsg = DEAD_ANNOUNCE.instantiate()
get_parent().add_child(deadmsg)
await get_tree().create_timer(.3).timeout
get_tree().reload_current_scene()
#var instance_dead = dead_player.instantiate()
#instance_dead.position = head.global_position
#instance_dead.transform.basis = head.global_transform.basis
#get_tree().get_root().add_child(instance_dead)
func pickup_spawn():
pickups.pick_random()
print(pickups.pick_random())