|
@@ -25,28 +25,35 @@ func _ready():
|
|
|
if !levelSceneToLoop:
|
|
|
push_error("Cant't load level " + levelToLoop)
|
|
|
|
|
|
+ # Create players
|
|
|
+ var player
|
|
|
+ for k in 2:
|
|
|
+ player = playerScene.instance()
|
|
|
+ player.grid = levelCurrentNode
|
|
|
+ player.turn_left_action = playerActionsLeft[k]
|
|
|
+ player.turn_right_action = playerActionsRight[k]
|
|
|
+ player.position = Vector2()
|
|
|
+ add_child(player)
|
|
|
+
|
|
|
func load_level(name):
|
|
|
var fullName = "res://Levels/" + name + ".tscn"
|
|
|
return load(fullName)
|
|
|
|
|
|
func _unhandled_input(event):
|
|
|
if event.is_action("ui_accept") and event.is_pressed():
|
|
|
- if get_tree().has_group("living"):
|
|
|
- var living = get_tree().get_nodes_in_group("living")
|
|
|
- if !living.empty():
|
|
|
+ if get_tree().has_group("running"):
|
|
|
+ var running = get_tree().get_nodes_in_group("running")
|
|
|
+ if !running.empty():
|
|
|
return
|
|
|
create_game()
|
|
|
|
|
|
func create_game():
|
|
|
# Clear if required
|
|
|
- if get_tree().has_group("players"):
|
|
|
- var players = get_tree().get_nodes_in_group("players")
|
|
|
- for p in players:
|
|
|
- p.queue_free()
|
|
|
if levelCurrentNode:
|
|
|
remove_child(levelCurrentNode)
|
|
|
levelCurrentNode.queue_free()
|
|
|
|
|
|
+ # Create level node
|
|
|
if levelToLoop:
|
|
|
levelCurrentNode = levelSceneToLoop.instance()
|
|
|
else:
|
|
@@ -64,24 +71,24 @@ func create_game():
|
|
|
|
|
|
add_child(levelCurrentNode)
|
|
|
|
|
|
- # Retrieve player spawn points
|
|
|
+ # Allocate spawn points to players
|
|
|
var spawners = get_tree().get_nodes_in_group("spawn")
|
|
|
spawners.shuffle()
|
|
|
|
|
|
- # Create players
|
|
|
- var player
|
|
|
+ var p = get_tree().get_nodes_in_group("players")
|
|
|
|
|
|
- for k in 3:
|
|
|
- player = playerScene.instance()
|
|
|
- player.grid = levelCurrentNode
|
|
|
- player.turn_left_action = playerActionsLeft[k]
|
|
|
- player.turn_right_action = playerActionsRight[k]
|
|
|
- player.position = spawners[k].position
|
|
|
- player.rotation = spawners[k].rotation
|
|
|
- add_child(player)
|
|
|
+ for k in p.size():
|
|
|
+ # TODO : Put arguments in callback
|
|
|
+ p[k].grid = levelCurrentNode
|
|
|
+ p[k].position = spawners[k].position
|
|
|
+ p[k].rotation = spawners[k].rotation
|
|
|
+ p[k]._on_spawn()
|
|
|
|
|
|
# Delay start
|
|
|
timer.start()
|
|
|
|
|
|
-func _on_game_start():
|
|
|
- get_tree().call_group("players", "_on_game_start")
|
|
|
+func _on_round_start():
|
|
|
+ get_tree().call_group("players", "_on_round_start")
|
|
|
+
|
|
|
+func _on_round_end():
|
|
|
+ get_tree().call_group("players", "_on_round_end")
|