예제 #1
0
 void OnChangedMenu(LobbyState state)
 {
     if (state != LobbyState.HeroGuild)
     {
         Close();
     }
 }
예제 #2
0
파일: Lobby.cs 프로젝트: jospvucca/GoFish4
        void RegisterToTheLobbyServer()
        {
            //PlayerData playerData = new PlayerData();
            //playerData.name = "John";
            //playerData.externalId = "1234567890";

            NetworkClient.Lobby.Register(nickname, (successful, reply, error) => {      //playerData umisto nickname, za to je potreban seriazible klasa playerData, pogledat dokumentaciju
                if (successful)
                {
                    Debug.Log("Lobby registered " + reply);
                    if (string.IsNullOrEmpty(reply.roomId))
                    {
                        JoinOrCreateRoom();
                    }

                    else if (reply.started)
                    {
                        State = LobbyState.JoinedRoom;
                        ConnectToRoom();
                    }

                    else
                    {
                        State = LobbyState.JoinedRoom;
                        ShowJoinedRoomPopover();
                        GetPlayersInTheRoom();
                    }
                }
                else
                {
                    Debug.Log("Lobby failed to register " + reply);
                }
            });
        }
예제 #3
0
    /// <summary>
    /// Performs common operations when moving to preparing phase
    /// </summary>
    public void LockShips()
    {
        currentState = LobbyState.Preparing;
        shipSelectContainer.SetActive(false);
        preparingContainer.SetActive(true);
        timer = 10;

        List <Player> playerList = manager.playerList;
        int           redIndex   = 0;
        int           blueIndex  = 0;

        for (int i = 0; i < playerList.Count; i++)
        {
            Player player = playerList[i];
            if (player.team == 0)
            {
                redIcons[redIndex].transform.Find("Image").GetComponent <Image>().sprite = shipIcons[(short)player.ship];
                redIcons[redIndex].GetComponentInChildren <Text>().text = player.name;
                redIndex++;
            }
            else
            {
                blueIcons[blueIndex].transform.Find("Image").GetComponent <Image>().sprite = shipIcons[(short)player.ship];
                blueIcons[blueIndex].GetComponentInChildren <Text>().text = player.name;
                blueIndex++;
            }
        }
    }
예제 #4
0
 /// <summary>
 /// Menu For Enter Name for UI 4.6 WIP
 /// </summary>
 public void EnterName()
 {
     playerName = playerName.Replace("\n", "");
     GUILayout.BeginArea(new Rect(Screen.width / 2 - 175, Screen.height / 2 - 57, 375, 135), "<color=black>Player Name</color>", "window");
     GUILayout.Space(10);
     GUILayout.BeginHorizontal("box");
     GUILayout.Label("Player Name : ");
     GUILayout.Space(5);
     GUI.SetNextControlName("user");
     playerName = playerName.Replace("\n", "");
     playerName = GUILayout.TextField(playerName, 20, GUILayout.Width(223), GUILayout.Height(33));
     GUILayout.FlexibleSpace();
     GUILayout.EndHorizontal();
     GUILayout.Space(10);
     GUILayout.BeginHorizontal();
     if (GUILayout.Button("Quit", GUILayout.Width(100), GUILayout.Height(33)))
     {
         PlayAudioClip(backSound, transform.position, 1.0f);
         m_state = LobbyState.Quit;
     }
     GUILayout.Space(100);
     if (GUILayout.Button("Continue", GUILayout.Width(150), GUILayout.Height(33)))
     {
         if (playerName != string.Empty && playerName.Length > 3)
         {
             PlayAudioClip(a_Click, transform.position, 1.0f);
             StartCoroutine(Fade(LobbyState.MainMenu));
             StartCoroutine(RefresListIE());
         }
     }
     GUILayout.EndHorizontal();
     GUILayout.EndArea();
 }
예제 #5
0
파일: UIShop.cs 프로젝트: TimonYoon/Dev
 void OnChangedMenu(LobbyState state)
 {
     if (state != LobbyState.Shop)
     {
         Close();
     }
 }
