a game about throwing hammers made for the github game off
Diffstat (limited to 'levels/Level.gd')
| -rw-r--r-- | levels/Level.gd | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/levels/Level.gd b/levels/Level.gd index 70afe3e..1d70698 100644 --- a/levels/Level.gd +++ b/levels/Level.gd @@ -15,13 +15,21 @@ const ALL_DOORS := [Vector2i.UP, Vector2i.DOWN, Vector2i.LEFT, Vector2i.RIGHT] const rot_map := {Vector2i.LEFT: PI, Vector2i.RIGHT: 0, Vector2i.DOWN: PI / 2, Vector2i.UP: -PI / 2} # 180 # 90 # -90 -@onready var enemys := $Enemys.get_children() -@onready var enemyqty := $Enemys.get_child_count() +var completed := false: + set(value): + if not is_inside_tree() and value == true: + completed = value + else: + push_error("no") + +@onready var enemys := $Enemys.get_children() if not completed else [] +@onready var enemyqty := enemys.size() if not completed else 0 @onready var has_enemys := enemyqty != 0 @onready var blockdoors: Node2D @onready var doors: Node2D = create_node(&"doors") + ## Utility fuction to create a [Node2D] func create_node(p_name: StringName) -> Node2D: var n := Node2D.new() @@ -34,12 +42,15 @@ func create_node(p_name: StringName) -> Node2D: func _ready(): var wall_array := Maze.tile_4b_to_wall_array(enabled_walls) + if completed: + ($Enemys as Node2D).queue_free() if len(wall_array) != 4: var door_array := Util.sub(ALL_DOORS, wall_array) if Vector2i.DOWN in door_array: + var n := create_node(&"one_way_platform") + n.position = Vector2(128, 243) var p: OneWayPlatform = OneWayPlatform_scn.instantiate() - p.position = Vector2(128, 243) - call_deferred(&"add_child", p) + n.call_deferred(&"add_child", p) if has_enemys: blockdoors = create_node(&"block_doors") @@ -52,7 +63,6 @@ func _ready(): for enemy in enemys: enemy.died.connect(_on_enemy_died) - ## Add a [Door] for given direction. func add_door(dir: Vector2i) -> Door: var d := Door_scn.instantiate() |