Exemple #1
0
    public override void Init()
    {
        base.Init();

        LowMgr   = _LowDataMgr.instance;
        UserInfo = NetData.instance.GetUserInfo();

        EventDelegate.Set(transform.FindChild("BtnClose").GetComponent <UIButton>().onClick, Close);
        EventDelegate.Set(transform.FindChild("BtnApply").GetComponent <UIButton>().onClick, delegate() {
            if (0 < SelectTitleL && (UserInfo._LeftTitle == 0 ? 1 : UserInfo._LeftTitle) != SelectTitleL)
            {
                NetworkClient.instance.SendPMsgUseTitleC(SelectTitleL == 1 ? UserInfo._LeftTitle : SelectTitleL, SelectTitleL != 1);
            }

            if (0 < SelectTitleR && (UserInfo._RightTitle == 0 ? 2 : UserInfo._RightTitle) != SelectTitleR)
            {
                NetworkClient.instance.SendPMsgUseTitleC(SelectTitleR == 2 ? UserInfo._RightTitle : SelectTitleR, SelectTitleR != 2);
            }
            //Close();
        });

        EventDelegate.Set(GetCondition.gameObject.GetComponent <UIEventTrigger>().onClick, OnClickAchievLink);

        //LeftGrid.GetChild(0).gameObject.SetActive(false);
        //RightGrid.GetChild(0).gameObject.SetActive(false);
    }
    private bool IsDuringEffect;         //이펙트 중인지 확인하는 변수

    public override void Init()
    {
        SceneManager.instance.sw.Reset();
        SceneManager.instance.sw.Start();
        SceneManager.instance.showStopWatchTimer(" PartnerPanel Init() start");

        base.Init();

        CharInven = NetData.instance.GetUserInfo();

        Transform  spawntf = InfoViewObj[(int)InfoViewType.SpawnInfo].transform;
        GameObject bg      = Instantiate(SpawnBGPrefab) as GameObject;

        bg.transform.parent           = spawntf.FindChild("background_root");
        bg.transform.localPosition    = Vector3.zero;
        bg.transform.localScale       = Vector3.one;
        bg.transform.localEulerAngles = Vector3.zero;

        SceneManager.instance.showStopWatchTimer(" PartnerPanel init 10");

        ChangeInfoView(InfoViewType.ListInfo);
        CreatePartnerSlot();
        SceneManager.instance.showStopWatchTimer(" PartnerPanel init 20");

        OwnPartnerView.Init();


        //TempCoroutine.instance.FrameDelay(1.0f, () => {
        TabListGroup.Initialize(OnClickBuffTypeList);
        //});

        SceneManager.instance.showStopWatchTimer(" PartnerPanel init end");
        SceneManager.instance.sw.Stop();
    }
    private uint SelectedStageIdx;  //선택한 난투장스테이지번호

    public override void Init()
    {
        SceneManager.instance.sw.Reset();
        SceneManager.instance.sw.Start();
        SceneManager.instance.showStopWatchTimer("Freefight panel, Init() start");

        base.Init();
        Tip.gameObject.SetActive(false);
        CharInven = NetData.instance.GetUserInfo();

        EventDelegate.Set(BtnShop.onClick, delegate()
        {
            base.Hide();
            UIMgr.OpenShopPanel(this);
        });

        EventDelegate.Set(BtnTip.onClick, delegate()
        {
            Tip.gameObject.SetActive(true);
        });
        EventDelegate.Set(Tip.transform.FindChild("Close").GetComponent <UIEventTrigger>().onClick, delegate()
        {
            Tip.gameObject.SetActive(false);
        });

        EventDelegate.Set(BtnChange.onClick, delegate()
        {
            base.Hide();
            UIMgr.OpenEquipPanel(this);
        });

        EventDelegate.Set(LevelBattle.onClick, delegate()
        {
            OnClickBattleStage(false);
        });
        EventDelegate.Set(FreeBattle.onClick, delegate()
        {
            OnClickBattleStage(true);
        });

        EventDelegate.Set(BtnStart.onClick, delegate()
        {
            Debug.Log("Select StageIndex : " + SelectedStageIdx);
            //UIMgr.instance.AddPopup(141, 1233 , 117);

            NetworkClient.instance.SendPMsgMessRoomEnterC(SelectedStageIdx);
        });


        OpenInfoLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1221), 10, 20);//일단임시,,시간보내주면 바꾸기

        SetBattleInfo();

        NetworkClient.instance.SendPMsgMessQueryC();//조회

        SceneManager.instance.showStopWatchTimer("Freefight panel, Init() finish");
        SceneManager.instance.sw.Stop();
    }
    void getModelInfo(NetData._UserInfo inven, ref uint HELMETID, ref uint CLOTHID, ref uint WEAPONID, ref uint CostumeID)
    {
        Item.EquipmentInfo tempInfo = inven.GetEquipPartsLowData(ePartType.HELMET);
        if (tempInfo == null)
        {
            HELMETID = 0;
        }
        else
        {
            HELMETID = tempInfo.Id;
        }

        tempInfo = inven.GetEquipPartsLowData(ePartType.CLOTH);
        if (tempInfo == null)
        {
            CLOTHID = 0;
        }
        else
        {
            CLOTHID = tempInfo.Id;
        }

        tempInfo = inven.GetEquipPartsLowData(ePartType.WEAPON);
        if (tempInfo == null)
        {
            WEAPONID = 0;
        }
        else
        {
            WEAPONID = tempInfo.Id;
        }

        NetData._CostumeData tempCostume = inven.GetEquipCostume();

        if (tempCostume == null)
        {
            if (inven.GetCharIdx() == 11000)
            {
                CostumeID = 100;
            }
            else if (inven.GetCharIdx() == 12000)
            {
                CostumeID = 110;
            }
            else if (inven.GetCharIdx() == 13000)
            {
                CostumeID = 120;
            }
        }
        else
        {
            CostumeID = tempCostume._costmeDataIndex;
        }
    }
    protected void UnitModelLoad()
    {
        NetData._UserInfo inven = NetData.instance.GetUserInfo();

        uint HELMETID  = 0;
        uint CLOTHID   = 0;
        uint WEAPONID  = 0;
        uint CostumeID = 0;

        getModelInfo(inven, ref HELMETID, ref CLOTHID, ref WEAPONID, ref CostumeID);

        //예외처리는 어케하냐
        GameObject _myUnit = UnitModelHelper.PCModelLoad(inven.GetCharIdx(), HELMETID, CostumeID, CLOTHID, WEAPONID, inven.isHideCostum,
                                                         ref WeaponEffects, QualityManager.instance.GetModelQuality());

        UnitModelLoadPart2(_myUnit, CostumeID);
    }
