/
LevelSeries.gd
39 lines (32 loc) · 1.04 KB
/
LevelSeries.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
extends Node2D
signal load_scene(scene);
var you_win_scene = load("res://Levels/YouWin.tscn");
var levels = [
load("res://Levels/Level3.tscn"),
load("res://Levels/Level4.tscn"),
load("res://Levels/Level5.tscn"),
load("res://Levels/Level6.tscn"),
load("res://Levels/Level7.tscn"),
load("res://Levels/Level8.tscn"),
load("res://Levels/Level9.tscn")
];
export var current_level_index = 0;
var current_level = null;
func _ready():
load_level(current_level_index);
func load_next_level():
if (current_level_index >= levels.size() - 1):
emit_signal("load_scene", you_win_scene);
return;
current_level_index += 1;
load_level(current_level_index);
func restart_level():
load_level(current_level_index);
current_level.get_node("RestartSound").play();
func load_level(level_index):
if (current_level != null):
current_level.queue_free();
current_level = levels[level_index].instance();
current_level.connect("level_complete", self, "load_next_level");
current_level.connect("restart_level", self, "restart_level");
add_child(current_level);