예제 #6
0
 void OnChangedMenu(LobbyState state)
 {
     if (state != LobbyState.HeroTraining)
     {
         Close();
     }
 }
        /// <summary>
        /// This is where it all begins!
        /// </summary>
        /// <param name="photonPlugin"></param>
        /// <param name="messenger"></param>
        /// <param name="playerManager"></param>
        /// <returns></returns>
        public ITAlertRoomStateController Create(PluginBase photonPlugin,
                                                 Messenger messenger,
                                                 ITAlertPlayerManager playerManager,
                                                 ExceptionHandler exceptionHandler)
        {
            var sugarAnalytics = new AnalyticsServiceAdapter();
            var analytics      = new AnalyticsServiceManager(sugarAnalytics);
            var roomSettings   = new RoomSettings(photonPlugin);

            var exceptionTransition = new EventTransition(ErrorState.StateName);

            exceptionHandler.ExceptionEvent += e => exceptionTransition.ChangeState();

            var lobbyState            = new LobbyState(photonPlugin, messenger, playerManager, roomSettings, analytics);
            var gameStartedTransition = new EventTransition(GameState.StateName);

            lobbyState.GameStartedEvent += gameStartedTransition.ChangeState;
            lobbyState.AddTransitions(gameStartedTransition);

            var gameState = new GameState(photonPlugin, messenger, playerManager, roomSettings, analytics, exceptionHandler);

            gameState.AddTransitions(exceptionTransition);

            var errorState = new ErrorState(photonPlugin, messenger, playerManager, roomSettings, analytics, exceptionHandler);
            var controller = new ITAlertRoomStateController(lobbyState, gameState, errorState);

            gameState.ParentStateController = controller;

            return(controller);
        }
예제 #8
0
    public void ChangeLobbyState(LobbyState newState)
    {
        switch (newState)
        {
        // Make login UI canvas visible
        case LobbyState.LOGIN:
            _loginCanvas.transform.SetAsLastSibling();
            _lobbyState = LobbyState.LOGIN;
            break;

        // Make lobby UI canvas visible
        case LobbyState.LOBBY:
            _lobbyCanvas.transform.SetAsLastSibling();
            _lobbyState = LobbyState.LOBBY;
            break;

        // Make Room UI canvas visible
        case LobbyState.ROOM:
            _roomCanvas.transform.SetAsLastSibling();
            _lobbyState = LobbyState.ROOM;
            break;

        default:
            Debug.LogError("Invalid lobby state");
            break;
        }
    }
예제 #9
0
 void OnChangedMenu(LobbyState state)
 {
     if (SceneLobby.currentSubMenuState != SubMenuState.UserQuest)
     {
         Close();
     }
 }
예제 #10
0
 /// <summary>
 /// Performs some common operations when moving to ship select phase
 /// </summary>
 public void LockTeams()
 {
     currentState = LobbyState.ShipSelect;
     teamSelectContainer.SetActive(false);
     shipSelectContainer.SetActive(true);
     timer = 60;
 }
예제 #11
0
    public void ChangeState(LobbyState newState)
    {
        switch (newState)
        {
        // Login
        case LobbyState.LOGIN:
            Debug.Log("Entered Login State");
            _canvasManager.ChangeLobbyState(LobbyState.LOGIN);
            break;

        // Main Lobby
        case LobbyState.LOBBY:
            Debug.Log("Entering Lobby State");
            PhotonNetwork.JoinLobby(TypedLobby.Default);
            _canvasManager.ChangeLobbyState(LobbyState.LOBBY);
            break;

        // Room Lobby
        case LobbyState.ROOM:
            Debug.Log("Entering Room State");
            _canvasManager.ChangeLobbyState(LobbyState.ROOM);
            break;

        // In Game
        case LobbyState.GAME:
            Debug.Log("Entering Game State");
            break;
        }
    }
