예제 #1
0
        private void SetupTesterSettings()
        {
            List <string> items = new List <string>();

            items.Clear();
            items.Add("WEBSOCKET");
#if !UNITY_WEBGL
            items.Add("TCP");
            items.Add("UDP");
#endif
            m_protocolDropdown.ClearOptions();
            m_protocolDropdown.AddOptions(items);

            items.Clear();
            items.Add("Json string");
            items.Add("KeyValuePair string");
            items.Add("DataStream byte[]");

            // Only the host can change the compression settings
            m_compressionDropdown.interactable = (GCore.Wrapper.Client.ProfileId == BombersNetworkManager.LobbyInfo.OwnerProfileId);

            m_compressionDropdown.ClearOptions();
            m_compressionDropdown.AddOptions(items);

            m_protocolListSelection = GConfigManager.GetIntValue("RSConnectionType");
#if UNITY_WEBGL
            m_protocolDropdown.value = (int)RelayConnectionType.WEBSOCKET;
#else
            m_protocolDropdown.value = m_protocolListSelection;
#endif
            m_compressionDropdown.value = m_compressionListSelection;
            m_lobbyGameOptionsTester.SetActive(GPlayerMgr.Instance.PlayerData.IsTester);
        }
예제 #2
0
 protected override void OnResumeStateImpl(bool wasPaused)
 {
     base.OnResumeStateImpl(wasPaused);
     BaseNetworkBehavior.MSG_ENCODED   = GConfigManager.GetIntValue("MSGENCODING");
     BaseNetworkBehavior.SEND_INTERVAL = GConfigManager.GetFloatValue("SEND_INTERVAL");
     GCore.Wrapper.RTTService.RegisterRTTPresenceCallback(OnPresenceCallback);
     GPlayerMgr.Instance.UpdateActivity(GPlayerMgr.LOCATION_MAIN_MENU, GPlayerMgr.STATUS_IDLE, "");
     OnRefreshFriendsList();
 }
예제 #3
0
        protected override void Start()
        {
            Cursor.visible    = true;
            Cursor.lockState  = CursorLockMode.None;
            m_friendsListItem = new List <FriendsListItem>();
            GEventManager.StartListening(GFriendsManager.ON_FRIENDS_LIST_UPDATED, OnRefreshFriendsList);
            GEventManager.StartListening(GEventManager.ON_INVITED_FRIEND, OnInvitedFriend);
            GEventManager.StartListening(GEventManager.ON_REFUSED_INVITE_FRIEND, OnRefusedInviteFriend);
            GEventManager.StartListening(GEventManager.ON_RTT_ENABLED, OnEnableRTTSuccess);
            GEventManager.StartListening(GEventManager.ON_PLAYER_DATA_UPDATED, OnUpdateStats);

            m_statsPanelContentLeft  = GameObject.Find("StatsPanel").transform.FindDeepChild("ContentLeft").gameObject;
            m_statsPanelContentRight = GameObject.Find("StatsPanel").transform.FindDeepChild("ContentRight").gameObject;
            m_joinFriendsPanel       = GameObject.Find("JoinFriendsPanel");
            m_statText  = GameObject.Find("StatText");
            m_statValue = GameObject.Find("StatValue");

            ChatInputField.onEndEdit.AddListener(delegate { OnEndEditHelper(); });

            BombersNetworkManager.Instance.ConnectRTT();

            GameObject playerName = GameObject.Find("PlayerName");

            m_inputField = playerName.GetComponent <InputField>();
            m_inputField.characterLimit = MAX_CHARACTERS_NAME;
            m_inputField.text           = GPlayerMgr.Instance.PlayerData.PlayerName;
            m_inputField.interactable   = false;
            PlayerRankIcon.UpdateIcon(GPlayerMgr.Instance.PlayerData.PlayerRank);
            BrainCloudStats.Instance.ReadStatistics();

            BaseNetworkBehavior.MSG_ENCODED   = GConfigManager.GetIntValue("MSGENCODING");
            BaseNetworkBehavior.SEND_INTERVAL = GConfigManager.GetFloatValue("SEND_INTERVAL");
            _stateInfo = new StateInfo(STATE_NAME, this);
            base.Start();

            // should we push the connect screen
            if (!GCore.Wrapper.Client.Initialized)
            {
                GStateManager.Instance.PushSubState(ConnectingSubState.STATE_NAME);
            }

#if STEAMWORKS_ENABLED
            QuitButton.SetActive(true);
            StoreButtonTop.SetActive(false);
            StoreButtonBottom.SetActive(true);
#else
            QuitButton.SetActive(false);
            StoreButtonTop.SetActive(true);
            StoreButtonBottom.SetActive(false);
#endif

#if UNITY_WEBGL
            LeftButtonGroup.SetActive(false);
#endif

            GPlayerMgr.Instance.GetXpData();
        }
예제 #4
0
 public void AddBomb()
 {
     if (m_bombs < GConfigManager.GetIntValue("MaxBombCapacity"))
     {
         if (m_playerPlane != null)
         {
             GetComponent <AudioSource>().Play();
         }
         m_bombs++;
     }
 }