Exemple #6
0
    /// <summary> OwnPartner 초기화 함수 </summary>
    public void Init()
    {
        //TabGroup.Initialize(OnClickTabList);
        for (int i = 0; i < TabBtn.Length; i++)
        {
            int idx = i;
            EventDelegate.Set(TabBtn[idx].onClick, delegate() { OnClickTabList(idx); });
        }

        UserInfo = NetData.instance.GetUserInfo();

        EventDelegate.Set(BtnMove[0].GetComponent <UIButton>().onClick, delegate()
        {
            OnClickChangePartner(-1);
        });

        EventDelegate.Set(BtnMove[1].GetComponent <UIButton>().onClick, delegate()
        {
            OnClickChangePartner(1);
        });

        GameObject slotGo = Instantiate(InvenItemPrefab) as GameObject;
        Transform  tf     = slotGo.transform;

        tf.parent        = SkillLevelUpRoot.transform.FindChild("ItemRoot");
        tf.localPosition = Vector3.zero;
        tf.localScale    = Vector3.one;

        SkillLevelUpMaterialSlot = slotGo.GetComponent <InvenItemSlotObject>();
        SkillLevelUpMaterialSlot.EmptySlot();

        GameObject slotEvolveGo = Instantiate(InvenItemPrefab) as GameObject;
        Transform  tEvolvef     = slotEvolveGo.transform;

        tEvolvef.parent        = EvoleRoot.transform.FindChild("ItemRoot");
        tEvolvef.localPosition = Vector3.zero;
        tEvolvef.localScale    = Vector3.one;

        EvolveMaterialSlot = slotEvolveGo.GetComponent <InvenItemSlotObject>();
        EvolveMaterialSlot.EmptySlot();

        SkillMaxLevel.GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1284), _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.PartnerMaxSkillLevel));
        SkillMaxLevel.SetActive(false);
        MaxEvolve.GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(1285);
        MaxEvolve.SetActive(false);
    }
