예제 #1
0
        private IEnumerator updateTimerCoroutine()
        {
            GPlayerMgr playerManager = GPlayerMgr.Instance;

            if (m_resetTime > 0)
            {
                long  lTime = (long)(m_resetTime - playerManager.CurrentServerTime);
                float fTime = (float)lTime;

                while (fTime > 0.0f)
                {
                    yield return(YieldFactory.GetWaitForSeconds(1.0f));

                    fTime -= 1000.0f;
                    if (TimerDisplayLabel != null)
                    {
                        TimerDisplayLabel.transform.parent.gameObject.SetActive(true);
                        TimerDisplayLabel.text = HudHelper.ConvertUnixTimeToGUIString((int)fTime);
                    }
                }

                //remove this from the list
                Destroy(gameObject);
            }
            yield return(null);
        }
        IEnumerator PulseMissionText()
        {
            if (!IsLocalPlayer || !_hasAuthority)
            {
                yield break;
            }
            bool  goingToColor1 = true;
            float time          = 0;

            while (true)
            {
                while (goingToColor1)
                {
                    m_missionText.GetComponent <Text>().color = Color.Lerp(m_missionText.GetComponent <Text>().color, new Color(1, 0, 0, 1), 4 * Time.fixedDeltaTime);
                    time += Time.fixedDeltaTime;
                    if (time > 0.3f)
                    {
                        goingToColor1 = !goingToColor1;
                    }
                    yield return(YieldFactory.GetWaitForFixedUpdate());
                }
                time = 0;
                while (!goingToColor1)
                {
                    m_missionText.GetComponent <Text>().color = Color.Lerp(m_missionText.GetComponent <Text>().color, new Color(0.3f, 0, 0, 1), 4 * Time.fixedDeltaTime);
                    time += Time.fixedDeltaTime;
                    if (time > 0.3f)
                    {
                        goingToColor1 = !goingToColor1;
                    }
                    yield return(YieldFactory.GetWaitForFixedUpdate());
                }
                time = 0;
            }
        }
예제 #3
0
    private IEnumerator checkPlayerDistance()
    {
        float vDistance = 0.0f;

        while (m_bIsChecking)
        {
            if (m_Player == null)
            {
                m_Player = GameObject.FindObjectOfType <FirstPersonMovement>().gameObject;
                yield return(YieldFactory.GetWaitForSeconds(CHECK_DISTANCE_DELAY));

                continue;
            }
            //Debug.Log(vDistance);
            vDistance = Vector3.Distance(vWorldPosition, m_Player.transform.position);
            if (vDistance < CLOSE_TO_DOOR_DISTANCE && GetCanOpen())
            {
                SetOpen(true);
            }
            else
            {
                SetOpen(false);
            }

            yield return(YieldFactory.GetWaitForSeconds(CHECK_DISTANCE_DELAY));
        }
    }
예제 #4
0
        private IEnumerator delayedSelect(InputField in_field)
        {
            in_field.interactable = false;
            yield return(YieldFactory.GetWaitForSeconds(0.15f));

            in_field.interactable = true;
            in_field.Select();
        }
예제 #5
0
    IEnumerator transferScene()
    {
        yield return(YieldFactory.GetWaitForFixedUpdate());

        GStateManager stateManager = GStateManager.Instance;

        stateManager.ChangeState(GameState.STATE_NAME);
        stateManager.PopSubState(_stateInfo);
    }
예제 #6
0
 IEnumerator ChangeRotation()
 {
     while (true)
     {
         m_TargetRotation = Random.rotation;
         m_Reset          = true;
         yield return(YieldFactory.GetWaitForSeconds(TIME_UNTIL_ROTATION_CHANGE));
     }
 }
        IEnumerator Respawn()
        {
            float time = m_respawnTime;

            while (time > 0)
            {
                time -= Time.deltaTime;
                yield return(YieldFactory.GetWaitForEndOfFrame());
            }
            GameObject.Find("GameManager").GetComponent <GameManager>().CmdRespawnShip(this.m_shipID);
        }
