a game about throwing hammers made for the github game off
Diffstat (limited to 'levels/Level.gd')
-rw-r--r--levels/Level.gd92
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()