Exemplo n.º 1
0
    public void MissionLoad(bool isHideTown = false)
    {
        //UIBasePanel basePanel = UIMgr.GetUIBasePanel("UIPanel/TownPanel");

        if (isHideTown)
        {
            UIBasePanel panel = UIMgr.GetTownBasePanel();
            if (panel != null)
            {
                panel.Hide();
            }
            //(basePanel as TownPanel).Hide();
        }

        //미션데이터 초기화
        _LowDataMgr.instance.InitializeMission();

        /*
         * {
         *  UIBasePanel panel = UIMgr.GetTownBasePanel();
         *  if (panel != null)
         *      (panel as TownPanel).MissionListSetting();
         * }
         */
    }
Exemplo n.º 2
0
    static public void setHudPanelVisible(bool b)
    {
        UIBasePanel hudPanel = GetHUDBasePanel();

        if (hudPanel != null)
        {
            if (b)
            {
                hudPanel.Show();
            }
            else
            {
                hudPanel.Hide();
            }
        }
    }
    /// <summary> 현재 팝업이 삭제 될때 호출 UIMgr </summary>
    public void OnHideTopMenu()
    {
        if (TutoSupport != null && !TutoSupport.enabled && UIMgr.instance.IsActiveTutorial)//스킵이 가능한 튜토리얼일것이다.
        {
            if (SceneManager.instance.CurTutorial != TutoSupport.TutoType)
            {
                UIBasePanel basePanel = UIMgr.GetUIBasePanel("UIPopup/TutorialPopup");
                if (basePanel != null)
                {
                    SceneManager.instance.CurTutorial = SceneManager.instance.CurTutorial;//다음으로 넘김.
                    basePanel.Hide();
                }
            }
        }

        OpenEvent.SetEvent(false, () => {
            gameObject.SetActive(false);
        });
    }
    void OnDisable()
    {
        if (!UIMgr.instance.IsActiveTutorial || !IsEnable || IsOnClick || SceneManager.instance._CurTutorial != TutoType || SceneManager.instance.IsClearTutorial(TutoType))
        {
            return;
        }

        Quest.MainTutorialInfo info = _LowDataMgr.instance.GetLowDataFirstMainTutorial((uint)TutoType, (byte)SortId);
        if (info.ProgressType != 1)
        {
            return;
        }

        SceneManager.instance.CurTutorial = TutoType;//다음으로 넘김.
        UIBasePanel basePanel = UIMgr.GetUIBasePanel("UIPopup/TutorialPopup");

        if (basePanel != null && !basePanel.IsHidePanel)
        {
            basePanel.Hide();
        }
    }
Exemplo n.º 5
0
    protected override void InitUI()
    {
        base.InitUI();

        //인게임 HUD패널 생성
        HudPanel = UIMgr.Open("UIPanel/InGameHUDPanel").GetComponent <InGameHUDPanel>();

        if (TutorialGameState.IsTutorial)
        {
            //ChatPopup chat = UIMgr.OpenChatPopup();
            UIBasePanel chat = UIMgr.GetUIBasePanel("UIPopup/ChatPopup");
            if (chat != null)
            {
                chat.Hide();
            }

            TutorialUI = UIMgr.OpenTutorialPopup((int)TutorialType.INGAME);
            //OnTutorial((InGameTutorialType)1);
        }

        //	   Debug.LogWarning("2JW : InitUI() In - " + HudPanel);
    }
Exemplo n.º 6
0
    public IEnumerator Hide(UIBasePanel panel)
    {
        yield return(panel.Hide());

        Remove(panel);
    }
