// Update is called once per frame
    void Update()
    {
        if (NM == null)
        {
            NM = FindObjectOfType <NetworkManager>();
        }

        if (SceneManager.GetActiveScene().buildIndex == (int)SceneManagerHelper.SceneManagerEnum.LANLobby &&
            LANL == null)
        {
            LANL = FindObjectOfType <LANLobby>();
            if (isServer && isLocalPlayer)
            {
                GameObject LANBroadcastTransmitter = new GameObject("LANBroadcastTransmitter");
                LANBT = LANBroadcastTransmitter.AddComponent <LANBroadcastTransmitter>();

                LANBT.SetHost(this);
                LANBT.isAlive = true;

                if (isLocalPlayer &&
                    isServer)
                {
                    ResetPlayerPanels();
                }

                Debug.Log("Start");
            }
        }
        if (isLocalPlayer && LANL.GetCurrentPlayer() == null)
        {
            LANL.SetCurrentPlayer(this);
        }
    }
Esempio n. 2
0
 /// <summary>
 /// Creates a new instance of the main menu.
 /// </summary>
 public MainMenu(WindowManager windowManager, SkirmishLobby skirmishLobby,
                 LANLobby lanLobby, TopBar topBar, OptionsWindow optionsWindow,
                 CnCNetLobby cncnetLobby,
                 CnCNetManager connectionManager) : base(windowManager)
 {
     this.skirmishLobby       = skirmishLobby;
     this.lanLobby            = lanLobby;
     this.topBar              = topBar;
     this.connectionManager   = connectionManager;
     this.optionsWindow       = optionsWindow;
     cncnetLobby.UpdateCheck += CncnetLobby_UpdateCheck;
 }
Esempio n. 3
0
 /// <summary>
 /// Creates a new instance of the main menu.
 /// </summary>
 public MainMenu(WindowManager windowManager, SkirmishLobby skirmishLobby,
                 LANLobby lanLobby, TopBar topBar, OptionsWindow optionsWindow,
                 CnCNetLobby cncnetLobby,
                 CnCNetManager connectionManager, DiscordHandler discordHandler) : base(windowManager)
 {
     this.skirmishLobby       = skirmishLobby;
     this.lanLobby            = lanLobby;
     this.topBar              = topBar;
     this.connectionManager   = connectionManager;
     this.optionsWindow       = optionsWindow;
     this.cncnetLobby         = cncnetLobby;
     this.discordHandler      = discordHandler;
     cncnetLobby.UpdateCheck += CncnetLobby_UpdateCheck;
     isMediaPlayerAvailable   = IsMediaPlayerAvailable();
 }
Esempio n. 4
0
        private void Finish()
        {
            ProgramConstants.GAME_VERSION = ClientConfiguration.Instance.ModMode ?
                                            "N/A" : CUpdater.GameVersion;

            DiscordHandler discordHandler = null;

            if (!string.IsNullOrEmpty(ClientConfiguration.Instance.DiscordAppId))
            {
                discordHandler = new DiscordHandler(WindowManager);
            }

            var gameCollection = new GameCollection();

            gameCollection.Initialize(GraphicsDevice);

            var lanLobby = new LANLobby(WindowManager, gameCollection, mapLoader.GameModes, mapLoader, discordHandler);

            var cncnetUserData = new CnCNetUserData(WindowManager);
            var cncnetManager  = new CnCNetManager(WindowManager, gameCollection);
            var tunnelHandler  = new TunnelHandler(WindowManager, cncnetManager);


            var topBar = new TopBar(WindowManager, cncnetManager);

            var optionsWindow = new OptionsWindow(WindowManager, gameCollection, topBar);

            var pmWindow = new PrivateMessagingWindow(WindowManager,
                                                      cncnetManager, gameCollection, cncnetUserData);

            privateMessagingPanel = new PrivateMessagingPanel(WindowManager);

            var cncnetGameLobby = new CnCNetGameLobby(WindowManager,
                                                      "MultiplayerGameLobby", topBar, mapLoader.GameModes, cncnetManager, tunnelHandler, gameCollection, cncnetUserData, mapLoader, discordHandler);
            var cncnetGameLoadingLobby = new CnCNetGameLoadingLobby(WindowManager,
                                                                    topBar, cncnetManager, tunnelHandler, mapLoader.GameModes, gameCollection, discordHandler);
            var cncnetLobby = new CnCNetLobby(WindowManager, cncnetManager,
                                              cncnetGameLobby, cncnetGameLoadingLobby, topBar, pmWindow, tunnelHandler,
                                              gameCollection, cncnetUserData);
            var gipw = new GameInProgressWindow(WindowManager);

            var skirmishLobby = new SkirmishLobby(WindowManager, topBar, mapLoader.GameModes, discordHandler);

            topBar.SetSecondarySwitch(cncnetLobby);

            var mainMenu = new MainMenu(WindowManager, skirmishLobby, lanLobby,
                                        topBar, optionsWindow, cncnetLobby, cncnetManager, discordHandler);

            WindowManager.AddAndInitializeControl(mainMenu);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, skirmishLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetGameLoadingLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetGameLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, cncnetLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, lanLobby);

            DarkeningPanel.AddAndInitializeWithControl(WindowManager, optionsWindow);

            WindowManager.AddAndInitializeControl(privateMessagingPanel);
            privateMessagingPanel.AddChild(pmWindow);

            topBar.SetTertiarySwitch(pmWindow);
            topBar.SetOptionsWindow(optionsWindow);

            WindowManager.AddAndInitializeControl(gipw);
            skirmishLobby.Disable();
            cncnetLobby.Disable();
            cncnetGameLobby.Disable();
            cncnetGameLoadingLobby.Disable();
            lanLobby.Disable();
            pmWindow.Disable();
            optionsWindow.Disable();

            WindowManager.AddAndInitializeControl(topBar);
            topBar.AddPrimarySwitchable(mainMenu);

            mainMenu.PostInit();

            if (UserINISettings.Instance.AutomaticCnCNetLogin &&
                NameValidator.IsNameValid(ProgramConstants.PLAYERNAME) == null)
            {
                cncnetManager.Connect();
            }

            WindowManager.RemoveControl(this);

            Cursor.Visible = visibleSpriteCursor;
        }