예제 #5
0
 //[Server]
 public void Initialize()
 {
     m_team1Score       = 0;
     m_team2Score       = 0;
     m_gameTime         = GConfigManager.GetIntValue("DefaultGameTime");
     m_originalGameTime = m_gameTime;
     m_mapLayout        = 0;
     m_mapSize          = 1;
     m_lightPosition    = 0;
     m_maxPlayers       = 8;
     m_gameName         = "testGame";
     m_isPlaying        = 0;
 }
예제 #6
0
 IEnumerator FireMultiShot()
 {
     for (int i = 0; i < GConfigManager.GetIntValue("MultishotAmount"); i++)
     {
         if (m_playerPlane == null)
         {
             break;
         }
         m_lastShot         = Time.time;
         m_bulletSpawnPoint = m_playerPlane.m_bulletSpawnPoint;
         m_bulletVelocity   = m_bulletSpawnPoint.forward.normalized;
         m_bulletVelocity  *= m_bulletSpeed;
         m_bulletVelocity  += m_playerPlane.GetComponent <Rigidbody>().velocity;
         GetComponent <BombersPlayerController>().FireBulletCommand(new BulletInfo(m_bulletSpawnPoint.position, m_bulletSpawnPoint.forward.normalized, GetComponent <BombersPlayerController>().NetId, m_bulletVelocity).GetJson());
         yield return(new WaitForSeconds(GConfigManager.GetFloatValue("MultishotBurstDelay")));
     }
 }
        private void lazyLoadReferences()
        {
            if (m_gMan == null)
            {
                m_gMan = GameObject.Find("GameManager").GetComponent <GameManager>();
            }
            if (WeaponController == null)
            {
                WeaponController = GetComponent <WeaponController>();
            }

            BrainCloudStats bcStats = BrainCloudStats.Instance;

            m_turnSpeed          = GConfigManager.GetFloatValue("TurnSpeed");
            m_turnSpeedModifier  = GConfigManager.GetFloatValue("TurnSpeedModifier");
            m_acceleration       = GConfigManager.GetFloatValue("PlaneAcceleration");
            m_linearAcceleration = GConfigManager.GetFloatValue("LinearAcceleration");
            m_linearDeceleration = GConfigManager.GetFloatValue("LinearDeceleration");
            m_baseHealth         = GConfigManager.GetIntValue("BasePlaneHealth");
            m_maxSpeedMultiplier = GConfigManager.GetFloatValue("MaxSpeedMultiplier");

            m_missionText = m_gMan.MissionText;
        }
예제 #8
0
        void LateUpdate()
        {
            bool isAlone = true;
            BombersPlayerController tempController;

            BombersPlayerController[]      playerList;
            List <BombersPlayerController> playerListList = new List <BombersPlayerController>();

            foreach (LobbyMemberInfo member in BombersNetworkManager.LobbyInfo.Members)
            {
                tempController = member.PlayerController;
                playerListList.Add(member.PlayerController);
            }

            int count = 0;

            while (count < playerListList.Count)
            {
                if (playerListList[count] != null &&
                    playerListList[count].m_team == 0)
                {
                    playerListList.RemoveAt(count);
                }
                else
                {
                    count++;
                }
            }
            playerList = playerListList.ToArray();
            {
                if (playerList.Length > 1)
                {
                    isAlone = false;
                }
            }
            if (isAlone && m_bombs == 0 && m_aloneBombTimer >= 3)
            {
                m_aloneBombTimer = 0;
                AddBomb();
            }

            if (m_bombs > 0 && m_playerPlane != null)
            {
                m_targetingReticule.transform.Find("TargetSprite").GetComponent <SpriteRenderer>().color =
                    Color.Lerp(m_targetingReticule.transform.Find("TargetSprite").GetComponent <SpriteRenderer>().color, new Color(1, 1, 1, m_playerPlane.IsLocalPlayer ? 0.3f : 0.0f), 4 * Time.deltaTime);

                m_targetingReticule.GetComponent <MeshRenderer>().enabled = m_playerPlane.IsLocalPlayer;
                Vector3 position      = m_playerPlane.transform.position;
                Vector3 planeVelocity = m_playerPlane.GetComponent <Rigidbody>().velocity;
                Vector3 velocity      = planeVelocity;
                count = 1;
                Vector3 lastPos   = m_playerPlane.transform.position;
                int     layerMask = (1 << 16) | (1 << 17) | (1 << 4) | (1 << 20);
                bool    hitFound  = false;
                while (!hitFound)
                {
                    velocity += Physics.gravity * 0.01f;
                    velocity  = velocity * 1 / (1 + 0.01f * 0.8f);
                    position += velocity * 0.01f;

                    if (position.z > 10 * count)
                    {
                        count++;
                        RaycastHit hit = new RaycastHit();
                        if (Physics.SphereCast(lastPos, 10.4f, position - lastPos, out hit, (position - lastPos).magnitude, layerMask))
                        {
                            hitFound = true;

                            position    = lastPos + ((position - lastPos).normalized * ((hit.point.z - lastPos.z) / (position.z - lastPos.z)));
                            position.z += 5;
                            position.z -= 0.5f;
                        }

                        lastPos = position;
                    }
                    else if (position.y > 3000.0f || position.y < -3000.0f || position.z >= 121.5f)
                    {
                        hitFound   = true;
                        position.z = 121.5f;
                    }
                }

                m_targetingReticule.transform.position = position;
                TextMesh bombCounter = m_targetingReticule.transform.Find("BombCounter").GetComponent <TextMesh>();
                int      maxBombs    = GConfigManager.GetIntValue("MaxBombCapacity");
                if (m_bombs == 0 || m_bombs == 1 || !m_playerPlane.IsLocalPlayer)
                {
                    bombCounter.text = "";
                }
                else if (m_bombs < maxBombs)
                {
                    bombCounter.color = new Color(1, 1, 1, 0.8f);
                    bombCounter.text  = m_bombs.ToString();
                }
                else
                {
                    bombCounter.color = new Color(1, 0.4f, 0.4f, 0.8f);
                    bombCounter.text  = m_bombs.ToString();
                }
            }
            else
            {
                m_targetingReticule.GetComponent <MeshRenderer>().enabled = false;
                m_targetingReticule.transform.Find("TargetSprite").GetComponent <SpriteRenderer>().color = Color.Lerp(m_targetingReticule.transform.Find("TargetSprite").GetComponent <SpriteRenderer>().color, new Color(1, 1, 1, 0), 4 * Time.deltaTime);
                m_targetingReticule.transform.Find("BombCounter").GetComponent <TextMesh>().text         = "";
            }
        }