Exemplo n.º 7
0
    IEnumerator StateEvent(_STATE State, _ACTION Action)
    {
        WaitForSeconds waitfor = new WaitForSeconds(0.1f);

        while (true)
        {
            //< UI관련 로딩이 끝났을때까지 대기
            if (TownState.IsUILoad && TownState.IsMapLoad)// && StructureMgr.instance.IsLoadSuccess)
            {
                yield return(waitfor);

                break;
            }

            yield return(null);
        }

        NetData.instance.bEventPopupCheck = false;
        //yield return waitfor;
        switch (Action)
        {
        case _ACTION.GO_TOWN:    //마을로 이동
            //UIMgr.OpenTown();
            //yield return waitfor;

            //yield return waitfor;
            break;

        case _ACTION.GO_MAP:    //해당 모드에 맞는 UI띄워준다.
            if (State == _STATE.ARENA_GAME)
            {
                UIMgr.OpenArenaPanel();
            }
            else if (State == _STATE.FREEFIGHT_GAME)
            {
                UIMgr.OpenDogFight();
            }
            else if (State == _STATE.COLOSSEUM)
            {
                UIMgr.OpenColosseumPanel(0);
            }
            //else if (State == _STATE.MULTI_RAID)
            //    UIMgr.OpenSpecial();
            //else if (State == _STATE.RAID_GAME)
            //    UIMgr.OpenSpecial();
            //else if (State == _STATE.SPECIAL_GAME)
            //    UIMgr.OpenSpecial();
            else if (State == _STATE.MULTI_RAID ||
                     State == _STATE.RAID_GAME ||
                     State == _STATE.SPECIAL_GAME)
            {
                UIMgr.OpenDungeonPanel();
            }
            else if (State == _STATE.TOWER_GAME)
            {
                UIMgr.OpenTowerPanel();
            }
            else
            {
                UIMgr.OpenChapter(null);
            }

            UIBasePanel townPanel = UIMgr.GetTownBasePanel();
            if (townPanel != null)
            {
                townPanel.Hide();
            }

            //UiOpenType = UI_OPEN_TYPE.NONE;
            break;

        default:    //혹시 모를 예외처리. 원하는 처리 정의 해줘야함.
            //UIMgr.OpenTown();
            //yield return waitfor;
            Debug.LogError(string.Format("UnDefined type {0} please defined", Action));
            break;
        }

        //< 로비 액션이 끝났을때 처리할것들
        yield return(new WaitForSeconds(0.1f));

        ShowLoadingTipPanel(false);
        IsYieldAction = false;
        NetData.instance.bEventPopupCheck = true;

        yield return(null);
    }
Exemplo n.º 8
0
    public void Prev()
    {
        //if (ListUIPanel.Count < 2)
        //{
        //    OnPopupToastPanel("숨겨진 패널이 없습니다");
        //    return;
        //}

        UIBasePanel hidePanel = null;
        UIBasePanel showPanel = null;

        int hideIdx = ListUIPanel.FindIndex(panel => panel._ePanelType != ePanelState.Ignore && _CurUIBasePanel.name == panel.name);

        if (hideIdx >= 0 && ListUIPanel.Count > hideIdx)
        {
            hidePanel = ListUIPanel[hideIdx];
        }

        // 뒤로 가기 막기
        if (hidePanel is InGameHUDPanel)
        {
            return;
        }

        if (hidePanel is MainPanel || hidePanel is TitlePanel)
        {
            OpenPopup(DataMgr.Instance.GetLocal(5), DataMgr.Instance.GetLocal(6), delegate()
            {
                Application.Quit();
            }, delegate() { }, DataMgr.Instance.GetLocal(3), DataMgr.Instance.GetLocal(4));
            return;
        }

        int showIdx = ListUIPanel.FindIndex(hideIdx + 1, panel => panel._ePanelType != ePanelState.Ignore);

        if (showIdx >= 0 && ListUIPanel.Count > showIdx)
        {
            showPanel = ListUIPanel[showIdx];
        }

        if (hidePanel != null)
        {
            switch (hidePanel.Prev())
            {
            case PrevType.Not:
                break;

            case PrevType.OnlyHide:
            {
                hidePanel.Hide();
            }
            break;

            case PrevType.Hide:
            {
                if (showPanel != null)
                {
                    _CurUIBasePanel = showPanel;
                    showPanel.LateInit();
                }
                hidePanel.Hide();
            }
            break;

            case PrevType.OnlyClose:
            {
                hidePanel.Close();
            }
            break;

            case PrevType.Close:
            {
                if (showPanel != null)
                {
                    _CurUIBasePanel = showPanel;
                    showPanel.LateInit();
                }
                hidePanel.Close();
            }
            break;
            }
        }
    }