Exemple #7
0
    IEnumerator TownUILoadUpdate()
    {
        UIBasePanel townPanel = UIMgr.GetTownBasePanel();

        NetData._UserInfo userInfo = NetData.instance.GetUserInfo();
        while (null == userInfo.GetEquipCostume() || townPanel == null)//서버에서 받아올때까지 대기한다
        {
            yield return(new WaitForSeconds(0.1f));

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

        //while (_ActivityInfo.IsSend)//서버에서 받아올때까지 대기한다
        //{
        //    yield return new WaitForSeconds(0.1f);
        //}

        IsUILoad = true;

        //(townPanel as TownPanel).ActivityPoint(_ActivityInfo.GetPoint);
        (townPanel as TownPanel).CreatePcFaceObj();
        //Npc
        //List<InputTownModel> npcList = TownNpcMgr.instance.GetNpcList();
        //if (npcList != null)
        //{
        //    int loopCount = npcList.Count;
        //    for (int i = 0; i < loopCount; i++)
        //    {
        //        (townPanel as TownPanel).CreateHeadObjet(npcList[i].gameObject, npcList[i].NPCName, 0, 0, false);
        //    }
        //}


        //yield return new WaitForSeconds(0.1f);

        if (!SceneManager.instance.IsYieldAction)
        {
            SceneManager.instance.ShowLoadingTipPanel(false);
        }
    }
    protected IEnumerator UnitModelLoadAsync()
    {
        NetData._UserInfo inven = NetData.instance.GetUserInfo();

        uint HELMETID  = 0;
        uint CLOTHID   = 0;
        uint WEAPONID  = 0;
        uint CostumeID = 0;

        getModelInfo(inven, ref HELMETID, ref CLOTHID, ref WEAPONID, ref CostumeID);

        GameObject _myUnit = null;

        yield return(StartCoroutine(UnitModelHelper.PCModelLoadAsync(inven.GetCharIdx(), HELMETID, CostumeID, CLOTHID, WEAPONID, inven.isHideCostum,
                                                                     (retVal1, retVal2) => {
            _myUnit = retVal1;
            WeaponEffects = retVal2;
        },
                                                                     QualityManager.instance.GetModelQuality())));

        uint skillSetId = inven.GetEquipSKillSet().SkillSetId;

        if (skillSetId <= 0)
        {
            switch (inven._userCharIndex)
            {
            case 11000:
                skillSetId = 100;
                break;

            case 12000:
                skillSetId = 200;
                break;

            case 13000:
                skillSetId = 300;
                break;
            }
        }
        UnitModelLoadPart2(_myUnit, skillSetId);
    }
Exemple #9
0
    public override void Init()
    {
        SceneManager.instance.sw.Reset();
        SceneManager.instance.sw.Start();
        SceneManager.instance.showStopWatchTimer("Ranking panel, Init() start");

        base.Init();

        CharInven = NetData.instance.GetUserInfo();

        _ObjectPaging = ObjectPaging.CreatePagingPanel(Scroll.gameObject, Grid.gameObject, Grid.transform.GetChild(0).gameObject, 1,
                                                       5, 0, 0, (i, go) => {
            List <NetData.RankInfo> list = null;
            if (RankingList.TryGetValue(CurRankType, out list))
            {
                if (list != null && i < list.Count)
                {
                    go.SetActive(true);
                    SetSlot(go.transform, list[i]);
                }
                else
                {
                    go.SetActive(false);
                }
            }
        });

        Destroy(Grid.transform.GetChild(0).gameObject);

        TabGroup.Initialize(OnClickTab);
        //Scroll.enabled = true;
        for (int i = 0; i < MinorTabTf.childCount; i++)
        {
            int type = i;
            EventDelegate.Set(MinorTabTf.GetChild(i).GetComponent <UIEventTrigger>().onClick, delegate() { CallBackMinor(type); });
        }

        EventDelegate.Set(GuildPopGo.transform.FindChild("BtnClose").GetComponent <UIEventTrigger>().onClick, Hide);//길드 정보 팝업 닫기
        SceneManager.instance.showStopWatchTimer("Ranking panel, Init() finish");
    }
    public override void Init()
    {
        SceneManager.instance.sw.Reset();
        SceneManager.instance.sw.Start();
        SceneManager.instance.showStopWatchTimer("ChapterPanel, Init() start");

        ChapterList     = new List <DataChapter>();
        HardChapterList = new List <DataChapter>();

        base.Init();
        SetDataTable(ChapterList, 0);
        SetDataTable(HardChapterList, 10000);

        InvenItemRewardSlot = new InvenItemSlotObject[3];
        for (int i = 0; i < RewardSlotRoot.Length; i++)
        {
            GameObject slotGo = Instantiate(InvenItemPrefab) as GameObject;
            Transform  tf     = slotGo.transform;
            tf.parent        = RewardSlotRoot[i];
            tf.localPosition = Vector3.zero;
            tf.localScale    = Vector3.one;

            InvenItemRewardSlot[i] = slotGo.GetComponent <InvenItemSlotObject>();
            InvenItemRewardSlot[i].EmptySlot();
        }

        UIHelper.CreateEffectInGame(BtnHard.transform.FindChild("On/eff").transform, "Fx_UI_HardMode_01");

        //이벤트 버튼 핸들러
        EventButton();
        StagePopup.PopupInit(this);
        CharInven = NetData.instance.GetUserInfo();
        PreAttack = (int)CharInven.RefreshTotalAttackPoint();

        List <NetData.StageStarRewardData> rewardList = CharInven.StageStarReward;

        for (int i = 0; i < ChapterList.Count; i++)// 갱신시켜주기
        {
            for (int j = 0; j < rewardList.Count; j++)
            {
                if (rewardList[j].ChapterID != ChapterList[i].number)
                {
                    continue;
                }
                if (rewardList[j].StageType != 1)
                {
                    continue;
                }

                ChapterList[i].GetClearGrade  = rewardList[j].Value;
                ChapterList[i].CurRewardBoxID = rewardList[j].BoxID;
            }
        }

        List <NetData.StageStarRewardData> hardRewardList = CharInven.HardStageStarReward;

        for (int i = 0; i < HardChapterList.Count; i++)// 갱신시켜주기
        {
            for (int j = 0; j < hardRewardList.Count; j++)
            {
                if (hardRewardList[j].ChapterID != HardChapterList[i].number)
                {
                    continue;
                }
                if (hardRewardList[j].StageType != 2)
                {
                    continue;
                }

                HardChapterList[i].GetClearGrade  = hardRewardList[j].Value;
                HardChapterList[i].CurRewardBoxID = hardRewardList[j].BoxID;
            }
        }

        for (int i = 0; i < BoxClickEffRoot.Length; i++)
        {
            UIHelper.CreateEffectInGame(BoxClickEffRoot[i].transform, "Fx_UI_chapter_box_open");
            BoxClickEffRoot[i].SetActive(false);
        }

        SceneManager.instance.showStopWatchTimer("ChapterPanel, Init() finish");

        //별보상 이펙트
        for (int i = 0; i < BoxEffRoot.Length; i++)
        {
            UIHelper.CreateEffectInGame(BoxEffRoot[i].transform, "Fx_UI_chapter_box_on");
            //if(i != 0)
            //    ResettingParticle(1.5f, UIHelper.FindComponents<ParticleSystem>(BoxEffRoot[i].transform), 0.5f);
        }

        //버튼글자가 한글자씩이라....따로적용
        //string normal = _LowDataMgr.instance.GetStringCommon(459);
        //string hard = _LowDataMgr.instance.GetStringCommon(9902);

        //BtnNormal.transform.FindChild("label_1").GetComponent<UILabel>().text = normal.Substring(0, 1);
        //BtnNormal.transform.FindChild("label_2").GetComponent<UILabel>().text = normal.Substring(1, 1);

        //BtnHard.transform.FindChild("On/label_1").GetComponent<UILabel>().text = hard.Substring(0, 1);
        //BtnHard.transform.FindChild("On/label_2").GetComponent<UILabel>().text = hard.Substring(1, 1);
        //BtnHard.transform.FindChild("Off/label_1").GetComponent<UILabel>().text = hard.Substring(0, 1);
        //BtnHard.transform.FindChild("Off/label_2").GetComponent<UILabel>().text = hard.Substring(1, 1);
    }
    public override void Init()
    {
        SceneManager.instance.sw.Reset();
        SceneManager.instance.sw.Start();
        SceneManager.instance.showStopWatchTimer("Dungeon panel, Init() start");

        base.Init();
        ViewObjs[0].SetActive(true);
        ViewObjs[1].SetActive(false);
        ViewObjs[2].SetActive(false);

        CharInven = NetData.instance.GetUserInfo();

        UIHelper.CreateEffectInGame(PnTouchEff[0].transform, "Fx_UI_partner_select_01");
        UIHelper.CreateEffectInGame(PnTouchEff[1].transform, "Fx_UI_partner_select_01");
        SetMaterialReadyPopup();

        //컨텐츠 입장레벨
        byte[] enterTypes = new byte[] {
            (byte)ContentType.TOWER,
            0,
            (byte)ContentType.EQUIP_DUNGEON,
            (byte)ContentType.SKILL_DUNGEON,
            (byte)ContentType.BOSS_RAID,
        };

        uint myLv     = NetData.instance.GetUserInfo()._Level;
        uint myAttack = NetData.instance.GetUserInfo()._TotalAttack;

        for (int i = 0; i < EnterLock.Length; i++)
        {
            Transform tf = EnterLock[i].gameObject.transform;

            uint openCondition = 0;
            uint stringIdx     = 1023; //{0}렙에열림(1023), {0}전투력에열림(1024)
            if (enterTypes[i] != 0)
            {
                DungeonTable.ContentsOpenInfo content = _LowDataMgr.instance.GetFirstContentsOpenInfo(enterTypes[i]);
                if (content.OpenType == 1)//업데이트 컨텐츠
                {
                    UILabel enterLvLabel = tf.FindChild("Txt").GetComponent <UILabel>();
                    enterLvLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1307));
                    EnterLock[i].SetActive(true);
                    continue;
                }

                openCondition = content.ConditionValue1;
                if (content.ConditionType1 == 2)
                {
                    stringIdx = 1024;
                }
            }
            else//차관은 etc에엮여있어서따로뺏음
            {
                openCondition = _LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvpEnterLv);
            }

            uint flagValue = stringIdx == 1023 ? myLv : myAttack;
            if (flagValue < openCondition)  //입장렙 or 전투력이 안대
            {
                UILabel enterLvLabel = tf.FindChild("Txt").GetComponent <UILabel>();
                enterLvLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(stringIdx), openCondition);
                EnterLock[i].SetActive(true);
                continue;
            }

            EnterLock[i].SetActive(false);
        }

        Transform listTf = transform.FindChild("List");

        EventDelegate.Set(listTf.FindChild("Gold").GetComponent <UIEventTrigger>().onClick, delegate() {
            if (!CheckEnterCondition(ContentType.EQUIP_DUNGEON))
            {
                return;
            }

            CurGameMode = GAME_MODE.SPECIAL_GOLD;
            EquipLvGroup.CoercionTab(0);
            transform.FindChild("Background/bg").gameObject.SetActive(false);

            //NetworkClient.instance.SendPMsgCoinBattleQueryC();
        });

        EventDelegate.Set(listTf.FindChild("Exp").GetComponent <UIEventTrigger>().onClick, delegate() {
            if (!CheckEnterCondition(ContentType.SKILL_DUNGEON))
            {
                return;
            }

            CurGameMode = GAME_MODE.SPECIAL_EXP;
            SkillLvGroup.CoercionTab(0);
            transform.FindChild("Background/bg").gameObject.SetActive(false);

            // NetworkClient.instance.SendPMsgExpBattleQueryC();
        });

        /*
         * EventDelegate.Set(listTf.FindChild("Raid_0").GetComponent<UIEventTrigger>().onClick, delegate () {
         *
         *  if (!CheckEnterCondition(ContentType.BOSS_RAID_1))
         *      return;
         *
         *  //CheckOpenTutorial(OpenTutorialType.BOSS_RAID);
         *
         *  CurGameMode = GAME_MODE.RAID;
         *  CurSubMode = 1;
         *  RaidLvGroup.CoercionTab(0);
         * });
         *
         * EventDelegate.Set(listTf.FindChild("Raid_1").GetComponent<UIEventTrigger>().onClick, delegate () {
         *
         *  if (!CheckEnterCondition(ContentType.BOSS_RAID_2) )
         *      return;
         *
         *  //CheckOpenTutorial(OpenTutorialType.BOSS_RAID);
         *  CurGameMode = GAME_MODE.RAID;
         *  CurSubMode = 2;
         *  RaidLvGroup.CoercionTab(0);
         * });
         *
         * EventDelegate.Set(listTf.FindChild("Raid_2").GetComponent<UIEventTrigger>().onClick, delegate () {
         *
         *  if (!CheckEnterCondition(ContentType.BOSS_RAID_3) )
         *      return;
         *
         *  //CheckOpenTutorial(OpenTutorialType.BOSS_RAID);
         *  CurGameMode = GAME_MODE.RAID;
         *  CurSubMode = 3;
         *  RaidLvGroup.CoercionTab(0);
         * });
         *
         * EventDelegate.Set(listTf.FindChild("MultyRaid_0").GetComponent<UIEventTrigger>().onClick, delegate () {
         *
         *  if (!CheckEnterCondition(ContentType.MULTY_BOSS_RAID_1))
         *      return;
         *
         *  CurGameMode = GAME_MODE.MULTI_RAID;
         *  CurSubMode = 1;
         *  RaidLvGroup.CoercionTab(0);
         * });
         */
        EventDelegate.Set(listTf.FindChild("MultyRaid_1").GetComponent <UIEventTrigger>().onClick, delegate() {
            SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, _LowDataMgr.instance.GetStringCommon(174));
        });

        EventDelegate.Set(listTf.FindChild("MultyRaid_2").GetComponent <UIEventTrigger>().onClick, delegate() {
            SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, _LowDataMgr.instance.GetStringCommon(174));
        });

        EventDelegate.Set(listTf.FindChild("Pvp").GetComponent <UIEventTrigger>().onClick, delegate() {
            if (!CheckEnterCondition(ContentType.ARENA))
            {
                return;
            }

            base.Hide();
            UIMgr.OpenArenaPanel();
        });

        EventDelegate.Set(listTf.FindChild("Tower").GetComponent <UIEventTrigger>().onClick, delegate() {
            if (!CheckEnterCondition(ContentType.TOWER))
            {
                return;
            }

            base.Hide();
            UIMgr.OpenTowerPanel();
        });

        /*
         * EventDelegate.Set(listTf.FindChild("Colosseum").GetComponent<UIEventTrigger>().onClick, delegate () {
         *
         *  if (!CheckEnterCondition(ContentType.COLOSSEUM) )
         *      return;
         *
         *  base.Hide();
         *  UIMgr.OpenColosseumPanel(0);
         * });
         */
        EventDelegate.Set(ViewObjs[1].transform.FindChild("BtnReady").GetComponent <UIButton>().onClick, delegate() {
            uint limitLevel = 0, dungeonId = 0;
            if (CurGameMode == GAME_MODE.RAID)
            {
                List <DungeonTable.SingleBossRaidInfo> raidLowList = _LowDataMgr.instance.GetLowDataBossRaidList();

                int count = raidLowList.Count;
                for (int i = 0; i < count; i++)
                {
                    DungeonTable.SingleBossRaidInfo raidLow = raidLowList[i];
                    if (CurSubMode != raidLow.Type || raidLow.level != CurLevelDifficulty)
                    {
                        continue;
                    }

                    limitLevel = raidLow.levelLimit;
                    break;
                }
            }
            else
            {
                List <DungeonTable.MultyBossRaidInfo> raidLowList = _LowDataMgr.instance.GetLowDataMultyBossInfoList((byte)CurSubMode);

                int count = raidLowList.Count;
                for (int i = 0; i < count; i++)
                {
                    DungeonTable.MultyBossRaidInfo raidLow = raidLowList[i];
                    if (raidLow.level != CurLevelDifficulty)
                    {
                        continue;
                    }

                    dungeonId  = raidLow.raidId;
                    limitLevel = raidLow.EnterLevel;
                    break;
                }
            }

            if (NetData.instance.UserLevel < limitLevel)//레벨 부족 무시한다
            {
                string msg = string.Format(_LowDataMgr.instance.GetStringCommon(699), limitLevel);
                SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, msg);
                return;
            }

            if (CurGameMode == GAME_MODE.RAID)
            {
                NetworkClient.instance.SendPMsgBossBattleQueryC(CurSubMode);
            }
            else
            {
                int now = 0, max = 0;
                NetData.instance.GetUserInfo().GetCompleteCount(EtcID.MultyBossRaid1Count, ref now, ref max);
                if (max <= now)
                {
                    uiMgr.AddErrorPopup((int)ErrorCode.ER_MultiBossCreateRoomS_DailyTime_Error);
                    return;
                }

                NetworkClient.instance.SendPMsgMultiBossCreateRoomC(dungeonId);
            }
        });

        RaidLvGroup.Initialize(delegate(int arr)
        {
            CurLevelDifficulty = arr + 1;
            for (int i = 0; i < EffRaidSelect.childCount; i++)
            {
                EffRaidSelect.GetChild(i).gameObject.SetActive(i == arr);
                SelectBoss[i].SetActive(i == arr);
            }

            OnClickRaid(CurGameMode == GAME_MODE.MULTI_RAID, CurSubMode);
        });


        EventDelegate.Set(ViewObjs[2].transform.FindChild("Character/CharView/BtnPartnerSlot_0").GetComponent <UIEventTrigger>().onClick, delegate()
        {
            if (PartnerModelRoot[0].gameObject.activeSelf)
            {
                return;
            }

            base.Hide();
            UIMgr.OpenReadyPopup(CurGameMode, this, 0, 0);
        });
        EventDelegate.Set(ViewObjs[2].transform.FindChild("Character/CharView/BtnPartnerSlot_1").GetComponent <UIEventTrigger>().onClick, delegate()
        {
            if (PartnerModelRoot[1].gameObject.activeSelf)
            {
                return;
            }

            base.Hide();
            UIMgr.OpenReadyPopup(CurGameMode, this, 0, 0);
        });

        EventDelegate.Set(ViewObjs[2].transform.FindChild("Character/BtnStartGame").GetComponent <UIButton>().onClick, delegate()
        {//준비창으로 변경
            base.Hide();
            //PvpReadyPopup.SetActive(false);
            UIMgr.OpenReadyPopup(GAME_MODE.ARENA, this, 0, 0);
        });


        EquipLvGroup.Initialize(delegate(int arr)
        {
            if (EquipLvGroup.transform.GetChild(arr).FindChild("Lvguide").gameObject.activeSelf)
            {
                SceneManager.instance.SetNoticePanel(NoticeType.Message, 171);
                return;
            }

            MaterialDungeonLevelDifficulty = arr + 1;

            for (int i = 0; i < EquipLvGroup.transform.childCount; i++)
            {
                GameObject select = EquipLvGroup.transform.GetChild(i).transform.FindChild("cover").gameObject;
                select.SetActive(i == arr);
            }

            OnClickEquipAndSkillDungeon(true);
        });
        SkillLvGroup.Initialize(delegate(int arr)
        {
            if (SkillLvGroup.transform.GetChild(arr).FindChild("Lvguide").gameObject.activeSelf)
            {
                SceneManager.instance.SetNoticePanel(NoticeType.Message, 171);
                return;
            }

            MaterialDungeonLevelDifficulty = arr + 1;

            for (int i = 0; i < SkillLvGroup.transform.childCount; i++)
            {
                GameObject select = SkillLvGroup.transform.GetChild(i).transform.FindChild("cover").gameObject;
                select.SetActive(i == arr);
            }

            OnClickEquipAndSkillDungeon(false);
        });


        EffRaidSelect = UIHelper.CreateEffectInGame(RaidLvGroup.transform, "Fx_UI_Raid_select_set").transform;
        int length = EffRaidSelect.childCount;

        for (int i = 0; i < length; i++)
        {
            EffRaidSelect.GetChild(i).localPosition = RaidLvGroup.TabList[i].transform.localPosition;
        }

        for (int i = 0; i < RaidDropItem.Length; i++)
        {
            UIHelper.CreateInvenSlot(RaidDropItem[i]);
        }

        for (int i = 0; i < MaterialDungetnDropItem.Length; i++)
        {
            UIHelper.CreateInvenSlot(MaterialDungetnDropItem[i]);
        }

        MaterialDungeonInit();


        SceneManager.instance.showStopWatchTimer("Dungeon panel, Init() finish");
    }
