예제 #1
0
 /// <summary>階級の上限達成表示の更新
 /// <param name="rank">ランク</param>
 /// <param name="careerNum">身分</param>
 /// <param name="careerExpMeter">身分経験値</param>
 /// <param name="isShowCareerLimit">階級上限の説明を表示するかどうか</param>
 /// </summary>
 private void UpdateCareerDescription(int rank, int careerNum, float careerExpMeter, bool isShowCareerLimit)
 {
     if (!OshiroUtil.IsCareerQuestionRelease(rank))
     {
         careerDescriptionText.text = "階級挑戦問題はお城好きレベル5で解放されます";
     }
     else if (OshiroUtil.IsCareerLimit(careerNum, careerExpMeter) && isShowCareerLimit)
     {
         // 今の身分が大名未満かつ現在対応している身分の上限まで達している場合
         careerDescriptionText.text = "階級の上限に達しています\n上限は今後解放されます";
     }
     else
     {
         careerDescriptionText.text = "";
     }
 }
예제 #2
0
        public void StatusUpdate(int correctNum)
        {
            // ステータス情報を取得
            this.loadStatus();

            // ランク情報更新
            this.rankUpdate(correctNum);

            // 正解不正解の差
            int correctDiff = (correctNum * 2) - GameDirector.QUIZ_MAX_NUM;

            // 階級挑戦クイズかつ身分上限で正解数の方が多い場合以外は身分情報を更新
            if (GamePlayInfo.PlayQuizType == GamePlayInfo.QuizType.CareerQuiz &&
                !(OshiroUtil.IsCareerLimit(this.beforeCareer, this.beforeCareerMeter) &&
                  correctDiff > 0))
            {
                this.careerUpdate(correctDiff);
            }

            this.updateAfterSave();
        }
예제 #3
0
        /**
         * Rank、身分の経験値表示を更新
         */
        private async UniTask  statusDisplayUpdate()
        {
            // 経験値メーターを増減させる演出
            // ランクや身分が上下する場合はメーターをいったん空かMAXで止める

            // ************ ランク表示更新演出 ************
            await rankDisplayUpdate();

            // ************ 身分表示更新演出 ************
            // bool isCareerUpdate = false;
            // 身分上限かつ経験値メーターが上限から変更していない場合は対象外にする
            if (GamePlayInfo.PlayQuizType == GamePlayInfo.QuizType.CareerQuiz &&
                !(OshiroUtil.IsCareerLimit(GamePlayInfo.BeforeCareer, GamePlayInfo.BeforeCareerExpMeter) &&
                  GamePlayInfo.BeforeCareerExpMeter == GamePlayInfo.AfterCareerExpMeter))
            {
                // 身分とランクのメーター更新の間の待ち
                await UniTask.Delay(500);

                if (GamePlayInfo.BeforeCareer == (int)StatusCalcBasis.Career.大名)
                {
                    // 城支配数の更新
                    await castleDominanceDisplayUpdate();
                }
                else
                {
                    // 身分表示更新
                    await careerDisplayUpdate();
                }
            }

            await UniTask.Delay(600);

            // ************ ランクや身分上下時のエフェクト表示と最終的なステータス表示 ************
            if (GamePlayInfo.Result.RankUp == GamePlayInfo.QuizResult ||
                GamePlayInfo.Result.RankDown == GamePlayInfo.QuizResult)
            {
                // ランクまたは身分が上がった場合の花火の演出
                if (GamePlayInfo.Result.RankUp == GamePlayInfo.QuizResult)
                {
                    SoundController.instance.Fireworks1();

                    var particle = Instantiate(this.burstParticle);
                    particle.transform.position = new Vector3(0.0f, 1.0f, -0.5f);
                    particle.GetComponent <ParticleSystem>().Play();

                    await UniTask.Delay(1000);

                    SoundController.instance.Fireworks2();
                }
                else
                {
                    await UniTask.Delay(800);
                }


                // ランクや身分などに上下があった時の最終的なステータス
                AfterStatusOutput();

                // メーターが割れた演出を戻す(今割れているかどうか気にせず固定で指定)
                statusPanelController.setCareerCrack(false);
            }
            // else if (GamePlayInfo.Result.RankDown == GamePlayInfo.QuizResult)
            // {
            //  await UniTask.Delay(800);
            //  AfterStatusOutput();
            // }
            // ステータス表示更新で行う
            // else if (GamePlayInfo.AfterCareer == (int)StatusCalcBasis.Career.大名)
            // {
            //     statusPanelController.CastleDominanceOutput(GamePlayInfo.AfterCastleDominance);
            // }
        }