예제 #8
0
    private IEnumerator fadeHelperTextOut()
    {
        float fTime = 1 - m_cHelperColour.a;

        while (m_cHelperColour.a > 0.0f)
        {
            fTime            += Time.fixedDeltaTime / TextFadeSpeed;
            m_cHelperColour.a = Mathf.Lerp(1.0f, 0.0f, fTime);
            HelperText.color  = m_cHelperColour;
            yield return(YieldFactory.GetWaitForFixedUpdate());
        }
    }
예제 #9
0
    private IEnumerator quickTurn()
    {
        CameraToDisable.enabled = false;
        float amountToTurnPerFrame = TURN_SPEED * Time.fixedDeltaTime;

        for (int i = 0; i < 180f / amountToTurnPerFrame; i++)
        {
            transform.Rotate(0f, amountToTurnPerFrame, 0f);
            yield return(YieldFactory.GetWaitForFixedUpdate());
        }
        CameraToDisable.enabled = true;
    }
예제 #10
0
    IEnumerator Shake()
    {
        while (true)
        {
            yield return(YieldFactory.GetWaitForSeconds(Random.Range(TIME_UNTIL_SHAKE.x, TIME_UNTIL_SHAKE.y)));

            if (RattleSound != null && RattleSound.clip != null)
            {
                CameraObject.ShakeCamera(CAMERA_SHAKE_INTENSITY, RattleSound.clip.length);
            }
            else
            {
                CameraObject.ShakeCamera(CAMERA_SHAKE_INTENSITY, 0.25f);
            }
        }
    }
예제 #11
0
    private IEnumerator runAbility()
    {
        Rigidbody playersRigidbody = GPlayerManager.Instance.PlayerObject.Rigidbody();

        while (m_bIsUnlocked)
        {
            yield return(new WaitUntil(() => Input.GetKeyDown(KeyCode.LeftShift) && playersRigidbody.IsGrounded() == false && !IsPaused));

            if (m_bIsUnlocked)
            {
                playersRigidbody.AddForce(playersRigidbody.transform.forward * THRUST_JUMP_POWER + Vector3.up, ForceMode.Impulse);
            }

            yield return(YieldFactory.GetWaitForSeconds(GPlayerManager.Instance.PlayerData.UpgradedThrustJump ? UPGRADED_COOLDOWN : COOLDOWN));
        }
        StartCoroutine(waitUntilUnlock());
    }
예제 #12
0
    private IEnumerator Somniplex_Enter()
    {
        yield return(YieldFactory.GetWaitForFixedUpdate());

        Color colour = SomniplexLogo.color;

        while (colour.a <= 1.0f)
        {
            colour.a           += Time.fixedDeltaTime * 0.5f;
            SomniplexLogo.color = colour;
            yield return(YieldFactory.GetWaitForFixedUpdate());
        }

        yield return(YieldFactory.GetWaitForSeconds(1.0f));

        m_StateMachine.ChangeState(eSplashStates.Complete);
    }
예제 #13
0
        private IEnumerator delayedDisplayGlobalChat(bool in_value)
        {
            yield return(YieldFactory.GetWaitForEndOfFrame());

            m_chatGroupLobby.SetActive(!in_value);
            m_chatGroupGlobal.SetActive(in_value);

            m_lobbyChatNotification.SetActive(false);
            m_globalChatNotification.SetActive(false);

            GameObject tabGlobal = GameObject.Find("TabGlobal");
            GameObject tabLocal  = GameObject.Find("TabLocal");

            Image lobbyButton  = tabLocal.transform.FindDeepChild("Button").GetComponent <Image>();
            Image globalButton = tabGlobal.transform.FindDeepChild("Button").GetComponent <Image>();

            lobbyButton.color  = !in_value ? Color.white : notSelected;
            globalButton.color = in_value ? Color.white : notSelected;
        }
