made the first changes towards multiplayer working

This commit is contained in:
2023-11-13 19:36:35 +11:00
parent b0f8a37f60
commit f004f64b71
26 changed files with 305 additions and 257 deletions

View File

@ -81,8 +81,6 @@ func ready_player(_value):
for key in connected_players_nodes:
if connected_players_nodes[key].ready_state == false:
return
for key in connected_players_nodes:
connected_players_nodes[key].ready_state = false
spawn_enemy_wave()
@ -96,9 +94,18 @@ func spawn_enemy_wave():
func set_upcoming_wave():
var spawn_power = WaveManager.calculate_spawn_power(wave + 1, connected_players_nodes.size())
upcoming_wave = WaveManager.generate_wave(spawn_power, level.enemy_pool)
pot = 6 + (spawn_power / 100)
if is_multiplayer_authority():
var spawn_power = WaveManager.calculate_spawn_power(wave + 1, connected_players_nodes.size())
var new_wave = WaveManager.generate_wave(spawn_power, level.enemy_pool)
networked_set_upcoming_wave.rpc(new_wave, 6 + (spawn_power / 100))
@rpc("reliable", "call_local")
func networked_set_upcoming_wave(wave_dict, coins):
upcoming_wave = wave_dict
pot = coins
for key in connected_players_nodes:
connected_players_nodes[key].hud.set_upcoming_wave(upcoming_wave)
func increase_enemy_count():
@ -137,13 +144,11 @@ func damage_goal(enemy, penalty):
func end_wave():
for peer_id in connected_players_nodes:
connected_players_nodes[peer_id].currency += pot / connected_players_nodes.size()
connected_players_nodes[peer_id].currency += ceili(pot / connected_players_nodes.size())
connected_players_nodes[peer_id].ready_state = false
level.a_star_graph_3d.visualized_path.enable_visualization()
wave_finished.emit(wave)
set_upcoming_wave()
if wave < 20:
for key in connected_players_nodes:
connected_players_nodes[key].hud.set_upcoming_wave(upcoming_wave)
func remove_player(peer_id):
@ -158,7 +163,6 @@ func start_game():
set_upcoming_wave()
for peer_id in connected_players_nodes:
connected_players_nodes[peer_id].currency = 20
connected_players_nodes[peer_id].hud.set_upcoming_wave(upcoming_wave)
game_started.emit()