Beispiel #1
0
    private void SetStartDialogSpecial(SpecialStage specialStage)
    {
        // Show the Quest Dialog if this is the first time playing the a level in the special stage
        string key = string.Format("{0}_{1}", SharedResources.SpecialStageStartQuestDialogShownKey, specialStage.StageId);

        bool shown = PlayerPrefsFast.GetBool(key, false);

        if (!shown)
        {
            this.CompletedImage.SetActive(false);
            this.gameObject.SetActive(true);

            foreach (GameObject dialog in this.StageMapping)
            {
                dialog.SetActive(false);
            }

            foreach (IdkyKeyValuePairGameObject specialStageMapping in this.SpecialStageMappings)
            {
                specialStageMapping.GetValue().SetActive(specialStageMapping.GetKey().Equals(specialStage.StageId));
            }

            PlayerPrefsFast.SetBool(key, true);
            PlayerPrefsFast.Flush();
        }
    }
Beispiel #2
0
    public void UpdatePerSec()
    {
        if (mStageT == null)
        {
            return;
        }

        //是不是神秘商店;
        if (StageModule.IsMysteriousShop(mStageT.m_stageid))
        {
            SpecialStage ss = ObjectSelf.GetInstance().BattleStageData.GetSpecialStageData();

            if (ss.m_Time <= 0)
            {
                mGo.SetActive(false);
            }

            return;
        }

        switch (StageModule.GetStageStageType(mStageT))
        {
        case EM_STAGE_STAGETYPE.MAIN:
        case EM_STAGE_STAGETYPE.SIDE:
            break;

        case EM_STAGE_STAGETYPE.MYSTERIOUS:
            //神秘关卡计时;

            break;

        case EM_STAGE_STAGETYPE.SPECIAL:
            //特殊关卡计时;
            SpecialStage ss = ObjectSelf.GetInstance().BattleStageData.GetSpecialStageData();

            if (ss.m_Time <= 0)
            {
                mGo.SetActive(false);
            }
            break;

        case EM_STAGE_STAGETYPE.ACTIVE:
            break;

        case EM_STAGE_STAGETYPE.BOSS:
            break;

        case EM_STAGE_STAGETYPE.LITMIT_TIMES:
            break;

        default:
            break;
        }
    }
Beispiel #3
0
 public void SetStartDialog(int level, int levelsPerStage, bool isSpecialMode, SpecialStage specialStage)
 {
     if (isSpecialMode)
     {
         this.SetStartDialogSpecial(specialStage);
     }
     else
     {
         this.SetStartDialogNormal(level, levelsPerStage);
     }
 }
Beispiel #4
0
    private void SetEndDialogSpecial(SpecialStage specialStage)
    {
        // Show the Quest Dialog if all the special stages are beaten
        string key = string.Format("{0}_{1}", SharedResources.SpecialStageEndQuestDialogShownKey, specialStage.StageId);

        bool shown = PlayerPrefsFast.GetBool(key, false);

        if (!shown)
        {
            bool hasLevelIncomplete = false;

            foreach (int levelInStage in specialStage.LevelMapping.Keys)
            {
                string levelKey = string.Format(
                    "{0}_{1}_{2}", SharedResources.TimesLevelPlayedToCompletePrefix, specialStage.StageId, levelInStage);

                int timesToCompleteLevel = PlayerPrefsFast.GetInt(levelKey, 0);

                // Check if the level has been completed yet
                if (timesToCompleteLevel == 0)
                {
                    hasLevelIncomplete = true;
                    break;
                }
            }

            if (!hasLevelIncomplete)
            {
                this.CompletedImage.SetActive(true);
                this.gameObject.SetActive(true);

                foreach (GameObject dialog in this.StageMapping)
                {
                    dialog.SetActive(false);
                }

                foreach (IdkyKeyValuePairGameObject specialStageMapping in this.SpecialStageMappings)
                {
                    specialStageMapping.GetValue().SetActive(specialStageMapping.GetKey().Equals(specialStage.StageId));
                }

                PlayerPrefsFast.SetBool(key, true);
                PlayerPrefsFast.Flush();
            }
        }
    }
    public void SetStage(
        LevelSelectCreator levelSelect,
        SpecialStage stage,
        GameObject stageSelectActivateTarget,
        GameObject stageSelectDeactivateTarget,
        PurchaseStage purchaseStage,
        GameObject rewardPopUp)
    {
        this.specialStage       = stage;
        this.Label.text         = this.specialStage.Description;
        this.name               = this.specialStage.StageId;
        this.levelSelectCreator = levelSelect;
        this.stageSelectOverrideActivateTarget   = stageSelectActivateTarget;
        this.stageSelectOverrideDeactivateTarget = stageSelectDeactivateTarget;
        this.purchaseStagePopUp = purchaseStage;
        this.rewardedOnlyPopUp  = rewardPopUp;

        this.SetSpecialStageCompletedIcons();
    }