Exemplo n.º 9
0
    /*
     * /// <summary>
     * /// 모든 UI OFF
     * /// </summary>
     * static public void UIShutDown()
     * {
     *  List<UIBasePanel> Panels = UIMgr.instance.FindAllInShowing<UIBasePanel>();
     *  foreach (UIBasePanel panel in Panels)
     *  {
     *      if (panel.ShowOption == ShowOption.Ignore)
     *          continue;
     *
     *      if (panel.Popup)
     *          continue;
     *
     *      panel.Hide();
     *  }
     * }
     */
    /// <summary>
    /// 안드로이드, PC에서 뒤로가기 처리함수.
    /// 아직 좀더 만져줘야함. 주석처리 되어 있는건 기존의 것.(아직 삭제하면 않이됩니다.)
    /// 사용 방식은 PrevReturnType에 맞게 Close, Hide를 호출함. Not일 경우 ShowingPanels등록되어 있는거 삭제만함.
    /// 설정은 코드에서 Prev재정의 하거나, Prefab에서 변경해주면됨.
    /// </summary>
    public void Prev(int depth = 1)
    {
        if (SceneManager.instance.IsShowStaticUI)
        {
            return;
        }

        for (int i = 0; i < depth; ++i)//depth는 무조건 1일 것이다.
        {
            int hideIdx = ShowingPanels.FindIndex(i, (basePanel) => basePanel.ShowOption != ShowOption.Ignore);
            if (hideIdx < 0)//-1 값이 나올 경우가 존제함. 예외처리.
            {
                continue;
            }

            UIBasePanel curPanel = ShowingPanels[hideIdx];
            if (!curPanel.gameObject.activeSelf)
            {
                if (depth == 1)
                {
                    depth += 1;
                }

                continue;
            }

            /*
             * if (curPanel.name.Contains("TownPanel") || curPanel.name.Contains("LoginPanel") )//(EndPanel != null && EndPanel == ShowingPanels[hideIdx])
             * {
             *  //시스템 종료 팝업
             *  AddPopup(2, Application.Quit, null, null);
             *      return;
             * }
             */
            //< 뒤로가기가 가능할시에만 처리
            //HideEvent, CloseEvent 함수에서 삭제 함수 호출함. 독특한 예외처리 필요치 않는 이상 신경안써도 됨.
            UIBasePanel hidePanel = ShowingPanels[hideIdx];
            switch (hidePanel.Prev())
            {
            //< 숨기기만 해줌
            case PrevReturnType.None:
            case PrevReturnType.Hide:
                hidePanel.Hide();
                break;

            case PrevReturnType.Close:
                hidePanel.Close();
                break;

            case PrevReturnType.Quit:
                if (hidePanel.Quit())
                {
                        #if UNITY_EDITOR
                    {
                        AddPopup(75, 74, 117, 76, 0, () => {
                            UnityEditor.EditorApplication.isPlaying = false;
                        });
                    }
                        #else
                    AddPopup(75, 74, 117, 76, 0, () => {
                        Application.Quit();
                    });
                        #endif
                }

                break;
            }
        }
    }
Exemplo n.º 10
0
    //해당 트리거를 체크하고 맞다면 다음 퀘스트로 이전/토크신을띄움
    public Quest.QuestInfo CheckSubQuest(QuestSubType subtype, uint questObject)
    {
        var enumerator = QuestList.GetEnumerator();

        while (enumerator.MoveNext())
        {
            Quest.QuestInfo questInfo = _LowDataMgr.instance.GetLowDataQuestData(enumerator.Current.Value.unTaskId);

            if (questInfo != null)
            {
                if (enumerator.Current.Value.unComplete != 1)
                {
                    //일단 토크만 처리
                    if (subtype == QuestSubType.NPCTALK)
                    {
                        if (questInfo.QuestType == (byte)QuestSubType.NPCTALK && questObject == questInfo.ParamId)
                        {
                            //체크상태가 맞음 QuestTalkSceneID을 활성화 종료시 SubQuestComplet(); 호출
                            //isNPC = false;
                            if (questInfo.QuestTalkSceneID != 0)
                            {
                                //퀘스트 대화씬 열고 그이후에나 종료
                                //UIMgr.OpenMissionPanel(enumerator.Current.Value.unTaskId);
                            }
                            else
                            {
                                //퀘스트 완료
                                QuestComplet(enumerator.Current.Value.unTaskId);
                            }

                            return(questInfo);
                        }
                    }
                    else if (subtype == QuestSubType.SINGLEGAMEPLAY)
                    {
                        if (questInfo.QuestType == (byte)QuestSubType.SINGLEGAMEPLAY && questObject == questInfo.ParamId)
                        {
                            //체크상태가 맞음 QuestTalkSceneID을 활성화 종료시 SubQuestComplet(); 호출
                            if (questInfo.QuestTalkSceneID != 0)
                            {
                                //UIMgr.OpenMissionPanel(enumerator.Current.Value.unTaskId);
                            }
                            else
                            {
                                QuestComplet(enumerator.Current.Value.unTaskId);
                            }
                            return(questInfo);
                        }
                    }
                    else if (subtype == QuestSubType.SINGLEGAMECLEAR)
                    {
                        if (questInfo.QuestType == (byte)QuestSubType.SINGLEGAMECLEAR && questObject == questInfo.ParamId)
                        {
                            //체크상태가 맞음 QuestTalkSceneID을 활성화 종료시 SubQuestComplet(); 호출
                            if (questInfo.QuestTalkSceneID != 0)
                            {
                                //UIMgr.OpenMissionPanel(enumerator.Current.Value.unTaskId);

                                if (TownState.TownActive)//소탕으로 클리어일 것이다.
                                {
                                    UIBasePanel chapterPanel = UIMgr.GetUIBasePanel("UIPanel/ChapterPanel");
                                    if (chapterPanel != null)
                                    {
                                        chapterPanel.Hide();
                                    }
                                }
                            }
                            else
                            {
                                QuestComplet(enumerator.Current.Value.unTaskId);
                            }
                            return(questInfo);
                        }
                    }
                }
            }
        }

        return(null);
    }
