|
|
@ -2,8 +2,7 @@ extends Control |
|
|
|
|
|
|
|
var port = null # Defined by command-line argument with default |
|
|
|
|
|
|
|
var player_info = [] |
|
|
|
var my_info = {} |
|
|
|
# var my_info = {} |
|
|
|
var server_playing = true |
|
|
|
var global_server_ip = "nv.cosinegaming.com" |
|
|
|
var ip = null |
|
|
@ -23,45 +22,49 @@ func _ready(): |
|
|
|
if get_tree().is_network_server(): |
|
|
|
get_node("LevelSelect").show() |
|
|
|
|
|
|
|
get_node("Username").connect("text_changed", self, "resend_name") |
|
|
|
get_node("Username").connect("text_changed", self, "_send_name") |
|
|
|
get_node("StartGame").connect("pressed", self, "_start_game") |
|
|
|
# get_node("CustomGame/LevelSelect").connect("item_selected", self, "select_level") TODO |
|
|
|
_send_name() |
|
|
|
|
|
|
|
func collect_info(): |
|
|
|
func _collect_info(): |
|
|
|
var my_id = get_tree().get_network_unique_id() |
|
|
|
var my_info = networking.players[my_id] |
|
|
|
if not "username" in my_info: |
|
|
|
my_info.username = get_node("PlayerSettings/Username").get_text() |
|
|
|
my_info.username = get_node("Username").get_text() |
|
|
|
if not "hero" in my_info: |
|
|
|
my_info.hero = get_node("PlayerSettings/HeroSelect").get_selected_id() |
|
|
|
my_info.hero = get_node("HeroSelect/Hero").get_selected_id() |
|
|
|
if not "is_right_team" in my_info: |
|
|
|
my_info.is_right_team = false # Server assigns team, wait for that |
|
|
|
|
|
|
|
func select_hero(hero): |
|
|
|
var description = get_node("PlayerSettings/HeroSelect").hero_text[hero] |
|
|
|
get_node("PlayerSettings/HeroDescription").set_text(description) |
|
|
|
if is_connected: |
|
|
|
rpc("set_hero", get_tree().get_network_unique_id(), hero) |
|
|
|
var description = get_node("HeroSelect").hero_text[hero] |
|
|
|
get_node("HeroDescription").set_text(description) |
|
|
|
var my_id = get_tree().get_network_unique_id() |
|
|
|
networking.players[my_id].hero = hero |
|
|
|
rpc("set_hero", get_tree().get_network_unique_id(), hero) |
|
|
|
|
|
|
|
sync func set_hero(peer, hero): |
|
|
|
player_info[peer].hero = hero |
|
|
|
networking.players[peer].hero = hero |
|
|
|
render_player_list() |
|
|
|
|
|
|
|
func resend_name(): |
|
|
|
func _send_name(): |
|
|
|
if is_connected: |
|
|
|
var name = get_node("PlayerSettings/Username").get_text() |
|
|
|
rpc("set_name", get_tree().get_network_unique_id(), name) |
|
|
|
var name = get_node("Username").text |
|
|
|
rpc("_set_name", get_tree().get_network_unique_id(), name) |
|
|
|
|
|
|
|
sync func set_name(peer, name): |
|
|
|
player_info[peer].username = name |
|
|
|
sync func _set_name(peer, name): |
|
|
|
networking.players[peer].username = name |
|
|
|
render_player_list() |
|
|
|
|
|
|
|
func render_player_list(): |
|
|
|
if has_node("PlayerSettings"): |
|
|
|
var list = "" |
|
|
|
var hero_names = get_node("PlayerSettings/HeroSelect").hero_names |
|
|
|
for p in player_info: |
|
|
|
list += "%-15s" % player_info[p].username |
|
|
|
list += "%-20s" % hero_names[player_info[p].hero] |
|
|
|
if player_info[p].is_right_team: |
|
|
|
var hero_names = get_node("HeroSelect").hero_names |
|
|
|
for p in networking.players: |
|
|
|
list += "%-15s" % networking.players[p].username |
|
|
|
list += "%-20s" % hero_names[networking.players[p].hero] |
|
|
|
if networking.players[p].is_right_team: |
|
|
|
list += "Right Team" |
|
|
|
else: |
|
|
|
list += "Left Team" |
|
|
@ -69,15 +72,16 @@ func render_player_list(): |
|
|
|
get_node("JoinedGameLobby/PlayerList").set_text(list) |
|
|
|
|
|
|
|
sync func assign_team(peer, is_right_team): |
|
|
|
player_info[peer].is_right_team = is_right_team |
|
|
|
networking.players[peer].is_right_team = is_right_team |
|
|
|
if peer == get_tree().get_network_unique_id(): |
|
|
|
if is_right_team: |
|
|
|
get_node("PlayerSettings/Team").set_text("Right Team") |
|
|
|
get_node("Team").set_text("Right Team") |
|
|
|
else: |
|
|
|
get_node("PlayerSettings/Team").set_text("Left Team") |
|
|
|
get_node("Team").set_text("Left Team") |
|
|
|
render_player_list() |
|
|
|
|
|
|
|
func _start_game(): |
|
|
|
_collect_info() |
|
|
|
var level = 2 # TODO |
|
|
|
networking.rpc_id(1, "start_game", level) |
|
|
|
|