예제 #14
0
    private IEnumerator StartUpManagers_Enter()
    {
        yield return(YieldFactory.GetWaitForFixedUpdate());

        GStateManager.Instance.ForceStateInfo(_stateInfo);

        yield return(YieldFactory.GetWaitForFixedUpdate());

        GCore.Instance.EmptyStartup();

        yield return(YieldFactory.GetWaitForFixedUpdate());

        GAudioManager.Instance.PlayBGM(StartingMusic);

        yield return(YieldFactory.GetWaitForFixedUpdate());

        GStateManager.Instance.EnableLoadingSpinner(false);

        yield return(YieldFactory.GetWaitForFixedUpdate());

        m_StateMachine.ChangeState(eSplashStates.Unity);
    }
예제 #15
0
    private IEnumerator Black_Enter()
    {
        yield return(YieldFactory.GetWaitForFixedUpdate());

        m_StateMachine.ChangeState(eSplashStates.StartUpManagers);
    }
예제 #16
0
        IEnumerator ReleasePositions()
        {
            bool loop = true;

            m_bezierTime = 0.5f;
            while (loop)
            {
                if (m_photonReleasedPositions.Count != 0)
                {
                    for (int i = 0; i < m_photonPositions.Length - 1; i++)
                    {
                        m_photonPositions[i] = m_photonPositions[i + 1];
                        m_photonRotations[i] = m_photonRotations[i + 1];
                    }

                    Vector3 velocity = (m_photonReleasedPositions[0].m_position - m_photonPositions[m_photonPositions.Length - 1]);
                    velocity *= (((float)(1000 / PhotonNetwork.sendRate)) / m_photonReleasedPositions[0].m_time);
                    Vector3 calculatedPosition = m_photonPositions[m_photonPositions.Length - 1] + velocity;

                    if (!float.IsNaN(calculatedPosition.x) && !float.IsNaN(calculatedPosition.y) && !float.IsNaN(calculatedPosition.z))
                    {
                        if ((m_photonPosition - calculatedPosition).magnitude > 10.0f)
                        {
                            m_photonPositions[m_photonPositions.Length - 1] = m_photonPosition;
                            m_photonRotations[m_photonRotations.Length - 1] = m_photonRotation;
                        }
                        else
                        {
                            m_photonPositions[m_photonPositions.Length - 1] = calculatedPosition;
                            m_photonRotations[m_photonRotations.Length - 1] = m_photonReleasedPositions[0].m_rotation;
                        }
                    }

                    bool  found            = false;
                    float properBezierTime = 0.0f;

                    Vector3 lastBezierPoint     = m_lastBezierPoint;
                    Vector3 calculatedPosition2 = CalculateBezierPoint(properBezierTime, lastBezierPoint, m_photonPositions[1], m_photonPositions[2], m_photonPositions[3]);

                    Vector3 currentPosition = transform.position;
                    float   lastMagnitude   = 100;
                    while (!found)
                    {
                        calculatedPosition2 = CalculateBezierPoint(properBezierTime, lastBezierPoint, m_photonPositions[1], m_photonPositions[2], m_photonPositions[3]);

                        if ((currentPosition - calculatedPosition2).magnitude < lastMagnitude)
                        {
                            lastMagnitude = (currentPosition - calculatedPosition2).magnitude;
                        }
                        else if ((currentPosition - calculatedPosition2).magnitude > lastMagnitude)
                        {
                            found = true;
                            break;
                        }

                        properBezierTime += 0.01f;
                        if (properBezierTime > 1)
                        {
                            properBezierTime = 0.75f;
                            found            = true;
                        }
                    }

                    m_bezierTime = properBezierTime;

                    m_photonReleasedPositions.RemoveAt(0);
                }
                else
                {
                    for (int i = 0; i < m_photonPositions.Length - 1; i++)
                    {
                        m_photonPositions[i] = m_photonPositions[i + 1];
                        m_photonRotations[i] = m_photonRotations[i + 1];
                    }
                    m_photonPositions[m_photonPositions.Length - 1] = m_photonPosition;
                    m_photonRotations[m_photonRotations.Length - 1] = m_photonRotation;

                    bool  found            = false;
                    float properBezierTime = 0.0f;

                    Vector3 lastBezierPoint = m_lastBezierPoint;

                    Vector3 calculatedPosition2 = CalculateBezierPoint(properBezierTime, lastBezierPoint, m_photonPositions[1], m_photonPositions[2], m_photonPositions[3]);
                    Vector3 currentPosition     = transform.position;
                    float   lastMagnitude       = 100;
                    while (!found)
                    {
                        calculatedPosition2 = CalculateBezierPoint(properBezierTime, lastBezierPoint, m_photonPositions[1], m_photonPositions[2], m_photonPositions[3]);

                        if ((currentPosition - calculatedPosition2).magnitude < lastMagnitude)
                        {
                            lastMagnitude = (currentPosition - calculatedPosition2).magnitude;
                        }
                        else if ((currentPosition - calculatedPosition2).magnitude > lastMagnitude)
                        {
                            found = true;
                            break;
                        }

                        properBezierTime += 0.01f;
                        if (properBezierTime > 1)
                        {
                            properBezierTime = 0.75f;
                            found            = true;
                        }
                    }

                    m_bezierTime = properBezierTime;
                }
                yield return(YieldFactory.GetWaitForSeconds(((float)(1000 / PhotonNetwork.sendRate)) / 1000));
            }
        }