Exemple #12
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);
        }
    }
Exemple #13
0
    private List <NetData.MessInfo> FreeRoomList; //자유대전방리스트

    public override void Init()
    {
        base.Init();
        UserInfo = NetData.instance.GetUserInfo();
        string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), UserInfo._Level);

        LvName.text = string.Format("{0} {1}", lvStr, NetData.instance.Nickname);
        Attack.text = UserInfo.RefreshTotalAttackPoint().ToString();
        RoomList    = null;

        //상점
        EventDelegate.Set(BottomBtn[0].onClick, delegate() {
            base.Close();
            UIMgr.OpenShopPanel(this);
        });
        //코스튬
        EventDelegate.Set(BottomBtn[1].onClick, delegate()
        {
            base.Close();
            UIMgr.OpenCostume(this);
        });

        SetChannelActive();

        BottomBtn[2].isEnabled = 0 < QuickRoomId ? true : false;             //최소렙 못넘으면 빠른입장안대
        EventDelegate.Set(BottomBtn[2].onClick, delegate() { EnterGo(0); }); //빠른입장

        //내캐릭터
        NetData._CostumeData equipCostume = UserInfo.GetEquipCostume();
        CharModelTf.transform.gameObject.SetActive(true);

        uint weaponId = 0, clothId = 0, headId = 0;

        if (UserInfo.isHideCostum)
        {
            NetData._ItemData head   = UserInfo.GetEquipParts(ePartType.HELMET);
            NetData._ItemData cloth  = UserInfo.GetEquipParts(ePartType.CLOTH);
            NetData._ItemData weapon = UserInfo.GetEquipParts(ePartType.WEAPON);

            if (head != null)
            {
                headId = head._equipitemDataIndex;
            }

            if (cloth != null)
            {
                clothId = cloth._equipitemDataIndex;
            }

            if (weapon != null)
            {
                weaponId = weapon._equipitemDataIndex;
            }
        }


        UIHelper.CreatePcUIModel("FreefightPanel", CharModelTf, UserInfo.GetCharIdx(), headId, equipCostume._costmeDataIndex, clothId, weaponId, UserInfo.GetEquipSKillSet().SkillSetId, 3, UserInfo.isHideCostum, false);

        NetworkClient.instance.SendPMsgMessQueryC();//조회
        GetRoomList();
    }
    public override void Init()
    {
        base.Init();
        CharInven = NetData.instance.GetUserInfo();

        UIHelper.CreateEffectInGame(PnTouchEff[0].transform, "Fx_UI_partner_select_01");
        UIHelper.CreateEffectInGame(PnTouchEff[1].transform, "Fx_UI_partner_select_01");

        SetPvpReadyPopup();
        PvpReadyPopup.SetActive(true);
        BattleRecordPopup.SetActive(false);
        RewardListPopup.SetActive(false);
        RankPopup.SetActive(false);

        //vip레벨에따른 리셋최대수치
        List <Vip.VipDataInfo> VipInfo = _LowDataMgr.instance.GetLowDataVipData(NetData.instance.GetUserInfo()._VipLevel);

        for (int i = 0; i < VipInfo.Count; i++)
        {
            if (VipInfo[i].type == 12)
            {
                ResetMaxCount = (int)VipInfo[i].Typevalue;
                break;
            }
        }

        for (int i = 0; i < 15; i++)
        {
            GameObject slotGo = Instantiate(PvpSlotPrefab) as GameObject;
            Transform  slotTf = slotGo.transform;
            slotTf               = slotGo.transform;
            slotTf.parent        = PvpGrid.transform;
            slotTf.localPosition = Vector3.zero;
            slotTf.localScale    = Vector3.one;
            slotTf.gameObject.SetActive(false);
        }
        Destroy(PvpSlotPrefab);


        BuyBtn.gameObject.SetActive(false);
        BuyBtn.transform.FindChild("Txt_buy").GetComponent <UILabel>().text = _LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvPcashvalue).ToString();
        BtnEvents();

        transform.FindChild("PvpPanel/class").GetComponent <UISprite>().spriteName = UIHelper.GetClassIcon(CharInven._userCharIndex);

        RankPaging = ObjectPaging.CreatePagingPanel(RankGrid.transform.parent.gameObject, RankGrid.gameObject, RankingSlotPrefab, 1, 4, 4, 0, OnRankSlotdelegate);
        Destroy(RankingSlotPrefab);

        //EnemyPaging = ObjectPaging.CreatePagingPanel(PvpGrid.transform.parent.gameObject, PvpGrid.gameObject, PvpSlotPrefab, 1, 4, 4, 0, OnMatchListSlotdelegate);
        //Destroy(PvpSlotPrefab);

        //UI바뀌어야함 일단 보류
        List <PVP.PVPAutoRewardInfo> autoList = _LowDataMgr.instance.GetPvpAutoRewardList();

        UIHelper.CreateSlotItem(true, autoList.Count, RewardDailySlotPrefab.transform, RewardDailyGrid.transform, delegate(Transform tf, int arr)
        {
            if (autoList.Count - 1 == arr)                                                                     //마지막
            {
                tf.FindChild("num").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(193); //순위권 밖
            }
            else
            {
                if (autoList[arr].RankMin == autoList[arr].RankMax)
                {
                    tf.FindChild("num").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(192), /*"{0}"*/ autoList[arr].RankMin);
                }
                else
                {
                    string num = string.Format("{0} ~ {1}", autoList[arr].RankMin, autoList[arr].RankMax);
                    tf.FindChild("num").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(192), num);
                }
            }

            tf.FindChild("value").GetComponent <UILabel>().text = string.Format("{0:#,#}", autoList[arr].RewardValue);
        });

        RewardDailyGrid.repositionNow = true;
        PvpSlotPrefab.SetActive(false);

        NetworkClient.instance.SendPMsgArenaRankInfoC();
        NetworkClient.instance.SendPMsgArenaInfoC();
    }
