Пример #1
0
    /// <summary>
    /// 刷新关卡详细信息
    /// </summary>
    /// <param name="index"></param>
    private void RefreshDetailsBySelectedFloor()
    {
        if (mSelectFloor < 1 || mSelectFloor > PlayerChallengeData.MAX_FLOOR_COUNT)
        {
            return;
        }

        int index = mSelectFloor - 1;

        if (index >= 0 && index < mChallengeBtn.Count)
        {
            mChallengeBtn[index].UpdateData(mChalModule.GetChallengeState(mChallengeBtn[index].mFloorID),
                                            mChalModule.IsGainAchievement(mChallengeBtn[index].mFloorID, 0),
                                            mChalModule.IsGainAchievement(mChallengeBtn[index].mFloorID, 1),
                                            mChalModule.IsGainAchievement(mChallengeBtn[index].mFloorID, 2));
        }

        int recom_battlescore;
        int fight;

        if (mChalModule.IsBattleGradeEnough(mSelectFloor, out recom_battlescore, out fight))
        {
            mLabelMyFight.text    = string.Format(StringHelper.GetString("yellow"), fight.ToString());
            mLabelMyFightTxt.text = string.Format(StringHelper.GetString("yellow"), StringHelper.GetString("mybattlescore"));
        }
        else
        {
            mLabelMyFight.text    = string.Format(StringHelper.GetString("red"), fight.ToString());
            mLabelMyFightTxt.text = string.Format(StringHelper.GetString("red"), StringHelper.GetString("mybattlescore"));
        }

        mLabelRecomFight.text = recom_battlescore.ToString();

        switch (mChalModule.GetChallengeState(mSelectFloor))
        {
        case ChallengeState.Passed:
            mLabelState.text = string.Format(StringHelper.GetString("getscore"), mChalModule.GetFloorScore(mSelectFloor));
            break;

        case ChallengeState.NoPass:
            mLabelState.text = StringHelper.GetString("notchallenge");
            break;

        case ChallengeState.Never:
            mLabelState.text = StringHelper.GetString("neverchallenge");
            break;

        case ChallengeState.Current:
            mLabelState.text = StringHelper.GetString("challenging");
            break;
        }

        //判断获得的成就
        //RefreshAchieveMent(mSelectFloor);
        //刷新掉落

        //首次掉落
        if (mFirstAwardItem != null)
        {
            GameObject.Destroy(mFirstAwardItem.gameObject);
            mFirstAwardItem = null;
        }

        if (mNormalAwardItem != null)
        {
            GameObject.Destroy(mNormalAwardItem.gameObject);
            mNormalAwardItem = null;
        }

        var ctt = DataManager.ChallengeTable[mSelectFloor] as ChallengeTableItem;

        if (ctt.mFirstAwardItemId >= 0)
        {
            mFirstDrop.SetActive(true);

            mFirstAwardItem = new CommonItemUI(ctt.mFirstAwardItemId);
            mFirstAwardItem.gameObject.transform.parent        = mFirstDrop.transform;
            mFirstAwardItem.gameObject.transform.localScale    = Vector3.one;
            mFirstAwardItem.gameObject.transform.localPosition = Vector3.zero;
        }
        else
        {
            mFirstDrop.SetActive(false);
        }

        //普通通关奖励
        if (ctt.mEveryDayAwardItemId >= 0)
        {
            mNormalDrop.SetActive(true);
            mNormalAwardItem = new CommonItemUI(ctt.mEveryDayAwardItemId);
            mNormalAwardItem.gameObject.transform.parent        = mNormalDrop.transform;
            mNormalAwardItem.gameObject.transform.localScale    = Vector3.one;
            mNormalAwardItem.gameObject.transform.localPosition = Vector3.zero;
        }
        else
        {
            mNormalDrop.SetActive(false);
        }

        mGridDrop.Reposition();

        if (mChalModule.IsCanChallenge(mSelectFloor))
        {
            //当前层
            if (mChalModule.GetCurFloor() == mSelectFloor)
            {
                mButtonOk.gameObject.SetActive(true);
                mButtonBack.gameObject.SetActive(false);
                mButtonDoAgain.gameObject.SetActive(false);
            }

            //已经通关的层
            if (mChalModule.GetCurFloor() > mSelectFloor)
            {
                mButtonOk.gameObject.SetActive(false);
                mButtonBack.gameObject.SetActive(true);
                mButtonDoAgain.gameObject.SetActive(true);
            }
        }
        else
        {
            //能继续挑战
            if (mChalModule.IsCanContinue())
            {
                mButtonBack.gameObject.SetActive(true);
            }
            else
            {
                mButtonBack.gameObject.SetActive(false);
            }

            mButtonOk.gameObject.SetActive(false);
            mButtonDoAgain.gameObject.SetActive(false);
        }
        //当前关卡,并且扫荡功能开启
        if (mChalModule.IsSweepByFloorID(mSelectFloor))
        {
            mButtonSweep.gameObject.SetActive(true);
        }
        else
        {
            mButtonSweep.gameObject.SetActive(false);
        }

        mBtnGrid.Reposition();

        var ct = DataManager.ChallengeTable[mSelectFloor] as ChallengeTableItem;

        mLabelScrib.text = ct.mTip;

        //本周积分
        mLabelWeekScore.text = mChalModule.GetWeekScore().ToString();

        int indexLeft  = index - 2 >= 0 ? index - 2 : 0;
        int indexRight = index + 2 <= mChallengeBtn.Count - 1 ? index + 2 : mChallengeBtn.Count - 1;
        var leftSide   = mChallengeBtn[indexLeft].mGameObject.transform;
        var rightSide  = mChallengeBtn[indexRight].mGameObject.transform;

        mScrolV.GetComponent <UIFCenterOnChild>().CenterOn(
            mChallengeBtn[mSelectFloor - 1].mGameObject.transform,
            leftSide,
            rightSide);
    }