예제 #1
0
    /// <summary>
    /// 스테이지 셋팅
    /// </summary>
    /// <param name="list">스테이지 정보 리스트</param>
    /// <param name="callBack">클릭시 호출될 콜백함수</param>
    void SetStage(List <ChapterPanel.DataStage> list, System.Action <ChapterPanel.DataStage> callBack)
    {
        IsLevelHard = list[0]._StageLowData.StageId >= 10000 ? true : false;

        for (int i = 0; i < StageObjs.Count; i++)
        {
            if (i >= list.Count)
            {
                continue;
            }

            Transform tf = StageObjs[i].transform;
            ChapterPanel.DataStage data = list[i];

            TweenAlpha tween;
            if (tf.FindChild("iconeff").gameObject.GetComponent <TweenAlpha>() == null)
            {
                tf.FindChild("iconeff").gameObject.AddComponent <TweenAlpha>();
            }
            tween = tf.FindChild("iconeff").gameObject.GetComponent <TweenAlpha>();

            tween.transform.gameObject.SetActive(false);

            //하드모드는 최초보상과 기본보상이존재..
            if (IsLevelHard)
            {
                GatchaReward.FixedRewardInfo basicInfo = _LowDataMgr.instance.GetFixedRewardItem(list[i]._StageLowData.FixedReward);
                GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(list[i]._StageLowData.FirstReward);

                if (basicInfo != null)
                {
                    BasickRewardSlot[i].SetLowDataItemSlot(basicInfo.ItemId, basicInfo.ItemCount);
                }
                if (firstInfo != null)
                {
                    FirstRewardSlot[i].SetLowDataItemSlot(firstInfo.ItemId, firstInfo.ItemCount);
                }

                GameObject fisrtRewardRecieve = tf.FindChild("FirstReward/Receive").gameObject;
                fisrtRewardRecieve.SetActive(list[i].State == 1);
            }



            Quest.QuestInfo quest = QuestManager.instance.GetCurrentQuest();
            if (quest != null) //현재 퀘스트가 모험입장쿠ㅔ인가?
            {
                if (quest.type == 1 || quest.type == 2)
                {
                    if (list[i].TableID == quest.ParamId)
                    {
                        tween.style = UITweener.Style.PingPong;
                        tween.from  = 0.2f;
                        tween.to    = 1f;
                        tween.transform.gameObject.SetActive(true);
                    }
                }
            }
            //클리어 등급 셋팅
            int childCount = tf.FindChild("ClearGrade").childCount;
            for (int j = 0; j < childCount; j++)
            {
                Transform gradeTf = tf.FindChild(string.Format("ClearGrade/{0}", j)).GetChild(0);
                if (gradeTf == null)
                {
                    break;
                }

                if (j < data.TotalClearGrade)
                {
                    gradeTf.gameObject.SetActive(true);
                }
                else
                {
                    gradeTf.gameObject.SetActive(false);
                }
            }

            ////스테이지 버튼 처리. 난이도 체크 확인하면 지우고 밑에걸로..
            bool isEnable = data.State != -1 ? true : false;

            tf.FindChild("icon_on").gameObject.SetActive(isEnable);
            tf.FindChild("icon_off").gameObject.SetActive(!isEnable);

            string  namePath = (isEnable ? "icon_on" : "icon_off") + "/name_d4";
            UILabel nameLbl  = tf.FindChild(namePath).GetComponent <UILabel>();
            nameLbl.text = VerticalText(data.StageName);

            UIEventTrigger uiTri = tf.GetComponent <UIEventTrigger>();
            if (uiTri == null)
            {
                continue;
            }

            EventDelegate.Set(uiTri.onClick, delegate() { callBack(data); });
        }
    }
