Compare commits

...

6 commits

5 changed files with 22 additions and 6 deletions

View file

@ -2,7 +2,7 @@ class_name Level extends Node2D
@export var director: StateMachine
@export var camera: Camera2D
@export var camera: LevelCamera
@export var player_1_spawn: PlayerSpawnPoint
@export var player_2_spawn: PlayerSpawnPoint
@export var ball_spawn: BallSpawnPoint
@ -11,8 +11,6 @@ class_name Level extends Node2D
@export var block_layer: BlockTileLayer
#@export var goal_layer: GoalTileLayer
@onready var player_scene: PackedScene = preload("res://scenes/player/player.tscn")
var player_1: Player
var player_2: Player
var ball: Ball
@ -21,6 +19,7 @@ var scoreboard: Vector2i
var current_round: int
var restarted: bool
func _ready() -> void:
# :sheesh:
assert(director != null, "no director set")

View file

@ -1,4 +1,4 @@
extends Camera2D
class_name LevelCamera extends Camera2D
@export_range(0, 1, 0.01) var ball_weight: float = 0.6
@export_range(0, 1, 0.01) var player_weight: float = 0.2

View file

@ -3,4 +3,5 @@
[ext_resource type="Script" uid="uid://bsvjinfmr1pek" path="res://scenes/level_camera/level_camera_2d.gd" id="1_rls2d"]
[node name="LevelCamera2D" type="Camera2D"]
process_mode = 3
script = ExtResource("1_rls2d")

View file

@ -3,5 +3,6 @@
[ext_resource type="Script" uid="uid://bio2cjqps6kg1" path="res://scenes/level_director/level_director.gd" id="1_4q8ux"]
[node name="LevelDirector" type="Node"]
process_mode = 3
script = ExtResource("1_4q8ux")
metadata/_custom_type_script = "uid://dqjaxgmyxq3rx"

View file

@ -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)
@ -17,6 +19,7 @@ func _enter(_previous_state_path: String, _data: Dictionary = {"round": 0, "rest
if level.current_round + 1 == 4:
finished.emit(FINISHING)
return
assert(
(level.player_1 != null and level.player_2 != null) or
@ -32,12 +35,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 = s.player_scene.instantiate()
p = level.player_scene.instantiate()
p.id = id
p.name = "Player"+str(id)
@ -47,3 +51,14 @@ func _instantiate_player(id: int) -> Player:
p.global_position = s.global_position
return p
func _instantiate_ball() -> Ball:
var s: BallSpawnPoint = level.ball_spawn
var b: Ball = s.ball_scene.instantiate()
level.add_child(b)
b.global_position = s.global_position
return b