Beispiel #6
0
    private void CreateSpecialStageButtons()
    {
        UIPanel uiPanel     = this.StageSelectScrollViewer.GetComponent <UIPanel>();
        Vector2 viewSize    = uiPanel.GetViewSize();
        int     buttonWidth = (int)viewSize.x - this.StageSelectButtonTrimSize;

        foreach (VirtualGood virtualGood in ShopManager.VirtualGoods)
        {
            SpecialStage readSpecialStage = SpecialStageXmlIo.ReadSpecialStage(virtualGood.ItemId);

            GameObject item = NGUITools.AddChild(this.StageSelectGrid.gameObject, this.SpecialStageSelectButton);

            SpecialStageSelectButton stageSelectButton = item.GetComponent <SpecialStageSelectButton>();

            if (stageSelectButton != null)
            {
                stageSelectButton.SetStage(
                    this,
                    readSpecialStage,
                    this.StageSelectOverrideActivateTarget,
                    this.StageSelectOverrideDeactivateTarget,
                    this.PurchaseStagePopUp,
                    this.RewardOnlyStagePopUp);
            }

            UIWidget uiWidget = item.GetComponent <UIWidget>();

            if (uiWidget != null)
            {
                uiWidget.SetDimensions(buttonWidth, uiWidget.height);
            }
        }

        this.StageSelectGrid.enabled       = true;
        this.StageSelectGrid.repositionNow = true;

        UIScrollView scrollView = this.StageSelectScrollViewer.GetComponent <UIScrollView>();

        scrollView.enabled = true;
        scrollView.ResetPosition();

        this.refreshGrid = true;
    }
Beispiel #7
0
    private void Start()
    {
        foreach (UILabel dayTextLabel in this.DayTextLabels)
        {
            dayTextLabel.text = string.Format("Day {0}", this.Day);
        }

        foreach (UILabel rewardTextLabel in this.RewardTextLabels)
        {
            switch (this.Reward)
            {
            case RewardType.Token:
                rewardTextLabel.text = string.Format("{0} Tokens", this.RewardCount);
                break;

            case RewardType.Stage:
                SpecialStage rewardStage = SpecialStageXmlIo.ReadSpecialStage(this.StageId);
                rewardTextLabel.text = rewardStage.Description;
                break;
            }
        }
    }
Beispiel #8
0
    //刷新所有的levelitem;
    void UpdateLevels(ChapterinfoTemplate chapterT)
    {
        //获取当前章节所有的关卡列表;
        stageDatas = new List <StageTemplate>();
        //章节的所有普通关卡--chapterInfo表中所有的关卡表;
        //主线;
        switch (DifficultType)
        {
        case EM_STAGE_DIFFICULTTYPE.NONE:
            break;

        case EM_STAGE_DIFFICULTTYPE.NORMAL:
            List <StageTemplate> datas1 = StageModule.GetStageDatas(chapterT, EM_STAGE_TYPE.MAIN_QUEST1);
            stageDatas = StageModule.AddList(stageDatas, datas1);
            //支线;
            List <StageTemplate> datas4 = StageModule.GetStageDatas(chapterT, EM_STAGE_TYPE.SIDE_QUEST);
            stageDatas = StageModule.AddList(stageDatas, datas4);
            break;

        case EM_STAGE_DIFFICULTTYPE.HARD:
            List <StageTemplate> datas2 = StageModule.GetStageDatas(chapterT, EM_STAGE_TYPE.MAIN_QUEST2);
            stageDatas = StageModule.AddList(stageDatas, datas2);
            break;

        case EM_STAGE_DIFFICULTTYPE.HARDEST:
            List <StageTemplate> datas3 = StageModule.GetStageDatas(chapterT, EM_STAGE_TYPE.MAIN_QUEST3);
            stageDatas = StageModule.AddList(stageDatas, datas3);
            break;

        default:
            break;
        }
        //章节的特殊关卡;
        SpecialStage ss = ObjectSelf.GetInstance().BattleStageData.GetSpecialStageData();

        if (ss.m_StageID > 0 && (ss.m_BattlePieceNum == mCurChapterId))
        {
            //特殊关卡;
            if (StageModule.IsStageTemplate(ss.m_StageID))
            {
                StageTemplate st = StageModule.GetStageTemplateById(ss.m_StageID);
                stageDatas.Add(st);
            }
            //神秘商店;
            else
            {
                //构造一个神秘商店;
                StageTemplate st = new StageTemplate();
                st.m_stageid        = ss.m_BattlePieceNum; //章节id;
                st.m_mysteriousShop = ss.m_StageID;        //神秘商店表格id;
                st.m_CustomData     = true;
                stageDatas.Add(st);
            }
        }

        int adder = stageDatas.Count - mLevelItems.Count;

        if (adder > 0)
        {
            CreateLevels(adder);
        }

        for (int i = 0; i < mLevelItems.Count; i++)
        {
            if (i >= stageDatas.Count)
            {
                mLevelItems[i].SetTemplateData(null);
            }
            else
            {
                if (stageDatas[i].m_CustomData != null)
                {
                    mLevelItems[i].SetTemplateData(stageDatas[i], EM_STAGE_STAGETYPE.MYSTERIOUS);
                }
                else
                {
                    mLevelItems[i].SetTemplateData(stageDatas[i]);
                }

                mLevelItems[i].SetActive(true);
            }

            //设置选中状态;
            mLevelItems[i].SetSelectState(mCurLevelId);
        }
    }