예제 #2
0
    private List <QuestInfo> SubQuestList = new List <QuestInfo>(); //메인에 위치할 퀘스트 리스트

    //private ViewType CurViewType;

    public override void Init()
    {
        base.Init();

        EventDelegate.Set(BtnClose.onClick, Close);

        TabGroup.Initialize(OnClickTab);
        Empty.SetActive(false);

        //일단끄고시작
        GridTf[0].gameObject.SetActive(false);


        //메인or서브 퀘스트 찾기.
        var enumerator = QuestManager.instance.QuestList.GetEnumerator();

        while (enumerator.MoveNext())
        {
            Quest.QuestInfo questInfo = _LowDataMgr.instance.GetLowDataQuestData(enumerator.Current.Value.unTaskId);
            if (questInfo.type != 2)
            {
                continue;
            }

            SubQuestList.Add(enumerator.Current.Value);
        }

        DetailRewardPos[0] = MainDetailPop.transform.FindChild("Reward/gold").localPosition;
        DetailRewardPos[1] = MainDetailPop.transform.FindChild("Reward/power").localPosition;
        DetailRewardPos[2] = MainDetailPop.transform.FindChild("Reward/exp").localPosition;


        // 보상은 항상 있는게 아니기때문에 위치값을 저장해줘서 정렬해줌
        RewardPos[0] = CurMainQuestInfo.transform.FindChild("Reward/item").localPosition;
        RewardPos[1] = CurMainQuestInfo.transform.FindChild("Reward/gold").localPosition;
        RewardPos[2] = CurMainQuestInfo.transform.FindChild("Reward/exp").localPosition;


        //UIEventTrigger goldEtri = CurMainQuestInfo.transform.FindChild("Reward/gold").GetComponent<UIEventTrigger>();
        //EventDelegate.Set(goldEtri.onClick, delegate ()
        //{
        //UIMgr.OpenClickPopup(599000, CurMainQuestInfo.transform.FindChild("Reward/gold").transform.position);
        //});

        int subCount = SubQuestList.Count;//서브 셋팅

        for (int i = 0; i < subCount; i++)
        {
            Transform tf = Instantiate(GridTf[0].GetChild(0)) as Transform;
            tf.parent        = GridTf[0];
            tf.localPosition = Vector3.zero;
            tf.localScale    = Vector3.one;

            SetMainItem(tf, SubQuestList[i]);

            QuestInfo info = SubQuestList[i];
            EventDelegate.Set(tf.GetComponent <UIEventTrigger>().onClick, delegate() {
                //SetMainDetailPopup(info);
            });
        }

        QuestInfo curQuestInfo = QuestManager.instance.GetCurrentQuestInfo();

        if (curQuestInfo != null)
        {
            GridTf[0].gameObject.SetActive(true);
            SetMainItem(CurMainQuestInfo.transform, curQuestInfo);//메인 셋팅
            //EventDelegate.Set(GridTf[0].GetChild(0).GetComponent<UIEventTrigger>().onClick, delegate () {
            //    SetMainDetailPopup(curQuestInfo);
            //});

            GridTf[0].GetComponent <UIGrid>().repositionNow = true;
            CurMainQuestInfo.SetActive(true);
        }
        else
        {
            StartCoroutine("DelayCurMainQuest");
            CurMainQuestInfo.SetActive(false);
        }

        GridTf[1].gameObject.SetActive(false);

        //메인퀘스트 상세 팝업
        UIEventTrigger uiTriDetailClose = MainDetailPop.transform.FindChild("BtnClose").GetComponent <UIEventTrigger>();
        UIEventTrigger uiTriDetailFog   = MainDetailPop.transform.FindChild("fog").GetComponent <UIEventTrigger>();

        EventDelegate.Set(uiTriDetailClose.onClick, delegate() { MainDetailPop.SetActive(false); });
        EventDelegate.Set(uiTriDetailFog.onClick, delegate() { MainDetailPop.SetActive(false); });

        GameObject slotGo = UIHelper.CreateInvenSlot(MainDetailPop.transform.FindChild("Reward/item"));

        DetailItemSlot = slotGo.GetComponent <InvenItemSlotObject>();
        MainDetailPop.SetActive(false);

        OnClickTab(0);
    }