예제 #17
0
        private IEnumerator StartUpMgrs()
        {
            // start up StateMgr
            yield return(YieldFactory.GetWaitForEndOfFrame());

            GStateManager.Instance.ForceStateInfo(_stateInfo);

            // warmup shaders inside /Resources/Shaders/ (do this once)
            Shader.WarmupAllShaders();

            // ensure the rest are setup
            yield return(YieldFactory.GetWaitForEndOfFrame());

            GCore.Instance.EnsureMgrsAreSetup();

            while (!GCore.Instance.IsInitialized)
            {
                yield return(YieldFactory.GetWaitForEndOfFrame());
            }

            // play music
            //GSoundMgr.Instance.PlayMusic("commonMusic");

#if ENABLE_ASSET_BUNDLES
#if SMRJ_HACK
            AssetBundleManager.SetDevelopmentAssetBundleServer();
#else
            // LIVE URL
            if (GCore.Wrapper.Client.AppId == "30015")
            {
                AssetBundleManager.SetSourceAssetBundleURL(ASSET_BUNDLE_URL_LIVE);
            }
            // TEST URL
            else
            {
                AssetBundleManager.SetSourceAssetBundleURL(ASSET_BUNDLE_URL);
            }
#endif

#if UNITY_EDITOR
            if (!AssetBundleManager.SimulateAssetBundleInEditor)
#endif
            {
                AssetBundleLoadManifestOperation request = AssetBundles.AssetBundleManager.Initialize();
                if (request != null)
                {
                    yield return(StartCoroutine(request));
                }

                while (AssetBundleManager.AssetBundleManifestObject == null)
                {
                    yield return(YieldFactory.GetWaitForEndOfFrame());
                }
            }

            AssetBundleManager.LoadAssetBundle("eggiesslotstate");
            while (AssetBundleManager.IsDownloadingBundles())
            {
                GStateManager.Instance.ForcedUpdatedLoadingAssetBundle();
                yield return(YieldFactory.GetWaitForEndOfFrame());
            }
            GStateManager.Instance.EnableLoadingScreen(false);
#endif

            yield return(StartCoroutine(loadCommonSounds()));

            yield return(YieldFactory.GetWaitForEndOfFrame());
        }