bricasse/tools/levels.gd

55 lines
1.9 KiB
GDScript

extends Reference
# List of levels
var list = [
# - Classic - #
preload("res://levels/level_01_01.tscn"), # "Breakout" - Disposition from the 1st breakout game
preload("res://levels/level_01_02.tscn"), # "Behind the wall" - Wall block
preload("res://levels/level_01_03.tscn"), # "Building" - Hard blocks
preload("res://levels/level_01_04.tscn"), # "Heart" - Half blocks
preload("res://levels/level_01_05.tscn"), # "Paw" - (no new block)
# - Hex - #
preload("res://levels/level_02_01.tscn"), # "Hive" - Hexagonal blocks
preload("res://levels/level_02_02.tscn"), # "Flowers" - Non-regular hexagons
preload("res://levels/level_02_03.tscn"), # "Leaves" - (no new block)
preload("res://levels/level_02_04.tscn"), # "Aquarium" - Fish blocks (+ Leaves)
preload("res://levels/level_02_05.tscn"), # "Stars" - Star3 blocks
# - Moving/Timing blocks - #
# "Invasion" - Left-right movement
# "Ghosts" - Blinking blocks : block appear / disappear
# "Gems" - Gravity blocks - cf. Boulder Dash
# "Many-Eyed Angel" - Blinking blocks 2 : wall / non-wall
# "Tris" - Falling blocks / appearing at random on the top
]
# Index for moving in the list
var current_level = 0
# Called when the node enters the scene tree for the first time.
func _ready():
pass
# Get current level
func get_current():
return list[current_level]
# Go to next level (list is circulary)
func go_to_next():
current_level = current_level + 1
if current_level >= list.size():
current_level = 0
# Go to previous level (list is circulary)
func go_to_prev():
current_level = current_level - 1
if current_level < 0:
current_level = list.size() - 1
# Check if current level is last
func current_is_last():
return current_level == list.size() - 1
# Check if current level is first
func current_is_first():
return current_level == 0