예제 #3
0
    /// <summary> 메인퀘스트 셋팅 함수 </summary>
    void SetMainItem(Transform tf, QuestInfo questInfo)
    {
        Quest.QuestInfo lowData = _LowDataMgr.instance.GetLowDataQuestData(questInfo.unTaskId);

        tf.FindChild("Title/Txt_title").GetComponent <UILabel>().text = lowData.Title;       //제목
        tf.FindChild("Detail/Txt_info").GetComponent <UILabel>().text = lowData.Description; //내용


        int count = 0;

        //아이템있다
        if (0 < lowData.rewardItem)
        {
            List <GatchaReward.FixedRewardInfo> infoList = _LowDataMgr.instance.GetFixedRewardItemGroupList(lowData.rewardItem);

            byte myClass = 1;

            //장비만 직업이다르므로
            if (infoList[0].Type == 12)
            {
                if (NetData.instance.GetUserInfo().GetCharIdx() == 12000)
                {
                    myClass = 2;
                }
                else if (NetData.instance.GetUserInfo().GetCharIdx() == 13000)
                {
                    myClass = 3;
                }
            }
            else
            {
                myClass = 99;
            }

            //내 직업과맞는걸 넣어줘라
            GatchaReward.FixedRewardInfo info = new GatchaReward.FixedRewardInfo();
            for (int i = 0; i < infoList.Count; i++)
            {
                if (infoList[i].ClassType != myClass)
                {
                    continue;
                }
                info = infoList[i];
            }

            tf.FindChild("Reward/item").localPosition = RewardPos[count++];
            InvenItemSlotObject slot = null;
            if (0 < tf.FindChild("Reward/item").childCount)
            {
                slot = tf.FindChild("Reward/item").GetChild(0).GetComponent <InvenItemSlotObject>();
            }
            else
            {
                GameObject go = UIHelper.CreateInvenSlot(tf.FindChild("Reward/item"));
                go.collider.enabled = false;
                slot = go.GetComponent <InvenItemSlotObject>();
            }

            slot.SetLowDataItemSlot(info.ItemId == 0 ? info.Type : info.ItemId, info.ItemCount);
            UIEventTrigger etri = tf.FindChild("Reward/item").GetComponent <UIEventTrigger>();
            EventDelegate.Set(etri.onClick, delegate()
            {
                //UIMgr.OpenClickPopup(info.ItemId, tf.FindChild("Reward/item").transform.position);
                UIMgr.OpenDetailPopup(this, info.ItemId);
            });

            tf.FindChild("Reward/item").gameObject.SetActive(true);
        }
        else
        {
            tf.FindChild("Reward/item").gameObject.SetActive(false);
        }

        if (SetRewardTf(tf.FindChild("Reward/gold"), lowData.rewardGold, false))
        {
            tf.FindChild("Reward/gold").localPosition = RewardPos[count++];
        }


        if (SetRewardTf(tf.FindChild("Reward/exp"), lowData.rewardExp, true))
        {
            tf.FindChild("Reward/exp").localPosition = RewardPos[count++];
        }



        if (QuestManager.instance.GetCurrentQuestInfo().unTaskId != questInfo.unTaskId)
        {
            bool isEndQuest = false, isReward = false, isGoto = false;
            if (questInfo.unComplete == 1)       //클리어
            {
                if (questInfo.unFetchBonus == 0) //미수령
                {
                    isReward = true;
                }
                else//수령
                {
                    isEndQuest = true;
                }
            }
            else if (lowData.value != 0)//미 클리어(진행중?)
            {
                isGoto = true;

                //tf.FindChild("slider/value").GetComponent<UILabel>().text = string.Format("{0} / {1}", questInfo.unTargetNum, lowData.value);
                //tf.FindChild("slider/filled").GetComponent<UISprite>().fillAmount = questInfo.unTargetNum / lowData.value;
            }

            //tf.FindChild("Clear").gameObject.SetActive(isEndQuest);
            tf.FindChild("BtnReward").gameObject.SetActive(isReward);
            //tf.FindChild("slider").gameObject.SetActive(isGoto);
            tf.FindChild("BtnGoto").gameObject.SetActive(isGoto);
        }
        else//진행중인 미션임. 이거는 버튼이 활성화 되지 않이함.
        {
            //tf.FindChild("Clear").gameObject.SetActive(false);
            tf.FindChild("BtnReward").gameObject.SetActive(false);
            //tf.FindChild("slider").gameObject.SetActive(false);
            tf.FindChild("BtnGoto").gameObject.SetActive(false);
        }
    }
