Example #1
0
    protected override IEnumerator StartState(GameController.State state)
    {
        yield return(base.StartState(state));

        switch (state)
        {
        case GameController.State.Introduction:
            RichPresenceManager.SetRichPresence("UYW_RP_SubTheTitle");
            this.InputText.gameObject.SetActive(false);
            this.MovieImage.enabled = false;
            this._ActiveContent     = (Singleton <ContentManager> .Instance.FindRandomContent(ContentManager.GameType.SubTheTitle) as ContentManager.SubTheTitleContent);
            //BEGIN MODIFICATION
            if (this._ActiveContent.ID > 999)
            {
                moviePath = Application.persistentDataPath + "/NewContent/stt" + this._ActiveContent.ID.ToString() + ".mp4";
            }
            else
            {
                moviePath = string.Concat(new object[] {
                    "Content/SubTheTitle/",
                    this._ActiveContent.ID,
                    "/clip",
                    (Singleton <GameManager> .Instance.CurrentLanguage != GameManager.LanguageSettings.French) ? string.Empty : "_FR"
                });
            }
            //END MODIFICATION
            if (this._ActiveContent.Dimensions != Vector2.zero)
            {
                this.InputText.rectTransform.sizeDelta = this._ActiveContent.Dimensions;
            }
            this.InputText.transform.localPosition = this._ActiveContent.Position;
            while (Singleton <LoadingScreen> .Instance.IsShowing)
            {
                yield return(null);
            }
            if (Singleton <GameManager> .Instance.CurrentMode != GameManager.GameMode.Debug)
            {
                if (Singleton <GameManager> .Instance.IsFirstSubTheTitle)
                {
                    Singleton <AudioManager> .Instance.SetMusicVolume(0f);

                    yield return(this.PlayTutorialVideo(GameController.State.Introduction, "STT_Tut1" + ((Singleton <GameManager> .Instance.CurrentLanguage == GameManager.LanguageSettings.French) ? "_FR" : ""), false));

                    Singleton <AudioManager> .Instance.SetMusicVolume(1f);
                }
                this._MoviePlayer.Target = this.MovieImage;
                yield return(this._MoviePlayer.Play(SubTheTitleController.CountdownMoviePath, false, false));

                this.MovieImage.enabled = true;
                while (this._MoviePlayer.IsPlaying)
                {
                    yield return(null);
                }
            }
            base.ChangeState(GameController.State.RevealPrompt);
            break;

        case GameController.State.RevealPrompt:
        {
            if (Singleton <GameManager> .Instance.FamilyMode)
            {
                base.SetHouseAnswers(this._ActiveContent.FamilyModeHouseAnswers);
            }
            else
            {
                base.SetHouseAnswers(this._ActiveContent.HouseAnswers);
            }
            Singleton <AudioManager> .Instance.FadeOutMusic(0f, 0f);

            UnityEngine.Debug.Log("Loading Prompt");
            UnityEngine.Debug.Log(this._ActiveContent.ID);
            this.ShadowBackdrop.DOFade(0.58f, 0.5f);
            string promptText = "[Insert subtitle here.]";
            if (Singleton <GameManager> .Instance.CurrentLanguage == GameManager.LanguageSettings.French)
            {
                promptText = "[Insérer un sous-titre ici.]";
            }
            yield return(this.PlayMovie(GameController.State.RevealPrompt, this._ActiveContent, moviePath, promptText, false, true));            //MODIFIED

            base.ChangeState(GameController.State.InputCheck);
            break;
        }

        case GameController.State.WaitForInput:
        {
            string promptText2 = "[Insert subtitle here.]";
            if (Singleton <GameManager> .Instance.CurrentLanguage == GameManager.LanguageSettings.French)
            {
                promptText2 = "[Insérer un sous-titre ici.]";
            }
            yield return(this.PlayMovie(GameController.State.WaitForInput, this._ActiveContent, moviePath, promptText2, false, true));

            this.ShadowBackdrop.DOFade(0f, 0.5f);
            Singleton <AudioManager> .Instance.PlayMusic("STT_Theme", 1f, true);

            base.StartCoroutine(this.PlayTutorialVideo(GameController.State.WaitForInput, "STT_Tut2" + ((Singleton <GameManager> .Instance.CurrentLanguage == GameManager.LanguageSettings.French) ? "_FR" : ""), true));
            break;
        }

        case GameController.State.RevealAnswers:
        {
            Singleton <AudioManager> .Instance.StopMusic();

            this.ShadowBackdrop.DOFade(0.58f, 0.5f);
            yield return(Singleton <AudioManager> .Instance.PlayVoiceOverAndWait("12.X", Singleton <GameManager> .Instance.GetAnswerRevealClips()));

            GameController.Answer[] inputArray = this._UserInput[this._CurrentRound].ToArray();
            foreach (GameController.Answer inputPair in inputArray)
            {
                yield return(this.PlayMovie(GameController.State.RevealAnswers, this._ActiveContent, moviePath, inputPair.Value, true, true));               //MODIFIED

                yield return(base.ResolveInput(inputPair.User.ID));
            }
            this.ShadowBackdrop.DOFade(0f, 0.5f);
            base.ChangeState(GameController.State.VotingCheck);
            break;
        }

        case GameController.State.WaitForVoting:
            if (Singleton <GameManager> .Instance.IsFirstSubTheTitle && Singleton <GameManager> .Instance.HouseAnswers)
            {
                Singleton <AudioManager> .Instance.StopMusic();

                yield return(this.PlayTutorialVideo(GameController.State.WaitForVoting, "STT_Tut3" + ((Singleton <GameManager> .Instance.CurrentLanguage == GameManager.LanguageSettings.French) ? "_FR" : ""), false));

                this._TutorialPlaying = false;
            }
            Singleton <AudioManager> .Instance.PlayMusic("STT_Theme", 1f, true);

            if (this._CurrentState != GameController.State.WaitForVoting)
            {
                yield break;
            }
            yield return(this._MoviePlayer.Play(SubTheTitleController.LobbyMoviePath, true, false));

            this.MovieImage.enabled = true;
            break;

        case GameController.State.RevealResults:
        {
            this.ShadowBackdrop.DOFade(0.58f, 0.5f);
            yield return(Singleton <AudioManager> .Instance.PlayVoiceOverAndWait("36.X", Singleton <GameManager> .Instance.GetVoteRevealVO()));

            this.StopTutorialVideo();
            List <GameController.Answer> orderedAnswers = base.CalculateVoteOrderedInput();
            foreach (GameController.Answer inputPair2 in orderedAnswers)
            {
                yield return(this.ShowResult(this._ActiveContent.ID.ToString(), inputPair2.Value));

                yield return(base.ResolveVote(inputPair2.User.ID));
            }
            List <GameController.Answer> .Enumerator enumerator = default(List <GameController.Answer> .Enumerator);
            this.ShadowBackdrop.DOFade(0f, 0.5f);
            base.ChangeState(GameController.State.PostResults);
            break;
        }
        }
        yield break;
        yield break;
    }
    protected override IEnumerator StartState(GameController.State state)
    {
        yield return(base.StartState(state));

        switch (state)
        {
        case GameController.State.Introduction:
        {
            RichPresenceManager.SetRichPresence("UYW_RP_ExtraExtra");
            this.InputContainer.SetActive(true);
            this.RevealContainer.SetActive(false);
            this.MainCamera.transform.position = new Vector3(-4.99f, -2.75f, 0f);
            this.MainCamera.orthographicSize   = 2.15f;
            this._ActiveContent = (Singleton <ContentManager> .Instance.FindRandomContent(ContentManager.GameType.ExtraExtra) as ContentManager.ExtraExtraContent);
            //BEGIN MODIFICATION
            Sprite contentSprite;

            if (this._ActiveContent.ID > 999)
            {
                byte[]    data      = System.IO.File.ReadAllBytes(Application.persistentDataPath + "/NewContent/ee" + this._ActiveContent.ID);
                Texture2D texture2D = new Texture2D(2, 2);
                texture2D.LoadImage(data);
                contentSprite = Sprite.Create(texture2D, new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height), new Vector2(0f, 0f), 100f);
            }
            else
            {
                contentSprite = Resources.Load <Sprite>("Content/ExtraExtra/" + this._ActiveContent.ID + "/image");
            }
            if (contentSprite.bounds.extents.x > contentSprite.bounds.extents.y)
            {
                this._ActiveSize = this.Landscape;
            }
            //END MODIFICATION
            else
            {
                this._ActiveSize = this.Portrait;
            }
            for (int i = 0; i < this._ActiveSize.Images.Length; i++)
            {
                //BEGIN MODIFICATION
                this._ActiveSize.Images[i].sprite         = contentSprite;
                this._ActiveSize.Images[i].preserveAspect = true;
            }

            Vector2 curSize = this._ActiveSize.InputContainer.GetComponent <RectTransform>().sizeDelta;
            Vector2 imgSize = this._ActiveSize.Images[0].rectTransform.sizeDelta;

            if (this._ActiveContent.ID > 999)
            {
                if (contentSprite.bounds.extents.x > contentSprite.bounds.extents.y)
                {
                    float margin = Mathf.Abs(curSize.x - imgSize.x);
                    this._ActiveSize.InputContainer.GetComponent <RectTransform>().sizeDelta = new Vector2(imgSize.x + margin, imgSize.y + margin);
                }
                else
                {
                    float margin = Mathf.Abs(curSize.y - imgSize.y);
                    this._ActiveSize.InputContainer.GetComponent <RectTransform>().sizeDelta = new Vector2(imgSize.x + margin, imgSize.y + margin);
                }
            }
            //END MODIFICATION

            while (Singleton <LoadingScreen> .Instance.IsShowing)
            {
                yield return(null);
            }
            if (!Singleton <GameManager> .Instance.NewPlayer || Singleton <GameManager> .Instance.IsFirstExtraExtra)
            {
            }
            this._ActiveSize.InputContainer.SetActive(true);
            this._ActiveSize.RevealContainer.SetActive(true);
            yield return(Yielders.Seconds(1f));

            this.MainCamera.DOOrthoSize(5f, 1.5f).SetEase(Ease.InQuad);
            this.MainCamera.transform.DOMove(new Vector3(0f, 0f, -1f), 1.5f, false).SetEase(Ease.InQuad);
            base.ChangeState(GameController.State.RevealPrompt);
            break;
        }

        case GameController.State.RevealPrompt:
            if (Singleton <GameManager> .Instance.FamilyMode)
            {
                base.SetHouseAnswers(this._ActiveContent.FamilyModeHouseAnswers);
            }
            else
            {
                base.SetHouseAnswers(this._ActiveContent.HouseAnswers);
            }
            base.ChangeState(GameController.State.InputCheck);
            break;

        case GameController.State.RevealAnswers:
        {
            yield return(Singleton <AudioManager> .Instance.PlayVoiceOverAndWait("12.X", Singleton <GameManager> .Instance.GetAnswerRevealClips()));

            this.InputContainer.SetActive(false);
            this.RevealContainer.SetActive(true);
            this.VotingPaper.SetActive(false);
            this.NewspaperBase.transform.localScale = Vector3.zero;
            Singleton <AudioManager> .Instance.PlayMusic("EE_Theme", 1f, true);

            this.NewspaperBase.SetActive(true);
            GameController.Answer[] inputArray = this._UserInput[this._CurrentRound].ToArray();
            foreach (GameController.Answer inputPair in inputArray)
            {
                yield return(this.ShowNewspaper(inputPair.Value, 5.25f));

                yield return(base.ResolveInput(inputPair.User.ID));
            }
            base.ChangeState(GameController.State.VotingCheck);
            break;
        }

        case GameController.State.VotingCheck:
            this.NewspaperBase.SetActive(false);
            this.VotingPaper.SetActive(true);
            break;

        case GameController.State.RevealResults:
        {
            yield return(Singleton <AudioManager> .Instance.PlayVoiceOverAndWait("36.X", Singleton <GameManager> .Instance.GetVoteRevealVO()));

            this.NewspaperBase.SetActive(true);
            this.VotingPaper.SetActive(false);
            List <GameController.Answer> orderedAnswers = base.CalculateVoteOrderedInput();
            foreach (GameController.Answer inputPair2 in orderedAnswers)
            {
                yield return(this.ShowNewspaper(inputPair2.Value, 1f));

                yield return(base.ResolveVote(inputPair2.User.ID));
            }
            base.ChangeState(GameController.State.PostResults);
            break;
        }

        case GameController.State.EndOfGame:
            this.NewspaperBase.SetActive(false);
            break;
        }
        yield break;
    }