Hmmm here the generation script for the marbles:
extends Spatial
var counter=0
var timer = 0
var wave_level=1 #Global.wave_level
var enemy =preload("res://models/pathfollow.tscn")
var enemies_size=0
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
var wave
var enemy_id=0
var enemy_spacing = Global.enemy_spacing
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
wave_level=Global.wave_level
if wave_level==1:
wave=['Y','Y','Y','Y','Y','R','Y','R','Y','Y','Y','Y','Y','Y','Y','Y','R','Y','R','R','R','Y','Y','Y','Y','Y','R','Y']
#DEVELOPMENT WAVE TESTING
#wave=['J','J','J','Y','Y','R','B','R','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y']
if wave_level==2:
wave=['Y','Y','Y','R','R','G','Y','G','R','R','R','R','G','G','R','R','R','R','Y','Y','Y','Y','R','R','R','R','R','R']
if wave_level==3:
wave=['G','Y','R','R','R','B','G','','R','R','R','R','G','G','R','R','B','B','G','G','G','G','G','G','G','R','R','R']
if wave_level==4:
wave=['R','R','G','G','G','B','B','B','RB','R','R','R','G','G','G','G','G','G','G','Y','G','G','G','G','G','B','B','B']
if wave_level==5:
wave=['R','R','G','B','B','J','B','B','R','RB','R','G','J','G','G','RB','G','Y','G','G','G','G','G','Y','G','B','B','B']
if wave_level==6:
wave=['B','RB','G','B','B','J','J','B','R','RB','R','G','G','G','G','J','G','B','G','G','G','G','G','J','G','B','R','Y']
if Global.start_wave==true:
timer += 1 * delta
if timer>=enemy_spacing:
if enemy_id<wave.size():
#yellow marbles
if wave[enemy_id]=="Y":
Global.enemy_my_name="color_marble"
Global.enemy_health=1 #sets life of marble- marble color determined by life size
print("wave level: " + str(Global.wave_level))
var newEnemy=enemy.instance()
add_child(newEnemy)
newEnemy.add_to_group("enemies")
#red marbles
if wave[enemy_id]=="R":
Global.enemy_my_name="color_marble"
Global.enemy_health=3 #sets life of marble- marble color determined by life size
var newEnemy=enemy.instance()
add_child(newEnemy)
newEnemy.add_to_group("enemies")
#yellow marbles
if wave[enemy_id]=="G":
Global.enemy_my_name="color_marble"
Global.enemy_health=5 #sets life of marble- marble color determined by life size
var newEnemy=enemy.instance()
add_child(newEnemy)
newEnemy.add_to_group("enemies")
#yellow marbles
if wave[enemy_id]=="B":
Global.enemy_my_name="color_marble"
Global.enemy_health=9 #sets life of marble- marble color determined by life size
var newEnemy=enemy.instance()
add_child(newEnemy)
newEnemy.add_to_group("enemies")
enemy_id+=1
timer=0
#checking if wave is clear if so does end of wave stuff gold, popup, etc
if enemy_id>1 and wave.size()>1:
var enemies = get_tree().get_nodes_in_group("enemies")
if enemies.size()==0:
Global.wave_level+=1
if Global.wave_level==7:
get_node("../Node2D/Game_Over_Popup").show()
else:
get_node("../Node2D/Wave_Complete_Popup").show()
#
if Global.wave_level<=6:
Global.map_gold+=200
#
Global.start_wave=false
get_tree().paused = true
var bullets = get_tree().get_nodes_in_group("bullets")
for bullet in bullets:
bullet.queue_free()
wave=[]
enemy_id=0
and here the script for tmoving marble down path on pathfollow
func _process(delta):
offset+= 2*delta