예제 #4
0
    public void SearchNextQuest(uint QuestID)
    {
        //현재퀘스트의 다음퀘스틀 찾아서 신청하자
        Quest.QuestInfo quest = null;

        if (_LowDataMgr.instance.GetQuestData().QuestInfoDic.TryGetValue(QuestID, out quest))
        {
            //퀘스트를 찾았으면 다음퀘스트를 받자
            if (0 < quest.NextQuestId)
            {
                Quest.QuestInfo q = _LowDataMgr.instance.GetLowDataQuestData(quest.NextQuestId);
                if (q != null && q.LimitLevel <= _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.MaxLevel))

                {
                    if (q.LimitLevel <= NetData.instance.UserLevel)
                    {
                        QuestInfo questInfo = null;
                        if (QuestList.TryGetValue(quest.ID, out questInfo))
                        {
                            if (questInfo.unComplete == 1)
                            {
                                NetworkClient.instance.SendPMsgTaskReceiveTaskC(quest.NextQuestId);
                            }
                            else
                            {
                                NetworkClient.instance.SendPMsgTaskReceiveTaskC(quest.ID);
                            }
                        }
                        else
                        {
                            NetworkClient.instance.SendPMsgTaskReceiveTaskC(quest.NextQuestId);
                        }
                    }
                    else//레벨이 부족하여 진행을 할 수 없음.
                    {
                        UIBasePanel panel = UIMgr.GetTownBasePanel();
                        if (panel != null)
                        {
                            (panel as TownPanel).MissionListSetting();//q != null ? q.LimitLevel : (byte)0
                        }
                    }
                }
                else//최대래벨 넘어가는 퀘스트는 더이상 진행 없다.
                {
                    UIBasePanel panel = UIMgr.GetTownBasePanel();
                    if (panel != null)
                    {
                        (panel as TownPanel).MissionListSetting();
                    }
                }
            }
        }

        /*
         * //다음퀘스트를 찾는다-완료안된 퀘스트가 있을경우 찾지않는다 - 보상안받은것도 여기서 처리해아하나
         * //bool bUnCompletQuest = false;
         *
         * var enumerator = QuestList.GetEnumerator();
         * while (enumerator.MoveNext())
         * {
         *  if(enumerator.Current.Value.unComplete == 0)
         *  {
         *      //bUnCompletQuest = true;
         *      return;
         *  }
         * }
         *
         * //보상안받은거 일괄적으로 다 보상받기 - 원래라면 해당 NPC한테 가서 받아야할거같은데
         * enumerator = QuestList.GetEnumerator();
         * while (enumerator.MoveNext())
         * {
         *  if (enumerator.Current.Value.unComplete == 1 && enumerator.Current.Value.unFetchBonus == 0)
         *  {
         *      NetworkClient.instance.SendPMsgTaskFetchBonusC(enumerator.Current.Value.unTaskId);
         *      return;
         *  }
         * }
         *
         * //여기까지 왔으면 모든 퀘스트가 완료된 상태 - 가장 숫자가 큰 퀘스트 ID를 찾고 해당 퀘스트를 수령하자
         * uint maxQuestID = 0;
         * enumerator = QuestList.GetEnumerator();
         * while (enumerator.MoveNext())
         * {
         *  if (enumerator.Current.Value.unComplete == 1 && enumerator.Current.Value.unFetchBonus == 0)
         *  {
         *      if(maxQuestID < enumerator.Current.Value.unTaskId )
         *      {
         *          maxQuestID = enumerator.Current.Value.unTaskId;
         *      }
         *  }
         * }
         *
         * var quest_enumerator = _LowDataMgr.instance.GetQuestData().QuestInfoDic.GetEnumerator();
         * //돌면서 하나라도 큰 퀘스트를 받자 - 원래는 렙이나 다음퀘스트 체크를 해야함
         * while (quest_enumerator.MoveNext())
         * {
         *  if (quest_enumerator.Current.Value.ID < maxQuestID)
         *  {
         *      //큰거에서 바로 멈춤 퀘스트 시작
         *
         *  }
         * }
         */
    }
