Browse Source

Fix player's color not getting set

master
Luna 7 years ago
parent
commit
725b616657
2 changed files with 16 additions and 10 deletions
  1. +10
    -6
      scripts/networking.gd
  2. +6
    -4
      scripts/player.gd

+ 10
- 6
scripts/networking.gd View File

@ -141,6 +141,10 @@ sync func _spawn_player(p):
player.player_info = players[p]
get_node("/root/Level/Players").add_child(player)
func _begin_player(p):
var player = util.get_player(p)
player.begin()
sync func _pre_configure_game(level):
var self_peer_id = get_tree().get_network_unique_id()
@ -158,6 +162,10 @@ sync func _pre_configure_game(level):
var existing_player = util.get_player(p)
if not self_begun or not existing_player:
_spawn_player(p)
for p in players:
if not players[p].spectating:
# Begin requires all players
_begin_player(p)
# Why do we check first? Weird error. It's because set_info triggers a
# start_game if everyone is ready
@ -176,12 +184,8 @@ sync func _done_preconfiguring(who):
sync func _post_configure_game():
# Begin all players (including self)
for p in players:
if not players[p].spectating:
_begin_player(p)
func _begin_player(peer):
util.get_player(peer).begin()
# TODO: What do? Maybe, unpause game?
pass
sync func reset_state():
players_done = []


+ 6
- 4
scripts/player.gd View File

@ -52,6 +52,7 @@ func _ready():
set_process_input(true)
debug_node = get_node("/root/Level/Debug")
_set_color()
if is_network_master():
get_node("TPCamera/Camera/Ray").add_exception(self)
get_node(tp_camera).set_enabled(true)
@ -59,6 +60,7 @@ func _ready():
if "is_ai" in player_info and player_info.is_ai and not ai_instanced:
add_child(preload("res://scenes/ai.tscn").instance())
ai_instanced = true
spawn()
else:
get_node("PlayerName").set_text(player_info.username)
# Remove HUD
@ -175,10 +177,13 @@ func event_to_obj(event):
return d
func begin():
_set_color()
func _set_color():
master_player = util.get_master_player()
# Set color to blue (teammate) or red (enemy)
var color
if master_player and master_player.player_info.is_right_team == player_info.is_right_team:
if master_player.player_info.is_right_team == player_info.is_right_team:
color = friend_color
else:
color = enemy_color
@ -192,8 +197,6 @@ func begin():
for mesh in colored_meshes:
get_node(mesh).set_surface_material(0, mat)
spawn()
func toggle_mouse_capture():
if (Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED):
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
@ -305,7 +308,6 @@ sync func switch_hero(hero):
get_node("/root/Level/Players").call_deferred("add_child", new_hero)
# We must wait until after _ready is called, so that we don't end up at spawn
new_hero.call_deferred("set_status", get_status())
new_hero.call_deferred("begin")
queue_free()
func write_recording():


Loading…
Cancel
Save