diff --git a/classes/level/level.gd b/classes/level/level.gd index faa26db..57141eb 100644 --- a/classes/level/level.gd +++ b/classes/level/level.gd @@ -12,6 +12,7 @@ class_name Level extends Node2D #@export var goal_layer: GoalTileLayer @onready var player_scene: PackedScene = preload("res://scenes/player/player.tscn") +@onready var ball_scene: PackedScene = preload("res://scenes/ball/ball.tscn") var player_1: Player var player_2: Player diff --git a/scenes/levels/states/level_starting.gd b/scenes/levels/states/level_starting.gd index 65fed9b..0c46304 100644 --- a/scenes/levels/states/level_starting.gd +++ b/scenes/levels/states/level_starting.gd @@ -2,6 +2,7 @@ extends LevelState func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "restart": false}) -> void: + get_tree().paused = true assert((_data["round"] as int) in range(3), "round number is invalid") assert( (_data["restart"] as bool) == true or @@ -10,6 +11,7 @@ func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "rest ) level.current_round = _data["round"] level.restarted = _data["restart"] + if level.restarted: level.current_round = 0 level.scoreboard = Vector2i(0,0) @@ -32,12 +34,13 @@ func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "rest level.player_1 = _instantiate_player(1) level.player_2 = _instantiate_player(2) + level.ball = _instantiate_ball() + func _instantiate_player(id: int) -> Player: - var p: Player = level.player_1 if id == 1 else level.player_2 var s: PlayerSpawnPoint = level.player_1_spawn if id == 1 else level.player_2_spawn + var p: Player = level.player_scene.instantiate() - p = level.player_scene.instantiate() p.id = id p.name = "Player"+str(id) @@ -47,3 +50,13 @@ func _instantiate_player(id: int) -> Player: p.global_position = s.global_position return p + + +func _instantiate_ball() -> Ball: + var b: Ball = level.ball_scene.instantiate() + + level.add_child(b) + + b.global_position = level.ball_spawn.global_position + + return b