예제 #5
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);
    }
예제 #6
0
    public void NoticePop(NoticeType type, uint condition, string str, object obj)
    {
        Debug.Log(string.Format("<color=yellow>NoticePanel RunType={0}</color>", type));
        Transform typeTf    = NoticeGo[(int)type].transform;
        bool      notActive = false;

        switch (type)
        {
        case NoticeType.PowerUp:    //전투력
            NetData._UserInfo charInven = NetData.instance.GetUserInfo();
            if (charInven == null)
            {
                return;
            }

            int maxValue = (int)charInven.RefreshTotalAttackPoint(false);
            if (uiMgr.PrevAttack == maxValue)
            {
                return;
            }

            notActive = true;
            NoticeGo[(int)type].SetActive(true);

            _StatUpData.StatUpInit(uiMgr.PrevAttack, maxValue,
                                   StatUpLbl[0], typeTf.FindChild("effRoot"));

            int value = maxValue - uiMgr.PrevAttack;
            StatUpLbl[1].text = string.Format("{0}{1}[-]", value < 0 ? "[e84d29]" : "[FFFFFF]", value);

            uiMgr.PrevAttack = maxValue;
            break;

        case NoticeType.Achiev:    //업적

            string[] achievData = str.Split(',');
            AchieveType    = uint.Parse(achievData[0]);
            AchieveSubType = uint.Parse(achievData[1]);
            AchieveLv      = uint.Parse(achievData[2]);
            AchieveTabType = uint.Parse(achievData[3]);

            if (!TownState.TownActive)
            {
                return;
            }
            else
            {
                UIBasePanel gachaPanel = UIMgr.GetUIBasePanel("UIPanel/GachaPanel");
                if (gachaPanel != null && !(gachaPanel as GachaPanel).IsEndAni)
                {
                    return;
                }
            }

            notActive = true;
            break;

        case NoticeType.LevelUp:    //레벨업
            GameObject go = UIHelper.CreateEffectInGame(NoticeGo[(int)NoticeType.LevelUp].transform, "Fx_UI_levelup_01" + SystemDefine.LocalEff);
            Destroy(go, 2f);

            _LevelUpData.TimeInit(0, 2f);
            break;

        case NoticeType.Quest:    //퀘스트 클리어
            Quest.QuestInfo info = _LowDataMgr.instance.GetLowDataQuestData(condition);
            if (info == null)
            {
                return;
            }

            QuestLbl[0].text = info.Title;
            QuestLbl[1].text = info.LeftDescription;

            float            questDuration = 0;
            List <UITweener> tweenList     = UIHelper.FindComponents <UITweener>(typeTf);
            for (int i = 0; i < tweenList.Count; i++)
            {
                tweenList[i].ResetToBeginning();
                tweenList[i].PlayForward();
                if (questDuration < tweenList[i].delay + tweenList[i].duration)
                {
                    questDuration = tweenList[i].delay + tweenList[i].duration;
                }
            }

            _QuestData.TimeInit(0, questDuration);
            break;

        case NoticeType.Message:    //메세지
            string msg = null;
            if (0 < condition)
            {
                msg = _LowDataMgr.instance.GetStringCommon(condition);
            }
            else
            {
                msg = str;
            }

            for (int i = NoticeLbl.Length - 1; 0 < i; i--)
            {
                int arr = i - 1;
                NoticeLbl[i].color = NoticeLbl[arr].color;
                NoticeLbl[i].text  = NoticeLbl[arr].text;
                NoticeDelay[i]     = NoticeDelay[arr];
            }

            IsMsgUpdate        = true;
            NoticeDelay[0]     = 1;
            NoticeLbl[0].color = Color.white;
            NoticeLbl[0].text  = msg;
            break;

        case NoticeType.System:    //공지 시스템 메세지 처리
            MessageData systemData = new MessageData();
            systemData.MsgInit(str, SystemPos.duration + SystemPos.delay, SystemLbl, SystemPos);
            SystemList.Add(systemData);

            notActive = true;
            break;

        case NoticeType.Game:    //게임 알림(장비 습득 등) 메세지 처리
            MessageData gameData = new MessageData();
            gameData.MsgInit(str, GameOpenDuration + GameHideDuration + GameHideDelay, GameLbl, GameAlpha);
            gameData.SetAlphaData(GameOpenDuration, GameHideDuration, GameHideDelay);
            GameList.Add(gameData);

            notActive = true;
            break;

        case NoticeType.GetMailItem:    //우편함에서 얻은 아이템

            if (0 < condition)
            {
                Quest.QuestInfo lowData = _LowDataMgr.instance.GetLowDataQuestData(condition);

                if (0 < lowData.rewardGold)
                {
                    GetItemList.Add(new NetData.EmailAttachmentInfo((int)AssetType.Gold, (int)AssetType.Gold, lowData.rewardGold));
                }

                if (0 < lowData.rewardEnergy)
                {
                    GetItemList.Add(new NetData.EmailAttachmentInfo((int)AssetType.Energy, (int)AssetType.Energy, lowData.rewardEnergy));
                }

                if (0 < lowData.rewardExp)
                {
                    GetItemList.Add(new NetData.EmailAttachmentInfo((int)AssetType.Exp, (int)AssetType.Exp, lowData.rewardExp));
                }

                if (0 < lowData.rewardItem)
                {
                    GatchaReward.FixedRewardInfo gatcha = _LowDataMgr.instance.GetFixedRewardItem(lowData.rewardItem);
                    if (gatcha != null)
                    {
                        if (gatcha.ClassType != 99)
                        {
                            int classType = UIHelper.GetClassType(NetData.instance.GetUserInfo()._userCharIndex);
                            List <GatchaReward.FixedRewardInfo> gachaList = _LowDataMgr.instance.GetFixedRewardItemGroupList(lowData.rewardItem);
                            for (int i = 0; i < gachaList.Count; i++)
                            {
                                if (gachaList[i].ClassType != classType)
                                {
                                    continue;
                                }

                                GetItemList.Add(new NetData.EmailAttachmentInfo(gachaList[i].Type, gachaList[i].ItemId, gachaList[i].ItemCount));
                                break;
                            }
                        }
                        else
                        {
                            GetItemList.Add(new NetData.EmailAttachmentInfo(gatcha.Type, gatcha.ItemId, gatcha.ItemCount));
                        }
                    }
                }
            }
            else if (obj != null)
            {
                List <NetData.EmailAttachmentInfo> mailList = (List <NetData.EmailAttachmentInfo>)obj;
                GetItemList.AddRange(mailList);
            }

            if (GetItemList.Count <= 0)
            {
                return;
            }

            TempCoroutine.instance.RemoveKeyDelay("GetMailItem");
            SoundManager.instance.PlaySfxSound(eUISfx.UI_reward_popup, false);
            break;

        case NoticeType.GetItem:    //획득 아이템 연출.
            GetItemData data;
            data.IconId  = condition;
            data.IsShard = (bool)obj;
            GetUseItemList.Add(data);
            notActive = true;

            if (_GetItemData.IsStart)    //이미 시작중이라면.
            {
                //NoticeGo[(int)NoticeType.GetItem].SetActive(true);
                bool      create = false;
                Transform itemTf = null;
                if (GetUseItemList.Count - 1 < typeTf.childCount)
                {
                    itemTf = typeTf.GetChild(GetUseItemList.Count - 1);
                }
                else
                {
                    itemTf               = Instantiate(typeTf.GetChild(0)) as Transform;
                    itemTf.parent        = typeTf;
                    itemTf.localPosition = Vector3.zero;
                    itemTf.localScale    = Vector3.one;

                    create = true;
                }

                itemTf.gameObject.SetActive(true);

                float            delay   = 0;
                List <UITweener> tweener = UIHelper.FindComponents <UITweener>(itemTf);
                for (int j = 0; j < tweener.Count; j++)
                {
                    if (create)
                    {
                        tweener[j].delay += (GetUseItemList.Count - 1) * 0.05f;
                    }
                    if (delay < tweener[j].duration + tweener[j].delay)
                    {
                        delay = tweener[j].duration + tweener[j].delay;
                    }

                    tweener[j].ResetToBeginning();
                    tweener[j].PlayForward();
                }

                UISprite sp = itemTf.FindChild("icon").GetComponent <UISprite>();
                sp.spriteName = _LowDataMgr.instance.GetLowDataIcon(data.IconId);
                sp.atlas      = AtlasMgr.instance.GetLoadAtlas(data.IsShard ? LoadAtlasType.Shard : LoadAtlasType.UseItem);

                _GetItemData.TimeInit(0, delay);
            }
            break;

        case NoticeType.Contents:
            uint   locKey   = 0;
            string iconName = null;
            switch ((OpenContentsType)condition)
            {
            case OpenContentsType.Char:         //오픈연출타입	캐릭터
                iconName = "costume_btn";
                locKey   = 65;
                break;

            case OpenContentsType.Achiev:         //오픈연출타입	업적
                iconName = "achi_btn";
                locKey   = 247;
                break;

            case OpenContentsType.Benefit:         //오픈연출타입	혜택
                iconName = "benefit_btn";
                locKey   = 681;
                break;

            case OpenContentsType.Social:         //오픈연출타입	소셜
                iconName = "social_btn";
                locKey   = 678;
                break;

            case OpenContentsType.Dungeon:         //오픈연출타입	컨텐츠
                iconName = "dungeon_btn";
                locKey   = 10;
                break;

            case OpenContentsType.Shop:         //오픈연출타입	상품
                iconName = "pvp_shop";
                locKey   = 462;
                break;

            case OpenContentsType.Partner:         //오픈연출타입	파트너
                iconName = "firend_btn";
                locKey   = 7;
                break;

            case OpenContentsType.FreeFight:         //오픈연출타입	난투장
                iconName = "free_btn";
                locKey   = 12;
                break;

            case OpenContentsType.Rank:         //오픈연출타입	랭킹
                iconName = "ranking_btn";
                locKey   = 161;
                break;

            case OpenContentsType.Guilde:         //오픈연출타입	길드
                iconName = "guild_btn";
                locKey   = 8;
                break;

            case OpenContentsType.Category:         //오픈연출타입	재화인벤
                iconName = "inven_btn";
                locKey   = 1287;
                break;

            case OpenContentsType.Chapter:         //오픈연출타입	재화인벤
                iconName = "adventure_btn";
                locKey   = 9;
                break;
            }

            string systemMsg = string.Format(_LowDataMgr.instance.GetStringCommon(9924), _LowDataMgr.instance.GetStringCommon(locKey));
            typeTf.FindChild("Icon").GetComponent <UISprite>().spriteName   = iconName;
            typeTf.FindChild("Icon/Label_01").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(locKey);
            typeTf.FindChild("Icon/Label_02").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(locKey);
            typeTf.FindChild("Txt_Title").GetComponent <UILabel>().text     = systemMsg;

            UIMgr.AddLogChat(systemMsg);

            SetRenderQueue renderQ = UIHelper.FindComponent <SetRenderQueue>(typeTf.FindChild("Effect"));
            if (renderQ != null)
            {
                renderQ.ResetRenderQ(GetComponent <UIPanel>().startingRenderQueue + 1);
            }

            UITweener openTween = typeTf.GetComponent <UITweener>();
            openTween.ResetToBeginning();
            openTween.PlayForward();

            break;
        }

        if (!notActive)
        {
            NoticeGo[(int)type].SetActive(true);
        }
    }