diff options
Diffstat (limited to 'world.gd')
-rw-r--r-- | world.gd | 53 |
1 files changed, 27 insertions, 26 deletions
@@ -14,11 +14,11 @@ func _ready(): ] ) - while true: - var scene = preload("res://Mob.tscn") - var mob = scene.instantiate() - add_child(Game.spawn_mob(mob, $Spawn)) - await get_tree().create_timer(randi_range(1, 2)).timeout + #while true: + #var scene = preload("res://Mob.tscn") + #var mob = scene.instantiate() + #add_child(Game.spawn_mob(mob, $Spawn)) + #await get_tree().create_timer(randi_range(1, 2)).timeout #await get_tree().create_timer(0.01).timeout #break @@ -27,7 +27,7 @@ func _draw(): if Game.debug: var area = Game.path_grid.region var cell_size = Game.path_grid.cell_size - var offset = Game.path_grid.offset + var offset = Game.path_grid.offset + (Game.path_grid.cell_size / 2) for row in range(0, area.size.y + 1): draw_line( Vector2(offset.x, offset.y + row * cell_size.y), @@ -58,12 +58,18 @@ func _draw(): func _input(event: InputEvent): if event.is_action_pressed("ui_accept"): - for _i in range(0, 2): + for _i in range(0, 1): var scene = preload("res://Mob.tscn") var mob = scene.instantiate() add_child(Game.spawn_mob(mob, $Spawn)) + if event.is_action_pressed("spawn_box_toggle"): + %SpawnBox.visible = not %SpawnBox.visible + if Game.mode == Game.Mode.DEFAULT: + if event.is_action_pressed("build_mode_start"): + Game.start_build_mode() + if event.is_action_pressed("builder_tower_select"): if Tower.selected_tower: Tower.selected_tower.is_selected = false @@ -71,13 +77,13 @@ func _input(event: InputEvent): if Mob.selected_unit: Mob.selected_unit.is_selected = false - if Game.mode == Game.Mode.BUILD: + elif Game.mode == Game.Mode.BUILD: if event.is_action_pressed("builder_tower_select"): get_viewport().set_input_as_handled() - if current_builder_element.can_build(): - var placed_tower = current_builder_element.element.duplicate() as Tower - Game.place_tower(placed_tower, get_global_mouse_position().snapped(Game.map.tile_set.tile_size)) + if Game.current_builder_element.can_build(): + var placed_tower = Game.current_builder_element.element.duplicate() as Tower + Game.place_tower(placed_tower, Game.current_builder_element.global_position) placed_tower.selected.connect(func(): %Tower.text = "Range: %s - Power: %s - Speed: %s" % [ @@ -86,24 +92,19 @@ func _input(event: InputEvent): ) if not Input.is_action_pressed("builder_tower_place_keep"): - current_builder_element.queue_free() - Game.mode = Game.Mode.DEFAULT + Game.stop_build_mode() - if event.is_action_pressed("builder_cancel"): + if event.is_action_pressed("builder_cancel") or event.is_action_pressed("build_mode_start"): get_viewport().set_input_as_handled() - - current_builder_element.queue_free() - Game.mode = Game.Mode.DEFAULT + Game.stop_build_mode() -func _on_texture_rect_gui_input(event: InputEvent): +func _on_build_mode_button_gui_input(event: InputEvent) -> void: if event.is_action_pressed("builder_tower_select"): Game.mode = Game.Mode.BUILD - - var scene = preload("res://BuilderElement.tscn") - var builder_element = scene.instantiate() - var tower = preload("res://Tower.tscn").instantiate() as Tower - tower.attack_range = [16, 32, 64].pick_random() - builder_element.element = tower - add_child(builder_element) - current_builder_element = builder_element + Game.start_build_mode() + + +func _on_spawner_box_button_gui_input(event: InputEvent) -> void: + if event.is_action_pressed("select"): + %SpawnBox.visible = not %SpawnBox.visible |