Example #1
0
    public void SubmitInLocalCharacterSelection(int _playerId)
    {
        if (!PhotonNetwork.offlineMode)
        {
            return;
        }
        if (!TDS_GameManager.PlayersInfo.Any(i => i.PlayerID == _playerId))
        {
            characterSelectionMenu.AddNewPlayer(_playerId);
            return;
        }
        TDS_CharacterSelectionElement _elem = characterSelectionMenu.CharacterSelectionElements.Where(e => (e.PlayerInfo != null) && (e.PlayerInfo.PlayerID == _playerId) && (e.IsUsedLocally)).FirstOrDefault();

        if (_elem)
        {
            if (!_elem.IsLocked)
            {
                //_elem.LockElement(true);
                _elem.ReadyToggle.isOn = true;
                _elem.TriggerToggle();
                return;
            }
        }
        if (TDS_GameManager.PlayersInfo.Any(i => !i.IsReady))
        {
            return;
        }
        TDS_UIManager.Instance?.LoadLevel();
    }
Example #2
0
    public void RemoveLocalPlayer(int _playerID)
    {
        TDS_CharacterSelectionElement _elem = characterSelectionElements.Where(e => (e.PlayerInfo != null) && (e.PlayerInfo.PlayerID == _playerID) && (e.IsUsedLocally)).FirstOrDefault();

        if (!_elem)
        {
            return;
        }
        _elem.RemovePlayerLocalID();
    }
Example #3
0
    public void AddNewPlayer(int _playerID)
    {
        TDS_CharacterSelectionElement _elem = characterSelectionElements.Where(e => (e.PlayerInfo == null) && (!e.IsUsedLocally)).FirstOrDefault();

        if (!_elem)
        {
            return;
        }
        _elem.SetPlayerLocalID(_playerID);
    }
Example #4
0
    /// <summary>
    /// Make the elements selectable or not if a player select it
    /// If the local can't be selected, display the next selectable element
    /// </summary>
    /// <param name="_previousType">Previous Type of the player</param>
    /// <param name="_newType">new Type of the player</param>
    public void UpdateOnlineSelection(PlayerType _newType, int _playerID)
    {
        characterSelectionElements.ToList().ForEach(e => e.CharacterSelectionImages.Where(i => i.CharacterType == _newType).ToList().ForEach(i => i.CanBeSelected = false));
        TDS_CharacterSelectionElement _element = characterSelectionElements.Where(e => (e.PlayerInfo != null) && (e.PlayerInfo.PhotonPlayer.ID == _playerID)).FirstOrDefault();

        if (_element)
        {
            _element.DisplayImageOfType(_newType);
        }
        if (!TDS_GameManager.LocalIsReady && !LocalElement.CurrentSelection.CanBeSelected)
        {
            LocalElement.DisplayNextImage();
        }
    }
Example #5
0
    /// <summary>
    /// Remove the player from the character selection Elements
    /// If the player is'nt connected anymore, clear all the character selection elements
    /// </summary>
    /// <param name="_removedPlayer"></param>
    public void RemovePhotonPlayer(PhotonPlayer _removedPlayer)
    {
        if (PhotonNetwork.room == null || !PhotonNetwork.connected || PhotonNetwork.player == null)
        {
            ClearOnlineMenu();
            return;
        }
        if (_removedPlayer == PhotonNetwork.player)
        {
            return;
        }
        TDS_CharacterSelectionElement _cleanedElement = characterSelectionElements.Where(e => (e.PlayerInfo != null) && (e.PlayerInfo.PhotonPlayer == _removedPlayer)).FirstOrDefault();

        if (_cleanedElement)
        {
            _cleanedElement.DisconnectPlayer();
        }
    }
Example #6
0
    public void ChangeImageAtPlayer(int _playerId, int _value)
    {
        if (!PhotonNetwork.offlineMode || !TDS_GameManager.PlayersInfo.Any(i => i.PlayerID == _playerId))
        {
            return;
        }
        TDS_CharacterSelectionElement _elem = characterSelectionMenu.CharacterSelectionElements.Where(e => (e.PlayerInfo != null) && (e.PlayerInfo.PlayerID == _playerId) && (e.IsUsedLocally)).FirstOrDefault();

        if (!_elem)
        {
            return;
        }
        if (_value > 0)
        {
            _elem.DisplayNextImage();
            return;
        }
        _elem.DisplayPreviousImage();
    }
