a game about throwing hammers made for the github game off
Diffstat (limited to 'levels/Level.gd')
| -rw-r--r-- | levels/Level.gd | 92 |
1 files changed, 46 insertions, 46 deletions
diff --git a/levels/Level.gd b/levels/Level.gd index b035293..33dcda8 100644 --- a/levels/Level.gd +++ b/levels/Level.gd @@ -16,11 +16,11 @@ 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 var completed := false: - set(value): - if not is_inside_tree() and value == true: - completed = value - else: - push_error("no") + 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 @@ -32,63 +32,63 @@ var completed := false: ## Utility fuction to create a [Node2D] func create_node(p_name: StringName) -> Node2D: - var n := Node2D.new() - n.position = Vector2.ZERO - n.name = p_name - add_child(n) - return n + var n := Node2D.new() + n.position = Vector2.ZERO + n.name = p_name + add_child(n) + return n func _ready(): - var wall_array := Maze.tile_4b_to_wall_array(enabled_walls) + 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() - n.call_deferred(&"add_child", p) + 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() + n.call_deferred(&"add_child", p) - if has_enemys: - blockdoors = create_node(&"block_doors") + if has_enemys: + blockdoors = create_node(&"block_doors") - for door_p in door_array: - var door := add_door(door_p) - if has_enemys: - add_block_door(door) + for door_p in door_array: + var door := add_door(door_p) + if has_enemys: + add_block_door(door) - for enemy in enemys: - enemy.died.connect(_on_enemy_died) + 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() - var v := Vector2i(128, 128) # center - d.rotation = rot_map[dir] - d.position = Vector2(v + (v * dir)).move_toward(v, 16) - d.dir = dir - doors.add_child(d) - return d + var d := Door_scn.instantiate() + var v := Vector2i(128, 128) # center + d.rotation = rot_map[dir] + d.position = Vector2(v + (v * dir)).move_toward(v, 16) + d.dir = dir + doors.add_child(d) + return d ## Add a [BlockDoor] on top of a [Door] func add_block_door(door: Door) -> BlockDoor: - var d := BlockDoor_scn.instantiate() - d.rotation = door.rotation - d.position = door.position.move_toward(Vector2(128, 128), -8) - blockdoors.add_child(d) - return d + var d := BlockDoor_scn.instantiate() + d.rotation = door.rotation + d.position = door.position.move_toward(Vector2(128, 128), -8) + blockdoors.add_child(d) + return d func _on_enemy_died() -> void: - enemyqty -= 1 - if enemyqty == 0: - open_doors() + enemyqty -= 1 + if enemyqty == 0: + open_doors() ## Opens all doors func open_doors() -> void: - var block_doors := blockdoors.get_children() - for bloc_door in block_doors: - bloc_door.open() + var block_doors := blockdoors.get_children() + for bloc_door in block_doors: + bloc_door.open() |