Beispiel #9
0
 public SSpecialSolo(SpecialStage specialStage)
 {
     this.specialStage = specialStage;
 }
Beispiel #10
0
    public void SelectStage(SpecialStage specialStage)
    {
        this.GameTable.SpecialStage = specialStage;
        this.RemoveTableChildren();
        this.LevelSelectTable.Reposition();

        // Fudge Factor so it doesn't use up the whole space, just most of it
        const float FudgeFactor = .9f;

        // Set the number of columns
        int rows = specialStage.LevelMapping.Mapping.Count / this.NumberOfColumns;

        this.LevelSelectTable.columns = this.NumberOfColumns;

        // Set the padding
        this.LevelSelectTable.padding = new Vector2(this.Padding, this.Padding);

        // Calculate what is available for width and height
        float columnPadding   = ((this.NumberOfColumns + 1) * this.Padding);
        float rowPadding      = ((rows + 1) * this.Padding);
        float availableWidth  = (this.LevelSelectTableLimits.localSize.x * FudgeFactor) - columnPadding;
        float availableHeight = (this.LevelSelectTableLimits.localSize.y * FudgeFactor) - rowPadding;

        // Choose a button size based on the smaller of the two
        float width      = availableWidth / this.NumberOfColumns;
        float height     = availableHeight / rows;
        float buttonSize = Math.Min(width, height);

        for (int i = 1; i <= specialStage.LevelMapping.Mapping.Count; i++)
        {
            GameObject item = NGUITools.AddChild(this.LevelSelectTable.gameObject, this.SpecialStageLevelSelectButton);

            UIWidget uiWidget = item.GetComponent <UIWidget>();

            if (uiWidget != null)
            {
                uiWidget.SetDimensions((int)buttonSize, (int)buttonSize);
            }

            SpecialStageLevelSelectButton levelSelectButton = item.GetComponent <SpecialStageLevelSelectButton>();

            if (levelSelectButton != null)
            {
                levelSelectButton.SetLevel(this.GameTable, specialStage.StageId, i);

                foreach (ActivateOnClick levelSelectActivateOnClick in levelSelectButton.ActivateOnClick)
                {
                    if (levelSelectActivateOnClick != null)
                    {
                        levelSelectActivateOnClick.ActivateTarget   = this.GameBoard;
                        levelSelectActivateOnClick.DeactivateTarget = this.gameObject;
                    }
                }
            }

            this.LevelSelectTable.children.Add(item.transform);
        }

        // Center the table
        float heightOffset = (rowPadding + this.Padding + (buttonSize * rows)) / 2;
        float widthOffset  = -(columnPadding + this.Padding + (buttonSize * this.NumberOfColumns)) / 2;

        this.LevelSelectTable.transform.localPosition = new Vector3(widthOffset, heightOffset + this.SelectLevelVerticalOffset);

        this.LevelSelectTable.enabled       = true;
        this.LevelSelectTable.repositionNow = true;
    }