public void HostGame(Action <ResponseType> response)
    {
        // Set this player as the host
        Host    = Game.Name;
        Hosting = true;
        DisconnectedWithError = false;

        // Initialize avatar manager and set the host's avatar
        avatars = new AvatarsManager();
        avatars.AddPlayer(Host);
        Game.Manager.AddHost(avatars[Host]);

        net.StartAsHost(Game.Name, (ResponseType res) => {
            if (res == ResponseType.Success)
            {
                net.clientsUpdated         = OnUpdateClients;
                net.onDisconnected         = OnDisconnect;
                net.onUpdateDroppedClients = OnUpdateDropped;
            }
            else
            {
                OnDisconnect();
            }

            response(res);
        });
    }
        protected void Packet_UloadAvatar(long connectionId, byte[] data)
        {
            ByteBuffer buffer = new ByteBuffer();

            buffer.WriteBytes(data);

            //Skip packet id
            buffer.ReadLong();

            //Read image bytes
            byte[] imageBytes = buffer.ReadBytes(buffer.Length());

            // upload
            var urlPath = AvatarsManager.UploadAvatar(connectionId, imageBytes);

            // send to player OK message
            ServerSendPackets.Send_UpdateUserAvatar(connectionId, connectionId, urlPath);
        }
    /// <summary>
    /// Called when a player joins or leaves the room that this player is hosting
    /// </summary>
    public void OnUpdatePlayers(NetMessage msg)
    {
        Dictionary <string, string> playerColors = AvatarsManager.ToDict(msg.str1);

        // Add any players that haven't already been registered
        foreach (var pc in playerColors)
        {
            string name  = pc.Key;
            string color = pc.Value;

            if (players.ContainsKey(name))
            {
                continue;
            }

            players.Add(name, new Player {
                Name   = name,
                Avatar = color
            });

            if (onAddPeer != null)
            {
                onAddPeer(name, color);
            }
        }

        // Remove old players that weren't included in the message
        Dictionary <string, Player> temp = new Dictionary <string, Player> (players);

        foreach (var p in temp)
        {
            string name = p.Key;

            if (!playerColors.ContainsKey(name))
            {
                players.Remove(name);

                if (onRemovePeer != null)
                {
                    onRemovePeer(name);
                }
            }
        }
    }
	public void HostGame (Action<ResponseType> response) {

		// Set this player as the host
		Host = Game.Name;
		Hosting = true;
		DisconnectedWithError = false;

		// Initialize avatar manager and set the host's avatar
		avatars = new AvatarsManager ();
		avatars.AddPlayer (Host);
		Game.Manager.AddHost (avatars[Host]);

		net.StartAsHost (Game.Name, (ResponseType res) => {

			if (res == ResponseType.Success) {
				net.clientsUpdated = OnUpdateClients;
				net.onDisconnected = OnDisconnect;
				net.onUpdateDroppedClients = OnUpdateDropped;
			} else {
				OnDisconnect ();
			}

			response (res);
		});
	}
 /// <summary>
 /// Запуск проверки на сервере
 /// </summary>
 public override void OnStartServer()
 {
     Timing.RunCoroutine(CoroutineForCheckPlayers());
     avatarsManager       = GetComponent <AvatarsManager>();
     notificationsManager = GetComponent <NotificationsManager>();
 }
Exemple #6
0
    private void InitializePanelContent(string panelName, string previousPanelName)
    {
        switch (panelName)
        {
        case "MainMenuPanel":
            ClearBatchAiSquadsTestingMode();
            break;

        case "OptionsPanel":
            OptionsUI.Instance.InitializeOptionsPanel();
            break;

        case "StatsPanel":
            StatsUI.Instance.InitializeStatsPanel();
            break;

        case "ModsPanel":
            ModsManager.InitializePanel();
            break;

        case "CreditsPanel":
            CreditsUI.InitializePanel();
            break;

        case "BrowseRoomsPanel":
            BrowseMatches();
            break;

        case "SelectFactionPanel":
            Global.SquadBuilder.CurrentSquad.ClearAll();
            Global.SquadBuilder.View.ShowFactionsImages();
            break;

        case "SquadBuilderPanel":
            Global.SquadBuilder.View.ShowShipsAndUpgrades();
            Global.SquadBuilder.View.UpdateNextButton();
            break;

        case "SelectShipPanel":
            Global.SquadBuilder.View.ShowShipsFilteredByFaction();
            break;

        case "SelectPilotPanel":
            Global.SquadBuilder.View.ShowPilotsFilteredByShipAndFaction();
            break;

        case "ShipSlotsPanel":
            Global.SquadBuilder.View.ShowPilotWithSlots();
            break;

        case "SelectUpgradePanel":
            Global.SquadBuilder.View.ShowUpgradesList();
            break;

        case "BrowseSavedSquadsPanel":
            Global.SquadBuilder.View.BrowseSavedSquads();
            break;

        case "SaveSquadronPanel":
            Global.SquadBuilder.View.PrepareSaveSquadronPanel();
            break;

        case "AvatarsPanel":
            InitializePlayerCustomization();
            break;

        case "EditionPanel":
            ShowActiveEdition(Options.Edition);
            break;

        case "ShipInfoPanel":
            Global.SquadBuilder.View.ShowShipInformation();
            break;

        case "SkinsPanel":
            Global.SquadBuilder.View.ShowSkinsPanel();
            break;

        case "ChosenObstaclesPanel":
            Global.SquadBuilder.View.ShowChosenObstaclesPanel();
            break;

        case "BrowseObstaclesPanel":
            Global.SquadBuilder.View.ShowBrowseObstaclesPanel();
            break;

        case "BrowsePopularSquadsPanel":
            if (previousPanelName == "SquadOptionsPanel")
            {
                PopularSquads.LastChosenFaction = "All";
            }
            PopularSquads.LoadPopularSquads();
            break;

        case "BrowsePopularSquadsVariantsPanel":
            PopularSquads.LoadPopularSquadsVariants();
            break;

        case "BrowseAvatarsPanel":
            AvatarsManager.LoadAvatars(Faction.None);
            break;
        }
    }
Exemple #7
0
 public void SetFactionForAvatars(string factionChar)
 {
     AvatarsManager.LoadAvatars(factionChar);
 }