/// <summary> 보상 세팅 </summary>
    public void SetRewardCard(System.Action <int> _clickCallback, uint lowDataId, uint amount, int arr)
    {
        GameObject slot = Instantiate(ItemSlotPrefab) as GameObject;

        slot.transform.parent        = RewardGroup.transform;
        slot.transform.localPosition = Vector3.zero;
        slot.transform.localScale    = Vector3.one;
        ItemSlotObj = slot.GetComponent <InvenItemSlotObject>();

        CardArray     = arr;
        ClickCallback = _clickCallback;

        UIEventListener.Get(gameObject).onClick = CardClickEvent;

        CostGroup.SetActive(false);
        ActiveCollider(false);
        PlayTween = GetComponentInParent <UIPlayTween>();

        Img.spriteName = "reward_pendant_back";
        CardOpenEffGo.SetActive(false);

        ItemSlotObj.SetLowDataItemSlot(lowDataId, amount);

        CostLabel.text = string.Format("{0}", _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.PassCard));
    }
    /// <summary>
    /// 부모 패널에서 실질적인 선택이 이뤄지면 들어오는 함수
    /// </summary>
    public void OpeningEvent(uint lowDataId, ushort amount)
    {
        ActiveCollider(false);
        CostGroup.SetActive(false);
        CardOpenEffGo.SetActive(true);

        TweenRotation rot = GetComponentInParent <TweenRotation>();//시작은 로테이션

        rot = TweenRotation.Begin(transform.parent.gameObject, rot.duration, Quaternion.Euler(-rot.from));
        rot.onFinished.Clear();

        TempCoroutine.instance.FrameDelay(rot.delay + (rot.duration * 0.5f), () => {
            Img.spriteName = "reward_pendant_back";
            ItemSlotObj.SetLowDataItemSlot(lowDataId, amount);

            RewardGroup.SetActive(true);
            CostGroup.SetActive(false);
        });

        //EventDelegate.Set(rot.onFinished, delegate () {

        //    ItemSlotObj.SetLowDataItemSlot(lowDataId, amount);

        //    RewardGroup.SetActive(true);
        //    CostGroup.SetActive(false);

        //});

        rot.ResetToBeginning();
        rot.Play(true);
    }
    /// <summary> 소탕 보상 슬롯 </summary>
    void OnCallBackSweepSlot(int arr, GameObject go)
    {
        if (SweepSlotList.Count <= arr)
        {
            go.SetActive(false);
            return;
        }

        NetData.SweepSlotData data = SweepSlotList[arr];

        go.SetActive(true);
        Transform slotTf = go.transform;

        slotTf.FindChild("title").GetComponent <UILabel>().text    = string.Format(_LowDataMgr.instance.GetStringCommon(304), (SweepSlotList.Count - arr)); //data.SweepCount
        slotTf.FindChild("get_gold").GetComponent <UILabel>().text = string.Format("{0}", data.GetGold == 0 ? "0" : data.GetGold.ToString());               //ToString("#,##"));
        slotTf.FindChild("get_exp").GetComponent <UILabel>().text  = string.Format("{0}", data.GetExp == 0 ? "0" : data.GetExp.ToString());                 //ToString("#,##"));

        for (int i = 0; i < 4; i++)
        {
            Transform itemRoot = slotTf.FindChild(string.Format("ItemRoot_{0}", i));
            if (itemRoot == null)
            {
                continue;
            }

            if (data.DropList.Count <= i)
            {
                itemRoot.gameObject.SetActive(false);
                continue;
            }

            NetData.DropItemData dropData = data.DropList[i];
            itemRoot.gameObject.SetActive(true);
            InvenItemSlotObject inven = itemRoot.GetChild(0).GetComponent <InvenItemSlotObject>();
            inven.SetLowDataItemSlot(dropData.LowDataId, dropData.Amount);
        }

        for (int i = 0; i < 2; i++)
        {
            Transform itemRoot = slotTf.FindChild(string.Format("CardItemRoot_{0}", i));
            if (itemRoot == null)
            {
                continue;
            }

            if (data.CardList.Count <= i)
            {
                itemRoot.gameObject.SetActive(false);
                continue;
            }

            NetData.DropItemData dropData = data.CardList[i];
            itemRoot.gameObject.SetActive(true);
            InvenItemSlotObject inven = itemRoot.GetChild(0).GetComponent <InvenItemSlotObject>();
            inven.SetLowDataItemSlot(dropData.LowDataId, dropData.Amount);
        }
    }
Пример #4
0
    /// <summary> 아이템 기본 정보를 보여준다. </summary>
    public override void LateInit()
    {
        base.LateInit();
        if (parameters.Length <= 0)
        {
            return;
        }

        uint    lowDataId = (uint)parameters[0];
        Vector3 newPos    = (Vector3)parameters[1];

        newPos.z  = 0;
        newPos.y += 0.15f;
        //newPos.x += 0.35f;

        Debug.Log(string.Format("click item lowDataID {0}", lowDataId));


        EquipItemTf.position = newPos;
        UseItemTf.position   = newPos;

        InvenSlot.SetLowDataItemSlot(lowDataId, 0);

        Item.EquipmentInfo equipLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(lowDataId);
        if (equipLowData != null)//장비 아이템이다.
        {
            EquipItemTf.gameObject.SetActive(true);
            UseItemTf.gameObject.SetActive(false);
            InvenSlot.transform.parent = EquipItemTf.FindChild("ItemRoot");

            Item.ItemValueInfo valueLowData = _LowDataMgr.instance.GetLowDataItemValueInfo(equipLowData.BasicOptionIndex);
            UILabel            nameLbl      = EquipItemTf.FindChild("name").GetComponent <UILabel>();
            UILabel            descLbl      = EquipItemTf.FindChild("desc").GetComponent <UILabel>();
            UILabel            abilityLbl   = EquipItemTf.FindChild("ability_value").GetComponent <UILabel>();
            UILabel            rndLbl       = EquipItemTf.FindChild("rnd_ability").GetComponent <UILabel>();

            nameLbl.text    = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(equipLowData.Grade), _LowDataMgr.instance.GetStringItem(equipLowData.NameId));
            descLbl.text    = _LowDataMgr.instance.GetStringItem(equipLowData.DescriptionId);
            abilityLbl.text = string.Format("{0} : {1}", uiMgr.GetAbilityLocName((AbilityType)valueLowData.OptionId)
                                            , uiMgr.GetAbilityStrValue((AbilityType)valueLowData.OptionId, valueLowData.BasicValue * 0.1f));
            rndLbl.text = string.Format(_LowDataMgr.instance.GetStringCommon(179)
                                        , 0, 3);

            //생성되고 잘리는경우 위치값조정필요

            if (EquipItemTf.localPosition.x > 454)
            {
                EquipItemTf.SetLocalX(454f);
            }
            else if (EquipItemTf.localPosition.x < -447)
            {
                EquipItemTf.SetLocalX(-447f);
            }
        }
        else//소비 아이템이다.
        {
            EquipItemTf.gameObject.SetActive(false);
            UseItemTf.gameObject.SetActive(true);
            InvenSlot.transform.parent = UseItemTf.FindChild("ItemRoot");

            UILabel nameLbl = UseItemTf.FindChild("name").GetComponent <UILabel>();
            UILabel descLbl = UseItemTf.FindChild("desc").GetComponent <UILabel>();

            Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(lowDataId);
            nameLbl.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(useLowData.Grade), _LowDataMgr.instance.GetStringItem(useLowData.NameId));

            descLbl.text = _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId);

            //생성되고 잘리는경우 위치값조정필요
            if (UseItemTf.localPosition.x > 385)
            {
                UseItemTf.SetLocalX(385);
            }
            else if (UseItemTf.localPosition.x < -507)
            {
                UseItemTf.SetLocalX(-507);
            }
        }

        InvenSlot.transform.localPosition = Vector3.zero;
        InvenSlot.transform.localScale    = Vector3.one;
    }
Пример #5
0
    /// <summary>
    /// 액티브스킬칸 누름/// </summary>
    void OnClickActiveSkill(int index, NetData._PartnerActiveSkillData selectSkill)
    {
        SelectActiveSkillIndex = index;
        for (int i = 0; i < SkillIcon.Length; i++)
        {
            GameObject selectEff = SkillIcon[i].transform.parent.transform.FindChild("Selecteff").gameObject;
            selectEff.SetActive(i == index);
        }
        SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(selectSkill._skillIndex);
        if (actionLowData == null)
        {
            return;
        }

        SkillTables.SkillLevelInfo levelLowData = _LowDataMgr.GetSkillLevelData(selectSkill._skillIndex, selectSkill._skillLevel);
        CurSelectSkillDec.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.descrpition);

        Transform SkillView = ViewObj[(int)ViewType.Skill].transform;

        //만렙인지 체크
        SkillTables.SkillLevelInfo nextLevelLowData = null;
        int maxSkillLevel = _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.PartnerMaxSkillLevel);

        if (selectSkill._skillLevel < maxSkillLevel)
        {
            SkillView.FindChild("arrow").gameObject.SetActive(true);
            SkillView.FindChild("name").gameObject.SetActive(true);

            nextLevelLowData            = _LowDataMgr.GetSkillLevelData(selectSkill._skillIndex, (byte)(selectSkill._skillLevel + 1));
            CurSelectSkillLevel[1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), selectSkill._skillLevel + 1);

            //스킬재료아이템
            SkillLevelUpMaterialSlot.SetLowDataItemSlot(nextLevelLowData.SkillLevelUpItem1, 0, (lowDataId) =>
            {
                OpenDetailPopup(null, nextLevelLowData.SkillLevelUpItem1);

                //UIMgr.OpenClickPopup((uint)lowDataId, SkillLevelUpMaterialSlot.transform.position);
            });

            int  nowAmount = UserInfo.GetItemCountForItemId(nextLevelLowData.SkillLevelUpItem1, (byte)eItemType.USE);
            bool isSuccess = true;
            if (nowAmount < nextLevelLowData.SkillLevelUpItem1Count || NetData.instance.GetAsset(AssetType.Gold) < nextLevelLowData.CostGold)
            {
                isSuccess = false;
            }

            SkillLevelUpRoot.FindChild("value").GetComponent <UILabel>().text  = string.Format(_LowDataMgr.instance.GetStringCommon(1167), nowAmount, nextLevelLowData.SkillLevelUpItem1Count);
            SkillLevelUpRoot.FindChild("value").GetComponent <UILabel>().color = nowAmount < nextLevelLowData.SkillLevelUpItem1Count ? Color.red : Color.white;

            SkillLevelUpRoot.FindChild("Lock").gameObject.SetActive(nowAmount < nextLevelLowData.SkillLevelUpItem1Count);

            if (isSuccess)
            {
                BtnSkillLevelUp.transform.FindChild("Btn_on").gameObject.SetActive(true);
                BtnSkillLevelUp.transform.FindChild("Btn_off").gameObject.SetActive(false);

                BtnSkillLevelUp.transform.FindChild("Btn_on/price").GetComponent <UILabel>().text = string.Format("x{0}", nextLevelLowData.CostGold);
            }
            else
            {
                BtnSkillLevelUp.transform.FindChild("Btn_on").gameObject.SetActive(false);
                BtnSkillLevelUp.transform.FindChild("Btn_off").gameObject.SetActive(true);

                BtnSkillLevelUp.transform.FindChild("Btn_off/price").GetComponent <UILabel>().text = string.Format("x{0}", nextLevelLowData.CostGold);
            }

            SkillLevelUpRoot.gameObject.SetActive(true);
            BtnSkillLevelUp.transform.gameObject.SetActive(true);
            CurSelectSkillLevel[1].transform.parent.gameObject.SetActive(true);

            CurSelectSkilDamage[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(levelLowData.factorRate.list, (float)levelLowData.factor).ToString());
            CurSelectSkilDamage[1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(nextLevelLowData.factorRate.list, (float)nextLevelLowData.factor).ToString());
            SkillMaxLevel.SetActive(false);

            //위치변경도 있어야함
            CurSelectSkillLevel[0].transform.parent.transform.localPosition = new Vector3(-138, -3, 0);
            EventDelegate.Set(BtnSkillLevelUp.onClick, delegate()
            {
                if (!isSuccess)
                {
                    string msg = "";
                    if (nowAmount < nextLevelLowData.SkillLevelUpItem1Count)
                    {
                        msg = _LowDataMgr.instance.GetStringCommon(1173);   //재료부족
                    }
                    else if (NetData.instance.GetAsset(AssetType.Gold) < nextLevelLowData.CostGold)
                    {
                        msg = _LowDataMgr.instance.GetStringCommon(1174);   //골드부족
                    }
                    UIMgr.instance.AddPopup(_LowDataMgr.instance.GetStringCommon(141), msg, _LowDataMgr.instance.GetStringCommon(117));
                    return;
                }
                NetworkClient.instance.SendPMsgHeroSkillUpgradeC(CurData._partnerIndex, SelectActiveSkillIndex + 1);
            });
        }
        else
        {
            //만렙일경우
            //현재 레벨만 표기
            SkillView.FindChild("arrow").gameObject.SetActive(false);
            SkillView.FindChild("name").gameObject.SetActive(false);
            SkillLevelUpRoot.gameObject.SetActive(false);
            BtnSkillLevelUp.transform.gameObject.SetActive(false);
            CurSelectSkillLevel[1].transform.parent.gameObject.SetActive(false);
            //위치변경도 있어야함
            CurSelectSkilDamage[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(levelLowData.factorRate.list, (float)levelLowData.factor).ToString());
            CurSelectSkillLevel[0].transform.parent.transform.localPosition = new Vector3(0, -3, 0);
            SkillMaxLevel.SetActive(true);
        }

        CurSelectSkillLevel[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), selectSkill._skillLevel);
        CurSelectSkillLevel[1].gameObject.transform.localScale = Vector3.one;
    }
Пример #6
0
    void InitPromo()
    {
        Dictionary <AbilityType, float> nextAbilityDic = null;
        Transform evolveView = ViewObj[(int)ViewType.Evolve].transform;

        Damage.text = string.Format(_LowDataMgr.instance.GetStringCommon(1163), CurData._Attack);

        if (CurData.CurQuality >= 6)
        {
            //최대
            for (int i = 0; i < NextEvolveAttAbilitys.Length; i++)
            {
                NextEvolveAttAbilitys[i].text = "";
            }

            evolveView.FindChild("arrow").gameObject.SetActive(false);
            evolveView.FindChild("name").gameObject.SetActive(false);
            EvoleRoot.gameObject.SetActive(false);
            BtnEvolve.transform.gameObject.SetActive(false);
            EvolveLevel[1].transform.parent.gameObject.SetActive(false);
            EvolveLevel[0].transform.parent.transform.localPosition = new Vector3(0, 268.4f, 0);
            MaxEvolve.SetActive(true);
        }
        else
        {
            Partner.PartnerDataInfo nextInfo = _LowDataMgr.instance.GetPartnerInfo(CurData.GetLowData().QualityUpId);   //다음승급데이터
            nextAbilityDic = NetData.instance.CalcPartnerStats(CurData._NowLevel, nextInfo, nextInfo.Quality);

            EvolveLevel[1].text    = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor((int)CurData.CurQuality + 1), GetGradeName((int)(CurData.CurQuality + 1)));
            EvolveManLevel[1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1152), GetMaxEvolveLevel((int)CurData.CurQuality + 1));

            //스킬재료아이템
            EvolveMaterialSlot.SetLowDataItemSlot(CurData.GetLowData().QualityUpItem, 0, (lowDataId) =>
            {
                OpenDetailPopup(null, CurData.GetLowData().QualityUpItem);
            });

            int  nowAmount = UserInfo.GetItemCountForItemId(CurData.GetLowData().QualityUpItem, (byte)eItemType.USE);
            bool isSuccess = true;
            if (nowAmount < CurData.GetLowData().QualityUpItemCount || NetData.instance.GetAsset(AssetType.Gold) < CurData.GetLowData().QualityUpNeedGold)
            {
                isSuccess = false;
            }

            EvoleRoot.FindChild("value").GetComponent <UILabel>().text  = string.Format(_LowDataMgr.instance.GetStringCommon(1167), nowAmount, CurData.GetLowData().QualityUpItemCount);
            EvoleRoot.FindChild("value").GetComponent <UILabel>().color = nowAmount < CurData.GetLowData().QualityUpItemCount ? Color.red : Color.white;

            EvoleRoot.FindChild("Lock").gameObject.SetActive(nowAmount < CurData.GetLowData().QualityUpItemCount);

            if (isSuccess)
            {
                BtnEvolve.transform.FindChild("Btn_on").gameObject.SetActive(true);
                BtnEvolve.transform.FindChild("Btn_off").gameObject.SetActive(false);

                BtnEvolve.transform.FindChild("Btn_on/price").GetComponent <UILabel>().text = string.Format("x{0}", CurData.GetLowData().QualityUpNeedGold);
            }
            else
            {
                BtnEvolve.transform.FindChild("Btn_on").gameObject.SetActive(false);
                BtnEvolve.transform.FindChild("Btn_off").gameObject.SetActive(true);

                BtnEvolve.transform.FindChild("Btn_off/price").GetComponent <UILabel>().text = string.Format("x{0}", CurData.GetLowData().QualityUpNeedGold);
            }

            EventDelegate.Set(BtnEvolve.onClick, delegate()
            {
                if (IsUpgrading)
                {
                    SceneManager.instance.SetNoticePanel(NoticeType.Message, 9921);
                    return;
                }

                if (!isSuccess)
                {
                    string msg = "";
                    if (nowAmount < CurData.GetLowData().QualityUpItemCount)
                    {
                        msg = _LowDataMgr.instance.GetStringCommon(1173);   //재료부족
                    }
                    else if (NetData.instance.GetAsset(AssetType.Gold) < CurData.GetLowData().QualityUpNeedGold)
                    {
                        msg = _LowDataMgr.instance.GetStringCommon(1174);   //골드부족
                    }
                    UIMgr.instance.AddPopup(_LowDataMgr.instance.GetStringCommon(141), msg, _LowDataMgr.instance.GetStringCommon(117));
                    return;
                }

                NetworkClient.instance.SendPMsgHeroEvolveC(CurData._partnerIndex);
            });

            evolveView.FindChild("arrow").gameObject.SetActive(true);
            evolveView.FindChild("name").gameObject.SetActive(true);

            EvoleRoot.gameObject.SetActive(true);
            BtnEvolve.transform.gameObject.SetActive(true);
            EvolveLevel[1].transform.parent.gameObject.SetActive(true);
            EvolveLevel[0].transform.parent.transform.localPosition = new Vector3(-145.5f, 268.4f, 0);
            MaxEvolve.SetActive(false);
        }

        EvolveLevel[0].text    = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor((int)CurData.CurQuality), GetGradeName((int)CurData.CurQuality));
        EvolveManLevel[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1152), GetMaxEvolveLevel((int)CurData.CurQuality));
        EvolveLevel[1].gameObject.transform.localScale = Vector3.one;

        Dictionary <AbilityType, float> abilityDic = NetData.instance.CalcPartnerStats(CurData._NowLevel, CurData.GetLowData(), CurData.CurQuality);

        //어빌리티 정보 셋팅
        int length = EvolveAttAbilitys.Length;

        for (int i = 0; i < length; i++)
        {
            float       value = 0;
            AbilityType a     = (AbilityType)i + 1;
            abilityDic.TryGetValue(a, out value);

            if (nextAbilityDic != null)
            {
                float       nextValue = 0;
                AbilityType b         = (AbilityType)i + 1;
                nextAbilityDic.TryGetValue(b, out nextValue);

                if (nextValue - value > 0)
                {
                    NextEvolveAttAbilitys[i].text = string.Format("▲{0}", nextValue - value);
                }
                else if (nextValue - value == 0)
                {
                    NextEvolveAttAbilitys[i].text = "━";
                }
            }

            EvolveAttAbilitys[i].text = UIMgr.instance.GetAbilityStrValue(a, value);
        }
    }
Пример #7
0
    /// <summary> 메인퀘스트 셋팅 함수 </summary>
    void SetMainItem(Transform tf, QuestInfo questInfo)
    {
        Quest.QuestInfo lowData = _LowDataMgr.instance.GetLowDataQuestData(questInfo.unTaskId);

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


        int count = 0;

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

            byte myClass = 1;

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

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

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

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

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

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


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



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

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

            //tf.FindChild("Clear").gameObject.SetActive(isEndQuest);
            tf.FindChild("BtnReward").gameObject.SetActive(isReward);
            //tf.FindChild("slider").gameObject.SetActive(isGoto);
            tf.FindChild("BtnGoto").gameObject.SetActive(isGoto);
        }
        else//진행중인 미션임. 이거는 버튼이 활성화 되지 않이함.
        {
            //tf.FindChild("Clear").gameObject.SetActive(false);
            tf.FindChild("BtnReward").gameObject.SetActive(false);
            //tf.FindChild("slider").gameObject.SetActive(false);
            tf.FindChild("BtnGoto").gameObject.SetActive(false);
        }
    }
    /// <summary>
    /// 장비강화재료 / 스킬강화재료 던전
    /// </summary>
    void OnClickEquipAndSkillDungeon(bool isEquip)
    {
        _LowDataMgr lowMgr = _LowDataMgr.instance;

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

        EquipLvGroup.transform.gameObject.SetActive(isEquip);
        SkillLvGroup.transform.gameObject.SetActive(!isEquip);

        byte          useEnergy = 0;
        List <string> itemList  = null;

        if (isEquip)
        {
            //장비강화
            DungeonTable.EquipInfo equipDungeonInfo = lowMgr.GetLowDataEquipBattle((byte)MaterialDungeonLevelDifficulty);
            if (equipDungeonInfo != null)
            {
                itemList  = equipDungeonInfo.RewardItemId.list;
                useEnergy = equipDungeonInfo.UseEnergy;
            }
        }
        else
        {
            //스킬강화
            DungeonTable.SkillInfo skillDungeonInfo = lowMgr.GetLowDataSkillBattle((byte)MaterialDungeonLevelDifficulty);
            if (skillDungeonInfo != null)
            {
                itemList  = skillDungeonInfo.RewardItemId.list;
                useEnergy = skillDungeonInfo.UseEnergy;
            }
        }

        bool canGo = NetData.instance.GetAsset(AssetType.Energy) >= useEnergy;

        MaterialDungeonStartBtn.transform.FindChild("Txt_num").GetComponent <UILabel>().text = useEnergy.ToString();
        MaterialDungeonStartBtn.transform.FindChild("Btn_on").gameObject.SetActive(canGo);
        MaterialDungeonStartBtn.transform.FindChild("Btn_off").gameObject.SetActive(!canGo);

        //드랍아이템
        int dropIconCount = MaterialDungetnDropItem.Length;

        for (int i = 0; i < dropIconCount; i++)
        {
            if (itemList.Count <= i)
            {
                MaterialDungetnDropItem[i].gameObject.SetActive(false);
                continue;
            }

            uint itemId = uint.Parse(itemList[i]);
            MaterialDungetnDropItem[i].gameObject.SetActive(true);
            InvenItemSlotObject slot = MaterialDungetnDropItem[i].GetChild(0).GetComponent <InvenItemSlotObject>();
            slot.SetLowDataItemSlot(itemId, 0, delegate(ulong key)
            {
                UIMgr.OpenDetailPopup(this, itemId);
            });
        }

        MaterialDungetnDropItem[0].parent.GetComponent <UIGrid>().Reposition();
        UIScrollView scroll = MaterialDungetnDropItem[0].parent.parent.GetComponent <UIScrollView>();

        if (scroll != null)
        {
            scroll.ResetPosition();
            scroll.enabled = itemList.Count <= 5 ? false : true;
        }

        EventDelegate.Set(MaterialDungeonStartBtn.onClick, delegate()
        {
            if (!canGo)
            {
                SceneManager.instance.SetNoticePanel(NoticeType.Message, 390);  //체력부족?
                return;
            }

            //여기서 시작해줌
            if (CurGameMode == GAME_MODE.SPECIAL_GOLD)
            {
                //uint level = NetData.instance.UserLevel;
                //byte dungeonId = 1;
                //while (true)
                //{
                //    DungeonTable.EquipInfo materialData = _LowDataMgr.instance.GetLowDataEquipBattle(dungeonId);
                //    if (materialData != null)
                //    {
                //        if (materialData.MinenterLv < level)
                //            break;
                //    }

                //    ++dungeonId;
                //}

                byte dungeonId = 1;
                DungeonTable.EquipInfo materialData = lowMgr.GetLowDataEquipBattle((byte)MaterialDungeonLevelDifficulty);

                if (materialData != null)
                {
                    dungeonId = materialData.Index;
                }

                if (dungeonId == 0)//혹시 모를 경우를 대비해 이렇게 막아놓는다.
                {
                    DungeonTable.EquipInfo mData = lowMgr.GetLowDataEquipBattle(1);

                    string msg = _LowDataMgr.instance.GetStringCommon(699);
                    msg        = string.Format(msg, mData.MinenterLv);
                    SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, msg);
                    return;
                }

                OnGoldGameStart(dungeonId);
                //NetworkClient.instance.SendPMsgCoinBattleStartC(dungeonId);
            }

            else if (CurGameMode == GAME_MODE.SPECIAL_EXP)//경험치 스테이지로 들어감
            {
                //uint level = NetData.instance.UserLevel;
                //byte dungeonId = 1;
                //while (true)
                //{
                //    DungeonTable.SkillInfo skillData = _LowDataMgr.instance.GetLowDataSkillBattle(dungeonId);
                //    if (skillData != null)
                //    {
                //        if (skillData.MinenterLv <= level)
                //            break;
                //    }


                //    ++dungeonId;
                //}

                byte dungeonId = 1;
                DungeonTable.SkillInfo materialData = lowMgr.GetLowDataSkillBattle((byte)MaterialDungeonLevelDifficulty);

                if (materialData != null)
                {
                    dungeonId = materialData.Index;
                }

                if (dungeonId == 0)//혹시 모를 경우를 대비해 이렇게 막아놓는다.
                {
                    DungeonTable.SkillInfo skillData = lowMgr.GetLowDataSkillBattle(1);

                    string msg = _LowDataMgr.instance.GetStringCommon(699);
                    msg        = string.Format(msg, skillData.MinenterLv);
                    SceneManager.instance.SetNoticePanel(NoticeType.Message, 0, msg);
                    return;
                }

                OnExpGameStart(dungeonId);
                //NetworkClient.instance.SendPMsgExpBattleStartC(dungeonId);
            }
        });
    }
    void OnClickRaid(bool isMulty, int groupId)
    {
        ViewObjs[0].SetActive(false);
        ViewObjs[1].SetActive(true);
        ViewObjs[2].SetActive(false);
        CurGameMode = isMulty ? GAME_MODE.MULTI_RAID : GAME_MODE.RAID;
        CurSubMode  = groupId;

        uint          bossIdx    = 0;
        List <string> rewardList = null;
        List <string> itemList   = null;

        if (!isMulty)
        {
            List <DungeonTable.SingleBossRaidInfo> raidLowList = _LowDataMgr.instance.GetLowDataBossRaidList();

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

                rewardList    = raidLowList[i].RewardId.list;
                bossIdx       = raidLowList[i].BossIdx;
                itemList      = raidLowList[i].ItemId.list;
                RaidDesc.text = _LowDataMgr.instance.GetStringStageData(raidLowList[i].stageDesc);
                break;
            }
        }
        else
        {
            List <DungeonTable.MultyBossRaidInfo> raidLowList = _LowDataMgr.instance.GetLowDataMultyBossInfoList((byte)groupId);
            int count = raidLowList.Count;
            for (int i = 0; i < count; i++)
            {
                DungeonTable.MultyBossRaidInfo raidLow = raidLowList[i];
                if (raidLow.level != CurLevelDifficulty)
                {
                    continue;
                }

                rewardList    = raidLowList[i].RewardId.list;
                bossIdx       = raidLow.BossIdx;
                itemList      = raidLow.ItemId.list;
                RaidDesc.text = _LowDataMgr.instance.GetStringStageData(raidLow.stageDesc);
                break;
            }
        }

        if (bossIdx <= 0)
        {
            Debug.LogError("not found boss Index Error " + CurSubMode);
            return;
        }

        UIHelper.CreateMonsterUIModel(RotationTargetList[0].transform, bossIdx, false, false, true, "DungeonPanel");

        //드랍 아이템 셋
        //드랍아이템은 나의 클래스에맞춰서 표시해준다
        //장비아이템의경우 가장 등급이 높은것으로
        int myClass = UIHelper.GetClassType(NetData.instance.GetUserInfo().GetCharIdx());

        _LowDataMgr lowMgr        = _LowDataMgr.instance;
        int         dropIconCount = RaidDropItem.Length;

        for (int i = 0; i < dropIconCount; i++)
        {
            if (rewardList.Count <= i)
            {
                RaidDropItem[i].gameObject.SetActive(false);
                continue;
            }

            //uint rewardItemId = uint.Parse(rewardList[i]);
            uint itemId = uint.Parse(itemList[i]);
            RaidDropItem[i].gameObject.SetActive(true);
            InvenItemSlotObject slot = RaidDropItem[i].GetChild(0).GetComponent <InvenItemSlotObject>();
            slot.SetLowDataItemSlot(itemId, 0, delegate(ulong key)
            {
                //UIMgr.OpenClickPopup(itemId, slot.transform.position);
                UIMgr.OpenDetailPopup(this, itemId);
            });
        }

        RaidDropItem[0].parent.GetComponent <UIGrid>().Reposition();
        UIScrollView scroll = RaidDropItem[0].parent.parent.GetComponent <UIScrollView>();

        if (scroll != null)
        {
            scroll.ResetPosition();
            scroll.enabled = rewardList.Count <= 5 ? false : true;
        }
    }
Пример #10
0
    /// <summary> 10회 뽑기 </summary>
    public void OnTen(bool isSenior, NetData.DropItemData[] itemArr)
    {
        //reduceGachaOppotunity (!isSenior, 10);
        // refresh
        Transform goldTf = transform.FindChild("GachaView/List/Gold/Scroll/Grid");
        Transform cashTf = transform.FindChild("GachaView/List/Cash/Scroll/Grid");

        SetBox(goldTf.GetChild(0), true, true);        //골드
        SetBox(goldTf.GetChild(1), false, true);       //골드
        SetBox(cashTf.GetChild(0), true, false);       //캐쉬
        SetBox(cashTf.GetChild(1), false, false);      //캐쉬
        /////////

        ResultCards[0].parent.gameObject.SetActive(false);
        ResultOneCard.gameObject.SetActive(false);
        ResultText.SetActive(false);

        AniObj.SetActive(true);
        Animation ani = CreateBox(isSenior, false, true);

        ani.Play(isSenior ? "box_gold_01" : "box_wood_01");

        int length = ResultCards.Length;

        for (int i = 0; i < length; i++)
        {
            Transform tf = ResultCards[i];
            if (tf == null)
            {
                Debug.LogError("is null error child number " + i);
                continue;
            }
            else if (itemArr.Length <= i)
            {
                continue;
            }

            tf.rotation         = new Quaternion(0, 0, 0, 0);//원상 복구
            tf.collider.enabled = false;
            tf.GetComponent <UISprite>().spriteName = ChardForward;
            InvenItemSlotObject slot = tf.FindChild("ItemRoot/slot").GetComponent <InvenItemSlotObject>();
            slot.SetLowDataItemSlot(itemArr[i].LowDataId, itemArr[i].Amount);
            tf.FindChild("ItemRoot/slot").gameObject.SetActive(false);

            int idx = i;
            EventDelegate.Set(tf.FindChild("ItemRoot").transform.GetComponent <UIEventTrigger>().onClick, delegate()
            {
                uint itemidx = itemArr[idx].LowDataId;

                if (itemArr[idx].LowDataId == 1)
                {
                    itemidx = 599000;
                }
                else if (itemArr[idx].LowDataId == 2 || itemArr[idx].LowDataId == 8)
                {
                    itemidx = 599001;
                }
                else if (itemArr[idx].LowDataId == 5)
                {
                    itemidx = 599002;
                }
                else
                {
                    itemidx = itemArr[idx].LowDataId;
                }

                OnclicItemPopup(itemidx);
            });
        }

        StartCoroutine("CardAction", false);
        IsGoldGacha = !isSenior;
        IsOnceGacha = false;

        SaveToDayCount(IsGoldGacha, 10);

        //BtnOpenCard.gameObject.SetActive(false);
        BtnOpenAllCard.gameObject.SetActive(false);
        BtnAgain.gameObject.SetActive(false);
        BtnClose.gameObject.SetActive(false);
        ChangeView(false);
    }
Пример #11
0
    /// <summary> 한번 뽑기 </summary>
    public void OnOnce(bool isFree, bool isSenior, NetData.DropItemData itemData)
    {
        //reduceGachaOppotunity (!isSenior, 1);

        Transform goldTf = transform.FindChild("GachaView/List/Gold/Scroll/Grid");
        Transform cashTf = transform.FindChild("GachaView/List/Cash/Scroll/Grid");

        SetBox(goldTf.GetChild(0), true, true);
        SetBox(goldTf.GetChild(1), false, true);
        SetBox(cashTf.GetChild(0), true, false);
        SetBox(cashTf.GetChild(1), false, false);

        ResultCards[0].parent.gameObject.SetActive(false);
        ResultOneCard.gameObject.SetActive(false);
        ResultText.SetActive(false);

        Animation ani = CreateBox(isSenior, false, false);

        ani.Play(isSenior ? "box_gold_01" : "box_wood_01");

        ResultOneCard.rotation         = new Quaternion(0, 0, 0, 0);//원상 복구
        ResultOneCard.collider.enabled = false;
        ResultOneCard.GetComponent <UISprite>().spriteName = ChardForward;

        OneCardSlot.gameObject.SetActive(false);
        OneCardSlot.SetLowDataItemSlot(itemData.LowDataId, itemData.Amount);

        EventDelegate.Set(ResultOneCard.FindChild("ItemRoot").transform.GetComponent <UIEventTrigger>().onClick, delegate()
        {
            uint itemidx = itemData.LowDataId;

            if (itemData.LowDataId == 1)
            {
                itemidx = 599000;
            }
            else if (itemData.LowDataId == 2 || itemData.LowDataId == 8)
            {
                itemidx = 599001;
            }
            else if (itemData.LowDataId == 5)
            {
                itemidx = 599002;
            }
            else
            {
                itemidx = itemData.LowDataId;
            }

            OnclicItemPopup(itemidx);
        });


        StartCoroutine("CardAction", true);

        IsGoldGacha = !isSenior;
        IsOnceGacha = true;

        //BtnOpenCard.gameObject.SetActive(false);
        BtnOpenAllCard.gameObject.SetActive(false);
        BtnAgain.gameObject.SetActive(false);
        BtnClose.gameObject.SetActive(false);
        ChangeView(false);

        if (isFree)//타임 재갱신이 필요함.
        {
            NetworkClient.instance.SendPMsgLotteryQueryInfoC();
        }

        SaveToDayCount(IsGoldGacha, 1);
        AniObj.SetActive(true);
    }
Пример #12
0
    /// <summary> 층을 클릭함. </summary>
    void OnClickFloor(int arr)
    {
        if (TowerLowDataList.Count <= arr)
        {
            return;
        }

        CurrentLowDataArr = arr;
        DungeonTable.TowerInfo towerLowData = TowerLowDataList[arr];
        CurrentFloor.text = string.Format(FloorText, towerLowData.level);

        //최초 보상 셋팅
        GatchaReward.FixedRewardInfo fixedReward = _LowDataMgr.instance.GetFixedRewardItem(towerLowData.FirstReward);
        FirstReward.SetLowDataItemSlot(fixedReward.ItemId, 0, (key) => {
            UIMgr.OpenDetailPopup(this, (uint)key);
        });

        //보상아이템 셋팅
        List <string> rewardList = towerLowData.rewarditemId.list;
        int           listCount  = InvenSlotList.Count;

        uint myClass = NetData.instance.GetUserInfo().GetCharIdx();

        switch (myClass)
        {
        case 11000:
            myClass = 1;
            break;

        case 12000:
            myClass = 2;
            break;

        case 13000:
            myClass = 3;
            break;
        }

        for (int i = 0; i < listCount; i++)
        {
            if (rewardList.Count <= i)
            {
                InvenSlotList[i].gameObject.SetActive(false);
                continue;
            }

            uint itemId = uint.Parse(rewardList[i]);

            InvenSlotList[i].gameObject.SetActive(true);
            Transform slotTf = InvenSlotList[i].transform;
            InvenSlotList[i].SetLowDataItemSlot(itemId, 0, (lowDataId) => {
                UIMgr.OpenDetailPopup(this, (uint)lowDataId);
            });
        }

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

        if (rewardList.Count <= 4)
        {
            ItemScroll.enabled = false;
        }


        if (towerLowData.level < LastClearFloor)//클리어함
        {
            FirstRewardClear.SetActive(true);
        }
        else//미클리어
        {
            FirstRewardClear.SetActive(false);
        }

        if (LastClearFloor - 1 == arr)
        {
            SelectEff.localPosition = new Vector2(-1000, 1000);
        }
        else
        {
            Transform effTf = FloorGrid.transform.GetChild(arr).FindChild("eff_root");
            SelectEff.parent        = effTf;
            SelectEff.localPosition = Vector3.zero;
            SelectEff.localScale    = Vector3.one;
        }

        //랭킹
        NetworkClient.instance.SendPMsgTowerRankQueryC(towerLowData.level);
    }
    /// <summary> 보상아이템 셋팅 </summary>
    void SettingRewardItem()
    {
        if (G_GameInfo.GameMode == GAME_MODE.ARENA)
        {
            RewardAssetTf.parent.gameObject.SetActive(false);
            return;
        }

        RewardAssetTf.parent.gameObject.SetActive(true);
        RewardAssetTf.gameObject.SetActive(false);
        RewardExp.gameObject.SetActive(false);
        RewardGold.gameObject.SetActive(false);

        uint firstRewardId = 0;
        uint fixedRewardId = 0;

        if (G_GameInfo.GameMode == GAME_MODE.SINGLE && isSuccess)
        {
            DungeonTable.StageInfo lowData = _LowDataMgr.instance.GetStageInfo(SingleGameState.lastSelectStageId);

            //최초보상이 있을씨에..
            if (SingleGameState.IsFirstReward)
            {
                GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(lowData.FirstReward);

                GameObject go = Instantiate(ItemSlotPrefab) as GameObject;
                Transform  tf = go.transform;
                tf.parent        = RewardGrid.transform;
                tf.localPosition = Vector3.zero;
                tf.localScale    = Vector3.one;

                InvenItemSlotObject firstSlotObj = go.GetComponent <InvenItemSlotObject>();
                firstSlotObj.SetLowDataItemSlot(firstInfo.ItemId == 0 ? firstInfo.Type :  firstInfo.ItemId, firstInfo.ItemCount);

                FirstRewardSlotLabel.transform.parent        = go.transform;
                FirstRewardSlotLabel.transform.localPosition = new Vector3(0, 42, 0);
                FirstRewardSlotLabel.transform.localScale    = Vector3.one;
                FirstRewardSlotLabel.SetActive(true);

                firstRewardId = firstInfo.ItemId == 0 ? firstInfo.Type : firstInfo.ItemId;
            }

            // 기본보상표시 0이면안준다
            if (lowData.FixedReward != 0)
            {
                GatchaReward.FixedRewardInfo basicInfo = _LowDataMgr.instance.GetFixedRewardItem(lowData.FixedReward);

                GameObject basicGo = Instantiate(ItemSlotPrefab) as GameObject;
                Transform  basicTf = basicGo.transform;
                basicTf.parent        = RewardGrid.transform;
                basicTf.localPosition = Vector3.zero;
                basicTf.localScale    = Vector3.one;

                InvenItemSlotObject basicSlotObj = basicGo.GetComponent <InvenItemSlotObject>();
                basicSlotObj.SetLowDataItemSlot(basicInfo.ItemId == 0 ? basicInfo.Type : basicInfo.ItemId, basicInfo.ItemCount);

                BasicRewardSlotLabel.transform.parent        = basicGo.transform;
                BasicRewardSlotLabel.transform.localPosition = new Vector3(0, 42, 0);
                BasicRewardSlotLabel.transform.localScale    = Vector3.one;
                BasicRewardSlotLabel.SetActive(true);

                fixedRewardId = basicInfo.ItemId == 0 ? basicInfo.Type : basicInfo.ItemId;
            }
        }


        List <NetData.DropItemData> dropItemList = Reward.GetList;

        if (dropItemList != null)
        {
            int count = dropItemList.Count;
            for (int i = 0; i < count; i++)
            {
                NetData.DropItemData dropData = dropItemList[i];

                //위에 표기됬으므로 표기안해줌
                if (dropData.LowDataId == fixedRewardId)
                {
                    continue;
                }

                if (dropData.LowDataId == firstRewardId)
                {
                    continue;
                }

                GameObject go = Instantiate(ItemSlotPrefab) as GameObject;
                Transform  tf = go.transform;
                tf.parent        = RewardGrid.transform;
                tf.localPosition = Vector3.zero;
                tf.localScale    = Vector3.one;

                InvenItemSlotObject slotObj = go.GetComponent <InvenItemSlotObject>();
                slotObj.SetLowDataItemSlot(dropData.LowDataId, dropData.Amount);
            }

            RewardGrid.repositionNow = true;
        }

        if (5 < RewardGrid.transform.childCount)
        {
            RewardGrid.transform.parent.GetComponent <UIScrollView>().enabled = true;
        }
        else
        {
            RewardGrid.transform.parent.GetComponent <UIScrollView>().enabled = false;
        }

        if (G_GameInfo.GameMode == GAME_MODE.SINGLE)//GAME_MODE.SPECIAL)
        {
            return;
        }
        else
        {
            //획득 재화 설정
            bool isGoldDungeon = false, isExpDungeon = false;
            if (G_GameInfo.GameMode == GAME_MODE.SPECIAL_EXP)
            {
                isExpDungeon = true;
            }
            else if (G_GameInfo.GameMode == GAME_MODE.SPECIAL_GOLD)
            {
                isGoldDungeon = true;
            }

            AssetType assetType = AssetType.None;
            if (G_GameInfo.GameMode == GAME_MODE.TOWER)
            {
                assetType = AssetType.Badge;
            }

            if (0 <= Reward.GetCoin && !isExpDungeon)
            {
                RewardGold.gameObject.SetActive(true);
                RewardGold.text = Reward.GetCoin == 0 ? "0" : Reward.GetCoin.ToString(); // ToString("#,##");
            }

            if (0 <= Reward.GetExp && !isGoldDungeon)
            {
                RewardExp.gameObject.SetActive(true);
                RewardExp.text = Reward.GetExp == 0 ? "0" : Reward.GetExp.ToString(); // ToString("#,##");
            }

            if (0 <= Reward.GetAsset && assetType != AssetType.None)
            {
                RewardAssetTf.gameObject.SetActive(true);
                RewardAssetTf.GetComponent <UILabel>().text = Reward.GetAsset == 0 ? "0" : Reward.GetAsset.ToString(); // ToString("#,##");

                UISprite sp = RewardAssetTf.FindChild("icon").GetComponent <UISprite>();
                switch (assetType)
                {
                case AssetType.Badge:
                    sp.spriteName = "badge_A";    //Img_flag2
                    break;
                }
            }
        }
    }
    /// <summary> 비동기 방식의 게임들 결과화면 </summary>
    void ResultDungeon()
    {
        if (G_GameInfo.GameMode == GAME_MODE.SINGLE)
        {
            //현재 최초보상받을수있는지 체크?
            DungeonTable.StageInfo lowData = _LowDataMgr.instance.GetStageInfo(SingleGameState.lastSelectStageId);
            if (lowData != null)
            {
                //if (lowData.type == 2 && isSuccess)
                // {
                if (SingleGameState.IsFirstReward)
                {
                    GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(lowData.FirstReward);

                    //최초보상받을시기?
                    GameObject go = Instantiate(ItemSlotPrefab) as GameObject;
                    Transform  tf = go.transform;
                    tf.parent        = FirstRewardPopup.transform.FindChild("Icon").transform;
                    tf.localPosition = Vector3.zero;
                    tf.localScale    = Vector3.one;

                    UILabel name = FirstRewardPopup.transform.FindChild("Txt_Iconname").GetComponent <UILabel>();

                    InvenItemSlotObject slotObj = go.GetComponent <InvenItemSlotObject>();
                    slotObj.SetLowDataItemSlot(firstInfo.ItemId == 0? firstInfo.Type : firstInfo.ItemId, firstInfo.ItemCount);

                    Item.EquipmentInfo equipInfo = _LowDataMgr.instance.GetLowDataEquipItemInfo(firstInfo.ItemId);
                    if (equipInfo != null) //장비
                    {
                        name.text = _LowDataMgr.instance.GetStringItem(equipInfo.NameId);
                    }
                    else
                    {
                        uint id = 0;
                        //혹시 재화인가....
                        if (firstInfo.ItemId == 0)
                        {
                            switch (firstInfo.Type)
                            {
                            case 1:    //골드
                                id = 599000;
                                break;

                            case 2:    //원보
                                id = 599001;
                                break;

                            case 3:    //공헌
                                id = 599004;
                                break;

                            case 4:    //명예
                                id = 599005;
                                break;

                            case 5:    //휘장
                                id = 599002;
                                break;

                            case 6:    //사자왕
                                id = 599006;
                                break;

                            case 7:    //성망
                                id = 599003;
                                break;

                            case 8:    //체력
                                id = 599104;
                                break;

                            case 9:    //경험치;
                                id = 599105;
                                break;
                            }

                            name.text = _LowDataMgr.instance.GetStringItem(_LowDataMgr.instance.GetUseItem(firstInfo.ItemId == 0 ? id : firstInfo.ItemId).NameId);
                        }
                        else
                        {
                            name.text = _LowDataMgr.instance.GetStringItem(_LowDataMgr.instance.GetUseItem(firstInfo.ItemId).NameId);
                        }
                    }

                    SetRenderQueue renderQ = UIHelper.FindComponent <SetRenderQueue>(FirstRewardPopup.transform.FindChild("Effect"));
                    if (renderQ != null)
                    {
                        renderQ.ResetRenderQ(3031);
                    }

                    FirstRewardPopup.SetActive(true);

                    TempCoroutine.instance.FrameDelay(0.1f, () =>
                    {
                        FirstRewardPopup.transform.GetComponent <TweenScale>().ResetToBeginning();
                        FirstRewardPopup.transform.GetComponent <TweenScale>().PlayForward();
                    });

                    TempCoroutine.instance.FrameDelay(3f, () =>
                    {
                        FirstRewardPopup.SetActive(false);
                    });
                }
            }
            // }

            if (isSuccess && SceneManager.instance.CurTutorial == TutorialType.STAGE)//튜토리얼 중 스테이지 클리어했다면
            {
                SceneManager.instance.CurTutorial = TutorialType.STAGE;
            }
        }

        Reward = NetData.instance._RewardData;
        if (Reward == null)//없으면 안돼겠지만. 뻑은 안나게..
        {
            Reward = new NetData.RewardData();
        }

        uint curExp = 0, maxExp = 0, level = 0;

        if (Reward.GetExp <= 0)//획득 경험치가 있다면 뭔가 데이터가 있다는 것임.
        {
            level = NetData.instance.UserLevel;
            NetData.instance.GetUserInfo().GetCurrentAndMaxExp(ref curExp, ref maxExp);
        }
        else
        {
            curExp = Reward.SaveExp;
            maxExp = Reward.SaveMaxExp;
            level  = Reward.SaveLevel;
        }

        ExpGauge.value = (float)curExp / (float)maxExp;
        Labels[(int)labelT.hLv].text = string.Format(_LowDataMgr.instance.GetStringCommon(453), level);

        SettingRewardItem();

        if (G_GameInfo.GameMode == GAME_MODE.SINGLE)//싱글게임에만 스테이지 퀘스트가 존재.
        {
            StartCoroutine("MissionResult");
        }
        else if (G_GameInfo.GameMode != GAME_MODE.ARENA)
        {
            Result();
        }

        if (isSuccess)
        {
            TitleObj[0].SetActive(true);
            UIHelper.CreateEffectInGame(TitleObj[0].transform.FindChild("bg"), "Fx_UI_exp_result_01");
        }
        else
        {
            TitleObj[1].SetActive(true);
        }
    }
    public override void LateInit()
    {
        base.LateInit();
        //파라메터로 넘어오는 데이터 세팅
        isSuccess = (bool)parameters[0];
        GAME_MODE gameMode = G_GameInfo.GameMode;

        if (gameMode == GAME_MODE.SINGLE && (G_GameInfo.GameInfo as SingleGameInfo).IsQuestClear)//이 경우 마을가기만 존재함
        {
            Btns[(int)btnT.nextZone].gameObject.SetActive(false);
            Btns[(int)btnT.goStageBtn].gameObject.SetActive(false);
            Btns[(int)btnT.goTownBtn].gameObject.SetActive(false);

            Btns[(int)btnT.clearQuest].gameObject.SetActive(true);
            EventDelegate.Set(Btns[(int)btnT.clearQuest].onClick, delegate() { GotoTown(null); });
        }
        else//게임모드에 따라서 버튼 추가
        {
            if (gameMode == GAME_MODE.SINGLE || gameMode == GAME_MODE.TOWER)
            {
                Btns[(int)btnT.nextZone].gameObject.SetActive(isSuccess);  //승리했을때만 다음스테이지가 나와야한다?
            }
            else
            {
                Btns[(int)btnT.nextZone].gameObject.SetActive(false);
            }

            uint key = 0;
            if (gameMode == GAME_MODE.TOWER)
            {
                key = 540;
            }
            else
            {
                key = 531;
            }

            Btns[(int)btnT.nextZone].transform.FindChild("label").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(key);
            Btns[(int)btnT.clearQuest].gameObject.SetActive(false);
        }

        RewardAssetTf.parent.gameObject.SetActive(false);
        ResultDungeon();

        if (gameMode == GAME_MODE.ARENA)//등급 상승 or 하락 연출
        {
            //성망획득량.. 승/패와관려없이 나옴
            GameObject go = Instantiate(ItemSlotPrefab) as GameObject;
            Transform  tf = go.transform;
            tf.parent        = ArenaView.FindChild("RankInfo/item").transform;
            tf.localPosition = Vector3.zero;
            tf.localScale    = Vector3.one;

            InvenItemSlotObject slotObj = go.GetComponent <InvenItemSlotObject>();
            slotObj.SetLowDataItemSlot(599003, (uint)parameters[1]);

            ArenaView.FindChild("RankPop/BeforeNum").GetComponent <UILabel>().text = string.Format("{0}", ArenaGameState.MyRank - ArenaGameState.TargetRank);
            ArenaView.FindChild("RankPop/AfterNum-").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1267), (ArenaGameState.MyTopRank - ArenaGameState.TargetRank) * _LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvPfirstgetcash));

            StartCoroutine("TextAction", new object[] {
                ArenaGameState.MyRank,
                ArenaGameState.TargetRank,
                _LowDataMgr.instance.GetStringCommon(521),
                ArenaView.FindChild("RankPop/AfterNum").GetComponent <UILabel>()
            });
            if (isSuccess && ArenaGameState.TargetRank < ArenaGameState.MyTopRank)//등급 상승
            {
                ArenaView.FindChild("RankPop/BeforeNum").GetComponent <UILabel>().text = string.Format("{0}", ArenaGameState.MyRank - ArenaGameState.TargetRank);
                ArenaView.FindChild("RankPop/AfterNum-").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1267), (ArenaGameState.MyTopRank - ArenaGameState.TargetRank) * _LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvPfirstgetcash));

                StartCoroutine("TextAction", new object[] {
                    ArenaGameState.MyRank,
                    ArenaGameState.TargetRank,
                    _LowDataMgr.instance.GetStringCommon(521),
                    ArenaView.FindChild("RankPop/AfterNum").GetComponent <UILabel>()
                });

                //최고랭킹달성원보
                GameObject gem   = Instantiate(ItemSlotPrefab) as GameObject;
                Transform  gemTf = gem.transform;
                gemTf.parent        = ArenaView.FindChild("RankInfo/gem").transform;
                gemTf.localPosition = Vector3.zero;
                gemTf.localScale    = Vector3.one;

                InvenItemSlotObject gemObj = gem.GetComponent <InvenItemSlotObject>();
                gemObj.SetLowDataItemSlot(599001, (uint)parameters[2]);



                EventDelegate.Set(ArenaView.FindChild("RankPop/BtnClose").GetComponent <UIEventTrigger>().onClick, () => {
                    if (ArenaView.FindChild("RankPop/bg").transform.childCount > 0)
                    {
                        DestroyImmediate(ArenaView.FindChild("RankPop/bg").transform.GetChild(0).gameObject);
                    }

                    ArenaView.FindChild("RankPop").gameObject.SetActive(false);

                    ArenaResult();

                    //이때켜준다
                    ArenaView.FindChild("RankInfo").gameObject.SetActive(true);
                    transform.FindChild("Normal").gameObject.SetActive(true);
                });

                ArenaView.FindChild("RankPop").gameObject.SetActive(true);
                ArenaView.FindChild("RankInfo").gameObject.SetActive(false);
                transform.FindChild("Normal").gameObject.SetActive(false);

                //이펙트
                UIHelper.CreateEffectInGame(ArenaView.FindChild("RankPop/title").transform, "Fx_UI_result_01");
                TempCoroutine.instance.FrameDelay(1.5f, () => {
                    UIHelper.CreateEffectInGame(ArenaView.FindChild("RankPop/bg").transform, "Fx_UI_result_02");
                });
            }
            else
            {
                ArenaView.FindChild("RankPop").gameObject.SetActive(false);
                ArenaView.FindChild("RankInfo").gameObject.SetActive(true);

                transform.FindChild("Normal").gameObject.SetActive(true);

                ArenaResult();
            }

            ArenaView.gameObject.SetActive(true);
        }

        if (SceneManager.instance.testData.bSingleSceneTestStart)
        {
            TempCoroutine.instance.FrameDelay(2f, () => {
                GotoTown(null);
            });
        }
        if (SceneManager.instance.testData.bQuestTestStart)
        {
            TempCoroutine.instance.FrameDelay(2f, () => {
                GotoTown(null);
            });
        }
    }
Пример #16
0
    /// <summary> 메일 아이템 획득 연출 </summary>
    void UpdateGetMailItem()
    {
        for (int j = 0; j < GetMailSlotTf.Length; j++)
        {
            Transform  tf    = GetMailSlotTf[j];
            TweenAlpha alpha = tf.GetComponent <TweenAlpha>();
            if (0 < alpha.value)//아직 사용중.
            {
                continue;
            }

            NetData.EmailAttachmentInfo mailInfo = GetItemList[0];
            GetItemList.RemoveAt(0);

            tf.GetComponent <UIWidget>().enabled = true;
            UILabel             amount    = tf.FindChild("amount").GetComponent <UILabel>();
            Transform           normalTf  = tf.FindChild("normal");
            InvenItemSlotObject invenSlot = tf.FindChild("root").GetChild(0).GetComponent <InvenItemSlotObject>();

            Vector3 pos = tf.localPosition;
            pos.y            = j * 55;
            tf.localPosition = pos;
            //if (mailInfo.GoodType == (int)AssetType.None || mailInfo.GoodType == (int)AssetType.Everything)//소비, 장비
            if (50 < mailInfo.Id)
            {
                normalTf.gameObject.SetActive(false);
                invenSlot.gameObject.SetActive(true);
                invenSlot.SetLowDataItemSlot(mailInfo.Id == 0 ? mailInfo.GoodType : mailInfo.Id, mailInfo.Count);
            }
            else
            {
                normalTf.gameObject.SetActive(true);
                invenSlot.gameObject.SetActive(false);

                switch ((AssetType)mailInfo.GoodType)
                {
                case AssetType.Exp:
                    normalTf.FindChild("sprite").gameObject.SetActive(false);
                    normalTf.FindChild("exp").gameObject.SetActive(true);
                    break;

                default:
                    normalTf.FindChild("sprite").gameObject.SetActive(true);
                    normalTf.FindChild("exp").gameObject.SetActive(false);
                    UISprite sp = normalTf.FindChild("sprite").GetComponent <UISprite>();

                    if (mailInfo.GoodType == (int)AssetType.Energy)
                    {
                        sp.spriteName = "stamina";
                    }
                    else if (mailInfo.GoodType == (int)AssetType.Gold)
                    {
                        sp.spriteName = "money";
                    }
                    else if (mailInfo.GoodType == (int)AssetType.Cash)
                    {
                        sp.spriteName = "cash";
                    }

                    break;
                }
            }

            amount.text = string.Format("{0}", mailInfo.Count);
            alpha.ResetToBeginning();
            alpha.PlayForward();

            break;
        }

        if (GetItemList.Count <= 0)
        {
            TweenAlpha mailAlpha = GetMailSlotTf[0].GetComponent <TweenAlpha>();
            TempCoroutine.instance.KeyDelay("GetMailItem", mailAlpha.delay + mailAlpha.duration, () =>
            {
                NoticeGo[(int)NoticeType.GetMailItem].SetActive(false);
            });
        }
    }