Added Health pickup, started pickup assignment through level control and added enemy counter
This commit is contained in:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user