Exemplo n.º 1
0
    public static EM_STAGE_STAGETYPE GetStageStageType(StageTemplate stageT)
    {
        EM_STAGE_STAGETYPE type = EM_STAGE_STAGETYPE.MAIN;

        switch (GetStageType(stageT))
        {
        case EM_STAGE_TYPE.LIMIT_TEST:
            return(EM_STAGE_STAGETYPE.LITMIT_TIMES);

        case EM_STAGE_TYPE.MAIN_QUEST1:
        case EM_STAGE_TYPE.MAIN_QUEST2:
        case EM_STAGE_TYPE.MAIN_QUEST3:
            return(EM_STAGE_STAGETYPE.MAIN);

        case EM_STAGE_TYPE.SIDE_QUEST:
            return(EM_STAGE_STAGETYPE.SIDE);

        case EM_STAGE_TYPE.SPEC_QUEST:
            return(EM_STAGE_STAGETYPE.SPECIAL);

        case EM_STAGE_TYPE.ACTIVE_QUEST_DIJING:
        case EM_STAGE_TYPE.ACTIVE_QUEST_YANLONG:
            return(EM_STAGE_STAGETYPE.ACTIVE);

        case EM_STAGE_TYPE.BOSS_SHOUWANGZHE:
        case EM_STAGE_TYPE.BOSS_CHUANSHUO:
            return(EM_STAGE_STAGETYPE.BOSS);

        default:
            return(EM_STAGE_STAGETYPE.NONE);
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 获得当前章节中指定难度第一个关卡;
    /// </summary>
    /// <param name="chapterT"></param>
    /// <param name="difficultType"></param>
    /// <returns></returns>
    public static int GetFirstStageIdInTheChapter(ChapterinfoTemplate chapterT, EM_STAGE_DIFFICULTTYPE difficultType)
    {
        if (chapterT == null)
        {
            throw new Exception("Null Refrence Exception");
        }

        int[] stageIds = chapterT.getStageID();

        if (stageIds == null || stageIds.Length <= 0)
        {
            return(-1);
        }

        int temp = -1;

        for (int i = 0, j = stageIds.Length; i < j; i++)
        {
            temp = stageIds[i];
            StageTemplate stageT = GetStageTemplateById(temp);
            if (stageT == null)
            {
                continue;
            }

            //只选主线;
            EM_STAGE_STAGETYPE stageType = GetStageStageType(stageT);
            if (stageType != EM_STAGE_STAGETYPE.MAIN)
            {
                continue;
            }

            EM_STAGE_DIFFICULTTYPE type = GetStageDifficultType(stageT);

            if (type == difficultType)
            {
                return(temp);
            }
        }

        return(-1);
    }
Exemplo n.º 3
0
    /// <summary>
    /// 获得玩家当前章节可以进入的最后(按id排序)一个关卡信息;
    /// </summary>
    /// <param name="chapterId"></param>
    /// <returns></returns>
    public static int GetLastStageIdInTheChapter(ChapterinfoTemplate chapterT, EM_STAGE_DIFFICULTTYPE difficultType)
    {
        List <StageData> bs = ObjectSelf.GetInstance().BattleStageData.GetStageDataListByChapterId(chapterT.getId());

        if (bs == null || bs.Count <= 0)
        {
            return(-1);
        }

        int lastStageId = -1;
        int temp        = -1;

        for (int i = 0; i < bs.Count; i++)
        {
            temp = bs[i].m_StageID;
            StageTemplate stageT = GetStageTemplateById(temp);
            if (stageT == null)
            {
                continue;
            }

            //只选主线;
            EM_STAGE_STAGETYPE stageType = GetStageStageType(stageT);
            if (stageType != EM_STAGE_STAGETYPE.MAIN)
            {
                continue;
            }

            EM_STAGE_DIFFICULTTYPE type = GetStageDifficultType(stageT);

            if (type == difficultType)
            {
                lastStageId = temp;
            }
        }

        return(lastStageId);
    }
Exemplo n.º 4
0
    /// <summary>
    /// 根据难度+关卡类型 = 表格中的关卡类型;
    /// </summary>
    /// <param name="difficultType"></param>
    /// <param name="stageType"></param>
    /// <returns></returns>
    public static EM_STAGE_TYPE GetStageType(EM_STAGE_DIFFICULTTYPE difficultType, EM_STAGE_STAGETYPE stageType)
    {
        switch (stageType)
        {
        case EM_STAGE_STAGETYPE.MAIN:
        {
            switch (difficultType)
            {
            case EM_STAGE_DIFFICULTTYPE.NONE:
                break;

            case EM_STAGE_DIFFICULTTYPE.NORMAL:
                return(EM_STAGE_TYPE.MAIN_QUEST1);

            case EM_STAGE_DIFFICULTTYPE.HARD:
                return(EM_STAGE_TYPE.MAIN_QUEST2);

            case EM_STAGE_DIFFICULTTYPE.HARDEST:
                return(EM_STAGE_TYPE.MAIN_QUEST3);

            default:
                break;
            }
        }
        break;

        case EM_STAGE_STAGETYPE.SIDE:
            return(EM_STAGE_TYPE.SIDE_QUEST);

        case EM_STAGE_STAGETYPE.SPECIAL:
            return(EM_STAGE_TYPE.SPEC_QUEST);

        default:
            break;
        }
        return(EM_STAGE_TYPE.NONE);
    }
Exemplo n.º 5
0
    public void SetTemplateData(StageTemplate data, EM_STAGE_STAGETYPE flag = EM_STAGE_STAGETYPE.NONE)
    {
        mStageT = data;

        if (data == null)
        {
            mGo.SetActive(false);
            return;
        }

        //如果是神秘商店特殊处理;
        if (flag == EM_STAGE_STAGETYPE.MYSTERIOUS)
        {
            m_TitleTxt.text = "";

            mStarsImg[0].gameObject.SetActive(false);
            mStarsImg[1].gameObject.SetActive(false);
            mStarsImg[2].gameObject.SetActive(false);

            mIsNewImg.gameObject.SetActive(false);

            //这里data.m_stageid存的是场景id;
            ChapterinfoTemplate chapterT = StageModule.GetChapterinfoTemplateById(data.m_stageid);
            float[]             val      = chapterT.getShopposition();
            Vector2             pos1     = new Vector2(val[0], val[1]);
            mGo.transform.localPosition = pos1;

            return;
        }

        //不是神秘商店另外处理;
        int chapterId = DataTemplate.GetInstance().GetChapterIdByStageT(data);

        EM_STAGE_TYPE type = StageModule.GetStageType(data);

        switch (type)
        {
        case EM_STAGE_TYPE.MAIN_QUEST1:
        case EM_STAGE_TYPE.MAIN_QUEST2:
        case EM_STAGE_TYPE.MAIN_QUEST3:
            //m_TitleTxt.text = string.Format("{0}-{1}", chapterId, StageModule.GetStageNumInChapter(data));
            m_TitleTxt.text = StageModule.GetStageNumInChapter(data).ToString();
            break;

        case EM_STAGE_TYPE.SIDE_QUEST:
            m_TitleTxt.text = GameUtils.getString("stage_type_branch");
            break;

        //case EM_STAGE_TYPE.SPEC_QUEST:
        // break;
        //case EM_STAGE_TYPE.ACTIVE_QUEST_DIJING:
        // break;
        //case EM_STAGE_TYPE.ACTIVE_QUEST_YANLONG:
        // break;
        //case EM_STAGE_TYPE.LIMIT_TEST:
        // break;
        //case EM_STAGE_TYPE.BOSS_SHOUWANGZHE:
        // break;
        //case EM_STAGE_TYPE.BOSS_CHUANSHUO:
        // break;
        default:
            m_TitleTxt.text = "";
            break;
        }

        //位置;
        Vector2 pos = new Vector2(data.getStageiconposition()[0], data.getStageiconposition()[1]);

        mGo.transform.localPosition = pos;
        m_Icon.sprite = UIResourceMgr.LoadSprite(common.defaultPath + data.m_stageicon);
        m_Icon.SetNativeSize();
        float delta = (float)(data.getStageIconScale()) / 100f;

        m_Icon.transform.localScale = Vector3.one * delta;
        //是否已开启;
        if (ObjectSelf.GetInstance().BattleStageData.IsStageOpen(data.m_stageid))
        {
            GameUtils.SetBtnSpriteGrayState(m_IconBtn, false);
            //星星;
            int starNum = 0;
            if (ObjectSelf.GetInstance().BattleStageData.IsCopyScenePass(data.m_stageid, out starNum))
            {
                for (int i = 0; i < MaxStars; i++)
                {
                    mStarsImg[i].gameObject.SetActive(false);
                }
                //switch (starNum)
                //{
                //    case 0:
                //        mStarsImg[0].gameObject.SetActive(false);
                //        mStarsImg[1].gameObject.SetActive(false);
                //        mStarsImg[2].gameObject.SetActive(false);
                //        break;
                //    case 1:
                //        mStarsImg[0].gameObject.SetActive(true);
                //        mStarsImg[1].gameObject.SetActive(false);
                //        mStarsImg[2].gameObject.SetActive(false);
                //        break;
                //    case 2:
                //        mStarsImg[0].gameObject.SetActive(false);
                //        mStarsImg[1].gameObject.SetActive(true);
                //        mStarsImg[2].gameObject.SetActive(true);
                //        break;
                //    case 3:
                //        mStarsImg[0].gameObject.SetActive(true);
                //        mStarsImg[1].gameObject.SetActive(true);
                //        mStarsImg[2].gameObject.SetActive(true);
                //        break;
                //    default:
                //        mStarsImg[0].gameObject.SetActive(false);
                //        mStarsImg[1].gameObject.SetActive(false);
                //        mStarsImg[2].gameObject.SetActive(false);
                //        break;
                //}
                if (starNum > 0 && starNum <= 3)
                {
                    mStarsImg[starNum - 1].gameObject.SetActive(true);
                }
            }
            else
            {
                mStarsImg[0].gameObject.SetActive(false);
                mStarsImg[1].gameObject.SetActive(false);
                mStarsImg[2].gameObject.SetActive(false);
            }
        }
        else
        {
            GameUtils.SetBtnSpriteGrayState(m_IconBtn, true);
            mStarsImg[0].gameObject.SetActive(false);
            mStarsImg[1].gameObject.SetActive(false);
            mStarsImg[2].gameObject.SetActive(false);
        }

        //是否限制次数关卡;
        if (data.m_limittime > 0)
        {
            StageData sd = ObjectSelf.GetInstance().BattleStageData.GetStageDataByStageId(data.m_stageid);

            int useTimes = sd == null ? 0 : sd.m_FightSum;

            mRemindTimes.text = (data.m_limittime - useTimes).ToString();

            mRemindTitle.gameObject.SetActive(true);
        }
        else
        {
            mRemindTitle.gameObject.SetActive(false);
        }

        //是否是新开启的关卡;
        UpdateIsNew();
    }