Example #7
0
    /// <summary>
    /// Add a new player within the CharacterSelectionElements
    /// If the added player is the local player, set the element as the local element
    /// </summary>
    /// <param name="_newPlayer">Id of the added player</param>
    public void AddNewPhotonPlayer(PhotonPlayer _newPlayer, PlayerType _type = PlayerType.Unknown)
    {
        TDS_GameManager.PlayersInfo.Add(new TDS_PlayerInfo(PhotonNetwork.player.ID, null, _newPlayer));
        TDS_CharacterSelectionElement _elem = characterSelectionElements.Where(e => e.PlayerInfo == null).FirstOrDefault();

        if (!_elem)
        {
            return;
        }
        _elem.SetPhotonPlayer(_newPlayer);
        if (_newPlayer.ID == PhotonNetwork.player.ID)
        {
            LocalElement = _elem;
            LocalElement.SetPlayerLocal();
            return;
        }
        if (_type != PlayerType.Unknown)
        {
            _elem.DisplayImageOfType(_type);
        }
    }
Example #8
0
    /// <summary>
    /// Called when the toggle is pressed
    /// Update the ready settings
    /// If the player has an Unknown PlayerType, the game cannot start
    /// </summary>
    public void OnLocalPlayerReadyOnline(bool _isReady)
    {
        TDS_CharacterSelectionElement _elem = characterSelectionMenu.CharacterSelectionElements.Where(e => (e.PlayerInfo != null) && (e.PlayerInfo.PhotonPlayer == PhotonNetwork.player)).FirstOrDefault();

        if (_elem == null)
        {
            return;
        }
        _elem.IsLocked = _isReady;
        TDS_RPCManager.Instance.RPCPhotonView.RPC("CallMethodOnline", PhotonTargets.All, TDS_RPCManager.GetInfo(photonView, this.GetType(), "SetOnlinePlayerReady"), new object[] { PhotonNetwork.player.ID, TDS_GameManager.LocalIsReady });
        if (!_isReady)
        {
            TDS_RPCManager.Instance.RPCPhotonView.RPC("CallMethodOnline", PhotonTargets.All, TDS_RPCManager.GetInfo(photonView, this.GetType(), "UnlockPlayerType"), new object[] { (int)characterSelectionMenu.LocalElement.CurrentSelection.CharacterType });
        }
        if (!PhotonNetwork.isMasterClient)
        {
            TDS_RPCManager.Instance.RPCPhotonView.RPC("CallMethodOnline", PhotonTargets.MasterClient, TDS_RPCManager.GetInfo(photonView, typeof(TDS_UIManager), "UpdateReadySettings"), new object[] { PhotonNetwork.player.ID, TDS_GameManager.LocalIsReady });
            return;
        }
        TDS_UIManager.Instance?.UpdateReadySettings(PhotonNetwork.player.ID, TDS_GameManager.LocalIsReady);
    }
Example #9
0
    public void CancelInLocalCharacterSelection(int _playerId)
    {
        if (!PhotonNetwork.offlineMode || !TDS_GameManager.PlayersInfo.Any(i => i.PlayerID == _playerId))
        {
            return;
        }
        TDS_CharacterSelectionElement _elem = characterSelectionMenu.CharacterSelectionElements.Where(e => (e.PlayerInfo != null) && (e.PlayerInfo.PlayerID == _playerId) && (e.IsUsedLocally)).FirstOrDefault();

        if (_elem && _elem.IsLocked)
        {
            _elem.ReadyToggle.isOn = false;
            _elem.TriggerToggle();
            return;
        }
        characterSelectionMenu.RemoveLocalPlayer(_playerId);
        if (TDS_GameManager.PlayersInfo.Count == 0)
        {
            TDS_GameManager.PlayersInfo.Clear();
            TDS_UIManager.Instance?.ActivateMenu(UIState.InMainMenu);
        }
    }