Exemplo n.º 11
0
    public override void Init()
    {
        base.Init();

        for (int i = 0; i < NoticeGo.Length; i++)
        {
            NoticeGo[i].SetActive(false);
        }

        NoticeDelay = new float[NoticeLbl.Length];
        for (int i = 0; i < NoticeLbl.Length; i++)
        {
            NoticeDelay[i]     = 1;
            NoticeLbl[i].color = new Color32(255, 255, 255, 0);
            NoticeLbl[i].text  = "";
        }

        UIHelper.CreateEffectInGame(NoticeGo[(int)NoticeType.Contents].transform.FindChild("Effect"), "Fx_UI_new_contents_01");
        EventDelegate.Set(NoticeGo[(int)NoticeType.Achiev].GetComponent <UIEventTrigger>().onClick,//업적페널 오픈.
                          delegate() {
            if (AchieveType <= 0 || !TownState.TownActive)
            {
                AchieveType    = 0;
                AchieveSubType = 0;
                AchieveLv      = 0;
                NoticeGo[(int)NoticeType.Achiev].SetActive(false);
                return;
            }

            NoticeGo[(int)NoticeType.Achiev].SetActive(false);
            //AchieveType = 0;
            AchieveSubType = 0;
            AchieveLv      = 0;
            if (uiMgr.IsActiveTutorial)    //튜토리얼중 무시한다.
            {
                return;
            }

            UIBasePanel check = uiMgr.GetCurPanel();
            if (check == null)
            {
                check = UIMgr.instance.GetSecondUI();
            }

            if (check == null)
            {
                return;
            }

            if (check.name.Contains("AchievePanel"))    //업적 페널에 있는데 업적이 갱신되서 클릭함 무시한다.
            {
                return;
            }

            if (check.name.Contains("TownPanel"))
            {
                check.Hide();
            }
            else
            {
                check.ObjectHide();
            }

            if (AchieveTabType == 0)
            {
                UIMgr.OpenAchievePanel(check, 0);
            }
            else
            {
                UIMgr.OpenAchievePanel(check, 1, (int)AchieveType);
            }

            if (_TownState != null && _TownState.MyHero != null)
            {
                _TownState.MyHero.ResetMoveTarget();
            }
        });

        for (int i = 0; i < GetMailSlotTf.Length; i++)
        {
            UIHelper.CreateInvenSlot(GetMailSlotTf[i].FindChild("root"));
        }

        EventDelegate.Set(NoticeGo[(int)NoticeType.Contents].transform.FindChild("Icon").GetComponent <UIEventTrigger>().onClick,
                          () => {
            NoticeGo[(int)NoticeType.Contents].SetActive(false);

            if (TownState.TownActive)
            {
                UIBasePanel basePanel = uiMgr.GetCurPanel();    //UIMgr.UIType.Default
                if (basePanel == null)
                {
                    basePanel = uiMgr.GetFirstUI();
                    if (basePanel == null)
                    {
                        basePanel = UIMgr.GetTownBasePanel();
                    }
                }

                if (basePanel != null)
                {
                    if (!basePanel.name.Contains("TownPanel"))
                    {
                        if (basePanel.ReturnType == PrevReturnType.Close)
                        {
                            basePanel.Close();
                        }
                        else
                        {
                            basePanel.Hide();
                        }
                    }
                    else if (!basePanel.IsHidePanel)
                    {
                        basePanel.OnSubTutorial();
                    }
                }
            }
            else
            {
                UIBasePanel resultPanel = UIMgr.GetUIBasePanel("UIPanel/ResultRewardStarPanel");
                if (resultPanel != null)
                {
                    (resultPanel as ResultRewardStarPanel).GotoTown();
                }
            }
        });
    }