Exemple #15
0
    private int SelectPnRootID;// 파트너 자리 아이디 (0, 1 이다.) 서버로는 1, 2로.
    //private bool IsTownInvite;//마을 유저 초대

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

        //PartnerSlotList.SetActive(false);
        PartnerSlotPrefab.SetActive(false);
        CharInven = NetData.instance.GetUserInfo();

        //이벤트 버튼 설정
        UIButton uiBtnStart = transform.FindChild("BtnStartGame").GetComponent <UIButton>();

        EventDelegate.Set(uiBtnStart.onClick, OnClickStartGame);

        EventDelegate.Set(onShow, () => {
            mStarted = false;//onShow에서 두번 실행 못하게 막아버린다

            uiMgr.OpenTopMenu(this);
        });


        //PartnerRoot 정보 초기화
        PnRootInfo[0]        = new PartnerRootInfo();
        PnRootInfo[1]        = new PartnerRootInfo();
        TakeParNames[0].text = "";
        TakeParNames[1].text = "";
        PnTouchObj[0].SetActive(false);
        PnTouchObj[1].SetActive(false);

        CostumeOriginalSlotTf.gameObject.SetActive(false);
        //코스튬 셋팅
        Color colrA = new Color(1, 1, 1, 0.3f);
        List <NetData._CostumeData> dataList = CharInven.GetCostumeList();
        int loopCount = dataList.Count;

        for (int i = 0; i < loopCount; i++)
        {
            NetData._CostumeData data = dataList[i];
            if (!data._isOwn)
            {
                continue;
            }

            Transform slotTf = null;
            if (i < CostumGrid.childCount)
            {
                slotTf = CostumGrid.GetChild(i);
            }
            else
            {
                slotTf = Instantiate(CostumeOriginalSlotTf) as Transform;
                slotTf.gameObject.SetActive(true);
                slotTf.parent        = CostumGrid;
                slotTf.localPosition = Vector3.zero;
                slotTf.localScale    = Vector3.one;
            }

            slotTf.name = string.Format("{0}", data._costmeDataIndex);
            slotTf.gameObject.SetActive(true);

            UILabel nameLb = slotTf.FindChild("state_d3").GetComponent <UILabel>();
            nameLb.text = data._isEquip ? _LowDataMgr.instance.GetStringCommon(37) : _LowDataMgr.instance.GetStringCommon(38);//("장착중"), ("장착하기")

            /*//2017.11.13 스킬 셋교체 시 작업.
             * //스킬 셋팅
             * List<uint> skillList = data.GetSkillList();
             * int skillCount = skillList.Count;
             * for (int j = 1; j < skillCount; j++)
             * {
             *  SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(skillList[j]);
             *  UISprite sp = slotTf.FindChild(string.Format("skills/{0}/icon_d4", j - 1)).GetComponent<UISprite>();
             *  sp.spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon);
             * }
             */
            UISprite spIcon = slotTf.FindChild("btn_insert/icon_d4").GetComponent <UISprite>();
            UISprite spBg   = slotTf.FindChild("bg").GetComponent <UISprite>();
            spIcon.spriteName = data.GetIconName();

            slotTf.FindChild("mount").gameObject.SetActive(data._isEquip);
            if (data._isEquip)
            {
                CostumMountIconTf.parent        = slotTf;
                CostumMountIconTf.localPosition = Vector3.zero;
                CostumMountIconTf.localScale    = Vector3.one;

                spBg.color = Color.white;
            }
            else
            {
                spBg.color = colrA;
            }

            slotTf.FindChild("btn_insert").collider.enabled = !data._isEquip;
            UIEventTrigger uiTri = slotTf.FindChild("btn_insert").GetComponent <UIEventTrigger>();
            EventDelegate.Set(uiTri.onClick, delegate() { OnClickChangeCostum((int)data._costumeIndex); });
        }

        CostumGrid.GetComponent <UIGrid>().Reposition();
    }
    /// <summary> StoryModePanel에서 사용해준다. 초기화 함수 최초 1회만 호출함. </summary>
    public void PopupInit(ChapterPanel panel)
    {
        CharInven = NetData.instance.GetUserInfo();
        Chapter   = panel;

        Transform infoTf = PopupObj[(int)POPUP_TYPE.STAGE_INFO].transform;

        EventDelegate.Set(infoTf.FindChild("BtnReady").GetComponent <UIButton>().onClick, delegate() {
            if (0 < CurrentData._StageLowData.DailyEntercount)
            {
                int clearCount = CurrentData._StageLowData.DailyEntercount - CurrentData.DailyClearCount;
                if (clearCount <= 0)//더이상 진행 불가능
                {
                    UIMgr.instance.AddErrorPopup((int)Sw.ErrorCode.ER_StageStartS_Daily_Time_Error);
                    return;
                }
            }


            UIMgr.OpenReadyPopup(GAME_MODE.SINGLE, UIMgr.GetUIBasePanel("UIPanel/ChapterPanel"), CurrentData.NeedEnerge, 0);
            DisablePopup();
        });

        EventDelegate.Set(infoTf.FindChild("BtnStart").GetComponent <UIButton>().onClick, delegate() {
            panel.GotoInGame();
        });

        EventDelegate.Set(transform.FindChild("StageInfoView/BtnClose").GetComponent <UIButton>().onClick, () => {
            OnClosePopup();
        });

        EventDelegate.Set(transform.FindChild("SweepPopup/BtnClose").GetComponent <UIButton>().onClick, () => {
            OnClosePopup();
        });

        EventDelegate.Set(BtnSweep.GetComponent <UIButton>().onClick, OnClickSweep);
        EventDelegate.Set(SweepCardToggle.onChange, OnToggleAutoFlop);

        DisablePopup();

        Transform sweepTf = PopupObj[(int)POPUP_TYPE.SWEEP].transform;

        EventDelegate.Set(sweepTf.FindChild("Info/BtnOneSweep").GetComponent <UIButton>().onClick, delegate() { OnClickBtnSweep(1); });
        EventDelegate.Set(sweepTf.FindChild("Info/BtnFiveSweep").GetComponent <UIButton>().onClick, delegate() { OnClickBtnSweep(5); });

        EventDelegate.Set(MoveStage[0].GetComponent <UIButton>().onClick, delegate() { OnClickMoveState(-1); });
        EventDelegate.Set(MoveStage[1].GetComponent <UIButton>().onClick, delegate() { OnClickMoveState(1); });

        Transform slotParentTf = infoTf.FindChild("Left/DropItem");

        InvenSlot = new InvenItemSlotObject[4];
        for (int i = 0; i < 4; i++)
        {
            GameObject go = UIHelper.CreateInvenSlot(slotParentTf.FindChild(string.Format("{0}", i)));
            InvenSlot[i] = go.GetComponent <InvenItemSlotObject>();
        }


        sweepTf.FindChild("Info/BtnOneSweep/label").GetComponent <UILabel>().text  = string.Format(_LowDataMgr.instance.GetStringCommon(297), 1);
        sweepTf.FindChild("Info/BtnFiveSweep/label").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(297), 10);

        Transform[] root = new Transform[] {
            SweepItemPrefab.transform.FindChild("ItemRoot_0"),
            SweepItemPrefab.transform.FindChild("ItemRoot_1"),
            SweepItemPrefab.transform.FindChild("ItemRoot_2"),
            SweepItemPrefab.transform.FindChild("ItemRoot_3"),
            SweepItemPrefab.transform.FindChild("CardItemRoot_0"),
            SweepItemPrefab.transform.FindChild("CardItemRoot_1")
        };

        for (int i = 0; i < root.Length; i++)
        {
            GameObject go = Instantiate(InvenSlotPrefab) as GameObject;
            go.transform.parent        = root[i];
            go.transform.localScale    = Vector3.one;
            go.transform.localPosition = Vector3.zero;

            go.collider.enabled = false;
        }

        Transform scrollTf = transform.FindChild("SweepPopup/ScrollParent/Scroll");

        SweepPaging = ObjectPaging.CreatePagingPanel(scrollTf.gameObject, scrollTf.GetChild(0).gameObject, SweepItemPrefab, 1, 4, 4, 0, OnCallBackSweepSlot);
        SweepItemPrefab.SetActive(false);

        //StageActionPanel.clipOffset = new Vector2(ActionFromIdx, 0);
        StageActions            = transform.FindChild("StageInfoView").GetComponents <TweenScale>();
        StageActions[0].enabled = false;
        StageActions[1].enabled = false;

        SweepActions            = transform.FindChild("SweepPopup").GetComponents <TweenScale>();
        SweepActions[0].enabled = false;
        SweepActions[1].enabled = false;

        if (SceneManager.instance.testData.bQuestTestStart)
        {
            TempCoroutine.instance.FrameDelay(2.0f, () => {
                panel.GotoInGame();
            });
        }
    }
    public override void Init()
    {
        SceneManager.instance.sw.Reset();
        SceneManager.instance.sw.Start();

        SceneManager.instance.showStopWatchTimer("costume panel, Init() start");

        base.Init();

        UserInfo   = NetData.instance.GetUserInfo();
        SkillMaxLv = _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.CharacterMaxSkillLevel);

        Transform gridTf = ViewObj[(uint)ViewType.List].transform.FindChild("ScrollView/Grid");

        if (gridTf.childCount < UserInfo.GetCostumeList().Count) //슬롯에 뿌려줘야 하는 데이터가 더 많다 슬롯 생성한다.
        {
            int createCount = 5;                                 //일단임의로? 이거물어봐야해 //UserInfo.GetCostumeList().Count;
            UIHelper.CreateSlotItem(true, createCount, gridTf.GetChild(0), gridTf, null);
        }

        InitEventButton();

        NetData._CostumeData costumeData = UserInfo.GetEquipCostume();
        CreateCostume(costumeData, false, false);

        string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), NetData.instance.UserLevel);

        UserNickAndLevel.text = string.Format("{0} {1}", lvStr, NetData.instance.Nickname);
        CostumeName.text      = costumeData.GetLocName();//itemInfo.itemName;

        //승급 초기화
        int loopCount = EvolveRootTfs.Length;

        EvolInvenSlots = new InvenItemSlotObject[loopCount];
        for (int i = 0; i < loopCount; i++)
        {
            GameObject slotGo = Instantiate(InvenSlotPrefab) as GameObject;
            Transform  tf     = slotGo.transform;
            tf.parent        = EvolveRootTfs[i];
            tf.localPosition = Vector3.zero;
            tf.localScale    = Vector3.one;

            EvolInvenSlots[i] = slotGo.GetComponent <InvenItemSlotObject>();
            //EvolInvenSlots[i].SetBackGround("Blod_SlotBg02");
        }

        loopCount       = SocketRootTfs.Length;
        JewelInvenSlots = new InvenItemSlotObject[loopCount];
        for (int i = 0; i < loopCount; i++)
        {
            GameObject slotGo = Instantiate(InvenSlotPrefab) as GameObject;
            Transform  tf     = slotGo.transform;
            tf.parent        = SocketRootTfs[i].FindChild("target");
            tf.localPosition = Vector3.zero;
            tf.localScale    = Vector3.one;

            JewelInvenSlots[i] = slotGo.GetComponent <InvenItemSlotObject>();
            JewelInvenSlots[i].EmptySlot();

            UIEventTrigger uiTri   = SocketRootTfs[i].GetComponent <UIEventTrigger>();
            int            slotArr = i;
            EventDelegate.Set(uiTri.onClick, delegate() {
                OnClickJewelSlot(slotArr);
            });
        }

        UILabel label = BtnOnceSkillLevelup.transform.FindChild("label_d6").GetComponent <UILabel>();

        label.text = string.Format(_LowDataMgr.instance.GetStringCommon(45), 1);

        SelectSkillEff = UIHelper.CreateEffectInGame(GetViewObj(ViewType.Skill).transform, "Fx_UI_circle_select").transform;
        SkillUpEff     = UIHelper.CreateEffectInGame(GetViewObj(ViewType.Skill).transform, "Fx_UI_cos_skillup");

        TabGroup.Initialize(OnClickTab);


        SceneManager.instance.showStopWatchTimer("costume panel, Init() finish");
    }
    /// <summary> 아이템 디테일 팝업 실행 함수. </summary>
    void SetDetailPopup(NetData._ItemData itemData)
    {
        CurItemData = itemData;
        Debug.Log(string.Format("Click Item UseId={0}, equipId={1}", itemData._useitemDataIndex, itemData._equipitemDataIndex));
        bool isDifferentClass = false;

        NetData._UserInfo charInven = NetData.instance.GetUserInfo();

        if (CurItemData.IsEquipItem())
        {
            LinkPopup[0].SetActive(false);
            LinkPopup[1].SetActive(false);

            int limitLv = CurItemData.GetEquipLowData().LimitLevel;
            //EquipLv.text = string.Format(_LowDataMgr.instance.GetStringCommon(952), limitLv);
            if (limitLv <= charInven._Level && !isDifferentClass)//내 직업이고 레벨이 높다면
            {
                EquipState[0].SetActive(true);
                EquipState[1].SetActive(false);
            }
            else
            {
                EquipState[0].SetActive(false);
                EquipState[1].SetActive(true);
            }

            uint strKey = 0;
            if (BasePanel is EquipmentPanel)
            {
                Item.EquipmentInfo equipLow = CurItemData.GetEquipLowData();
                if (CurItemData._enchant < equipLow.MaxEnchant)
                {
                    strKey = 31;
                }
                else if (0 < equipLow.NextPartsId)
                {
                    strKey = 32;
                }
                else//최대
                {
                    strKey = 1182;
                }
            }
            else
            {
                strKey = 106;//닫기
            }
            if (0 < strKey)
            {
                SetOnOff(MainBtn.transform, true, _LowDataMgr.instance.GetStringCommon(strKey));
            }

            //텍스트 셋팅
            int    grade = itemData.GetEquipLowData().Grade;
            string color = UIHelper.GetItemGradeColor(grade);
            ItemName.text = string.Format("{0}{1}[-] [FFE400]+{2}[-]", color, itemData.GetLocName(), itemData._enchant);
        }
        else
        {
            //EquipLv.text = "";
            EquipState[0].SetActive(false);
            EquipState[1].SetActive(false);
            LinkPopup[0].SetActive(true);
            LinkPopup[1].SetActive(false);

            SetOnOff(MainBtn.transform, true, _LowDataMgr.instance.GetStringCommon(106));
            int count = charInven.GetItemCountForItemId(CurItemData._useitemDataIndex, (byte)eItemType.USE);
            LinkItemSlot[0].SetLowDataItemSlot(CurItemData._useitemDataIndex, (uint)count);
            LinkItemSlot[0].transform.parent.FindChild("Lock").gameObject.SetActive(count <= 0);

            Transform gridTf = LinkScroll.transform.FindChild("Grid");
            List <Item.ContentsListInfo> conList = _LowDataMgr.instance.GetLowDataContentsItemList(CurItemData._useitemDataIndex);
            for (int i = 0; i < conList.Count; i++)
            {
                Item.ContentsListInfo info = conList[i];
                string contentsName        = _LowDataMgr.instance.GetStringCommon(info.ContentsName);
                if (info.ContentsParam != null && 0 < info.ContentsParam.Count)
                {
                    if (contentsName.Contains("{0}") && contentsName.Contains("{1}"))
                    {
                        contentsName = string.Format(contentsName, info.ContentsParam[0], info.ContentsParam[1]);
                    }
                    else if (contentsName.Contains("{0}"))
                    {
                        contentsName = string.Format(contentsName, info.ContentsParam[0]);
                    }
                }

                Transform tf = null;
                if (i < gridTf.childCount)
                {
                    tf = gridTf.GetChild(i);
                }
                else
                {
                    tf            = Instantiate(gridTf.GetChild(0)) as Transform;
                    tf.parent     = gridTf;
                    tf.localScale = Vector3.one;
                }

                tf.gameObject.SetActive(true);

                tf.FindChild("txt").GetComponent <UILabel>().text = contentsName;
                bool isEnter = true;
                if (CheckContentsLink(info, false))//조건 만족
                {
                    tf.FindChild("error_txt").GetComponent <UILabel>().text = "";
                }
                else
                {
                    isEnter = false;

                    string contentsError = _LowDataMgr.instance.GetStringCommon(info.ConditionName);
                    if (info.ConditionParam != null && 0 < info.ConditionParam.Count)
                    {
                        if (contentsError.Contains("{0}") && contentsError.Contains("{1}"))
                        {
                            contentsError = string.Format(contentsError, info.ConditionParam[0], info.ConditionParam[1]);
                        }
                        else if (contentsError.Contains("{0}"))
                        {
                            contentsError = string.Format(contentsError, info.ConditionParam[0]);
                        }
                    }

                    tf.FindChild("error_txt").GetComponent <UILabel>().text = contentsError;
                }

                EventDelegate.Set(tf.FindChild("Btn").GetComponent <UIEventTrigger>().onClick, () => { OnClickContentsLink(info); });
                if (info.ContentsLinkType == 1)//재료조합
                {
                    tf.FindChild("Btn/On/label").GetComponent <UILabel>().text  = _LowDataMgr.instance.GetStringCommon(39);
                    tf.FindChild("Btn/Off/label").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(39);
                }
                else if (info.ContentsLinkType == 2)//바로가기(던전)
                {
                    tf.FindChild("Btn/On/label").GetComponent <UILabel>().text  = _LowDataMgr.instance.GetStringCommon(249);
                    tf.FindChild("Btn/Off/label").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(249);
                }

                tf.FindChild("Btn/On").gameObject.SetActive(isEnter);
                tf.FindChild("Btn/Off").gameObject.SetActive(!isEnter);
            }

            gridTf.GetComponent <UIGrid>().repositionNow = true;
            for (int j = conList.Count; j < gridTf.childCount; j++)
            {
                gridTf.GetChild(j).gameObject.SetActive(false);
            }

            if (conList.Count < 4)
            {
                LinkScroll.enabled = false;
            }
            else
            {
                LinkScroll.enabled = true;
            }

            Item.ItemInfo data  = itemData.GetUseLowData();
            string        color = UIHelper.GetItemGradeColor(data == null ? 0 : (int)data.Grade);
            ItemName.text = string.Format("{0}{1}[-] [FFE400][-]", color, itemData.GetLocName());
        }

        //아이템 셋팅
        ItemSlot.SetInvenItemSlot(itemData, null, 0);

        //아이템의 옵션들 셋팅
        byte optionCount = 0;

        Desc.transform.localPosition = SetAbility(itemData, ref optionCount); //어빌리티
        SetDesc(itemData, ref optionCount);                                   //아이템 설명 표현

        OptionScrollView.ResetPosition();
        if (optionCount <= 1)//스크롤 되면 안됨.
        {
            AbilityTf.parent.collider.enabled = false;
        }
        else
        {
            AbilityTf.parent.collider.enabled = true;
        }
    }