55 lines
1.9 KiB
GDScript
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
|