Merge pull request 'Added ability to restart server if enough players quit' (#2) from restart into master
Reviewed-on: #2master
						commit
						5dc194bd76
					
				| 
						 | 
				
			
			@ -27,7 +27,7 @@ func init() -> void:
 | 
			
		|||
func _process(delta : float) -> void:
 | 
			
		||||
	var all_ready = true
 | 
			
		||||
	for player in players.values():
 | 
			
		||||
		if !player.is_ready and !player.has_died:
 | 
			
		||||
		if !player.is_ready and !player.has_died and !player.is_zombie:
 | 
			
		||||
			all_ready = false
 | 
			
		||||
	if all_ready:
 | 
			
		||||
		for player in players.values():
 | 
			
		||||
| 
						 | 
				
			
			@ -36,12 +36,12 @@ func _process(delta : float) -> void:
 | 
			
		|||
				player.calculate_plans()
 | 
			
		||||
 | 
			
		||||
func generate_translation() -> Vector3:
 | 
			
		||||
	#return Vector3(rand_range(-5,5),rand_range(-5,5),rand_range(-5,5))
 | 
			
		||||
	return Vector3(0,0,rand_range(-5,5))
 | 
			
		||||
	return Vector3(rand_range(-5,5),rand_range(-5,5),rand_range(-5,5))
 | 
			
		||||
	#return Vector3(0,0,rand_range(-5,5))
 | 
			
		||||
 | 
			
		||||
func generate_rotation() -> Vector3:
 | 
			
		||||
	#return Vector3(rand_range(-1,1),rand_range(-1,1),rand_range(-1,1)).normalized()
 | 
			
		||||
	return Vector3(0,0,1)
 | 
			
		||||
	return Vector3(rand_range(-1,1),rand_range(-1,1),rand_range(-1,1)).normalized()
 | 
			
		||||
	#return Vector3(0,0,1)
 | 
			
		||||
 | 
			
		||||
func play_full_plans():
 | 
			
		||||
	for player in players.values():
 | 
			
		||||
| 
						 | 
				
			
			@ -68,8 +68,6 @@ remote func request_rematch(id) -> void:
 | 
			
		|||
		if len(rematch_requests) == len(get_parent().ids):
 | 
			
		||||
			start_rematch()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func start_rematch() -> void:
 | 
			
		||||
	for player_id in players.keys():
 | 
			
		||||
		players[player_id].queue_free()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,7 @@ var health : float = 100.0
 | 
			
		|||
var is_alive : bool = true
 | 
			
		||||
var time_of_death : float = -1
 | 
			
		||||
var has_died : bool = false
 | 
			
		||||
var is_zombie : bool = false
 | 
			
		||||
 | 
			
		||||
var turn_number : int = 0
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +195,6 @@ func die(time : float) -> void:
 | 
			
		|||
	has_died = true
 | 
			
		||||
	$CollisionShape.disabled = true
 | 
			
		||||
	time_of_death = time
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
func play_all_plans():
 | 
			
		||||
	get_parent().play_full_plans()
 | 
			
		||||
| 
						 | 
				
			
			@ -217,6 +217,8 @@ func play_last_plan():
 | 
			
		|||
		$CollisionShape.disabled = false
 | 
			
		||||
 | 
			
		||||
func calculate_plans():
 | 
			
		||||
	if is_zombie:
 | 
			
		||||
		create_zombie_plan()
 | 
			
		||||
	if turn_number == 0:
 | 
			
		||||
		play_full_plan()
 | 
			
		||||
	else:
 | 
			
		||||
| 
						 | 
				
			
			@ -240,3 +242,7 @@ func _on_player_enter_firing_arc(body):
 | 
			
		|||
 | 
			
		||||
func _on_player_exit_firing_arc(body):
 | 
			
		||||
	players_in_firing_arc.erase(body)
 | 
			
		||||
 | 
			
		||||
func create_zombie_plan() -> void:
 | 
			
		||||
	add_thrust_element(5, Vector3.ZERO, Vector3.ZERO)
 | 
			
		||||
	add_weapons_element(5, false)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
extends Node
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const MAX_PLAYERS : int = 2
 | 
			
		||||
const MAX_PLAYERS : int = 3
 | 
			
		||||
const PORT : int = 9374
 | 
			
		||||
 | 
			
		||||
const Arena = preload("res://Scenes/Arena.tscn")
 | 
			
		||||
| 
						 | 
				
			
			@ -10,6 +10,7 @@ var peer : NetworkedMultiplayerENet = null
 | 
			
		|||
var ids = []
 | 
			
		||||
var console_output : TextEdit = null
 | 
			
		||||
var ready_ids = []
 | 
			
		||||
var playing : bool = false
 | 
			
		||||
var name_dict = {}
 | 
			
		||||
var color_dict = {}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -42,6 +43,15 @@ func _peer_connected(id : int) -> void:
 | 
			
		|||
func _peer_disconnected(id : int) -> void:
 | 
			
		||||
	ids.erase(id)
 | 
			
		||||
	self.console_print("Player has disconnected with id " + String(id))
 | 
			
		||||
	if !playing:
 | 
			
		||||
		return
 | 
			
		||||
	var alive_online_players : int = 0
 | 
			
		||||
	$Arena.players[id].is_zombie = true
 | 
			
		||||
	for id in ids:
 | 
			
		||||
		if $Arena.players[id].is_alive:
 | 
			
		||||
			alive_online_players += 1
 | 
			
		||||
	if alive_online_players < 2:
 | 
			
		||||
		self.server_request_exit()
 | 
			
		||||
 | 
			
		||||
remote func client_ready(id : int) -> void:
 | 
			
		||||
	if id in ready_ids:
 | 
			
		||||
| 
						 | 
				
			
			@ -57,6 +67,7 @@ func start_game() -> void:
 | 
			
		|||
	console_print('Starting Game...')
 | 
			
		||||
	send_name_dict()
 | 
			
		||||
	send_color_dict()
 | 
			
		||||
	playing = true
 | 
			
		||||
 | 
			
		||||
func send_name_dict() -> void:
 | 
			
		||||
	for element in name_dict.keys():
 | 
			
		||||
| 
						 | 
				
			
			@ -84,8 +95,14 @@ func end_game() -> void:
 | 
			
		|||
	peer.close_connection()
 | 
			
		||||
	peer.create_server( PORT, MAX_PLAYERS )
 | 
			
		||||
	peer.refuse_new_connections = false
 | 
			
		||||
	playing = false
 | 
			
		||||
 | 
			
		||||
remote func request_exit() -> void:
 | 
			
		||||
	console_print("Exit requested...")
 | 
			
		||||
	rpc("exit_requested")
 | 
			
		||||
	$ExitTimer.start()
 | 
			
		||||
 | 
			
		||||
func server_request_exit() -> void:
 | 
			
		||||
	console_print("Server requested exit...")
 | 
			
		||||
	rpc("server_exit_requested")
 | 
			
		||||
	$ExitTimer.start()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue