Example #1
0
    /// <summary> 파트너 슬롯 버튼 </summary>
    void OnClickPartnerRoot(int rootID)
    {
        PnTouchEff[SelectPnRootID].SetActive(false);
        PnTouchEff[rootID].SetActive(true);
        SelectPnRootID = rootID;

        if (PnRootInfo[rootID].isInsert)//이미 무언가가 들어가 있음 뺀다.
        {
            NetData._PartnerData partnerData = CharInven.GetEquipPartner(rootID + 1);
            CharInven.UnEquipPartner(rootID + 1);

            //사용하던 슬롯 다시 사용가능하게 해준다.
            Transform slotTf = PartnerGrid.FindChild(string.Format("{0}", PnRootInfo[rootID].insertSlotID));
            slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.white;

            Debug.Log("<color=blue/>DisMount slotID " + PnRootInfo[rootID].insertSlotID);

            PnRootInfo[rootID].DeleteSlot();    //슬롯 정보 삭제
            PnTouchObj[rootID].SetActive(true); //터치 라벨 킨다.

            if (0 < PartnerModelRoot[rootID].childCount)
            {
                PartnerModelRoot[rootID].GetChild(0).gameObject.SetActive(false);
            }

            TakeParNames[rootID].text = null;
        }
        else//아무것도 없음 추가해준다.
        {
            //PartnerSlotList.SetActive(true);
            UIGrid grid = PartnerGrid.GetComponent <UIGrid>();
            grid.enabled = true;
            grid.Reposition();
        }
    }
Example #2
0
    /// <summary> 파트너 추가함 </summary>
    void OnClickAddPartner(NetData._PartnerData data)
    {
        int lenght = PnRootInfo.Length;

        for (int i = 0; i < lenght; i++)
        {
            if (PnRootInfo[i] == null)
            {
                continue;
            }

            if (PnRootInfo[i].isInsert && data._partnerDataIndex == PnRootInfo[i].insertSlotID)//장착중이거나 장착중인 녀석과 동일하다면 무시.
            {
                return;
            }
        }

        //파트너 장착
        CharInven.UnEquipPartner(SelectPnRootID + 1);
        CharInven.EquipPartner(data, SelectPnRootID + 1);

        Transform modelRoot = PartnerModelRoot[SelectPnRootID];

        PnTouchObj[SelectPnRootID].SetActive(false);                                                  //터치 라벨 끈다.

        UIHelper.CreateEffectInGame(PnTouchObj[SelectPnRootID].transform.parent, "Fx_UI_par_insert"); //교체이펙트

        if (PnRootInfo[SelectPnRootID].isInsert)
        {
            //사용하던 슬롯 다시 사용가능하게 해준다.
            Transform prevSlotTf = PartnerGrid.FindChild(string.Format("{0}", PnRootInfo[SelectPnRootID].insertSlotID));
            prevSlotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.white;
        }

        //등록한 파트너 슬롯 딤처리
        Transform slotTf = PartnerGrid.FindChild(string.Format("{0}", data._partnerDataIndex));

        slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.gray;

        //파트너 이름, level 넣는다.
        string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), data._NowLevel);

        TakeParNames[SelectPnRootID].text = string.Format("{0} {1}", lvStr, data.GetLocName());

        UIHelper.CreatePartnerUIModel(modelRoot, data._partnerDataIndex, 3, true, false, "ReadyPopup");

        PnRootInfo[SelectPnRootID].SetModel(data._partnerDataIndex);
        //PartnerSlotList.SetActive(false);
    }
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.P))
        {
            //Cam3D.rect = new Rect(0, Cam3D.rect.y, Cam3D.rect.width, Cam3D.rect.height);

            List <NetData._PartnerData> dataList    = GetSortPartnerList();//CharInven.GetPartnerList();
            NetData._PartnerData        partnerData = dataList[CurPnDataArray];

            IsDuringEffect = true;
            //ChangeShader(true, false);
            ChangeInfoView(InfoViewType.SpawnInfo);

            Transform  tf = InfoViewObj[(int)InfoViewType.SpawnInfo].transform.FindChild("root");
            GameObject go = UIHelper.CreatePartnerUIModel(tf, partnerData._partnerDataIndex, 1, true, false, "PartnerPanel");

            UIModel    model = go.GetComponent <UIModel>();
            GameObject effGo = model.PlayIntro(SpawnEffectRoot, ParticleScale);
            if (effGo != null)
            {
                SpawnEffectRoot.localRotation = Quaternion.Euler(Vector3.zero);
            }
            else
            {
                effGo = Instantiate(SpawnEffectPrefab) as GameObject;
                SpawnEffectRoot.localRotation = Quaternion.Euler(new Vector3(20, 0, 0));
            }

            float delay = model.UnitAnim.GetAnimLength(eAnimName.Anim_intro) + 0.1f;
            //RotationTargetList[0].transform.parent.gameObject.SetActive(false);
            TempCoroutine.instance.FrameDelay(delay, () =>
            {
                // Cam3D.rect = new Rect(Cam3DViewport, Cam3D.rect.y, Cam3D.rect.width, Cam3D.rect.height);

                model.SetWeaponEffectActive(true);
                SpawnEffectRoot.parent = transform;
                DestroyImmediate(effGo);
                IsDuringEffect = false;

                ChangeInfoView(InfoViewType.ListInfo);
            });
        }
    }
    void CreatePartnerModel(Transform parent, NetData._PartnerData data)
    {
        GameObject go = UIHelper.CreatePartnerUIModel(parent, data._partnerDataIndex, 1, data._isOwn, false, "PartnerPanel");

        //go.SetActive(false);
        parent.localEulerAngles = Vector3.zero;
        //TempCoroutine.instance.FrameDelay(0.01f, () => {
        if (go == null)
        {
            return;
        }

        //go.SetActive(true);
        //go.GetComponent<UIModel>().PlayAnim(eAnimName.Anim_idle);
        Transform modelTf    = go.transform;
        int       childCount = modelTf.childCount;

        for (int i = 0; i < childCount; i++)
        {
            Transform tf = modelTf.GetChild(i);
            if (!tf.name.Contains("par_"))
            {
                continue;
            }

            int shaders = tf.renderer.materials.Length;
            for (int j = 0; j < shaders; j++)
            {
                Material m = tf.renderer.materials[j];
                //if (isSpawnView)
                //{
                //    m.SetFloat("_FlashAmount", 0f);
                //}
                //else
                {
                    m.SetFloat("_FlashAmount", data._isOwn ? 0f : 1f);
                    m.SetColor("_FlashColor", Color.black);
                }
            }
        }

        //});
    }
Example #5
0
    /// <summary> 진화 별 상승 응답 </summary>
    public void OnPMsgHeroPromoSHandler(uint partnerId)
    {
        CurData = UserInfo.GetPartnerForIdx(partnerId);

        UIHelper.CreateEffectInGame(EvolveEffRoot, "Fx_partner_skillup_01");

        EvolveLevel[1].GetComponent <TweenColor>().ResetToBeginning();
        EvolveLevel[1].GetComponent <TweenColor>().PlayForward();

        EvolveLevel[1].GetComponent <TweenScale>().ResetToBeginning();
        EvolveLevel[1].GetComponent <TweenScale>().PlayForward();

        IsUpgrading = true;
        TempCoroutine.instance.KeyDelay("ParEvolve", 1f, delegate()
        {
            IsUpgrading = false;
            DestroyImmediate(EvolveEffRoot.GetChild(0).gameObject);
            InitPromo();
            SoundManager.instance.PlaySfxSound(eUISfx.UI_par_upgrade_01, false);
        });
    }
    /// <summary>
    /// ListSlot을 클릭하면 실행 됨
    /// </summary>
    /// <param name="itemInfo"></param>
    void OnClickListSlot(ushort parDataId)
    {
        //CurPnDataArray = idx;
        NetData._PartnerData        data = null;//MovePartnerView();
        List <NetData._PartnerData> list = GetSortPartnerList();

        for (int i = 0; i < list.Count; i++)
        {
            if (list[i]._partnerDataIndex != parDataId)
            {
                continue;
            }

            CurPnDataArray = i;
            data           = list[i];
            break;
        }


        ChangeInfoView(InfoViewType.OwnInfo);
        OwnPartnerView.SetPartnerInfo(data);
    }
    /// <summary>
    /// 파트너 획득
    /// </summary>
    /// <param name="itemInfo"></param>
    void OnClickPartnerGet(ushort parDataId)
    {
        if (IsDuringEffect)
        {
            return;
        }

        List <NetData._PartnerData> dataList = GetSortPartnerList();

        NetData._PartnerData        data = null;//MovePartnerView();
        List <NetData._PartnerData> list = GetSortPartnerList();

        for (int i = 0; i < list.Count; i++)
        {
            if (list[i]._partnerDataIndex != parDataId)
            {
                continue;
            }

            CurPnDataArray = i;
            break;
        }

        data = dataList[CurPnDataArray];
        if (data.NowShard < data._needShard)
        {
            UIMgr.instance.AddPopup(141, 1176, 117);
            return;
        }

        if (SpawnEffectPrefab == null)
        {
            return;
        }

        NetworkClient.instance.SendPMsgHeroFusionC(data._partnerDataIndex);
    }
    public override void LateInit()
    {
        base.LateInit();

        if (mStarted && parameters != null && 0 < parameters.Length && (bool)parameters[0])//초기화
        {
            parameters[0] = false;
            ChangeInfoView(InfoViewType.ListInfo);
            OnTabPartnerList(CurPartnerTabArr);
            uiMgr.SetTopMenuTitleName(7);

            ListGridTf.parent.GetComponent <UIScrollView>().ResetPosition();
        }

        List <NetData._PartnerData> dataList = GetSortPartnerList();//CharInven.GetPartnerList();

        NetData._PartnerData partnerData = dataList[CurPnDataArray];
        if (CurInfoView == InfoViewType.SpawnInfo)
        {
            ChangeInfoView(InfoViewType.OwnInfo);
            OwnPartnerView.SetPartnerInfo(partnerData);
        }
        //else if(CurInfoView == InfoViewType.OwnInfo)
        //{
        //    ChangeInfoView(InfoViewType.ListInfo);
        //    OnTabPartnerList(CurPartnerTabArr);
        //    uiMgr.SetTopMenuTitleName(7);

        //    ListGridTf.parent.GetComponent<UIScrollView>().ResetPosition();
        //}

        if (CurInfoView == InfoViewType.ListInfo)
        {
            OnSubTutorial();
        }
    }
Example #9
0
    /// <summary> OwnDetailInfo를 실행하는 함수 </summary>
    public void SetPartnerInfo(NetData._PartnerData data, int openView = (int)ViewType.Attribute)
    {
        if (ModelRoot.childCount > 0)
        {
            DestroyImmediate(ModelRoot.GetChild(0).gameObject);
        }

        UIHelper.CreatePartnerUIModel(ModelRoot, data._partnerDataIndex, 3, true, false, "PartnerPanel");
        ModelRoot.localEulerAngles = Vector3.zero;

        string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), data._NowLevel);

        Name.text   = data.GetLocName();
        Damage.text = string.Format(_LowDataMgr.instance.GetStringCommon(1163), data._Attack);

        GradeLabel.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor((int)data.CurQuality), data.GetGradeName());

        Transform skillTab = TabBtn[1].transform;
        Transform upTab    = TabBtn[2].transform;

        if (data._isOwn)
        {
            if (data._NowLevel >= data._MaxLevel)
            {
                Level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1152), data._NowLevel);
            }
            else
            {
                Level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), data._NowLevel);
            }
        }
        else
        {
            Level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), 1);
        }

        CurData = data;
        CheckMoveState(openView);

        transform.FindChild("Info/Mark").GetComponent <UISprite>().spriteName = CurData.GetClassType();

        OnClickTabList(openView);
        //TabGroup.CoercionTab(openView);

        skillTab.GetComponent <BoxCollider>().enabled = data._isOwn;
        upTab.GetComponent <BoxCollider>().enabled    = data._isOwn;

        skillTab.transform.FindChild("tab_off").gameObject.SetActive(data._isOwn);
        skillTab.transform.FindChild("tab_disable").gameObject.SetActive(!data._isOwn);
        upTab.transform.FindChild("tab_off").gameObject.SetActive(data._isOwn);
        upTab.transform.FindChild("tab_disable").gameObject.SetActive(!data._isOwn);

        //중심축때문에..
        //파트너 모델링의 x 좌표만큼 상위의 ModelPos에더해줌.
        ModelRoot.SetLocalX(ModelRootX + ModelRoot.GetChild(0).transform.localPosition.x);
        ModelRoot.GetChild(0).transform.SetLocalX(0);

        if (SceneManager.instance.CurTutorial == TutorialType.PARTNER)
        {
            TabBtn[1].gameObject.GetComponent <TutorialSupport>().OnTutoSupportStart();
        }
    }
    void SetMaterialReadyPopup()
    {
        string nickName = NetData.instance.Nickname;
        string _lvStr   = string.Format(_LowDataMgr.instance.GetStringCommon(453), NetData.instance.UserLevel);

        charNameLv.text = string.Format("{0} {1}", _lvStr, nickName);


        //장착중인 파트너 생성
        NetData._CostumeData equipCostumeData = CharInven.GetEquipCostume();
        uint weaponId = 0, clothId = 0, headId = 0;

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

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

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

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

        UIHelper.CreatePcUIModel("DungeonPanel", PlayCharRoot, CharInven.GetCharIdx(), headId, equipCostumeData._costmeDataIndex, clothId, weaponId, CharInven.GetEquipSKillSet().SkillSetId, 3, CharInven.isHideCostum, false);

        NetData._PartnerData partner_0 = CharInven.GetEquipPartner(1);
        NetData._PartnerData partner_1 = CharInven.GetEquipPartner(2);

        if (partner_0 != null)
        {
            Transform modelRoot = PartnerModelRoot[0];
            PnTouchObj[0].SetActive(false);//터치 라벨 끈다.
            PnTouchEff[0].SetActive(false);
            PartnerModelRoot[0].gameObject.SetActive(true);

            UIHelper.CreatePartnerUIModel(modelRoot, partner_0._partnerDataIndex, 3, true, false, "DungeonPanel");
            string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_0._NowLevel);
            TakeParNames[0].text = string.Format("{0} {1}", lvStr, partner_0.GetLocName());
        }
        else
        {
            PnTouchObj[0].SetActive(true);//터치 라벨 킨다.
            PnTouchEff[0].SetActive(true);
            PartnerModelRoot[0].gameObject.SetActive(false);
            TakeParNames[0].text = "";
        }

        if (partner_1 != null)
        {
            Transform modelRoot = PartnerModelRoot[1];
            PnTouchObj[1].SetActive(false);//터치 라벨 끈다.
            PnTouchEff[1].SetActive(false);
            PartnerModelRoot[1].gameObject.SetActive(true);

            UIHelper.CreatePartnerUIModel(modelRoot, partner_1._partnerDataIndex, 3, true, false, "DungeonPanel");
            string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_1._NowLevel);
            TakeParNames[1].text = string.Format("{0} {1}", lvStr, partner_1.GetLocName());
        }
        else
        {
            PnTouchObj[1].SetActive(true);//터치 라벨 킨다.
            PnTouchEff[1].SetActive(true);
            PartnerModelRoot[1].gameObject.SetActive(false);
            TakeParNames[1].text = "";
        }
    }
    void OnMatchListSlotdelegate()
    {
        for (int i = 0; i < PvpGrid.transform.childCount; i++)
        {
            if (i >= EnemyList.Count)
            {
                PvpGrid.transform.GetChild(i).gameObject.SetActive(false);
                continue;
            }

            GameObject slotGo = PvpGrid.transform.GetChild(i).gameObject;
            Transform  slotTf = slotGo.transform;
            slotGo.SetActive(true);

            slotTf.FindChild("win_reward").gameObject.SetActive(MyTopRank > EnemyList[i].Rank);  //상대승리시 최고래밸을 달성할수있을시 ..
            if (slotTf.FindChild("win_reward").gameObject.activeSelf)
            {
                slotTf.FindChild("win_reward/label").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1259), (MyTopRank - EnemyList[i].Rank) * _LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvPfirstgetcash));
            }
            slotTf.FindChild("lv").GetComponent <UILabel>().text           = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(14), EnemyList[i].Level);
            slotTf.FindChild("battle").GetComponent <UILabel>().text       = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), EnemyList[i].Attack);
            slotTf.FindChild("name").GetComponent <UILabel>().text         = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(155), EnemyList[i].Name);
            slotTf.FindChild("rank").GetComponent <UILabel>().text         = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(1020), EnemyList[i].Rank);
            slotTf.FindChild("class").GetComponent <UISprite>().spriteName = UIHelper.GetClassIcon((uint)EnemyList[i].Type);

            if ((ulong)EnemyList[i].RoleId == CharInven.GetCharUUID())
            {
                slotTf.FindChild("win_reward").gameObject.SetActive(false);
                slotTf.FindChild("BtnStart").gameObject.SetActive(false);
            }
            else
            {
                slotTf.FindChild("BtnStart").gameObject.SetActive(true);
            }


            int idx = i;
            EventDelegate.Set(slotTf.FindChild("BtnStart").GetComponent <UIButton>().onClick, delegate()
            {
                NetData._PartnerData par_1 = CharInven.GetEquipPartner(1);
                NetData._PartnerData par_2 = CharInven.GetEquipPartner(2);
                EnemyPartners = new int[] {
                    (int)(par_1 != null ? par_1._partnerIndex : 0),
                    (int)(par_2 != null ? par_2._partnerIndex : 0)
                };

                EnemyInfo = EnemyList[idx];

                if (ResetCount >= 1)
                {
                    if (ResetCount - DailyCount == 0)
                    {
                        OnClickBuyBtn();
                        return;
                    }
                }
                else
                {
                    if (MaxDailyCount <= DailyCount)
                    {
                        OnClickBuyBtn();
                        return;
                    }
                }

                NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank);
            });
        }

        PvpGrid.repositionNow = true;


        //if (EnemyList.Count <= arr)
        //{
        //    go.SetActive(false);
        //    return;
        //}
        //go.SetActive(true);

        //Transform tf = go.transform;

        //tf.FindChild("win_reward").gameObject.SetActive(MyTopRank > EnemyList[arr].Rank);  //상대승리시 최고래밸을 달성할수있을시 ..
        //if (tf.FindChild("win_reward").gameObject.activeSelf)
        //{
        //    tf.FindChild("win_reward/label").GetComponent<UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1259), (MyTopRank - EnemyList[arr].Rank) * _LowDataMgr.instance.GetEtcTableValue<uint>(EtcID.PvPfirstgetcash));
        //}
        //tf.FindChild("lv").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(14), EnemyList[arr].Level);
        //tf.FindChild("battle").GetComponent<UILabel>().text = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), EnemyList[arr].Attack);
        //tf.FindChild("name").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(155), EnemyList[arr].Name);
        //tf.FindChild("rank").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(1020), EnemyList[arr].Rank);
        //tf.FindChild("class").GetComponent<UISprite>().spriteName = UIHelper.GetClassIcon((uint)EnemyList[arr].Type);

        //if ((ulong)EnemyList[arr].RoleId == CharInven.GetCharUUID())
        //{
        //    tf.FindChild("win_reward").gameObject.SetActive(false);
        //    tf.FindChild("BtnStart").gameObject.SetActive(false);
        //}
        //else
        //    tf.FindChild("BtnStart").gameObject.SetActive(true);


        //EventDelegate.Set(tf.FindChild("BtnStart").GetComponent<UIButton>().onClick, delegate () {

        //    NetData._PartnerData par_1 = CharInven.GetEquipPartner(1);
        //    NetData._PartnerData par_2 = CharInven.GetEquipPartner(2);
        //    EnemyPartners = new int[] {
        //                    (int)(par_1 != null ? par_1._partnerIndex : 0),
        //                    (int)(par_2 != null ? par_2._partnerIndex : 0)
        //                };

        //    EnemyInfo = EnemyList[arr];

        //    if (ResetCount >= 1)
        //    {
        //        if(ResetCount - DailyCount == 0)
        //        {
        //            OnClickBuyBtn();
        //            return;
        //        }
        //    }
        //    else
        //    {
        //        if (MaxDailyCount <= DailyCount)
        //        {
        //            OnClickBuyBtn();
        //            return;
        //        }
        //    }

        //    NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank);
        //});

        /*
         *
         *
         *      if (ResetCount >= 1)
         *      {
         *          FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), ResetCount - DailyCount, MaxDailyCount);    //이떄 한개만
         *          BuyBtn.gameObject.SetActive(ResetCount - DailyCount == 0);
         *
         *      }
         *      else
         *      {
         *          FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount);
         *          BuyBtn.ga
         */
    }
Example #12
0
    public override void LateInit()
    {
        base.LateInit();

        GameMode  = (GAME_MODE)parameters[0];
        BasePanel = (UIBasePanel)parameters[1];
        int   energe = (int)parameters[2];
        int   max    = (int)parameters[3];
        float scale  = PartnerModelRoot[0].localScale.x;//파트너는 이값으로

        bool   isNetwork   = false;
        string startBtnLbl = null;

        switch (GameMode)
        {
        case GAME_MODE.SINGLE:
        {
            //모험모드일때만 체력표시되게해주세요
            UIMgr.instance.TopMenu.MenuType[3].transform.parent.gameObject.SetActive(true);
            startBtnLbl = string.Format("{0} ({1} {2})", _LowDataMgr.instance.GetStringCommon(66), energe, _LowDataMgr.instance.GetStringCommon(1));        //("시작"), ("에너지")
            break;
        }


        case GAME_MODE.SPECIAL_EXP:
        case GAME_MODE.SPECIAL_GOLD:
        case GAME_MODE.RAID:
        case GAME_MODE.TOWER:
            startBtnLbl = string.Format("{0}/{1} {2}", max - energe, max, _LowDataMgr.instance.GetStringCommon(66));
            break;

        case GAME_MODE.COLOSSEUM:
        case GAME_MODE.MULTI_RAID:
            isNetwork   = true;
            startBtnLbl = string.Format("{0}/{1} {2}", max - energe, max, _LowDataMgr.instance.GetStringCommon(66));
            scale       = 0.8f;//플레이어는 이값으로
            break;

        case GAME_MODE.ARENA:
            startBtnLbl = string.Format("{0}", _LowDataMgr.instance.GetStringCommon(1053));
            //transform.FindChild("BtnStartGame").collider.enabled = false;
            break;

        default:
            startBtnLbl = "unDefined 0";
            break;
        }

        NetInfoTf.gameObject.SetActive(isNetwork);
        transform.FindChild("Partner").gameObject.SetActive(!isNetwork);
        transform.FindChild("BtnStartGame").gameObject.SetActive(!isNetwork);//상황따라 꺼놓는다.

        PartnerModelRoot[0].localScale = new Vector3(scale, scale, scale);
        PartnerModelRoot[1].localScale = new Vector3(scale, scale, scale);

        IsRoom = isNetwork;
        if (isNetwork)
        {
            InitNetworkDungeon(startBtnLbl);
        }
        else
        {
            transform.FindChild("BtnStartGame/need_food").GetComponent <UILabel>().text = startBtnLbl;

            //캐릭터 닉네임, 레벨 셋팅
            string nickName = NetData.instance.Nickname;
            string lvStr    = string.Format(_LowDataMgr.instance.GetStringCommon(453), NetData.instance.UserLevel);
            transform.FindChild("Character/CharView/CharSlot/player_name").GetComponent <UILabel>().text =
                string.Format("{0} {1}", lvStr, nickName);

            //플레이어 생성
            NetData._CostumeData equipCostumeData = CharInven.GetEquipCostume();
            uint weaponId = 0, clothId = 0, headId = 0;
            if (CharInven.isHideCostum)
            {
                NetData._ItemData head   = CharInven.GetEquipParts(ePartType.HELMET);
                NetData._ItemData cloth  = CharInven.GetEquipParts(ePartType.CLOTH);
                NetData._ItemData weapon = CharInven.GetEquipParts(ePartType.WEAPON);

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

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

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

            UIHelper.CreatePcUIModel("ReadyPopup", PlayCharRoot, CharInven.GetCharIdx(), headId, equipCostumeData._costmeDataIndex, clothId, weaponId, CharInven.GetEquipSKillSet().SkillSetId, 0, CharInven.isHideCostum, false);
        }

        if (GameMode != GAME_MODE.COLOSSEUM && GameMode != GAME_MODE.MULTI_RAID)//파트너못대려가는 지역.
        {
            Transform parBtnTf = transform.FindChild("Character/CharView");
            EventDelegate.Set(parBtnTf.FindChild("BtnPartnerSlot_0").GetComponent <UIEventTrigger>().onClick, delegate() { OnClickPartnerRoot(0); });
            EventDelegate.Set(parBtnTf.FindChild("BtnPartnerSlot_1").GetComponent <UIEventTrigger>().onClick, delegate() { OnClickPartnerRoot(1); });
            //CanNotTakePartner.SetActive(false);

            //슬롯 셋팅
            int ownCount = 0;
            List <NetData._PartnerData> dataList = CharInven.GetPartnerList();
            if (PartnerGrid.childCount < dataList.Count)
            {
                int loopCount = dataList.Count;
                for (int i = 0; i < loopCount; i++)
                {
                    Transform slotTf = null;
                    if (i < PartnerGrid.childCount)
                    {
                        slotTf = PartnerGrid.GetChild(i);
                    }
                    else
                    {
                        GameObject slotGo = Instantiate(PartnerSlotPrefab) as GameObject;
                        slotTf               = slotGo.transform;
                        slotTf.parent        = PartnerGrid;
                        slotTf.localPosition = Vector3.zero;
                        slotTf.localScale    = Vector3.one;
                    }

                    NetData._PartnerData data = dataList[i];
                    if (!data._isOwn)
                    {
                        slotTf.gameObject.SetActive(false);
                        continue;
                    }

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

                    UIButton uiBtn = slotTf.GetComponent <UIButton>();
                    EventDelegate.Set(uiBtn.onClick, delegate()
                    {
                        OnClickAddPartner(data);
                    });

                    UISprite faceIcon    = slotTf.FindChild("face_d3").GetComponent <UISprite>();
                    UISprite gradeIcon   = slotTf.FindChild("grade").GetComponent <UISprite>();
                    UISprite gradebgIcon = slotTf.FindChild("grade_bg").GetComponent <UISprite>();
                    UILabel  nameLbl     = slotTf.FindChild("partner_name_d4").GetComponent <UILabel>();
                    nameLbl.text           = data.GetLocName();
                    faceIcon.spriteName    = data.GetIcon();
                    gradeIcon.spriteName   = string.Format("Icon_0{0}", data.CurQuality);
                    gradebgIcon.spriteName = string.Format("Icon_bg_0{0}", data.CurQuality);

                    if (!data._isEquip)//장착중이 아니면
                    {
                        slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.white;
                        continue;
                    }

                    //장착중인 것 셋팅
                    //등록한 파트너 슬롯 딤처리
                    slotTf.FindChild("face_d3").GetComponent <UISprite>().color = Color.gray;
                    PnRootInfo[data._SlotNumber - 1].SetModel(data._partnerDataIndex);
                }

                UIScrollView scroll = PartnerGrid.parent.GetComponent <UIScrollView>();
                if (4 < ownCount)
                {
                    scroll.enabled = true;
                }
                else
                {
                    if (ownCount <= 0)
                    {
                        NotPartner.SetActive(true);
                    }
                    else
                    {
                        NotPartner.SetActive(false);
                    }

                    scroll.enabled = false;
                }

                if (0 < ownCount)
                {
                    GameObject effGo_01 = UIHelper.CreateEffectInGame(PnTouchEff[0].transform, "Fx_UI_partner_select_01", false);
                    GameObject effGo_02 = UIHelper.CreateEffectInGame(PnTouchEff[1].transform, "Fx_UI_partner_select_01", false);
                    effGo_01.transform.localEulerAngles = Vector3.zero;
                    effGo_02.transform.localEulerAngles = Vector3.zero;

                    effGo_01.layer = LayerMask.NameToLayer("UI");
                    effGo_02.layer = LayerMask.NameToLayer("UI");
                    effGo_01.transform.SetChildLayer(LayerMask.NameToLayer("UI"));
                    effGo_02.transform.SetChildLayer(LayerMask.NameToLayer("UI"));

                    PnTouchEff[0].SetActive(true);
                    PnTouchEff[1].SetActive(false);
                }
            }

            //장착중인 파트너 생성
            NetData._PartnerData partner_0 = CharInven.GetEquipPartner(1);
            NetData._PartnerData partner_1 = CharInven.GetEquipPartner(2);
            if (partner_0 != null)
            {
                Transform modelRoot = PartnerModelRoot[0];
                PnTouchObj[0].SetActive(false);//터치 라벨 끈다.

                UIHelper.CreatePartnerUIModel(modelRoot, partner_0._partnerDataIndex, 3, true, false, "ReadyPopup");
                string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_0._NowLevel);
                TakeParNames[0].text = string.Format("{0} {1}", lvStr, partner_0.GetLocName());
            }
            else if (0 < ownCount)
            {
                PnTouchObj[0].SetActive(true);//터치 라벨 킨다.
            }
            //else
            //{
            //    PnTouchObj[0].SetActive(true);//터치 라벨 킨다.
            //    TakeParNames[0].text = "";
            //}

            if (partner_1 != null)
            {
                Transform modelRoot = PartnerModelRoot[1];
                PnTouchObj[1].SetActive(false);//터치 라벨 끈다.

                UIHelper.CreatePartnerUIModel(modelRoot, partner_1._partnerDataIndex, 3, true, false, "ReadyPopup");
                string lvStr = string.Format(_LowDataMgr.instance.GetStringCommon(453), partner_1._NowLevel);
                TakeParNames[1].text = string.Format("{0} {1}", lvStr, partner_1.GetLocName());
            }
            else if (0 < ownCount)
            {
                PnTouchObj[1].SetActive(true);//터치 라벨 킨다.
            }
            //else
            //{
            //    PnTouchObj[1].SetActive(true);//터치 라벨 킨다.
            //    TakeParNames[1].text = "";
            //}
        }
        else
        {
            NotPartner.SetActive(false);
        }
    }
    /*
     * 1순위 소환가능한파트너..
     * 2순위 보유
     * 3순위 보유중, 높은등급
     * 4순위 보유중, 높은등급, 낮은파트너ID
     * 5순위 미보유
     * 6순위 미보유 낮은 파트너ID
     */
    int SortPartnerList(NetData._PartnerData a, NetData._PartnerData b)
    {
        if (a._isOwn && b._isOwn)
        {
            //둘다 보유하고있을때체크
            uint aGrade = a.CurQuality, bGrade = b.CurQuality;

            if (a == b)
            {
                return(0);
            }

            if (aGrade < bGrade)
            {
                return(1);
            }
            else if (aGrade == bGrade)
            {
                if (a._partnerDataIndex < b._partnerDataIndex)
                {
                    return(1);
                }
                else
                {
                    return(-1);
                }
            }
            else
            {
                return(-1);
            }
        }
        else if (a == b)
        {
            return(0);
        }
        else if (a._isOwn && !b._isOwn)
        {
            if (b.NowShard >= b._needShard)
            {
                return(1);
            }
            return(-1);
        }
        else if (!a._isOwn && b._isOwn)
        {
            if (a.NowShard >= a._needShard)
            {
                return(-1);
            }

            return(1);
        }
        else
        {
            //둘다 보유안하고잇음 , 소환가능한것을 앞으로
            if (a.NowShard >= a._needShard && b.NowShard < b._needShard) //a가능 b불가
            {
                return(-1);
            }
            else if (a.NowShard >= a._needShard && b.NowShard >= b._needShard)   //a가능 b가능 -> 인덱스순
            {
                if (a._partnerDataIndex < b._partnerDataIndex)
                {
                    return(-1);
                }
                return(1);
            }
            else if (a.NowShard < a._needShard && b.NowShard < b._needShard)    // a불가 b불가
            {
                //둘다 소환불가능하면 인덱스순으로
                if (a._partnerDataIndex < b._partnerDataIndex)
                {
                    return(-1);
                }

                return(1);
            }
            else    //a불가 b가능?
            {
                return(1);
            }
        }
    }
    /// <summary>
    /// Partner를 셋팅 및 보여준다.
    /// </summary>
    /// <param name="type">PartnerType으로 타입에 맞게 보여줌</param>
    int OnTabPartnerList(int typeIdx)
    {
        PartnerClassType type = (PartnerClassType)typeIdx;
        int gridSlotCount     = 0;

        bool isTuto = SceneManager.instance.CurTutorial == TutorialType.PARTNER;
        List <NetData._PartnerData> dataList = CharInven.GetPartnerList();
        int loopCount = dataList.Count;

        for (int i = 0; i < loopCount; i++)
        {
            ListGridTf.GetChild(i).gameObject.SetActive(false);

            NetData._PartnerData    data = dataList[i];
            Partner.PartnerDataInfo info = data.GetLowData();
            if (type != PartnerClassType.None && (PartnerClassType)info.Class != type)
            {
                continue;
            }

            Transform slotTf = ListGridTf.GetChild(gridSlotCount);
            slotTf.gameObject.SetActive(true);


            slotTf.FindChild("Mark").GetComponent <UISprite>().spriteName = data.GetClassType();
            //보유조각수
            slotTf.FindChild("Txt_count").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1154), data.NowShard, data._needShard);


            UISprite face = slotTf.FindChild("Itemroot/face").GetComponent <UISprite>();
            UISprite bg   = slotTf.FindChild("Itemroot/gradebg").GetComponent <UISprite>();
            face.spriteName = data.GetIcon();
            slotTf.FindChild("Txt_name").GetComponent <UILabel>().text = data.GetLocName();

            UILabel level = slotTf.FindChild("Txt_class").GetComponent <UILabel>();

            //등급은 색상도 고려해줘..
            UILabel gradeLabel = slotTf.FindChild("Txt_type").GetComponent <UILabel>();

            slotTf.FindChild("Itemroot/grade").GetComponent <UISprite>().spriteName = string.Format("Icon_0{0}", data.CurQuality);
            bg.spriteName = string.Format("Icon_bg_0{0}", data.CurQuality);

            Transform  btnGetTf    = slotTf.FindChild("Btn_Get");                 //소환버튼
            GameObject btnGetAfter = slotTf.FindChild("Btn_Getafter").gameObject; //보유중일때나옴
            btnGetAfter.SetActive(data._isOwn);
            btnGetTf.gameObject.SetActive(!data._isOwn);
            slotTf.FindChild("bg_on").gameObject.SetActive(data._isOwn);//배경

            if (data._isOwn)
            {
                EventDelegate.Set(btnGetAfter.GetComponent <UIEventTrigger>().onClick, delegate() {
                    UIMgr.instance.AddPopup(141, 1177, 117);    //보유중알림메시지
                });

                if (data._NowLevel >= data._MaxLevel)//최대렙
                {
                    level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1152), data._NowLevel);
                }
                else
                {
                    level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), data._NowLevel);
                }

                //색상도고려
                gradeLabel.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor((int)data.CurQuality), data.GetGradeName());
            }
            else
            {
                if (isTuto && type == PartnerClassType.Attack && data.NowShard >= data._needShard)
                {
                    isTuto = false;
                    TutorialSupport support = btnGetTf.gameObject.AddComponent <TutorialSupport>();
                    support.TutoType = TutorialType.PARTNER;
                    support.SortId   = 3;
                    support.IsScroll = true;

                    //support.NextTuto = OwnPartnerView.TabBtn[1].gameObject.GetComponent<TutorialSupport>();
                    support.OnTutoSupportStart();
                }

                btnGetTf.FindChild("Btn_on").gameObject.SetActive(data.NowShard >= data._needShard);
                btnGetTf.FindChild("Btn_off").gameObject.SetActive(data.NowShard < data._needShard);

                level.text      = "";
                gradeLabel.text = _LowDataMgr.instance.GetStringCommon(1155);                                                                   //없으면 미보유
                EventDelegate.Set(btnGetTf.GetComponent <UIEventTrigger>().onClick, delegate() { OnClickPartnerGet(data._partnerDataIndex); }); //소환
            }

            //슬롯 클릭시 실행할 함수 셋팅
            EventDelegate.Set(slotTf.GetComponent <UIEventTrigger>().onClick, delegate() {
                OnClickListSlot(data._partnerDataIndex);
            });

            ++gridSlotCount;
        }

        ListGridTf.GetComponent <UIGrid>().repositionNow = true;

        return(gridSlotCount);
    }
    public void OnPartnerFusion(uint lowDataId)
    {
        List <NetData._PartnerData> dataList = GetSortPartnerList();

        NetData._PartnerData partnerData = null;

        int count = dataList.Count;

        for (int i = 0; i < count; i++)
        {
            if (dataList[i]._partnerDataIndex != lowDataId)
            {
                continue;
            }

            CurPnDataArray = i;
            MovePartnerView();
            partnerData = dataList[i];
            break;
        }

        IsDuringEffect = true;
        ChangeInfoView(InfoViewType.SpawnInfo);

        Transform  tf    = InfoViewObj[(int)InfoViewType.SpawnInfo].transform.FindChild("root");
        GameObject go    = UIHelper.CreatePartnerUIModel(tf, partnerData._partnerDataIndex, 1, true, false, "PartnerPanel");
        UIModel    model = go.GetComponent <UIModel>();

        GameObject effGo = model.PlayIntro(SpawnEffectRoot, ParticleScale);

        if (effGo != null)
        {
            SpawnEffectRoot.localRotation = Quaternion.Euler(Vector3.zero);
        }
        else
        {
            effGo = Instantiate(SpawnEffectPrefab) as GameObject;
            SpawnEffectRoot.localRotation = Quaternion.Euler(new Vector3(20, 0, 0));
        }

        float delay = model.UnitAnim.GetAnimLength(eAnimName.Anim_intro) + 0.1f;

        TempCoroutine.instance.FrameDelay(delay, () =>
        {
            if (!IsDuringEffect)
            {
                return;
            }

            //Cam3D.rect = new Rect(Cam3DViewport, Cam3D.rect.y, Cam3D.rect.width, Cam3D.rect.height);
            SpawnEffectRoot.parent = transform;
            DestroyImmediate(effGo);
            IsDuringEffect = false;

            ///보유하고 있는 뷰로 이동시킨다.
            ChangeInfoView(InfoViewType.OwnInfo);
            OwnPartnerView.SetPartnerInfo(partnerData);
        });

        string msg = string.Format(_LowDataMgr.instance.GetStringCommon(833), partnerData.GetLocName());

        UIMgr.AddLogChat(msg);
    }