예제 #9
0
        protected override void Start()
        {
            Dropdown presetDropDownButton         = GameObject.Find("PresetDropDownButton").GetComponent <Dropdown>();
            Dropdown sizeDropDownButton           = GameObject.Find("SizeDropDownButton").GetComponent <Dropdown>();
            Dropdown gameDurationDropDownButton   = GameObject.Find("TimeDropDownButton").GetComponent <Dropdown>();
            Dropdown regionDurationDropDownButton = GameObject.Find("RegionDropDownButton").GetComponent <Dropdown>();

            m_mapPresets                = GameObject.Find("MapPresets").GetComponent <MapPresets>().m_presets;
            m_mapSizes                  = GameObject.Find("MapPresets").GetComponent <MapPresets>().m_mapSizes;
            m_gameDurations             = GameObject.Find("MapPresets").GetComponent <MapPresets>().GameDurations;
            m_regions                   = GameObject.Find("MapPresets").GetComponent <MapPresets>().Regions;
            m_textMesh                  = transform.FindDeepChild("TitleBarText").GetComponent <TextMeshProUGUI>();
            m_inputField                = transform.FindDeepChild("Room Name").GetComponent <InputField>();
            m_inputField.characterLimit = GPlayerMgr.MAX_CHARACTERS_GAME_NAME;

            // update the Max Players default and max values.
            Slider maxPlayersSlider = transform.FindDeepChild("MaxPlayersSlider").GetComponent <Slider>();

            maxPlayersSlider.value    = GConfigManager.GetIntValue("MaxPlayersDefault") / 2;
            maxPlayersSlider.maxValue = GConfigManager.GetIntValue("MaxPlayers") / 2;

            // updated region selection
            BombersNetworkManager.Instance.SetSelectedRegion(m_regions[m_regionListSelection].Lobby);

            string str = m_state == eCreateGameState.NEW_ROOM ? "Create Game" : "Find Game";

            transform.FindDeepChild("CreateButton").FindDeepChild("Text").GetComponent <Text>().text = str;
            m_textMesh.text = str.ToUpper();

            List <string> items = new List <string>();

            for (int i = 0; i < m_mapPresets.Count; i++)
            {
                items.Add(m_mapPresets[i].m_name);
            }
            presetDropDownButton.ClearOptions();
            presetDropDownButton.AddOptions(items);
            items.Clear();

            for (int i = 0; i < m_mapSizes.Count; i++)
            {
                items.Add(m_mapSizes[i].m_name);
            }
            sizeDropDownButton.ClearOptions();
            sizeDropDownButton.AddOptions(items);

            // game durations
            items.Clear();
            for (int i = 0; i < m_gameDurations.Count; i++)
            {
                items.Add(m_gameDurations[i].Name);
            }
            gameDurationDropDownButton.ClearOptions();
            gameDurationDropDownButton.AddOptions(items);

            // regions
            items.Clear();
            for (int i = 0; i < m_regions.Count; i++)
            {
                items.Add(m_regions[i].Name);
            }
            regionDurationDropDownButton.ClearOptions();
            regionDurationDropDownButton.AddOptions(items);

            m_sizeListSelection         = 1;
            m_gameDurationListSelection = GConfigManager.GetIntValue("DefaultGameTimeIndex");

            OnNewRoomWindow();

            transform.FindDeepChild("Room Name").GetComponent <InputField>().text = GPlayerMgr.Instance.PlayerData.PlayerName + "'s Room";

            _stateInfo = new StateInfo(STATE_NAME, this);
            base.Start();
        }