예제 #12
0
파일: Server.cs 프로젝트: tim-ings/Dominion
        /// <summary>
        /// Starts the server and begins listening on the given port
        /// Will reject any connections with the incorrect password
        /// </summary>
        /// <param name="port"></param>
        /// <param name="password"></param>
        public void StartServer(int port, string password)
        {
            // init properties
            BannedAddresses = new HashSet <string>();
            ServerPassword  = password;
            ServerState     = ServerState.Lobby;
            LobbyState      = new LobbyState();
            server          = new NetServer();

            // register events
            server.PacketRecieved += Server_PacketRecieved;
            server.ConnectionLost += Server_ConnectionLost;

            // setart the net server
            server.Start(port);

            // init game controllers and register events
            controllers = new ControllerManager();
            controllers.Board.TilesUpdated            += Board_TilesUpdated;
            controllers.City.CityCaptured             += City_CityCaptured;
            controllers.City.CitySettled              += City_CitySettled;
            controllers.City.CityUpdated              += City_CityUpdated;
            controllers.City.CityBorderExpanded       += City_CityBorderExpanded;
            controllers.Player.PlayerAdded            += Player_PlayerAdded;
            controllers.Player.PlayerRemoved          += Player_PlayerRemoved;
            controllers.Player.PlayerUpdated          += Player_PlayerUpdated;
            controllers.Player.PlayerTurnStateChanged += Player_TurnStateChanged;
            controllers.Unit.UnitAdded   += Unit_UnitAdded;
            controllers.Unit.UnitRemoved += Unit_UnitRemoved;
            controllers.Unit.UnitUpdated += Unit_UnitUpdated;
        }
        IEnumerator DelayedMenuSwitch(LobbyState desiredState, float delay)
        {
            yield return(new WaitForSeconds(delay));

            //Debug.Log("Delayed Menu switch");

            if (desiredState == LobbyState.CONTROLLERASSIGNMENT)
            {
                //Debug.Log("Delayed Menu switch - controller assignmet");

                //Find the next user to assign a controller to
                //If there is no users to assign controllers to, go to signin screen
                Dictionary <int, PlayerInfo> players = SessionManager.Singleton.networkedGameState.GetAllPlayers();
                desiredState = LobbyState.SIGNIN;
                foreach (KeyValuePair <int, PlayerInfo> player in players)
                {
                    if (player.Value.assignedController < 0 && player.Value.username != null)
                    {
                        Debug.Log("Still have another user without a controller: " + player.Value.username);
                        desiredState = LobbyState.CONTROLLERASSIGNMENT;
                        currentUser  = player.Value.username;
                        break;
                    }
                }
            }

            SetNextState(desiredState, currentUser);
        }
예제 #14
0
파일: UIPackage.cs 프로젝트: TimonYoon/Dev
 void OnChangedMenu(LobbyState state)
 {
     if (state != LobbyState.Shop || SceneLobby.currentSubMenuState != SubMenuState.PackageBox)
     {
         Close();
     }
 }
예제 #15
0
        public void ReportResult()
        {
            UpdatePlayerRatings();
            UpdateWinLosses();

            State = LobbyState.Complete;
        }
예제 #16
0
파일: UIMail.cs 프로젝트: TimonYoon/Dev
 void OnChangedMenu(LobbyState state)
 {
     if (state != LobbyState.SubMenu && SceneLobby.currentSubMenuState != SubMenuState.Mail)
     {
         Close();
     }
 }
예제 #17
0
 void OnChangedMenu(LobbyState state)
 {
     if (SceneLobby.currentSubMenuState != SubMenuState.Option)
     {
         Close();
     }
 }
예제 #18
0
 void OnChagedMenu(LobbyState state)
 {
     if (SceneLobby.currentSubMenuState != SubMenuState.Attendance)
     {
         Close();
     }
 }
예제 #19
0
 public GameManager(GameplayState gameplayState, PauseState pauseState, LobbyState lobbyState, EndgameState endgameState)
 {
     _gameplayState = gameplayState;
     _pauseState    = pauseState;
     _lobbyState    = lobbyState;
     _endgameState  = endgameState;
 }
예제 #20
0
파일: UI.cs 프로젝트: johnjoemcbob/KJam-1
    private void UpdateLobbyState(LobbyState state)
    {
        // Lerp to current target
        if (SwitchLobbyTime != 0)
        {
            var   realanim = UILobbyContainers[(int)LobbyState.AnimReal];
            var   real     = UILobbyContainers[(int)LobbyState.Real];
            float progress = ((Time.time - SwitchLobbyTime) / LobbyAnimDuration);
            progress = Mathf.Clamp(progress, 0, 1);
            float halfprogress = Mathf.Clamp(progress * 2, 0, 1);

            // Resize the reals
            foreach (Transform section in real.transform)
            {
                RectTransform from = LobbyAnimateFrom.transform.GetChild(section.GetSiblingIndex()) as RectTransform;
                RectTransform targ = LobbyAnimateTarget.transform.GetChild(section.GetSiblingIndex()) as RectTransform;
                RectTransform rect = section as RectTransform;
                rect.position  = Vector3.Lerp(from.position, targ.position, progress);
                rect.sizeDelta = Vector2.Lerp(from.sizeDelta, targ.sizeDelta, Mathf.Max(0, halfprogress - 0.5f) * 2);
            }
            foreach (Transform section in realanim.transform)
            {
                RectTransform from = LobbyAnimateFrom.transform.GetChild(section.GetSiblingIndex()) as RectTransform;
                RectTransform targ = LobbyAnimateTarget.transform.GetChild(section.GetSiblingIndex()) as RectTransform;
                RectTransform rect = section as RectTransform;
                rect.position  = Vector3.Lerp(from.position, targ.position, progress);
                rect.sizeDelta = Vector2.Lerp(from.sizeDelta, targ.sizeDelta, Mathf.Max(0, halfprogress - 0.5f) * 2);
            }

            // Flip both gradually
            var zero     = new Vector3(0, 0, 0);
            var opposite = new Vector3(0, 180, 0);
            realanim.transform.rotation = Quaternion.Lerp(Quaternion.Euler(opposite), Quaternion.Euler(zero), progress);
            real.transform.rotation     = Quaternion.Lerp(Quaternion.Euler(zero), Quaternion.Euler(opposite), progress);

            // Switch scene order at half way
            if (progress >= 0.5f)
            {
                if (realanim.transform.GetSiblingIndex() < real.transform.GetSiblingIndex())
                {
                    realanim.transform.SetAsLastSibling();

                    // Clear the real
                    foreach (Transform section in real.transform)
                    {
                        foreach (Transform child in section)
                        {
                            Destroy(child.gameObject);
                        }
                    }
                }
            }

            // Finish
            if (progress >= 1)
            {
                FinishLobbyAnim();
            }
        }
    }
        public void StartTurn()
        {
            if (GameLobby.CurrentGame == null)
            {
                return;
            }
            if (GameLobby.CurrentGame.IsGameOver())
            {
                EndGame();
                return;
            }

            // Begin the timer to the end of the turn
            GameLobby.CurrentGame.StartTurn();

            // Check for sudden death
            if (GameLobby.CurrentGame.NumPlayersLeft() == 2)
            {
                StartSuddenDeath();
                return;
            }

            // Tell all clients the turn is starting
            LobbyState state = GameLobby.getLobbyState();

            Clients.All.turnStart(state);

            turnTimer = new Timer(ProcessGameTurn, null, GameLobby.CurrentGame.TurnTime, TimeSpan.FromMilliseconds(-1));
        }
예제 #22
0
파일: Lobby.cs 프로젝트: unix14/ShitHead
        void StartRoom()
        {
            NetworkClient.Lobby.StartRoom((successful, error) =>
            {
                if (successful)
                {
                    Debug.Log("Started room");
                    State = LobbyState.Default;
                }
                else
                {
                    Debug.Log("Failed to start room" + error);
                }
            });

/*            NetworkClient.Lobby.ChangeRoomSettings(5, false, (bool successful, SWLobbyError error) => {
 *              if (successful)
 *              {
 *                  Debug.Log("Changed room settings.");
 *              }
 *              else
 *              {
 *                  Debug.Log("Failed to change room settings " + error);
 *              }
 *          });*/
        }
예제 #23
0
파일: Lobby.cs 프로젝트: unix14/ShitHead
        void RegisterToTheLobbyServer()
        {
            NetworkClient.Lobby.Register(nickname, (successful, reply, error) => {
                if (successful)
                {
                    Debug.Log("Lobby registered " + reply);

                    if (string.IsNullOrEmpty(reply.roomId))
                    {
                        JoinOrCreateRoom();
                    }
                    else if (reply.started)
                    {
                        State = LobbyState.JoinedRoom;
                        ConnectToRoom();
                    }
                    else
                    {
                        State = LobbyState.JoinedRoom;
                        ShowJoinedRoomPopover();
                        GetPlayersInTheRoom();
                    }
                }
                else
                {
                    Debug.Log("Lobby failed to registered " + reply);
                }
            });
        }
예제 #24
0
 void OnChangedMenu(LobbyState state)
 {
     if (SceneLobby.currentSubMenuState != SubMenuState.Achievement)
     {
         Close();
     }
 }
예제 #25
0
 void OnChangedMenu(LobbyState state)
 {
     if (state != LobbyState.Territory)
     {
         Close();
     }
 }
예제 #26
0
        public void OnJoinLobby(JoinLobby joinLobby)
        {
            _log.Output($"Player [{joinLobby.ClientId}] joining lobby [{joinLobby.LobbyId}]");
            LobbyState state = GetLobbyById(joinLobby.LobbyId);

            if (state == null)
            {
                // try geting lobby by name, will return the first match
                state = GetLobbyByName(joinLobby.LobbyId);
                if (state == null)
                {
                    // TODO - need to send feed back to player that cannot connect
                    return;
                }
            }

            // Add player if not already added
            if (!state.ContainsPlayerId(joinLobby.ClientId))
            {
                state.AddPlayer(joinLobby.ClientId, joinLobby.PlayerDisplayName);
            }

            // send all players connected to this lobby a lobby update
            Broadcast(state, new UpdateLobbyState(state));
        }
예제 #27
0
    /// <summary>
    ///
    /// </summary>
    void MainMenu()
    {
        GUILayout.BeginArea(new Rect(0, 0, Screen.width, 60));
        GUILayout.BeginHorizontal();

        if (GUILayout.Button("Search Room", GUILayout.Height(GetButtonSize(LobbyState.Join))))
        {
            m_state = LobbyState.Join;
            StartCoroutine(RefresListIE());
            PlayAudioClip(a_Click, transform.position, 1.0f);
        }
        if (GUILayout.Button("Host Room", GUILayout.Height(GetButtonSize(LobbyState.Host))))
        {
            m_state = LobbyState.Host;
            PlayAudioClip(a_Click, transform.position, 1.0f);
        }
        if (GUILayout.Button("Setting", GUILayout.Height(GetButtonSize(LobbyState.Settings))))
        {
            m_state = LobbyState.Settings;
            PlayAudioClip(a_Click, transform.position, 1.0f);
        }
        if (GUILayout.Button("Change Server", GUILayout.Height(GetButtonSize(LobbyState.ChangeServer))))
        {
            m_state = LobbyState.ChangeServer;
            PlayAudioClip(a_Click, transform.position, 1.0f);
        }
        if (GUILayout.Button("Quit", GUILayout.Height(GetButtonSize(LobbyState.Quit))))
        {
            m_state = LobbyState.Quit;
            PlayAudioClip(a_Click, transform.position, 1.0f);
        }
        GUILayout.EndHorizontal();
        GUILayout.EndArea();
    }
예제 #28
0
        public void Create(bool inviteOnly, CallResult <LobbyCreated_t> .APIDispatchDelegate callResult)
        {
            SteamAPICall_t hAPICall = SteamMatchmaking.CreateLobby((!inviteOnly) ? ELobbyType.k_ELobbyTypeFriendsOnly : ELobbyType.k_ELobbyTypePrivate, 17);

            _lobbyCreatedExternalCallback = callResult;
            _lobbyCreated.Set(hAPICall);
            State = LobbyState.Creating;
        }
예제 #29
0
        public void Create(bool inviteOnly, CallResult <LobbyCreated_t> .APIDispatchDelegate callResult)
        {
            SteamAPICall_t lobby = SteamMatchmaking.CreateLobby(inviteOnly ? (ELobbyType)0 : (ELobbyType)1, 256);

            this._lobbyCreatedExternalCallback = callResult;
            this._lobbyCreated.Set(lobby, (CallResult <LobbyCreated_t> .APIDispatchDelegate)null);
            this.State = LobbyState.Creating;
        }
예제 #30
0
 private void Broadcast(LobbyState state, DediToClientMessage netMessage)
 {
     _log.Output($"Lobby:[{state.Id}] [{state.DisplayName}]\nPlayers: {state.Players.Count}/{state.MaxPlayers}");
     for (int i = 0; i < state.Players.Count; i++)
     {
         _server.Send(state.Players[i].Id, netMessage);
     }
 }
 public override void BoltStartDone()
 {
     IndexMap = new PlayerIndexMap();
     if (GameManager.instance.CurrentUserName == "") GameManager.instance.CurrentUserName = "******";
     PlayerRegistry.CreatePlayer(null, GameManager.instance.CurrentUserName);
     IndexMap.AddPlayer(GameManager.instance.CurrentUserName);
     lobby = BoltNetwork.Instantiate(BoltPrefabs.LobbyList).GetComponent<LobbyState>();
     lobby.InitializeLobby();
 }
예제 #32
0
 private int GetButtonSize(LobbyState t_state)
 {
     if (m_state == t_state)
         return 55;
     else
         return 40;
 }
예제 #33
0
 IEnumerator Fade(LobbyState t_state, float t = 2.0f)
 {
     alpha = 0.0f;
     m_state = t_state;
     while (alpha < t)
     {
         alpha += Time.deltaTime;
         CanvasGroupRoot.alpha = alpha;
         yield return null;
     }
 }
 void Start()
 {
     lobby = FindObjectOfType<LobbyState>();
 }