示例#1
0
        /// <summary>ランク情報更新
        /// <param name="correctNum">正解数</param>
        /// </summary>
        private void rankUpdate(int correctNum)
        {
            // 現在の経験値と今回獲得分の合計
            int rankExpSum = this.beforeRankExp + correctNum;

            // 次のランクアップに必要な経験値(ステータス更新前の経験値のメーター算出用)
            int nextRankUpExp = StatusCalcBasis.CalcNextRankUpExp(this.beforeRank);

            int nextRank = this.beforeRank;

            // ランクアップの場合
            if (nextRankUpExp <= rankExpSum)
            {
                nextRank++;

                this.afterRankExp       = rankExpSum - nextRankUpExp;
                GamePlayInfo.QuizResult = GamePlayInfo.Result.RankUp;

                // 次のランクアップに必要な経験値を更新(ランクアップ後の経験値のメーター算出用)
                nextRankUpExp = StatusCalcBasis.CalcNextRankUpExp(nextRank);
            }
            else
            {
                this.afterRankExp       = rankExpSum;
                GamePlayInfo.QuizResult = GamePlayInfo.Result.STAY;
            }

            // 更新後のランク
            this.afterRank = nextRank;
            // ランク更新後の経験値メーターを作成
            this.afterRankMeter = StatusCalcBasis.CalcMeter(this.afterRankExp, nextRankUpExp);

            // 身分情報は変更がないので計算前の値をそのまま設定する
            this.afterCareer          = this.beforeCareer;
            this.afterCareerExp       = this.beforeCareerExp;
            this.afterCareerMeter     = this.beforeCareerMeter;
            this.afterCastleDominance = this.beforeCastleDominance;
            this.afterDaimyouClass    = this.beforeDaimyouClass;
        }
示例#2
0
        /// <summary>キャリア情報更新
        /// <param name="correctDiff">正解不正解の差</param>
        /// </summary>
        private void careerUpdate(int correctDiff)
        {
            // 計算前が大名の場合は城支配数を加算する
            if (this.beforeCareer == (int)StatusCalcBasis.Career.大名)
            {
                this.updateCastleDominance(correctDiff);
            }
            else
            {
                // 計算前が大名ではない場合は身分経験値を加算する
                this.updateCareerExp(correctDiff);
            }

            Debug.Log("beforeDaimyouClass:" + this.beforeDaimyouClass);
            Debug.Log("afterDaimyouClass:" + this.afterDaimyouClass);

            // 身分または大名格が上下した場合はランクの計算結果でのアニメーション設定を上書きする
            if (this.beforeCareer < this.afterCareer ||
                (this.afterCareer == (int)StatusCalcBasis.Career.大名 && this.beforeDaimyouClass < this.afterDaimyouClass))
            {
                // 上がった時
                GamePlayInfo.QuizResult = GamePlayInfo.Result.RankUp;
            }
            else if (this.beforeCareer > this.afterCareer ||
                     (this.afterCareer == (int)StatusCalcBasis.Career.大名 && this.beforeDaimyouClass > this.afterDaimyouClass))
            {
                // 下がった時
                GamePlayInfo.QuizResult = GamePlayInfo.Result.RankDown;
            }


            // 身分の経験値メーターを更新
            // 大名は身分が最大なのでメーターはMAXを設定しておく
            if (this.afterCareer == (int)StatusCalcBasis.Career.大名)
            {
                this.afterCareerMeter = StatusPanel.Fill_AMOUNT_MAX;
            }
            else
            {
                // 現在のメーターの数値
                int nowMeterPoint = 0;
                // メーターMAXの時の数値
                int maxMeterPoint = 0;

                // 次の身分に上がるために必要な経験値
                int nextCarrerUpExp = StatusCalcBasis.NextCareerUpExps[this.afterCareer];

                // 一番下の身分より一つでも上がっている場合
                if (this.afterCareer > (int)StatusCalcBasis.Career.足軽)
                {
                    // 今の身分に上がる時の閾値だった経験値を取得
                    int prevCareerUpExp = StatusCalcBasis.NextCareerUpExps[afterCareer - 1];
                    // 現在の身分に上がるときの閾値時点が0で、次の身分に上がる直前がMAXのゲージ値を取得する
                    nowMeterPoint = this.afterCareerExp - prevCareerUpExp;
                    maxMeterPoint = nextCarrerUpExp - prevCareerUpExp;
                }
                else
                {
                    nowMeterPoint = this.afterCareerExp;
                    maxMeterPoint = nextCarrerUpExp;
                }
                // 次に経験値が上がるためのMAX値からの割合値を取得(小数点第2位まで)
                this.afterCareerMeter = StatusCalcBasis.CalcMeter(nowMeterPoint, maxMeterPoint);
            }

            Debug.Log("career: " + this.afterCareer);
            Debug.Log("nowCareerExp: " + this.afterCareerExp);
        }